Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
03/05/22 18:47
quasar87
Ciao a tutti, mi sto esercitando scrivendo qualche riga di codice che dovrebbe richiedere in input dei valori numerici con decimali e poi utilizzarli per fare un calcolo e stampare a video il calcolo.
Ho scritto quanto segue:

{
        double valore1;
        Console.Write("Inserisci valore1: ");
        valore1 = Console.Read();
        double Calcolo1;
        Calcolo1 = (valore1 * 100 / 50 / 100 * 25);

        double valore2;
        Console.Write("Inserisci valore2: ");
        valore2 = Console.Read();
        double Calcolo2;
        Calcolo2 = (valore2 * 100 / 50 / 100 * 25);

        double valore3;
        Console.Write("Inserisci valore3: ");
        valore3 = Console.Read();
        double Calcolo3;
        Calcolo3 = (valore3 * 100 / 50 / 100 * 25);

        Console.WriteLine("Il calcoli risultano {0} e {1} e {2}", calcolo1, calcolo2, calcolo3;

    }



Dopo la compilazione lanciando l'eseguibile, viene richiesto il valore1 ma una volta inseriro e dato invio, schemro nero e chiusura programma :d:-potete aiutarmi?
Ultima modifica effettuata da quasar87 04/05/22 7:13
03/05/22 19:30
Come lanci la compilazione ed esecuzione?

P.S. nel forum il codice va racchiuso tra tag CODE o non si capisce
04/05/22 7:14
quasar87
Compilo con "compilazione" in visual studio e poi lancio semplicemente con doppio click su eseguibile.
Ultima modifica effettuata da quasar87 04/05/22 8:22
04/05/22 9:34
Thejuster
Hai provato a debuggare?

Probabile che interpreta il double come float.
E che quindi serve il Try Parse.


Edit:
Che poi scusa solo ora rileggendo bene ho notato una cosa


 Console.WriteLine("Il calcoli risultano {0} e {1} e {2}", calcolo1, calcolo2, calcolo3;



Cos'è questo?
in C# non esiste nulla di simile.
Per usare questa stringa devi usare String.Format e non scriverlo direttamente in questo modo.

O in alternativa utilizzare

Console.WriteLine($"I calcoli risultano {calcolo1},{calcolo2} e {calcolo3}");


A questo punto mi viene da chiedere una cosa.
Come hai fatto partire il programma se il codice che hai postato è sbagliato?
Ultima modifica effettuata da Thejuster 04/05/22 16:03
mire.forumfree.it/ - Mire Engine
C# UI Designer
04/05/22 16:57
quasar87
Il programma parte, con doppio click sull'eseguibile, ora provo con la sintassi che hai scritto e vediamo!
04/05/22 17:14
quasar87
Facendo il debug si avvia e chiede l'inserimento del "valore1" poi premendo invio dovrebbe chiedere l'inserimento del "valore2" e "valore3" ma ciò non avviene, però in modalità debug il programma nonsi chiude mentre avviando l'eseguibile, dopo avere inserito il "valore1" e premuto invio il programma si chiude.
04/05/22 17:39
Thejuster
Postato originariamente da quasar87:

Facendo il debug si avvia e chiede l'inserimento del "valore1" poi premendo invio dovrebbe chiedere l'inserimento del "valore2" e "valore3" ma ciò non avviene, però in modalità debug il programma nonsi chiude mentre avviando l'eseguibile, dopo avere inserito il "valore1" e premuto invio il programma si chiude.


Bhe diciamo che è un pò tutto un casino quel codice.
Si vede che sei alle prime armi e ti aiuto volentieri.

Il primo errore sta sul Read.

Console.Read() non legge quello che scrivi, ma semplicemente l'ultimo input ricevuto.
per leggere ciò che scrivi devi usare Console.ReadLine()

Il resto potrebbe pure andare, ma assicurati che l'input inserito sia di tipo double.
usando il metodo TryParse vai sul sicuro evitando errori.

questo e come dovrebbe essere il tuo codice.

 //Le Variabili vanno dichiarate sempre prima del codice
            double Calcolo1, Calcolo2, Calcolo3;
            double valore;

            Console.Write("Inserisci valore1: ");
            var input = Console.ReadLine();


            //Valore 1
            double.TryParse(input, out valore);
            Calcolo1 = (valore * 100 / 50 / 100 * 25);


            //Valore2
            Console.Write("Inserisci valore2: ");
            input = Console.ReadLine();

            double.TryParse(input, out valore);
            Calcolo2 = (valore * 100 / 50 / 100 * 25);

            //Valore3
            Console.Write("Inserisci valore3: ");
            input = Console.ReadLine();

            double.TryParse(input, out valore);
            Calcolo3 = (valore * 100 / 50 / 100 * 25);


            //Risultato
            Console.WriteLine($"I Calcoli risultano {Calcolo1}, {Calcolo2} e {Calcolo3}");

            Console.ReadKey(); //Attesa per terminare il programma


mire.forumfree.it/ - Mire Engine
C# UI Designer
04/05/22 18:12
quasar87
Grazie, si un bel casino :asd: ma bisogna pure provarci!
Domani provo come mi hai detto, intanto avevo fatto altre prove, come tipo di dati devo lavorare con decimali.
Intanto grazie!