Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

ALGO – Algoritmizace 2. cvičení 1.ročník, ZS Ing. Zdena DOBEŠOVÁ, Ph.D.

Podobné prezentace


Prezentace na téma: "ALGO – Algoritmizace 2. cvičení 1.ročník, ZS Ing. Zdena DOBEŠOVÁ, Ph.D."— Transkript prezentace:

1 ALGO – Algoritmizace 2. cvičení 1.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 fáze XYQ načtení 135? přiřazení průchod průchod 1353 tisk 1353 X = 3, Y= 4 X = 5, Y= 5 X = 21, Y = 4

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 XYQZ NAČTENÍ 135?? PŘIŘAZENÍ PRŮCHOD PRŮCHOD TISK TRASOVACÍ TABULKA Napište si trasovací tabulku pro 25, 8. X=3, Y=3

8 2. Cyklus – Repeat Until „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 While Do 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 Je tam příkaz, který mění I, ale.. I < N – je funkční (neprojde ani jednou) I >N - zacyklí se 1.Počáteční hodnoty proměnných mají vliv na počet průchodů, zda se vykoná cyklus. 2.Musí se měnit hodnota testované proměnné v těle. 3.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 N! = N * (N - 1) * (N - 2) * …* (N-I) * … * 1 N! = 1 * 2 * 3 * …* (N-I) * …* (N - 1) * N Zapisujte trasovací tabulku pro N=1, 2, 3.

13 Příklad – 2.3 a – Faktoriál Přepište řešení na cyklus REPEAT UNTIL. Lze to? Řešení A ČTI N F = N I = 1 WHILE I < N DO F=F*(N–I) I=I+1 END WHILE TISK F N! = N * (N - 1) * (N - 2) * …* (N-I) * … * 1 ČTI N F = 1 I = 0 REPEAT F=F*(N–I) I=I+1 UNTIL I < N TISK F Zapisujte trasovací tabulku pro N=1, 2, 3.

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


Stáhnout ppt "ALGO – Algoritmizace 2. cvičení 1.ročník, ZS Ing. Zdena DOBEŠOVÁ, Ph.D."

Podobné prezentace


Reklamy Google