Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

[C++] Funzione random

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

[C++] Funzione random

Messaggioda Diablo » sab ago 27, 2005 3:28 pm

Ok è vero ci sono diverse discussioni ma in nessuno ho riscontrato questo problema [cry+] .

In pratica studiando sul libro mi veniva fatto l'esempio di un giochino e così l'ho personalizzato un po'.
In pratica il programma dovrebbe generare un numero casuale che poi l'utente deve indovinare (es. 40 -->numero troppo alto ecc...ecc..) il problema è che il numero scelto da rand() è sempre 41!!! Quindi c'è poco di casuale nel programma una volta finito non si gioca più [cry]
Diablo
Avatar utente
Diablo
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1987
Iscritto il: dom lug 20, 2003 7:43 pm
Località: Roma

Messaggioda Xerex » sab ago 27, 2005 6:47 pm

Devi cambiare il seme...dovrebbe essere randomize() la funzione che cerchi...
Fare la grigliata, è sempre una figata!
Avatar utente
Xerex
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5948
Iscritto il: lun ago 05, 2002 9:36 am
Località: Parma(Pr)

Messaggioda Diablo » dom ago 28, 2005 5:16 pm

ah ok nei topic precendenti non si capiva molto bene in pratica devo sostituire rand con randomize? Ma perché la funzione rand non genera un numero casuale?
Diablo
Avatar utente
Diablo
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1987
Iscritto il: dom lug 20, 2003 7:43 pm
Località: Roma


Messaggioda Leo » dom ago 28, 2005 5:26 pm

No, devi mettere prima di rand, randomize....
Leo
Responsabile Tecnico MegaLab.it
Avatar utente
Leo
Silver Member
Silver Member
 
Messaggi: 1683
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara

Messaggioda Xerex » dom ago 28, 2005 7:42 pm

Diablo ha scritto:ah ok nei topic precendenti non si capiva molto bene in pratica devo sostituire rand con randomize? Ma perché la funzione rand non genera un numero casuale?


Rand genera un numero causuale, per meglio dire pseudo-casuale, ma ovviamente questo viene generato da un'algoritmo che deve per forza di cose avere un valore variabile, il seme.
con la randomize cambi questo seme che verrà usato per calcolare l'output diella rand.

la spegazione è un po' superficale, ma credo sia sufficiente [:-D]
Fare la grigliata, è sempre una figata!
Avatar utente
Xerex
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5948
Iscritto il: lun ago 05, 2002 9:36 am
Località: Parma(Pr)

Messaggioda Diablo » dom ago 28, 2005 8:10 pm

si sei stato molto chiaro Xerex solo che non ho capito come usare randomize() all'interno del codice. [:I]
Per esempio in un codice come questo dove devo scriverlo?


Codice: Seleziona tutto
#include <stdio.h>
#include <iostream.h>
#include <cstdlib>
#include <stdlib.h>

int main()
{
    int numero;
    int tentativo;
    cout << "Questo e' un gioco in cui devi indovinare il numero generato casualmente dal programma.\n\r";
    cout << "Ti aiuteremo noi, dicendoti  se il numero da te immesso e' maggiore o minore del numero da indovinare.\n\r";
   
    numero = rand();
   
    do {
        cout << "Scrivi il tuo numero: ";
        cin >> tentativo;
    if(tentativo == numero)
    cout << "Brev, brev c'hai azzeccato";
    else {
        cout << "Azz, hai sbagliato ";
        if(tentativo > numero)
        cout << "il tuo numero e' troppo alto\n";
        else
        cout << "il tuo numero e' troppo basso\n";
        }
} while (tentativo != numero);

system("PAUSE");   
return 0;
}


Lo so avrei dovuto già capire come si fa ma ho provato a metterlo un po' dovunque ma il compilatore mi da errore [sedia] [cry+]
Diablo
Avatar utente
Diablo
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1987
Iscritto il: dom lug 20, 2003 7:43 pm
Località: Roma

Messaggioda menauz84 » dom ago 28, 2005 8:53 pm

[:I] premetto che le mie nozioni di programmazione si fermano al Turbo Pascal del liceo...ma secondo me quello che vogliono dire Leo e Xerex è qualcosa del genere

randomize(rand())

...mi sa tanto che ho detto una caxxata [banned?] , vero? [banned?]
Avatar utente
menauz84
Senior Member
Senior Member
 
Messaggi: 187
Iscritto il: sab lug 02, 2005 2:30 pm
Località: Sicilia

Messaggioda Diablo » dom ago 28, 2005 9:11 pm

avevo provato anche questo...non è che per caso serve qualche libreria apposita oltre quelle che ho inserito nel codice? [:I]
Diablo
Avatar utente
Diablo
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1987
Iscritto il: dom lug 20, 2003 7:43 pm
Località: Roma

Messaggioda white_knight86 » mer set 28, 2005 10:23 pm

Ok Diablo arriva la cavalleria! Ecco il codice:

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

int main()
{
int numero;
int tentativo;
randomize();
cout << "Questo e' un gioco in cui devi indovinare il numero generato casualmente dal programma.\n\r";
cout << "Ti aiuteremo noi, dicendoti se il numero da te immesso e' maggiore o minore del numero da indovinare.\n\r";
numero = rand();
cout<<numero;
do {
cout << "Scrivi il tuo numero: ";
cin >> tentativo;
if(tentativo == numero)
cout << "Brev, brev c'hai azzeccato";
else {
cout << "Azz, hai sbagliato ";
if(tentativo > numero)
cout << "il tuo numero e' troppo alto\n";
else
cout << "il tuo numero e' troppo basso\n";
}
} while (tentativo != numero);

system("PAUSE");
return 0;
}


il randomize() va sempre messo prima del rand() in ogni caso... a me funziona..
Scheda Madre: ASUS P5QL-E Processore: E7300 a 2.66 GHZ Memoria Ram: 4 Gb da 800 Mhz
Scheda video: Sapphire HD 5770 con 1Gb di Ram
Avatar utente
white_knight86
Senior Member
Senior Member
 
Messaggi: 268
Iscritto il: gio mar 11, 2004 6:24 pm

Messaggioda white_knight86 » mer set 28, 2005 10:34 pm

Come puoi vedere dal "cout<<"numero" ogni volta che esegui il programma il numero cambia [:-D]
Scheda Madre: ASUS P5QL-E Processore: E7300 a 2.66 GHZ Memoria Ram: 4 Gb da 800 Mhz
Scheda video: Sapphire HD 5770 con 1Gb di Ram
Avatar utente
white_knight86
Senior Member
Senior Member
 
Messaggi: 268
Iscritto il: gio mar 11, 2004 6:24 pm


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

cron
Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising