Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    9

    [C++] Programma 4 operazioni con istruzione switch

    Salve mi è stato chiesto un programma che usando l' istruzione switch permetta di eseguire le 4 operazioni matematiche dopo avere verificato se i numeri (a e b) fossero maggiori 0. Seguendo gli appunti che avevo ho provato a farlo ma non riesco a capire dove sbaglio visto che è la prima volta che uso questa funzione.

    Ecco a voi la codifica (il programma non mi da errori e parte tranquillamente scrivo i due numeri ma una volta che devo digitare quale operazione fare nel comando "dammi operazione da 1 a 4" si blocca e mi scrive inactive in alto nella finestra di esecuzione del programma). Dopo vari tentativi ho levato la if che fermava il programma in caso i numeri non fossero maggiori di 0 ma il problema persiste.

    #include<iostream.h>
    #include<iomanip.h>
    #include<conio.h>
    #include<stdio.h>
    void main()
    {
    int oper;
    float a,b,som,sot,molt,div;
    cout<<"dammi a";
    cin>>a;
    cout<<"dammi b";
    cin>>b;
    cout<<"dammi operazioni da 1 a 4";
    cin>>oper;
    switch(oper)
    {
    case 1:
    som=a+b;
    break;
    case 2:
    sot=a-b;
    break;
    case 3:
    molt=a*b;
    break;
    case 4:
    div=a/b;
    break;
    default:
    cout<<"scelta errata";
    cout<<"il risultato dell' addizione è:"<<som<<endl;
    cout<<"il risultato della sottrazione è:"<<sot<<endl;
    cout<<"il risultato della moltiplicazione è:"<<molt<<endl;
    cout<<"il risultato della divisione è:"<<div;
    }
    getchar();
    }


    Vi ringrazio e mi scuso in anticipo per eventuali erroracci ma la spiegazione non era chiarissima.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    I risultati non vanno nella parte di default ma fuori dallo switch ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    La prossima volta metti il codice tra i tag CODE così lo capiamo meglio...

    cmq il problema è che hai messo gli output del risultato al default dello switch e non si vedono nel caso in cui oper sia tra 1 e 4.

    codice:
    default:
    cout<<"scelta errata";
    cout<<"il risultato dell' addizione è:"<<som<<endl;
    cout<<"il risultato della sottrazione è:"<<sot<<endl;
    cout<<"il risultato della moltiplicazione è:"<<molt<<endl;
    cout<<"il risultato della divisione è:"<<div;
    }
    getchar();
    }
    Ovviamente non è solo questo l'errore visto che hai pensato male il tuo programma, ma risolvendo questo problema ti accorgerai che qualcos'altro nn va anche se il programma funziona.
    lolide
    Java Programmer

    Informati

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    9
    Scusate se non ho messo il programma nel codice CODE mi sono dimenticato, tornando al programma se facessi vedere il risultato di ogni operazione dopo lo svolgimento di essa senza far vedere tutti e 4 i risultati alla fine ?

    In questo modo:
    codice:
    case 1:
    som=a+b;
    cout<<"il risultato dell' addizione è:"<<som;

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Perché non provi?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    9
    Ho provato e ora mi fa le operazioni ma dopo aver fatto un operazione è normale che si blocca e mi costringe a far ripartire il programma per provare un altra operazione invece di chiedermi di fare un altra operazione ?

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da iker1
    Ho provato e ora mi fa le operazioni ma dopo aver fatto un operazione è normale che si blocca e mi costringe a far ripartire il programma per provare un altra operazione invece di chiedermi di fare un altra operazione ?
    Il computer esegue tutto quello che c'è scritto nel programma, nulla di più o di meno.

    Dove c'è scritto nel tuo programma che ti dovrebbe chiedere di fare un'altra operazione?
    Dove sta il ciclo che eventualmente ripete il programma?

    In realtà, nel tuo programma, dopo la presentazione dei risultati, non c'è altro codice.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    9
    Per ora il programma va bene quindi, casomai metto una for e faccio ripetere il programma 3 volte (dopo ogni operazione). Grazie mille a te e ad oregon per l' aiuto

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Perché un for e 3 volte?

    Prova un ciclo while e controllalo con un input da tastiera ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    9
    Ok grazie ... diciamo che la cosa del for è un istruzione aggiuntiva che volevo mettere io ma non mi è chiesta esplicitamente nel testo del programma quindi potrei anche non metterla

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.