Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    115

    [C++] Problema Con Ciclo Iterativo

    Ciao a tutti, ho provato a risolvere il problema, ma non capisco cos'è che non funzioni. Non è un problema di analisi, il problema è semplice. Ho sbagliato a strutturare il programma? Ecco l'esercizio:

    - Una ditta produce pacchetti di sale. Tali pacchetti devono contenere 1 Kg di sale con una tolleranza in più o in meno del 2%. Costruisci un algoritmo che, data in ingresso la sequenza dei pesi dei pacchetti (che termina con 0), fornisca:
    1) I pacchetti di peso corretto, sottopeso e sovrappeso;
    2) Il peso totale della merce nei pacchetti a norma ed il peso totale dei pacchetti fuori norma;

    Ecco il mio algoritmo: (L'unica cosa di cui non ho tenuto conto è 'la sequenza che termina con 0 dei pacchetti', che non ho capito a cosa serve, cosa significa, e come inserire una condizione simile.. mi aiutereste?)

    codice:
    #include <iostream> 
    using namespace std; 
    
    int main () { 
       float peso, somma, somma2, cont=0, num; 
       int flag, n; 
        
       cout <<endl; 
       cout <<"Quanti pacchetti vuoi inserire?"<<endl; 
       cin >> n; 
        
       while (cont<n) { 
           
          cout <<"Inserisci il peso del pacchetto di sale in Kg."<<endl; 
          cin >> peso; 
           
          cont=cont+1; 
           
          if (peso==1) { 
             cout <<"Il pacchetto è in norma"<<endl; 
             flag=0; 
             peso=num; 
          } 
          if (peso>1) { 
             cout <<"Il pacchetto è sovrappeso"<<endl; 
             flag=1; 
          } 
          if (peso<1)   { 
             cout <<"Il pacchetto è sottopeso"<<endl; 
             flag=1; 
          } 
       } 
        
       if (flag==0) { 
          somma=somma+num; 
          cout <<"Il peso dei pacchetti in norma è "<<somma<<endl; 
       } 
       if (flag==1) { 
          somma2=somma2+peso; 
          cout <<"Il peso dei pacchetti fuori norma è "<<somma<<endl; 
       } 
        
       return 0; 
       system ("Pause"); 
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    93
    Ciao,

    forse potresti vederla in questo modo:

    non chiedere quanti sacchetti si desidera inserire, ma (per esempio), in un ciclo infinito del tipo while(1):

    1) leggi il peso del primo sacchetto (si suppone che ad ogni inserimento l'utente schiacci invio)

    2) se è > 0 allora procedi con i tuoi if magari aggiornando direttamente la variabile somma senza utilizzare la varibile flag.

    3) se, invece, è == 0 usi l'istruzione "break" che interrompe il ciclo visto che uno 0 indica la fine della sequenza.

    A questo punto termini.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    115
    Ma cosa vuol dire chiudere la squenza con 0?

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    93
    Credo che intenda questo: ho 2 sacchetti di 5 kg e 2 kg.

    Nell'usare il programma digiterò:

    5 [INVIO]
    2 [INVIO]
    0 [INVIO]

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    115
    Perfetto, è tutto chiaro. Grazie!

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    93
    nulla

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.