Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
ALGO – Algoritmizace 2. cvičení
ročník, ZS Ing. Zdena DOBEŠOVÁ, Ph.D.
2
Řídicí struktura - cyklus
důvod – opakování stejných příkazů slovně : „Pokud platí B opakuj P.“ , kde B je podmínka P je skupina příkazů – tzv. tělo cyklu známý počet opakování x neznámý počet opakování rozlišujeme několik typů cyklů
3
1. Cyklus While do předem neznámý počet průchodů
cyklus končí při nesplnění podmínky nemusí se provést ani jednou, končí hned při nesplnění podmínky
4
Příklad 2.1 Sestavte algoritmus pro výpočet zbytku po dělení dvou přirozených čísel. Vstup: X (dělenec), Y (dělitel) (přirozená čísla) Výstup: Q – zbytek po dělení Řešení: Dělení nahradíme opakovaným odečítáním podle vztahu: X – Y – Y – Y - … - Y =Q, kde Q < Y Odečítej tak dlouho, dokud zbytek je větší než Y. Q = X Q = Q -Y
5
Příklad 2.1 ČTI X,Y Q = X WHILE Q >= Y DO Q = Q - Y END WHILE
TISK Q TRASOVACÍ TABULKA X = 3, Y= 4 X = 5, Y= 5 X = 21, Y = 4 fáze X Y Q načtení 13 5 ? přiřazení 1. průchod 8 2. průchod 3 tisk
6
Příklad 2.2 Modifikace příkladu 2.1
Jaký je podíl Z? X / Y = Z a zbytek Q Jak změnit algoritmus předchozí úlohy? Řešení: přidání proměnné Z Z je počítadlo průchodů Z = 0 Z = Z+1 Je možné zaměnit pořadí příkazů uvnitř cyklu?
7
Příklad 2.2 ČTI X,Y Q = X Z = 0 WHILE Q >= Y DO Q = Q – Y Z = Z +1
END WHILE TISK Z, Q Napište si trasovací tabulku pro 25, 8. X=3, Y=3 TRASOVACÍ TABULKA X Y Q Z NAČTENÍ 13 5 ? PŘIŘAZENÍ 1. PRŮCHOD 8 1 2. PRŮCHOD 3 2 TISK
8
2. Cyklus – Repeat Until „opakuj B dokud platí P“
While Do „opakuj B dokud platí P“ předem neznámý počet průchodů cyklus končí při nesplnění podmínky provede se aspoň jednou REPEAT B UNTIL P
9
Konečnost cyklu chyba při spuštění
zacyklení – neustálé opakování stejných akcí není projev navenek, obtížná identifikace příklad While I <> 0 Do J = I -1 End While Tělo cyklu nemá vliv na hodnotu I !!!! Příkazy v těle cyklu musí měnit hodnotu proměnné, které je v podmínce.
10
Konečnost cyklu REPEAT Je tam příkaz, který mění I, ale.. I = I +1
I < N – je funkční (neprojde ani jednou) I >N - zacyklí se Počáteční hodnoty proměnných mají vliv na počet průchodů, zda se vykoná cyklus. Musí se měnit hodnota testované proměnné v těle. Změna musí být vést k ukončení cyklu REPEAT I = I +1 P = K * 27,3 UNTIL I > N
11
Příklad – Faktoriál Sestavte algoritmus pro výpočet faktoriálu. Použijte cyklus While Do. Vstup: N Výstup: F, (kde F = N!) Řešení: N! = N * (N - 1) * (N - 2) * …* (N-I) * … * 1 N! = 1 * 2 * 3 * …* (N-I) * …* (N - 1) * N
12
Příklad – 2.3 – Faktoriál Řešení A Řešení B ČTI N F = N I = 1 WHILE I < N DO F=F*(N–I) I=I+1 END WHILE TISK F ČTI N F = 1 I = 2 WHILE I =< N DO F=F*I I=I+1 END WHILE TISK F Zapisujte trasovací tabulku pro N=1, 2, 3. N! = N * (N - 1) * (N - 2) * …* (N-I) * … * 1 N! = 1 * 2 * 3 * …* (N-I) * …* (N - 1) * N
13
Příklad – 2.3 a – Faktoriál Řešení A
Přepište řešení na cyklus REPEAT UNTIL. Lze to? Řešení A ČTI N F = 1 I = 0 REPEAT F=F*(N–I) I=I+1 UNTIL I < N TISK F ČTI N F = N I = 1 WHILE I < N DO F=F*(N–I) I=I+1 END WHILE TISK F Zapisujte trasovací tabulku pro N=1, 2, 3. N! = N * (N - 1) * (N - 2) * …* (N-I) * … * 1
14
Příklad – 2.3 B – Faktoriál Přepište řešení na cyklus REPEAT UNTIL. Lze to? Řešení B ČTI N F = 1 I = 2 WHILE I =< N DO F=F*I I=I+1 END WHILE TISK F N! = 1 * 2 * 3 * …* (N-I) * …* (N - 1) * N
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.