Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di bovy
    Registrato dal
    Nov 2006
    Messaggi
    269

    [C++]problema programa dado

    ho un testo di un programma da fare che è il seguente: dopo che è stato riempito un vettore di 1000 elementi che corrispondono al lancio di 2 dadi, tramite una funzione nella quale si calcola la frequenza con la quale ogni numero ( da 1 a 12) è uscito, riempire un vettore finale nel quale andranno memorizzate le frequenze trovate tramite la funzione, e stampare il vettore finale.

    il programma non è complesso in se, anzi, però la questione del calcolo delle frequenze ecc mi complica la vita.

    mi potete dare una mano? grazie
    Windows più che un sistema operativo è un sistema nervoso....

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    475
    Fatteli da solo i compiti, specie se sono così banali.

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Originariamente inviato da bovy
    mi potete dare una mano? grazie
    Inizia l'esercizio e proponi la tua soluzione; in caso di problemi, descrivili e qualcuno vedrà di darti una mano.

    Chiedere di fare l'esercizio intero è un po' troppo...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it L'avatar di bovy
    Registrato dal
    Nov 2006
    Messaggi
    269
    -__- ^^ io volevo sapere come potevo fare a calcolare la frequenza di uscita dei numeri e se secondo voi il testo significa la frequenza del tipo: in un solo lancio oppure in molti lanci...non ho chiesto di farmi il compito
    Windows più che un sistema operativo è un sistema nervoso....

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Originariamente inviato da bovy
    -__- ^^ io volevo sapere come potevo fare a calcolare la frequenza di uscita dei numeri e se secondo voi il testo significa la frequenza del tipo: in un solo lancio oppure in molti lanci...non ho chiesto di farmi il compito
    Il testo mi sembra chiaro ...

    1) hai un vettore di 1000 numeri compresi tra 1 e 12 che corrispondono a 1000 lanci ...

    2) esamina i 1000 numeri e vedi quante volte contengono 1, 2, 3, ... 12 ...

    3) alla fine di questo esame, avrai un vettore di 12 elementi che conterranno il numero di volte che e' uscito il corrispondente numero

    Ad esempio, alla fine avrai un vettore cosi'

    1 203
    2 82
    3 90
    ...
    12 82

    che significhera' che l'1 è uscito 203 volte ... e cosi' via ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it L'avatar di bovy
    Registrato dal
    Nov 2006
    Messaggi
    269
    io l'ho fatto così...
    codice:
    /*Programma che riempito un vettore di n elementi compresi tra 1 e 12,
    calcoli tramite l'utilizzo di una funzione, che ha per argomenti il numero
    del quale bisogna trovare la frequenza e la dimensione del vettore,
    la frequenza di ogni elemento del vettore*/
    
    #include <iostream.h>
    #include <stdlib.h>
    #include <time.h>
    
    //Inizializzo le variabili
    
    const int lun=1000;     //grandezza del vettore
    int cont=0;  //contatore
    int vett[1000]; //vettore che contiene elementi
    int numero=0;    //variabile a cui viene assegnato un numero tra 1 e 12
    int n=0;         // contatore di presenza di un numero
    int freq();    //funzione all'interno della quale viene contata la presenza dei numeri
    
    
    
    
    int freq(int cifra ,int num)
    {
        n=0;
        for(cont=0; cont<num; cont++)
        {
        if(vett[cont]==cifra)
        {
            n++;
        }
        }
       return n;
    
    }
    
    main()
    {
    
    srand(time(NULL));
    
    cout<<"Calcolo la frequenza di uscita dei numeri in 1000 lanci di 2 dadi:"<<endl;
        for(cont=0; cont<lun; cont++)
        {
            vett[cont]=rand()%12+1;
        }
    
            for(cont=0; cont<lun; cont++)
        {
            cout<<vett[cont]<<" ";
        }
    
    for(numero=1; numero<13; numero++)
    {
    cout<<"\nIl numero"<<" "<<numero<<" e' presente"<<" "<<freq(numero,lun)<<" "<<"volte"<<endl;
    }
    
    
    getchar();
    getchar();
                               }
    ditemi se può andare..anche se non capisco cosa serva mettere le frequenze in un vettore quando posso fare così, però ditemi lo stesso se può andare
    Windows più che un sistema operativo è un sistema nervoso....

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Originariamente inviato da bovy
    ditemi se può andare..
    Prima di dirti qualcosa, hai errori di compilazione? Errori di runtime? Fa quello che deve fare?

    Perche' costringi a provare il programma se puoi dire tu se ci sono problemi ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it L'avatar di bovy
    Registrato dal
    Nov 2006
    Messaggi
    269
    funziona tutto...non mi riferivo a quello, volevo sapere se secondo voi avevo interpretato correttamente il testo

    lo so che non ho messo le frequenze in un vettore, ma non ne vedevo l'utilità, ma x il resto?
    Windows più che un sistema operativo è un sistema nervoso....

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Va bene ... a parte delle imperfezioni e qualche miglioramento ... pero', dato che indica di riempire e visualizzare il vettore, non farlo sarebbe un errore ...

    E poi non dice di visualizzare i 1000 numeri ...

    Farei queste piccole modifiche ...

    codice:
    /*Programma che riempito un vettore di n elementi compresi tra 1 e 12,
    calcoli tramite l'utilizzo di una funzione, che ha per argomenti il numero
    del quale bisogna trovare la frequenza e la dimensione del vettore,
    la frequenza di ogni elemento del vettore*/
    
    #include <iostream>
    #include <stdlib.h>
    #include <time.h>
    
    using namespace std;
    
    //Inizializzo le variabili
    
    const int LUN=1000;     //grandezza del vettore
    
    int vett[LUN]; //vettore che contiene elementi
    int vfre[12];
    
    int freq(int numero)
    {
        int n, cont;
    
        for(n=cont=0; cont<LUN; cont++)
    		if(vett[cont]==numero)
    			n++;
    
    	return n;
    }
    
    main()
    {
    	int cont, numero;
    
    	srand(time(NULL));
    
    	cout<<"Calcolo la frequenza di uscita dei numeri in 1000 lanci di 2 dadi:"<<endl;
    
        for(cont=0; cont<LUN; cont++)
            vett[cont]=rand()%12+1;
    
    	for(numero=1; numero<13; numero++)
    	{
    		vfre[numero-1]=freq(numero);
    
    		cout << "\nIl numero " << numero << " e' presente " << vfre[numero-1] << " volte" << endl;
    	}
    
    	getchar();
    }
    Se vuoi apportare un miglioramento, rendi tutte le variabili e vettori locali ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it L'avatar di bovy
    Registrato dal
    Nov 2006
    Messaggi
    269
    ok...grazie mille dei consigli
    Windows più che un sistema operativo è un sistema nervoso....

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 © 2024 vBulletin Solutions, Inc. All rights reserved.