Diskuze: Cyklus while
Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Tak si řádek po řádku projdi co jsi napsal.
1)Randomize inicializuje generátor náhodných čísel.
2)Do proměnné random_real (jejíž deklaraci nevidíme ...) si vygeneruješ číslo v rozsahu 0-99
3)random_int (zase nevidíme deklaraci ...) naplníš nesmyslným zaokrouhlováním celého čísla vráceného generováním v kroku 2.
4)vypíšeš obsah proměnné random_int
5)do proměnné second přidělíš random_int+73
teprve teď se dostáváš do cyklu, který se opakuje dokud je zbytek po dělení proměnné second nulový (tak že nemusí proběhnout ani jednou)
a v cyklu děláš násleující:
6-9)opět nesmyslně inicializuješ generátor a opakuješ kroky 1-4
10)do proměnné second přidělíš obsah proměnné random_int+993
11)vypíšeš obsah proměnné second
12)opět nesmyslně inicializuješ generátor
13)konec cyklu
Co znamená, že "to nefunguje"?
Jinak není dobré volat Randomize takhle často. Obvykle stačí jednou na začátku programu nebo před generováním prvního čísla z náhodné sekvence. Pokud vím, Randomize odvvozuje seed z aktuálního data a času, nanejvýš však s přesností na mlisekundy, bych tipl. Tudíž dvě volání Randomize rychle za sebou nastavují stejný seed.
Také moc nerozumím tomu generování reálného čísla z intervalu 0-98. Random s jedním parametrem by měla přímo vracet číslo celé.
Tak na rovinu... Toto je kód od našeho učiteľa - problém je v tom, že program by mal generovať náhodné číslo a pričítavať k nemu 993 až pokiaľ nedostane číslo deliteľné 3kou, spravil som, aby vypisoval čísla na obrazovku, ale ich ani nevypisuje.
Bez zdrojáku těžko soudit kde je chyba v tom "tvém", upraveném kódu. Ale nesouvisí to s tím co jsem psal už výše, že cyklus proběhnout vůbec nemusí? ...
Prebehnúť nemusí. Cyklus má prebehnúť vtedy, keď prvé vygenerované číslo + 993 je už delitelné 3mi. Keď nie tak cyklus generuje čísla dovtedy pokiaľ nie je nejaké deliteľne 3mi.
Zobrazeno 6 zpráv z 6.