cislo = 0
vysledek = 1
opakuj pokud platí (cislo <= 12)
zacatek cyklu
cislo = cislo + 2
vysledek = vysledek + cislo
konec cyklu
vypis na obrazovku (vysledek)
Odpověď je: Vypíše na obrazovku hodnotu 57.
Dokázal by mi prosím někdo vysvětlit, proč je výsledkem zrovna
číslo 57?
Děkuji.
Zajímavá 0 před 215 dny |
Sledovat
Nahlásit
|
Je očividné, že program vykonal o jednu iteraci více, tedy 43+14=57. Čekní co jsi DOOPRAVDY v programu napsal. ☺
0 Nominace Nahlásit |
Teď jsem so přepsal do VBA a výsledek je opravdu 57.
Sub Scitani()
Dim cislo As Integer: cislo = 0
Dim vysledek As Integer: vysledek = 1
Do While cislo <= 12
cislo = cislo + 2
vysledek = vysledek + cislo
Loop
ActiveCell = vysledek
End Sub
Popíšu ti co to dělá:
po spuštění programu se vytvoří dvě proměnné: cislo = 0 a vysledek =
1
Pak tam je cyklus, který běží, dokud cislo bude menší nebo rovno 12,
každým průchodem cyklu se cislo zvětší o 2 a přičte se k vysledku,
čili při jednotlivých průchodech dojde k tomuto:
3Kdo udělil odpovědi palec? Dochy, Pepa25, aliendrone
před 214 dny
|
0 Nominace Nahlásit |
Algoritmus vytváří součet všech sudých čísel od 2 do 12 (včetně). Jednotlivé iterace vypadají následovně:
V této fázi se cyklus ukončí, protože příští iterace by v „cislo“ uložila hodnotu 14, což je víc než 12. Výslednou hodnotu algoritmus vypíše na obrazovku, tedy číslo 43.
Nicméně když jsem kontrola podle tvých instrukcí, dostal jsem se na hodnotu 43, nejde o hodnotu 57 jako ty. Je možné, že se někde vyskytla chyba nebo byl zadán jiný úkol.
0 Nominace Nahlásit |
Máš tam poněkud neobvyklou posloupnost instrukcí. Obvykle se inkrement
provádí až po dokončení těla cyklu, ty jej provádíš v těle, tzn. po
kontrole podmínky, ale před dalšími výpočty v těle cyklu.
Není to špatně, ale jako programátor musíš vědět co a jak děláš a pak
si můžeš dovolit nestandardní obraty.
0 Nominace Nahlásit |
U otázky nebylo diskutováno.
Nový příspěvekannas | 5283 | |
Kepler | 2867 | |
Drap | 2632 | |
quentos | 1803 | |
mosoj | 1594 | |
marci1 | 1356 | |
led | 1346 | |
aliendrone | 1172 | |
zjentek | 1062 | |
Kelt | 1005 |
Astronomie |
Fyzika |
Jazyky |
Matematika |
Sociální vědy |
Technické vědy |
Ostatní věda |