If ed else errore logico

di il
21 risposte

If ed else errore logico

Come si vede nel programma seguente, il cacolo è errato nei messagebox:
non trovo la soluzione... forse la formula è sbagliata negli "if" e "if else"....
Segue il problema di scuola:

In un albergo il prezzo della camera dipende dal piano in cui ci si trova secondo la seguente tabella.
piano 1 € 35
piano 2 € 45
piano 3 € 55
piano 4 € 65
Calcola il prezzo del conto sapendo il numero di giorni di soggiorno e il piano della camera.

        private void button1_Click(object sender, EventArgs e)
        {
            giorni = Int32.Parse(textBox1.Text);
            piano1 = 35;
            piano2 = 45;
            piano3 = 55;
            attico = 100;
            calcolo1 = piano1 * giorni;
            calcolo2 = piano2 * giorni;
            calcolo3 = piano3 * giorni;
            calcoloattico = attico * giorni;


            if (calcoloattico == attico * giorni)
            {
             MessageBox.Show(("Il tuo soggiorno per l'attico esclusivo è di ") + (giorni) + (" giorni per un totale di ") + (calcoloattico) +(" euro, Grazie"),(" Prezzo totale...."));

                

            }
            
            
            else if (calcolo1 == piano1 * giorni)
            {
             MessageBox.Show(("Il tuo soggiorno per il primo piano è di ") + (giorni) + (" giorni per un totale di ") + (calcolo1) + (" euro, Grazie"), (" Prezzo totale...."));
                


            }
            else if (calcolo2 == piano2 * giorni)
            {
             MessageBox.Show(("Il tuo soggiorno per il secondo piano è di ") + (giorni) + (" giorni per un totale di ") + (calcolo2) + (" euro, Grazie"), (" Prezzo totale...."));
              


            }
            else if (calcolo3 == piano3 * giorni)
            {
             MessageBox.Show(("Il tuo soggiorno per il terzo piano è di ") + (giorni) + (" giorni per un totale di ") + (calcolo3) + (" euro, Grazie"), (" Prezzo totale...."));
             


            }
            else if (String.IsNullOrEmpty(textBox1.Text))
            {
            MessageBox.Show("Inserire data nella casella", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

21 Risposte

  • Re: If ed else errore logico

    Sterlok ha scritto:


    non trovo la soluzione... forse la formula è sbagliata negli "if" e "if else"....
    Nel tuo codice, hai calcolato tutte le tariffe totali (e non ti serve, dato che dovrai calcolare solo quella del piano scelto, direi) e poi ad ogni if vai a confrontare se il risultato della formula del calcolo è uguale al valore che hai messo nella variabile del calcolo, che hai inizializzato con il risultato della medesima formula: è ovvio che i valori coincideranno tutti.

    Il codice che hai scritto non ha senso. L'if dovrà controllare qual è il piano prescelto dall'utente e basta, e una volta individuato il piano, all'interno del codice dell'if metti il calcolo della tariffa associata per i giorni.

    Nel tuo codice manca anche l'inserimento del numero di piano.

    Rileggilo e cerca mentalmente di spiegare a te stesso ogni istruzione cosa fa, e fai un debug passo per passo del programma, così comprendi esattamente i passaggi errati verificando il flusso dell'esecuzione del codice e il valore assunto dalle variabili.

    Ciao!
  • Re: If ed else errore logico

    In pratica, come hai usato un textbox per inserire i giorni, utilizza un altro controllo (vedi tu quale) per inserire il piano.

    In base a questi due valori, calcola il costo di un giorno e poi utilizza un formula unica per calcolare il totale.
  • Re: If ed else errore logico

    Ho utilizzato i radio button....

  • Re: If ed else errore logico

    E il codice?
  • Re: If ed else errore logico

    oregon ha scritto:


    E il codice?
    Per la verità, io non vedo nemmeno l'immagine.
  • Re: If ed else errore logico

    Sì ma, tasto destro, apri immagine in un'altra scheda ...
  • Re: If ed else errore logico

    Io l'immagine la vedo direttamente, dal browser.
  • Re: If ed else errore logico

    Ho risolto oggi a lezione e abbimo approfondito, ma l'argomento vi anticipo non era ancora stato contemplato in calendario....
    Comunque era tutto come aveva descritto Alka, non avendo fatto ancora l'aromento mi mancavano basi sullo switch, da li ho capito come assegnare ai radio button un valore (tipo 0,1,2,3 ecc) per interpretarno nel codice.... Vi ringrazio a tutti, che problemi ci sono con la visualizzazione del programmino?
  • Re: If ed else errore logico

    Risolvevi anche con le if senza switch
  • Re: If ed else errore logico

    Sterlok ha scritto:


    ... mi mancavano basi sullo switch ...
    Uno "switch" e' SOLO una serie di "if" con un ""vestito piu' carino"" (e PIU' limitato nel suo utilizzo).

    MA E' PERFETTAMENTE EQUIVALENTE (al 100%) ad una serie di "if".

    SE non hai capito come funziona un "if", NON HAI CAPITO come funziona lo statement "switch".
  • Re: If ed else errore logico

    E se non hai capito le IF ti devi assolutamente fermare e rivedere l'argomento che è basilare
  • Re: If ed else errore logico

    Ho detto che non avevamo fatto lo switch!!! Enteinde?
    Poi se e uguale all'IF che volete da me?
  • Re: If ed else errore logico

    Sterlok ha scritto:


    Ho detto che non avevamo fatto lo switch!!! Enteinde?
    Sei tu che hai nominato lo switch, nessuno di noi lo ha menzionato.
    Ti si sta dicendo che, pur non avendolo ancora fatto, non era indispensabile per la risoluzione dell'esercizio, quindi non c'entra nulla.

    Sterlok ha scritto:


    Poi se e uguale all'IF che volete da me?
    Sei tu che hai posto un problema che non riuscivi a risolvere, e che teoricamente dici di aver risolto con una cosa che ti è stata spiegata in seguito ma che non era strettamente indispensabile, quindi nessuno vuole niente da te, tanto è vero che stai facendo e dicendo tutto da solo.
  • Re: If ed else errore logico

    Si dovevo aprire un altro 3d, in principio sono partito con if ed else, ma sono andato oltre menzionando lo switch dando per scontato che parlavamo dello switch.....perchè devo sempre andare oltre, poi che sia uguale all' if è un dato superfluo, ciao
Devi accedere o registrarti per scrivere nel forum
21 risposte