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

Funkcja + losowanie liczby.

Ostatnio zmodyfikowano 2013-04-08 21:59
Autor Wiadomość
esiek24
Temat założony przez niniejszego użytkownika
Funkcja + losowanie liczby.
» 2013-04-07 23:22:31
Witam.
Mam wielki problem , który dla was pewnie bd błahostką. Mianowicie
chce napisać program który bd mi losował dowolną liczbę z przedziału od 1 do 50 do momentu aż suma tych liczb wyniesie 250. Pętla zakończy się wtedy.
Prosił bym o jakąś pomoc od podstaw lub wytłumaczenie ponieważ nie mam problemu z losowaniem tych liczb tylko mój problem z zaczyna się z chwilą wstawiania tego do pętli.

Z góry dzięki:)
P-80188
usmiech
» 2013-04-07 23:29:53
<< removed >>
P-80190
Berux
» 2013-04-08 14:35:58
Napiszę ci tutaj co powinieneś zrobić:

1.na początku funkcji main umieszczasz:
srand( time( NULL ) );
2.tworzysz sobie zmienną o nazwie wynik typu short(nie trzeba używać int, bo short wystarczy)
3.tworzysz sobie pętlę do...while, której warunkiem będzie:
wynik <= 250
4.tworzysz sobie obiekt o nazwie liczba typu short(nie int, żebyś zaoszczędził pamięć w komputerze)
5.losujesz liczbę i przypisujesz ją do zmiennej liczba -
liczba =( rand() % 50 ) + 1;
6.dodajesz wartość zmiennej liczba do obiektu wynik
7.sprawdzasz czy obiekt wynik nie jest większy niż 250
   true:
   odejmujesz wartość zmiennej liczba od zmiennej wynik i zakańczasz pętlę instrukcją
break;



Mam nadzieję, że to dobre rozwiązanie :)
P-80204
Bajt
» 2013-04-08 15:21:37
Użycie operacji
continue
 nie jest dobrym rozwiązaniem. Z pewnością autor postu nie doszedł jeszcze do tej operacji, a i wogóle programiści rzadko używają tej instrukcji albowiem jest ona mało czytelna. Możnaby to tak zrobić:
C/C++
//srand
unsigned int liczba =( rand() % 50 ) + 1;
unsgined int wczytajLiczbe;

//pętla do...while

if( wczytajLiczbe == liczba )
     cout << "Wygrales!" << endl;
else
     cout << "Probuj dalej!" << endl;

P-80205
Berux
» 2013-04-08 15:26:04
Racja. W ogóle to nie potrzebnie to napisałem, bo obeszłoby się bez tego - zaraz poprawię. Tylko się zastanawiam czy nie będzie potrzebne  tu użycie break; - gdy warunek jest prawdziwy. Chodzi o to, że została wprowadzona zmiana i już dalej nie powinna się pętla wykonywać.
@up
tylko, że autorowi nie chodzi o program-zgadywankę.
P-80206
Bajt
» 2013-04-08 15:30:25
No tak, można by to zrobić break'iem, jednak sposób który ja wpisałem jest prostszy. Jeżeli liczba nie jest równa 250 to pętla dalej się wykonuje, jeżeli jednak jest inna od 250 to przerywa i kończy program.
P-80207
Berux
» 2013-04-08 15:33:12
Ale podałeś nie ten kod :)
Zdaje się, że autorowi chodziło o sumowanie ze sobą wylosowanych liczb i sprawdzanie czy ta suma nie jest większa niż 250
P-80208
Bajt
» 2013-04-08 16:29:48
Aha, no cóż. Na forum jest już tak dużo tematów o losowaniu liczb, że po prostu nie przeczytalem tego posta do końca. W każdym razie: to co napisałeś u góry moze miec zastosowanie w praktyce jednak lepiej pomijac instrukcję continue. o wiele prościej użyć breaka
P-80211
« 1 » 2
  Strona 1 z 2 Następna strona