Errore nel codice, ma dove?

di il
1 risposte

Errore nel codice, ma dove?

String s;//stringa generica
string nome;// nome del soggetto
double quantita = 0; //quantita' da dividere
double NumeroPax = 0;//numero totale dei partecipanti
double dote = 0; // dote portata da ciascun soggetto
double totaleDoti = 0; // somma delle doti
double coefficiente = 0; //coefficiente di riparto
double spettante = 0; // importo spettante a ciascun soggetto
double ValoreDiControllo = 0;
double[] ArrayDoti; //elencodoti trasformato in array
string[] ArrayNomi;//elenconomi trasformato in array


Console.WriteLine("Inserisci la quantita' da dividere");
s = Console.ReadLine();
quantita = Convert.ToDouble(s);
Console.WriteLine("Inserisci il numero dei partecipanti");
s = Console.ReadLine();
ValoreDiControllo = Convert.ToDouble(s);


List<string> ElencoNomi = new List<string>();
List<double> ElencoDoti = new List<double>();

while (ValoreDiControllo > NumeroPax)
{
Console.WriteLine("Inserisci il nome del partecipante");
nome = Console.ReadLine();
ElencoNomi.Add(nome);
NumeroPax = NumeroPax + 1;
Console.WriteLine("Inserisci la dote di " +nome);
s = Console.ReadLine();
dote = Convert.ToDouble(s);
ElencoDoti.Add(dote);


totaleDoti = totaleDoti + dote;

}

coefficiente = quantita / totaleDoti;

ArrayNomi = ElencoNomi.ToArray();
ArrayDoti = ElencoDoti.ToArray();

foreach (double dote in ArrayDoti)
{
spettante = coefficiente * dote;
}
Console.WriteLine("ecc.ecc")
Vi ho postato il codice del mio programma, che dovrebbe risolvere i riparti proporzionali semplici diretti (chi volesse una spiegazione esaustiva sull'argomento, legga http://www.desambrois.it/desaweb/campus/documenti/tecnica/tecnica_unita05-a.pdf)

Il codice mi segnala il seguente errore nel ciclo foreach:"una variabile chiamata "dote" non puo' essere dichiarata a questo scopo perche'e' gia' usata per indicare qualcos'altro" (traduzione maccheronica dall'inglese, spero abbiate capito comunque).Piccolo particolare: se avete letto il PDF, sapete che la regola dice proprio di usare la variabile che io ho chiamato "dote"!
Potreste aiutarmi a risolvere il problema?
Ragazzi, programmo in C# da un mese e mezzo, spero comprendiate la mia situazione!

1 Risposte

  • Re: Errore nel codice, ma dove?

    Hai dichiarato un campo double "dote" inizializzandolo a 0
    double dote = 0; // dote portata da ciascun soggetto
    successivamente dichiari di nuovo nel ciclo foreach un nuovo double di nome dote
    foreach (double dote in ArrayDoti)
    {
    spettante = coefficiente * dote;
    }
    è sufficiente chiamare in modo diverso il "double dote" del foreach in un altro modo (ad esempio _dote) e non ti darà l'errore,
    ovviamente devi anche chiamare allo stesso modo il campo "dote" dell'assegnazione "spettante = coefficiente * dote;" all'interno del foreach

    spero di essere stato sufficientemente chiaro e di averti aiutato, altrimenti fammi sapere

    ciao
Devi accedere o registrarti per scrivere nel forum
1 risposte