Cykly v Pascalu Radim tefan Copyright Radim tefan

  • Slides: 24
Download presentation
Cykly v Pascalu Radim Štefan © 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

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; Until

Cyklus s podmínkou na konci Popis: Repeat příkazy 1, 2, …. Until podmínka; Until • 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

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.

Start Čti A - A>0 + Obvod: = 4*A; Obsah: = A*A; Piš: Obvod,

Start Čti A - A>0 + Obvod: = 4*A; Obsah: = A*A; Piš: Obvod, Obsah Konec

begin repeat Write('Zadej stranu čtverce'); Read(A); until A>0; Obvod: = 4*A; Obsah: = A*A;

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; do • Otestuje se

Cyklus s podmínkou na začátku Popis: While podmínka do příkaz; do • 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í

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 - +

Start suma: = 0; poc: = 0; Čti N - + poc<N - + Piš suma Čti a suma: = suma+a; poc: = poc+1; Konec

begin pom: = 0; poc: = 0; Write('Zadej N'); Read(N); while poc<N do begin

begin pom: = 0; poc: = 0; Write('Zadej N'); Read(N); while poc<N do begin Write('Zadej číslo: '); Read(a); Pom: = pom+a; Poc: = poc+1; end; Write('Suma: ', suma); end;

Cyklus s řídící proměnnou Popis: For i: =1 to N do příkaz; do •

Cyklus s řídící proměnnou Popis: For i: =1 to N do příkaz; do • 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

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.

Start pom: = 1; Čti N i: = 1 (1) N Čti a pom:

Start pom: = 1; Čti N i: = 1 (1) N Čti a pom: = pom*a; Piš pom Konec

begin pom: = 1; Write('Zadej N: '); Read(N); for i: =1 to N do

begin pom: = 1; Write('Zadej N: '); Read(N); for i: =1 to N do begin Write('Zadej číslo: '); pom: = pom*a; end; Write('Součin: ', pom); end;

Zadání příkladu: • Popište pomocí vývojového diagramu algoritmus nalezení největšího čísla z řady N

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 Start Řešení 1 Max: = -9999; Čti N i: = 1 (1)

Řešení 1 Start Řešení 1 Max: = -9999; Čti N i: = 1 (1) N Čti a - Max< a+ Piš Max: = a; Konec

Řešení begin Max: = -9999; Write('Zadej N'); Read(N); for i: =1 to N do

Řešení begin Max: = -9999; Write('Zadej N'); Read(N); for i: =1 to N do begin Write('Zadej číslo: '); Read(a); if Max<a then Max: = a; end; Write('Maximum: ', Max); end; 1

Řešení 2 Start Čti N Řešení 2 Čti a Max: = a; i: =

Řešení 2 Start Čti N Řešení 2 Čti a Max: = a; i: = 2 (1) N Čti a - Max<a + Max: = a; Piš Max Konec

begin Řešení Write('Zadej N'); Řešení 2 Read(N); Write('Zadej číslo: '); Read(a); Max: = a;

begin Řešení Write('Zadej N'); Řešení 2 Read(N); Write('Zadej číslo: '); Read(a); Max: = a; for i: =2 to N do begin Write('Zadej číslo: '); Read(a); if Max<a then Max: = a; end; Write('Maximum: ', Max); end; 2

Závěr 1. Vysvětlete rozdíl mezi oběma řešeními vyhledávající největší číslo. 2. Které řešení je

Závěr 1. Vysvětlete rozdíl mezi oběma řešeními vyhledávající největší číslo. 2. 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ěď

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.

To mě těší ☺ Děkuji za pozornost.