Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2012
    Messaggi
    18

    [C++] esercizio max serie di numeri

    Salve,
    sono alle prime armi con il C++ e ammetto di aver grosse difficoltà, sia perché ho cominciato da poco, sia perché mi manca la forma mentis del programmatore.
    Comunque vi posto un esercizio:

    Scrivere un programma C + + che abbia in ingresso una serie di 10 numeri per ogni venditore, e determina e stampa il più grande dei numeri. Inoltre alla fine si determini quale venditore ha vinto il premio.

    Codice PHP:
    int contatore_rappresentanti=0
    codicenumero
    maggiore=0massimo=0

    cout<<"Inserire il codice del rappresentante, -1 per terminare :"<<endl
    cin >> codice

    while () 
    for (
    int contatore_vendite=1contatore_vendite<=10contatore_vendite++){ 
    cout << "Inserire un numero : "
    cin >> numero
    while(
    numero<=0) { 
    cout << "Numero immesso non valido!!!\n";
     
    cout << "Inserire un altro numero : ";
     
    cin >> numero;
     }
     if(
    maggiore<numero) { 
    maggiore numero; }
    cout <<"Il numero maggiore è : "<<maggiore<<endl

    Il codice per leggere la serie di 10 numeri e determinarne il maggiore è ok!
    La mia difficoltà sta nella condizione del while in quanto dovrei fare un ciclo controllato da un valore sentinella che mi permetta di memorizzare il maggiore(tra i 10 numeri) per ogni venditore e alla fine determinare non il valore massimo tra tutti ma il codice del venditore.
    Io purtroppo mi blocco e non riesco ad andare avanti.
    PS Più che svolgere l'esercizio mi interessa capire il meccanismo da usare!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    Scrivere un programma C + + che abbia in ingresso una serie di 10 numeri per ogni venditore, e determina e stampa il più grande dei numeri. Inoltre alla fine si determini quale venditore ha vinto il premio.
    Era veramente tutta qui la descrizione del programma? Non è che si capisca molto. Per esempio quanti venditori ci sono? Stampa il più grande dei numeri, in che senso? Quale venditore ha vinto il premio cosa vuol dire?

    Inoltre quando tu dici "Il codice per leggere la serie di 10 numeri e determinarne il maggiore è ok!" dove sarebbe questo codice? non l'hai postato? Forse ho capito è il ciclo for, pensavo che ti salvassi questi numeri in un array.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    Te lo riscrivo come lo vedrei io, ciao.

    codice:
    #include <iostream>
    using namespace std;
    
    int get_numero() 
    {
        int numero = 0;
    
        while (numero <= 0) { 
            cout << "Inserire il numero: ";
            cin >> numero;        
            if (numero <= 0)
                cout << "Numero immesso non valido!!!\n";
        } 
        
        return numero;
    }
    
    int main() 
    {
        int i, max, numeri[10];
    
        // input numeri
        for (i = 0; i < 10; i++)
            numeri[i] = get_numero();
        
        // trovo il maggiore
        for (i = 0, max = 0; i < 10; i++)
            max = numeri[i] > max ? numeri[i] : max;
            
        cout << "Il numero maggiore è : " << max << endl;
        
        return 0;
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2012
    Messaggi
    18
    La migliore vendita
    Il processo che scopre il maggior numero (cioè, il massimo di un gruppo di numeri) è usato frequentemente in applicazioni informatiche. Ad esempio, un programma che determina il vincitore di un concorso di vendite farebbe inserire il numero di unità vendute da ogni venditore. Il venditore che vende il maggior numero di unità vince il concorso. Scrivere un programma pseudocodice, poi un programma C + + che abbia in ingresso una serie di 10 numeri per ogni venditore, e determina e stampa il più grande dei numeri. Inoltre alla fine si determini quale venditore ha vinto il premio
    Suggerimento: Il vostro programma dovrebbe utilizzare tre variabili, come segue:
    counter: Un contatore per contare fino a 10 (vale a dire, per tenere traccia di quanti numeri sono stato ingresso e per determinare quando tutti i numeri 10 sono stati elaborati).
    number: Il numero corrente di ingresso al programma.
    largest: Il maggior numero trovato finora.
    countersellers: Un contatore di tipo sentinella che consenta di contare il numero di venditori. Un numero di codice assegnato al venditore (es: 1,2, etc) potrebbe essere, scegliete la informazione sentinella in maniera coerente.


    Questo è il testo dell'esercizio per intero, ma anche da qui la chiarezza è un optional!
    So che con gli array forse risulta più immediato, ma è un esercizio del 2° capitolo quindi dovrei farlo con le variabili...giusto per prendere confidenza con il programma e capire qualcosina in più!
    Sì...il ciclo for scritto nel codice permette di calcolare il più grande tra i 10 num e il programma lo compila ed esegue senza problemi (almeno qst!!!)!!
    Il numero dei venditori è arbitrario...dovrei usare un ciclo controllato da un valore sentinella immesso da tastiera del tipo
    Codice PHP:
    while ( codice != -1)
    contatore_venditori++; 
    praticamente dovrei mettere nel corpo del while il costrutto for, giusto? Il problema è che la condizione del while è sbagliata perché, solo immettendo -1 (valore sentinella) finisce il ciclo del while e passa all'istruzione successiva del for...ma allora come faccio a memorizzare i max e i codici di ogni venditore?!

    ps Scusami ma sono fortemente scoraggiata!
    PS Verae

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    Non so neanch'io se ho capito, dimmi se è giusto, l'output voluto è qualcosa del genere? (faccio finta che si siano solo 3 numeri per venditore)

    Inserisci il codice del venditore 1 (-1 per terminare): 256
    Inserisci il numero 1 per il venditore codice 256: 10
    Inserisci il numero 2 per il venditore codice 256: 30
    Inserisci il numero 3 per il venditore codice 256: 20
    Il numero maggiore del venditore codice 256 è 30
    Inserisci il codice del venditore 2 (-1 per terminare): 52
    Inserisci il numero 1 per il venditore codice 52: 3
    Inserisci il numero 2 per il venditore codice 52: 9
    Inserisci il numero 3 per il venditore codice 52: 7
    Il numero maggiore del venditore codice 52 è 9
    Inserisci il codice del venditore 3 (-1 per terminare): -1

    A parte che non so se fin qui è giusto, come fai ora a dire quale venditore ha vinto non usando gli array? Come non detto ti salvi il codice del venditore e la sua miglior vendita.... comunque è giusto questo output?

    Forse il codice del venditore non serve? basta numerarli 1, 2, 3?

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2012
    Messaggi
    18
    Sì...anche se come codice venditore si può pure usare 1,2,3..etc!
    Dopo aver immesso i 10 num per ciascun venditore, praticam devo individuare il numero max tra i maggiori(cioè devo memorizzare solo il maggiore di ciascun venditore e determinare il max tra qst) ! Per me è un impresa!!!

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    Guarda così come ti sembra, i venditori sono numerati e invece di -1 c'è S/N:

    Inserisci il numero 1 per il venditore 1: 10
    Inserisci il numero 2 per il venditore 1: 30
    Inserisci il numero 3 per il venditore 1: 20
    Il numero maggiore del venditore 1 è 30
    Continuare (S/N): S
    Inserisci il numero 1 per il venditore 2: 3
    Inserisci il numero 2 per il venditore 2: 9
    Inserisci il numero 3 per il venditore 2: 7
    Il numero maggiore del venditore 2 è 9
    Continuare (S/N): N
    Vince il venditore 1 con 30

    Si possono usare le funzioni o dev'essere tutto fatto nella main?

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2012
    Messaggi
    18
    No, il capitolo è incentrato sulle strutture selettive e iterative...quindi dovrebbe essere fatto tutto nella main utilizzando cicli for, while, if etc.Il tuo output è esatto, come implementarlo?

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    Allora, si può fare così, ho usato due funzioni (get_numero e get_continua), che io qua non ti dò, almeno hai da sostituire quelle due chiamate a funzione con del codice corrispondente, visto che hai detto che non puoi usare le funzioni.

    Le variabili "chiave" sono max_relativo (miglior vendita di un venditore), max_assoluto (miglior vendita in assoluto) e miglior_venditore. Ciao.

    codice:
    int main() 
    {
        int i, venditore = 1, running = 1, numero,
            max_relativo, max_assoluto = 0, miglior_venditore;
    
        while (running) {
            for (i = 0, max_relativo = 0; i < 10; i++) {
                numero = get_numero(venditore, i);
                if (numero > max_relativo) {
                    max_relativo = numero;
                    if (max_relativo > max_assoluto) {
                        max_assoluto = max_relativo;
                        miglior_venditore = venditore;
                    }
                }
            }
            cout << "Il numero maggiore del venditore " << venditore << " è: " << max_relativo << endl;
            venditore++;
            // controllo uscita
            if (!get_continua())
                running = 0;
        }
        cout << "Vince il venditore " << miglior_venditore << " con " << max_assoluto << endl;    
        
        return 0;
    }

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2012
    Messaggi
    18

    Risolto!

    Ce l'ho fatta, senza funzioni!
    posto il codice, potrebbe essere utile a qualcuno che è nella mia stessa condizione
    Codice PHP:
    #include <iostream>
     #include <stdlib.h> 
    using namespace std
    int main () 
    int Massimo=0numerocodicevenditore_max
    cout << "Inserire il codice del venditore, -1 per terminare : ";
     
    cin >> codice
    while(
    codice != -1){ 
    int Maggiore=0
    for(
    int contatore_vendite=1contatore_vendite<=10contatore_vendite++) {
     
    cout << "Inserire vendita : ";
    cin >> numero
    if (
    numero>Maggiore){ 
    Maggiore=numero;
     } 

    if (
    Maggiore>Massimo){ 
    Massimo Maggiore;
     
    venditore_max=codice

    cout << "Inserire il codice di un altro venditore :";
     
    cin >> codice;
     } 
    cout <<"Il venditore che vince il premio è : " << venditore_max << " con "<<Massimo<<" unità vendute."<<endl
    system ("Pause"); 
    return 
    0


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.