Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Rozdział 21] - Problem z losowaniem.

Ostatnio zmodyfikowano 2014-03-18 23:16
Autor Wiadomość
MadnessTime
Temat założony przez niniejszego użytkownika
[Rozdział 21] - Problem z losowaniem.
» 2014-03-18 22:13:07
Witam, to znów ja. Tym razem napotkałem problem w funkcji losującej. Mianowicie starałem się na wiele sposobów, lecz zawsze kończyło się tak samo (losuje zawsze 2 te samy liczby). Próbowałem nawet stworzyć drugą funkcję losującą i też nie pomogło. Więc mógłby ktoś mnie nakierować lub poprawić moje błędne rozumowanie?

C/C++
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;

void wczytywanie( int tab[], int j ) {
    int i = 0;
    cout << "Podaj 10 liczby, ktore zostana zapisane do tablicy" << endl;
   
    do {
        cin >> tab[ i ];
        i++;
    }
    while( i < j );
   
}

int losowanie( int najmniejsza, int najwieksza ) {
    srand( time( 0 ) );
   
    return( rand() % najwieksza ) + najmniejsza;
}


int main() {
   
    int tablica[ 10 ];
    int licznik = 0;
    wczytywanie( tablica, 10 );
   
    int wylosowane = losowanie( 1, 9 );
    cout << tablica[ wylosowane ] << endl;
    wylosowane = losowanie( 1, 9 );
    cout << tablica[ wylosowane ] << endl;
   
    return( 0 );
}
P-106744
OczkoSX
» 2014-03-18 22:37:39
Zrób losowanie z wykorzystywaniem funkcji czasowej aby losowane liczby były inne. Zobacz ile jest tych tematów na tej stronie nawet...
P-106748
Monika90
» 2014-03-18 22:38:12
srand( time( 0 ) );
to inicjalizuje generator liczb pseudlosowych bieżącym czasem, czas zmienia się co sekundę, wnioski sam sobie wyciągnij
P-106749
MadnessTime
Temat założony przez niniejszego użytkownika
» 2014-03-18 22:55:39
Dzięki wielkie znów Moniko :) Użyłem funkcji
Sleep();
 i wszystko działa jak powinno ;)

Do zamknięcia.
P-106751
Monika90
» 2014-03-18 22:56:48
Sleep();
to źle
P-106752
MadnessTime
Temat założony przez niniejszego użytkownika
» 2014-03-18 23:02:03
Wiem, chodziło mi tylko o to, jakiej funkcji w tym celu użyłem. W programie wygląda to tak:

C/C++
do {
    int wylosowane = losowanie( 1, 9 );
    cout << "wylosowana liczba nr. " << licznik + 1 << " = " << tablica[ wylosowane ] << endl;
    licznik++;
    Sleep( 1000 );
} while( licznik < 8 );

P-106753
Monika90
» 2014-03-18 23:16:16
No to teraz czekasz 8 sekund na wylosowanie 8 liczb. Generator wystarczy inicjalizować raz na początku programu.
P-106754
« 1 »
  Strona 1 z 1