PDA

View Full Version : C++,altro esempio altri aiuti se vi va...


Jedi82
22-10-2004, 17:37
Eccovi un ennesimo tentativo di parte di programma:

#include <iostream>
#include <cstdlib>
#include <stdio.h>

using namespace std;

int main()
{
int num1,
num2,
num3,
num4,
num5,
num6,
scelta;

num1,num2,num3,num4,num5,num6 = rand();

cout<<"Benvenuti nel programma Superenac++:\n\n";
cout<<"Scegli pure l'opzione:\n\n\n";
cout<<"1) restituzione di 6 numeri casuali da giocare:\n";
cout<<"2) calcolo delle probabilita per ogni giocata:\n";
cout<<"3) esci dal programma\n\n\n";
cin>>scelta;
switch (scelta) {
case1: cout<<"restituzione di 6 numeri casuali da giocare:\n";
cin>>num1;
cin>>num2;
cin>>num3;
cin>>num4;
cin>>num5;
cin>>num6;
break;
case2: cout<<"calcolo delle probabilità per ogni giocata:\n";
break;
default: cout<<"esci dal programma\n";
}
return 0;
}


E una specie di programmino che x ora voglio che mi dia 6 numeri a caso da giocare ok? Intanto due domandine:

1) nel case1, ho messo in colonna tutti e 6 i CIN, si puo semplificare il tutto in una riga?
2) al solito perche quando digito 1 n mi da questi 6 numeri ma mi chiude il programma?
3) in una funzione, posso metterci piu di due valori?

ghiotto86
22-10-2004, 18:03
Originariamente inviato da Jedi82
Eccovi un ennesimo tentativo di parte di programma:

#include <iostream>
#include <cstdlib>
#include <stdio.h>

using namespace std;

int main()
{
int num1,
num2,
num3,
num4,
num5,
num6,
scelta;

num1,num2,num3,num4,num5,num6 = rand();

cout<<"Benvenuti nel programma Superenac++:\n\n";
cout<<"Scegli pure l'opzione:\n\n\n";
cout<<"1) restituzione di 6 numeri casuali da giocare:\n";
cout<<"2) calcolo delle probabilita per ogni giocata:\n";
cout<<"3) esci dal programma\n\n\n";
cin>>scelta;
switch (scelta) {
case1: cout<<"restituzione di 6 numeri casuali da giocare:\n";
cin>>num1;
cin>>num2;
cin>>num3;
cin>>num4;
cin>>num5;
cin>>num6;
break;
case2: cout<<"calcolo delle probabilità per ogni giocata:\n";
break;
default: cout<<"esci dal programma\n";
}
return 0;
}


E una specie di programmino che x ora voglio che mi dia 6 numeri a caso da giocare ok? Intanto due domandine:

1) nel case1, ho messo in colonna tutti e 6 i CIN, si puo semplificare il tutto in una riga?
2) al solito perche quando digito 1 n mi da questi 6 numeri ma mi chiude il programma?
3) in una funzione, posso metterci piu di due valori?

ti faccio una domanda preventiva: da quando programmi in c++??

Jedi82
22-10-2004, 18:12
da molto poco, sto imparando, diciamo poke poke lezioni xc si vede??:p

ghiotto86
22-10-2004, 18:20
Originariamente inviato da Jedi82
da molto poco, sto imparando, diciamo poke poke lezioni xc si vede??:p

un po si:D .
cmq il programma è sbagliato concettualmente.
ora ti spiego: il programma ti deve restituire 6 numeri casuali giusto??
quindi quando fai la scelta di far calcolare 6 numeri casuali non devi immetterli tu con cin>>num1......cin>>num6, ma li deve calcolare con la rand();.
per il calcolo delle probabilità devi prevedere di inserire anche per sempio degli ambi o terni, perchè se metti 6 numeri la probabilità è sempre la stessa su tutti i numeri (6/90).

una volta che hai capioto il concetto potresti usare un tipo di dati molto flessibile ,l'ARRAY, che ti consiglio di studiare, perchè ti permette di fare una "collezione" di dati dello stesso tipo in un un'ca variabile.

ciao

Holliwood[ita]
22-10-2004, 18:33
per il calcolo del random molti usano l'ora di windows come generatore pseudocasuale.
Siccome necessiti di numeri da 0 a 90 ti consiglio di usare rand()*1000/91.
1000 è un coefficiente che può variare. Lo metti alto perchè i valori rand() solitamente sono frazioni piccole. Il risultato è il resto della divisione intera tra un random e 91 che guarda caso può andare da 0 a 90.

ghiotto86
22-10-2004, 18:38
Originariamente inviato da Holliwood[ita]
per il calcolo del random molti usano l'ora di windows come generatore pseudocasuale.
Siccome necessiti di numeri da 0 a 90 ti consiglio di usare rand()*1000/91.
1000 è un coefficiente che può variare. Lo metti alto perchè i valori rand() solitamente sono frazioni piccole. Il risultato è il resto della divisione intera tra un random e 91 che guarda caso può andare da 0 a 90.

oppure si può fare così direttamente utilizzando la libreria time.h

srand((unsigned)time(NULL));
num=rand() %90;

così ogni volta vche avvii il programma cambia il seme per generare i numeri pseudocasuali.

ciao.

ghiotto86
22-10-2004, 18:44
cmq ecco un codice semplice semplice

#include<iostream>
#include<stdlib.h>
#include<time.h>

using namespace std;

int main(){

int i=0,num;
srand((unsigned)time(NULL));

while (i<7)
{ num=rand()%90;
cout<<num<<"\n";
i++;
}

getchar();
return 0;

}

questo ti genera 6 numeri.

N.B.: nota che questo è solo un esempio; per fare quello che vuoi non va bene perchè la variabile num conterra solo l'ultimo numero.
E' SOLO PER FARTI CAPIRE IL CONCETTO

Jedi82
22-10-2004, 19:23
Originariamente inviato da ghiotto86
un po si:D .
cmq il programma è sbagliato concettualmente.
ora ti spiego: il programma ti deve restituire 6 numeri casuali giusto??
quindi quando fai la scelta di far calcolare 6 numeri casuali non devi immetterli tu con cin>>num1......cin>>num6, ma li deve calcolare con la rand();.
per il calcolo delle probabilità devi prevedere di inserire anche per sempio degli ambi o terni, perchè se metti 6 numeri la probabilità è sempre la stessa su tutti i numeri (6/90).

una volta che hai capioto il concetto potresti usare un tipo di dati molto flessibile ,l'ARRAY, che ti consiglio di studiare, perchè ti permette di fare una "collezione" di dati dello stesso tipo in un un'ca variabile.

ciao


e vero, giustissimo quello che dici te anche se x ora solo il primo punto mi interessa! Beh avendo messo che i vari num sono uguali a rand e giusto no mettere cin>>numX...

ghiotto86
22-10-2004, 20:09
Originariamente inviato da Jedi82
e vero, giustissimo quello che dici te anche se x ora solo il primo punto mi interessa! Beh avendo messo che i vari num sono uguali a rand e giusto no mettere cin>>numX...

assolutamente sbagliato: fammi capire perchè vuoi mettere sto cin che serve per ricevere un dato da tastiera.

Jedi82
22-10-2004, 21:02
oooooooooops e verooooo! Ragazzi mi avete troppo smontato sigh, quel programma e una busta ma va beh dai, e poco che smanetto! Voi da quanto?

STARGATE_84
22-10-2004, 23:24
:cool: