© Copyright Radim Štefan Cykly v Pascalu Radim Štefan © Copyright Radim Štefan
Tři typy cyklů Cyklus s podmínkou na konci Cyklus s podmínkou na začátku Cyklus s řídící proměnnou
Cyklus s podmínkou na konci Popis: Repeat příkazy 1, 2, …. Until podmínka; Vykoná se tělo cyklu – příkazy. Otestuje se podmínka – pokud bude mít hodnotu TRUE, cyklus se ukončí. Příkazy se provedou minimálně jednou.
Cyklus s podmínkou na konci Zadání příkladu: Popište pomocí vývojového diagramu algoritmus výpočtu obvodu a obsahu čtverce o straně A. Zajistěte, aby výpočet proběhl pouze tehdy, jestliže strana A bude mít velikost větší než nula. Pro řešení použijte cyklus s podmínkou na konci.
Konec Start A>0 + - Obvod:= 4*A; Obsah:= A*A; Čti A Piš: Obvod, Obsah
begin repeat Write('Zadej stranu čtverce'); Read(A); until A>0; Obvod:= 4*A; Obsah:= A*A; Write('Obvod:',Obvod,'Obsah:',Obsah); end;
Cyklus s podmínkou na začátku Popis: While podmínka do příkaz; Otestuje se podmínka – pokud bude FALSE cyklus se ukončí. Vykoná se tělo cyklu – příkaz. Příkaz nemusí být proveden ani jednou. Pro provedení více příkazů, je potřeba použít „složený“ příkaz pomocí: Begin End
Cyklus s podmínkou na začátku Zadání příkladu: Popište pomocí vývojového diagramu algoritmus sečtení N čísel. Pro řešení použijte příkaz cyklu s podmínkou na začátku. Napište algoritmus v jazyce Pascal
Start suma:= 0; poc:= 0; Čti N poc<N Piš suma Čti a Konec suma:= suma+a; poc:= poc+1; Čti N Čti a suma:= 0; poc:= 0; Piš suma + -
begin pom:= 0; poc:= 0; Write('Zadej N'); Read(N); while poc<N do Write('Zadej číslo: '); Read(a); Pom:= pom+a; Poc:= poc+1; end; Write('Suma: ',suma);
Cyklus s řídící proměnnou Popis: For i:=1 to N do příkaz; Pokud je hodnota řídící proměnné - i menší nebo rovna koncové hodnotě - N, vykoná se tělo cyklu – příkaz. Po provedení příkazu se hodnota řídící proměnné automaticky zvýší o 1 a provede návrat na začátek cyklu.
Cyklus s řídící proměnnou Zadání příkladu: Popište pomocí vývojového diagramu algoritmus vynásobení N čísel. Pro řešení použijte příkaz cyklu s řídící proměnnou. Napište algoritmus v jazyce Pascal.
Konec Start pom:= pom*a; Čti N Čti a pom:= 1; Piš pom i:= 1 (1) N
begin pom:= 1; Write('Zadej N: '); Read(N); for i:=1 to N do Write('Zadej číslo: '); pom:= pom*a; end; Write('Součin: ', pom);
Zadání příkladu: Popište pomocí vývojového diagramu algoritmus nalezení největšího čísla z řady N čísel. Pro řešení použijte příkaz cyklu. Napište algoritmus v jazyce Pascal.
Řešení 1 Řešení 1 - + Start Max:= -9999; Čti N i:= 1 (1) N Čti a Konec Start Max:= a; Čti N Čti a Max:= -9999; Piš Max i:= 1 (1) N Max<a + - Řešení 1
Řešení 1 begin Max:= -9999; Write('Zadej N'); Read(N); for i:=1 to N do Write('Zadej číslo: '); Read(a); if Max<a then Max:= a; end; Write('Maximum: ', Max);
Řešení 2 Řešení 2 Start Čti N i:= 2 (1) N Čti a - Max<a Piš Max + Konec Start Max:= a; Čti N Čti a Piš Max i:= 2 (1) N Max<a + - Řešení 2
Řešení 2 Řešení 2 begin Write('Zadej N'); Read(N); Write('Zadej číslo: '); Read(a); Max:= a; for i:=2 to N do if Max<a then Max:= a; end; Write('Maximum: ', Max); Řešení 2
Závěr Vysvětlete rozdíl mezi oběma řešeními vyhledávající největší číslo. Které řešení je vhodnější a proč?
Líbila se vám tato prezentace? ANO NE Klikněte prosím na příslušnou odpověď
Líbila se vám tato prezentace? ANO NE Klikněte prosím na příslušnou odpověď
Líbila se vám tato prezentace? ANO NE Klikněte prosím na příslušnou odpověď
To mě těší ☺ Děkuji za pozornost.