Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    {C++} Chiedo aiuto per random e randomize

    Qualcuno può aiutarmi con le funzioni randomize e random.
    Mi danno sempre errore, ho fatto una ricerca su internet ed ho letto ke non funzionano perchè non sono standard e che si possono usare altre funzioni che funzionano come randomize.

    io continuo a fare

    #include <iostream.h>
    #include <conio.h>
    #include <time.h>
    #include <stdlib.h>
    int y;
    int main()
    { clrscr(); \\mi sa ke anke questo non è standard quindi non va
    randomize();
    ....
    .....
    ....
    y=random(6)+1;
    ........
    ....
    ma non va proprio
    Qualcuno può aiutarmi con degli esempi e con delle spiegazioni..
    grazie

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Per quel che ne so le funzioni si chiamano

    - srand() per inizializzare il seme

    - rand() per ottenere un numero casuale


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Grazie tante
    ho fatto cosi

    #include <iostream.h>
    #include <conio.h>
    #include <time.h>
    #include <stdlib.h>
    #include <stdio.h>
    int y;
    int main(void)
    {
    void srand();
    y=rand(6)+1;
    cout<<y;
    getch();

    return 0;
    }

    e va thanks a lot

  4. #4
    a questo punto vi chiedo..
    a cosa serve void??

  5. #5
    puoi anche toglierlo, indica che lì nn c'è nulla! come una funzione che non torna alcun valorew

  6. #6
    guardando bene non funziona, xke non genera numeri nel limite..
    qualcuno mi aiuti please

  7. #7
    Utente di HTML.it L'avatar di Iena87
    Registrato dal
    Dec 2003
    Messaggi
    429

    Spiegazioni

    ho fatto come dite voi ed ho tolto il void ma mi dà errore una volta finia la compilazione......e cmq anche a me genera dei numeri che nn rientrano dei limiti che io impongo....ecco come ho scritto:


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


    int n, val, max, min, conta;
    int main(){
    void srand();
    conta=0;
    cout<<"\n\n\nInserisci il numero di valori che vuoi generare ";
    cin>>n;
    do {
    val= rand(10)+1;
    cout<<"\n" <<val;
    if (conta==0){
    max=val;
    min=val;
    }
    else
    if (val>max)
    max=val;
    if (val<min)
    min=val;
    conta++;
    } while (conta<n);
    cout<<"\n\n Il valore piu' grande tra quelli inseriti e' " <<max;
    cout<<"\n Il valore piu' piccolo tra quelli inseriti e' "<<min;
    getch();
    return 0;
    }


    ma il fdatto è che nn mi genera dei numeri compresi tra 1 e 10 ...come devo fare??

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Beh... non so se la funzione rand() prende anche un parametro: essa restituisce un intero compreso fra 0 e 32767. Quindi è sufficiente fare un'operazione di modulo per avere il limite che vi interessa:
    codice:
    int numero = (rand() % 6) + 1;

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Utente di HTML.it L'avatar di Iena87
    Registrato dal
    Dec 2003
    Messaggi
    429

    grazie mille

    Originariamente inviato da LeleFT
    Beh... non so se la funzione rand() prende anche un parametro: essa restituisce un intero compreso fra 0 e 32767. Quindi è sufficiente fare un'operazione di modulo per avere il limite che vi interessa:
    codice:
    int numero = (rand() % 6) + 1;

    Ciao.
    grazie mille...adesso ho capito xchè nn mi andava....era l'operatore logico % che nn sapevo porpio che doveva essere inserito.....ed ho capito che ci sono strane discordanze tra i vari compilatori del c++....vabbè cmq grazie ancora!!

  10. #10
    Utente di HTML.it L'avatar di Iena87
    Registrato dal
    Dec 2003
    Messaggi
    429

    problema

    raga ho un problema:
    innanzitutto il primo numera che genera è sempre lo stesso (sei nel mio caso) e poi la radice di generazione a quanto pare nn cambia mai, cioè ripete sempre lo stesso algoritmo per la generazione dei numeri casuali,giusto?? ma nn cambia la radice della generazione e quindi la serie di numeri è sempre la stessa...che devo fare??? ecco il prog che ho fatto:

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

    int conta, val, n, val1, val2, val3, val4, val5, val6, risposta;
    int main(){
    void srand();
    conta=0;
    val1=0;
    val2=0;
    val3=0;
    val4=0;
    val5=0;
    val6=0;
    cout<<"\n\nQuanti lanci vuoi fare con il dado?? ";
    cin>>n;
    do {
    cout<<"\nHai deciso di effettuare ";
    cout<<n;
    cout<<" lanci, sei sicuro o vuoi cambiare il numero?? \n(se vuoi cambiare premi 0, se invece vuoi andare avanti premi 1) ";
    cin>>risposta;
    if (risposta=0){
    cout<<"\n Bene, allora ridigita il numero di lanci che vuoi effettuare";
    cin>>n;
    }
    } while (risposta==1);
    cout<<"Bene, allora adesso il dado viene lanciato ";
    do {
    int val= (rand() % 6) +1;
    cout<<" \n" <<val;
    if (val==1)
    val1=val1+1;
    if (val==2)
    val2=val2+1;
    if (val==3)
    val3=val3+1;
    if (val==4)
    val4=val4+1;
    if (val==5)
    val5=val5+1;
    if (val==6)
    val6=val6+1;
    conta=conta+1;
    } while (conta<n);
    cout<<"\nLa facciata con il valore 1 e' stata ottenuta ";
    cout<<val1;
    cout<<" volte";
    cout<<"\nLa facciata con il valore 2 e' stata ottenuta ";
    cout<<val2;
    cout<<" volte";
    cout<<"\nLa facciata con il valore 3 e' stata ottenuta ";
    cout<<val3;
    cout<<" volte";
    cout<<"\nLa facciata con il valore 4 e' stata ottenuta ";
    cout<<val4;
    cout<<" volte";
    cout<<"\nLa facciata con il valore 5 e' stata ottenuta ";
    cout<<val5;
    cout<<" volte";
    cout<<"\nLa facciata con il valore 6 e' stata ottenuta ";
    cout<<val6;
    cout<<" volte";
    getch();
    return 0;
    }


    con esso voglio lanciare un dado e determinare quante volte escono le varie facciate.....ma nn mi funge.....che cosa devo cambiare per risolvere i problemi da me sopra descritti??

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.