Cyklický IKT Algorithm Pascal Príklad. Cyklické algoritmy typy cyklov a cyklických tímov na Pascal

Slide 2.

Plán

Cyklus cyklu cyklus cyklus pre cyklus, zatiaľ čo cyklus opakuje sa literatúra

Slide 3.

Literatúra

Kastornov A.F., Evstratova G.A. Programovací jazyk Pascal: Návod pre univerzity. - Cherepovets: GOU VPO CHSU, 2010. - 117 C. - BiBLLIGR .: P.114. Elektronická učebnica o programovacom jazyku Pascal /http://pascal.guti.ru plán

Slide 4.

Koncepcia cyklu

Algoritmy na riešenie mnohých úloh sú cyklické, v ktorom, aby sa dosiahol výsledok, určitý postup akcií sa vykonáva niekoľkokrát. Napríklad program kontroly vedomostí zobrazuje otázku, prijíma odpoveď, pridáva odpoveď na odpoveď na množstvo bodov, potom tieto opatrenia opakuje, kým subjekt nereaguje na všetky otázky. Alebo napríklad vyhľadávať požadované priezvisko v zozname, skontrolujte prvé meno zoznamu, aby ste zhodovali náhoda, potom druhú, tretinu atď. Pokiaľ sa nájde požadované priezvisko alebo sa nájde koniec zoznamu.

Slide 5.

Algoritmus, v ktorom je skupina operátorov vykonaných niekoľkokrát, sa nazýva cyklický. Skupina opakovaných operátorov sa nazýva telo cyklu. V Pascalu sa môžu cykly implementovať pomocou operátorov cyklu a opakovaných cyklov. Plán

Slide 6.

Prevádzkovateľ cyklu pre

Prevádzkovateľ pre cyklus sa používa, ak sa musí cyklický orgán vykonať niekoľkokrát, a počet opakovaní je vopred známy.

Slide 7.

1. forma cyklu prevádzkovateľa nahrávania

1. forma prevádzkovateľa nahrávania pre operátora je všeobecne opísaný nasledovne: Forschechik: \u003d Initial_tractingto-Over_dorator; Kde, do, robiť - služby. Merač je premenná sekvenčného typu (zvyčajne ako celé číslo), ktorý určuje počet opakovaní cyklu. Počet opakovaní je zvážený podľa vzorca: final_dative je počiatočné číslo + 1. Hodnota final_ by mala byť väčšia alebo rovná počiatočnému menu.

Slide 8.

Ak sa cyklický orgán pozostáva z niekoľkých operátorov, potom prvú formu záznamu prevádzkovateľa pre operátora vyzerá takto: Forschechik: \u003d Initial_nameto-Contined_do začaté (Cyklotrasa) Koniec;

Slide 9.

Zvážte algoritmus pre prácu pre cyklus v prvej forme nahrávania. Počítadlo je priradené počiatočnej hodnote. Kontrolka sa skontroluje: Počítače je väčšia ako final_station? Ak je stav TRUE (áno), končí vykonanie cyklu. Ak je stav nepravdivý (NO), cyklus cyklus sa vykonáva, potom sa zvýši hodnota počítadla o jednu a podmienok opäť, t.j. p.

Slide 10.

2. forma cyklu prevádzkovateľa nahrávania

2. forma prevádzkovateľa nahrávania pre prevádzkovateľa je všeobecne opísaný takto: pre počítadlo: \u003d inicial_downdownto-end_Dactivity. Kde: pre, downto, robiť - služby. Počítadlo je premenná typu sekvencie (zvyčajne ako celé číslo), ktoré určuje počet opakovaní cyklu. Počet opakovaní je posudzovaný vzorcom: Initial_ hodnota-Finite_Dation + 1. Initial_NamedInteriority byť väčšia alebo rovnako určená.

Slide 11.

Ak sa cyklický orgán pozostáva z niekoľkých operátorov, potom druhá forma nahrávania operátora pre operátora vyzerá takto: Forschechik: \u003d Initial_downtofo-Evencedo začatiť // Koniec tela;

Slide 12.

Zvážte algoritmus pre prevádzku pre cyklus v druhej forme nahrávania: počítadlo je priradená počiatočná hodnota. Kontrolka sa skontroluje: Hodnota počítadla je menšia ako final_station? Ak je stav TRUE (áno), končí vykonanie cyklu. Ak je stav FALSE (NO), potom sa vykonáva cyklus, potom sa počítadlo zníži na jednotku a podmienky kontroly znova, t.j. p.

Slide 13.

Prevádzkovateľ cyklu pre

programex1; Var I, N: Integer; (I - Počítadlo, N - požadovaný počet hviezd) S: reťazec; (počet hviezdičiek) readln (n) sa požaduje; (Užívateľ vstúpi do počtu strieborných n) s: \u003d ""; A \u003d S + "*"; (Pri každom kroku cyklu na reťazec, jedna hviezdička) WRITELN (y) je lepená; (zobrazí sa riadok) ReadLN; koniec. Plán Plán: Program tvorí reťazec reťazec. Počet hviezd v reťazci je určený užívateľom.

Slide 14.

Kým cyklus

Zatiaľ čo cyklus sa používa, ak počet opakovaní telesného cyklu počas programu nie je známe a možno určiť len počas jeho prevádzky. Všeobecne platí, že prihlásenie je napísané takto: zatiaľ čo stav Douperator; Kde, robiť - servisné slová. Podmienkou je expresia logického typu, ktorá určuje pokračovanie cyklu.

Slide 15.

Ak sa cyklický orgán pozostáva z niekoľkých operátorov, zatiaľ čo cyklus je napísaný nasledovne: celú dosku Začiatok // Koniec tela;

Slide 16.

Zvážte algoritmus počas cyklu: Kontrolka sa skontroluje. Ak je stav skutočne, cyklus sa vykonáva. Potom sa stav znova skontroluje. Ak je stav nepravdivý, cyklus je dokončený.

Slide 17.

Tak, keď cyklus s predpokladom alebo cyklom ", zatiaľ čo" (cyklus telo je stále skutočný stav). Ak, keď prvýkrát prejdete cyklus, bude stav false, teleso cyklu nebude nikdy splnené. Ak sa stav nikdy nepravdivý, cyklus sa opakuje nekonečne, t.j. Dôjde k zime.

Slide 18.

Program ex2; Vactount: Real; (Veľkosť účtu) Mesiac: Integer; (Počet mesiacov od otvorenia účtu) Začiatok účtu: \u003d 1000; (Na výdavkoch Dajte 1000 rubľov) mesiac: \u003d 0; (Účet práve otvoril) whileaccount

Slide 19.

Opakovaný cyklus

Opakovaný cyklus, ako aj počas cyklu, sa používa v programe, ak potrebujete vykonať teleso cyklu niekoľkokrát, ale počet opakovaní nie je vopred neznámy. Všeobecne platí, že opakovaný cyklus je napísaný nasledovne: Repeat // Body cyklus až do stavu; Kde opakujte, až kým - servisné slová. Stav je expresia logického typu, ktorá určuje koniec cyklu.

Slide 20.

Zvážte prevádzkový algoritm opakovaného cyklu: Opakovanie a kým sa medzi vyhradenými slovami nevykonáva telo. Podmienka sa skontroluje. Ak je stav skutočne, cyklus je dokončený. Ak je stav false, opäť vykonáva cyklus.

Slide 21.

Repet je teda cyklus s posts vlnou alebo cyklom "na" (cyklus sa vykonáva na pravdu o stave). V dôsledku toho sa cyklický orgán vykonáva aspoň raz. Ak sa stav nikdy nestane pravdivým, cyklus sa stane nekonečným.

Slide 22.

Program ex3; Var Čas: Integer; (Dodacia lehota) Bunky: celé číslo; (počet buniek) Začiatok času: \u003d 0; (Cell ešte nikdy nezačnela) bunky: \u003d 1; (Jednoduchá) čas opakovania: \u003d čas + 3; (po nasledujúcich troch hodinách) bunky: \u003d Bunky * 2; (počet buniek sa zvýšil o 2-krát) až do buniek\u003e 24; (až do poriadku pravdy "Počet buniek viac ako 24") writeln (čas); (výstup) readln; koniec. Výrobný príklad: jednobunkový ameba každé 3 hodiny je rozdelené do 2 buniek. Určite, po koľko hodín počet buniek presahuje 24.

Zobraziť všetky diapozitívy

Slide 1.

Dodávateľ Robot Cyklický algoritmus
Prezentácia na lekciu informatiky. Stupeň 9 Predmet: Riadenie a algoritmy

Slide 2.

Pre i: \u003d 1 až n Začať akciu1; Akcia2; Koniec;
Pre I: \u003d 1 až N Action1; Akcia2;
1

Slide 3.

2
Kým (podmienka pravda) začínajú akcie1; Akcia2; Koniec;
Kým (podmienka pravda) do akcie1; Akcia2;

Slide 4.

3
17 buniek
12 buniek

Slide 5.

4
Program N1; Var I: Integer; Začnite pre I: \u003d 1 až 12 robiť robotforw; Robotleft; Pre I: \u003d 1 až 17 robiť robotforw; Robotleft; Pre I: \u003d 1 až 12 robiť robotforw; Robotleft; Pre I: \u003d 1 až 17 robiť robotforw; Robotleft; koniec.
Pohybujúci sa
Presun doprava
Pohybuje hore
Presunutie doľava
Toto a nasledujúce príkazy sa otočia na roh robota doľava

Slide 6.

5
Ak si dal stenu, robot sa do neho ponorí a program sa zastaví

Slide 7.

6
Program N2; Var I: Integer; Začnite, zatiaľ čo Freeforw do robotforw; Robotleft; Zatiaľ čo Freeforw do robotforw; Robotleft; Zatiaľ čo Freeforw do robotforw; Robotleft; Zatiaľ čo Freeforw do robotforw; Robotleft; koniec.
Zatiaľ čo dopredu je zadarmo, vykonajte robot dopredu.

Slide 8.

Slide 9.

8
Program N3; Var I: Integer; Začnite pre I: \u003d 1 až 4 Začiatok, zatiaľ čo FreeForw robiť robotforw; Robotleft; koniec; koniec.
Štyrikrát na pohyb dopredu, kým neexistuje žiadna prekážka a odbočte doľava

Slide 10.

9
Štyrikrát na pohyb dopredu, kým neexistuje žiadna prekážka a odbočte doľava

Slide 11.

10
Úlohy pre nezávislú prácu
Úloha 1. Ľavá stena situácie v ľubovoľnom mieste je prekážka. Robot by sa mal dostať do bodu 1 a vrátiť sa do pôvodného stavu. POZNÁMKA: Zatiaľ použijete tri postupne pripojené cykly.
1
1

Slide 12.

11
Úloha 2. Ľavá stena situácie v ľubovoľnom mieste je vyrezaná. Robot by sa mal dostať do nákladu, vezmite ho na prepravu do skladu a vrátiť sa do pôvodného štátu. POZNÁMKA: Zatiaľ použijete dva sekundicky pripojené cykly.

Slide 13.

12
Úloha 3. Ľavá stena situácie v ľubovoľnom umiestnení je umiestnená päť nákladu. Robot musí všetkým nákladu na prepravu do skladu. POZNÁMKA: Použite dva postupne pripojené cykly doteraz investované do cyklu s parametrom.

Slide 14.

13
Príklad 1 Robot sa nachádza pred vstupom na chodbu. Je potrebné poznamenať všetky bunky vo vnútri chodby a vrátiť sa späť

Slide 15.

14
Program N7; Začať robotforw; Zatiaľ čo nie je FREELEFT ZAPOJENOSTI; Robotforw; koniec; Robotback; Kým nie je freedeft robiť robotback; koniec.
Urobíme krok vpred, ktorý chcete vstúpiť do tunela
Kým na ľavej strane je stena, oslávte klietku a urobte krok vpred
Vráťte sa späť do tunela
Zatiaľ čo ľavá stena, presunutie kroku späť

Slide 16.

15
Príklad 2 Dodáva sa dve steny dodávaným uhlom. Dĺžky stien sú ľubovoľné. Robot je v rohu medzi stenami (pozri obrázok). Je potrebné vytvoriť program, v ktorom robot označuje všetky bunky na vnútornej strane steny. Konečnú pozíciu robota svojvoľne.

Slide 17.

16
Program N8; Začiatok, keď nie je Freeright Začať Vybrať; Robotforw; koniec; Zatiaľ čo Freeback robí robotback; Robotleft; Zatiaľ čo nie je FREELEFT ZAPOJENOSTI; Robotforw; koniec; koniec.
Zatiaľ čo právo nie je zadarmo, oslavujem bunku a urobím krok vpred.
Vrátiť sa robota späť
Otočte doľava
Kým vľavo nie je zadarmo, oslavujem bunku a urobím krok vpred.

Slide 18.

Slide 19.

18
Príklad 3 Situácia prekryje stenu, ktorá rozdeľuje situáciu na dve časti. Stena má priechod v bunkovej veľkosti v ľubovoľnom mieste. Je potrebné vytvoriť program, v ktorom robot nájde túto pasáž a ide do inej časti situácie.

Slide 20.

19
Program N9; Začať robotleft; Zatiaľ čo Freeforw do robotforw; Robotright; Kým nie je freefeft robiť robotforw; Robotleft; Robotforw; Robotforw; koniec.
Otočte robota smerom k stene.
Sme presunúť dopredu, kým nestojí v stene
Otočte robota pozdĺž steny
Vpred, kým stena neskončí
Otočte robota smerom k pasáži
Robíme dve kroky vpred, ideme do ďalšej polovice situácie

Opis prezentácie na jednotlivých diapozitívoch:

1 snímka

Slide Popis:

Predmet tried: "Algoritmy cyklickej štruktúry. Programovacie cykly na Pascal »Disciplína" Indikácia "

2 snímka

Slide Popis:

Hlavné koncepcie témy v tomto povolaní sa skúmajú nasledujúcimi koncepciami: koncepcia cyklu; Odrody cyklických algoritmov (cyklus s predpokladom, cyklus s postbandom, cyklus s parametrom); blokové diagramy cyklických algoritmov; Zastúpenie prevádzkovateľov cyklov v programovom jazyku Pascal; Pri riešení problémov.

3 snímka

Slide Popis:

Koncepcia cyklu pri riešení mnohých úloh, jedna a rovnaká sekvencia akcií sa vykonáva niekoľkokrát. Napríklad pri prijímaní vzdelávacia inštitúcia Študent udáva skúšky, zatiaľ čo vypočítané bodmi, ktoré si ich stretli (premenná s; jeho počiatočná hodnota S: \u003d 0;). Pre každú skúšku prijíma odhady N. Ak je odhad väčší ako "2", potom S: \u003d S + N; V opačnom prípade zastavte výpočty (výstup z cyklu).

4 snímka

Slide Popis:

Koncepcia cyklu cyklu je postupnosť operátorov, ktoré môžu byť vykonané viac ako raz. Cyklický algoritmus sa nazýva algoritmus, ktorý poskytuje viacnásobné opakovanie rovnakej akcie na nové údaje. Existujú tri typy prevádzkovateľov cyklov: cykly s predpokladom; Cyklov s postconditionou; Cyklov s metrom.

5 snímok

Slide Popis:

Cyklus s predpokladom. Typ Cyklus, zatiaľ čo predpísal teleso cyklu, kým sa stav nevykonáva, zaznamenaný po slovnom vývojovom diagrame s predpokladom

6 snímok

Slide Popis:

Cyklus s predpokladom. Typový cyklus, zatiaľ čo počas cyklu s vyššie uvedeným sa používa, keď je počet opakovaní telesa cyklu neznámy vopred, a závisí od stavu. Ak je stav pravdivý, potom sa cyklus vykoná, potom opäť kontroluje podmienky a tak, až kým sa stav nepravdivý.

7 snímok

Slide Popis:

Prevádzkovateľ cyklus s predpalnou (zatiaľ čo cyklus) Táto najčastejšie používaná prevádzkovateľ opakovania má spoločný pohľad na Pascal (formát): zatiaľ čo<условие> Urobiť.<оператор>; \\ T Tu, zatiaľ čo - vyhradené slová (od angličtiny: zatiaľ čo-in, robiť - robiť);<условие> - logický výraz;<оператор> - ľubovoľný (prípadne kompozitný) operátor.

8 snímok

Slide Popis:

Cyklus s postbandom. Typ Cyklus Cyklus do poradia prevádzkovateľa cyklu s výbušnosťou, vykonanie 1-N operátorov sa opakuje, kým sa stav nestane správnym. V tomto cykle sa stav overuje len po telách cyklu. Z toho vyplýva, že telo vždy vykonáva aspoň raz vývojový diagram s postcal

9 snímok

Slide Popis:

Cyklus s postbandom. Typ cyklu Pred tým dôležitý! Cyklus s poštou sa vykonáva aspoň raz nezávisle od stavu. Nepochybné pohodlie cyklu slučky je, že vo vnútri to môžete napísať niekoľko operátorov bez použitia kompozitného operátora. Kontrola podmienok je po telese cyklu. Service slovo až do.

10 snímok

Slide Popis:

Prevádzkovateľ cyklus s postbandom (typ, kým nie je cyklus) Všeobecné zobrazenie (formát) Cyklus cyklus s Pascal Pascal Ďalšie: Opakovanie<Оператор 1>; <Оператор 2>; … <Оператор N>; \\ T Až do.<условие>;

11

Slide Popis:

Príklad aplikácie operátora cyklu s postbandom pre výstup na obrazovku v pároch, hodnotami variabilného n \u003d 1, 2, 3, 4, 5, 6, 7, 8, 9 a variabilný A \u003d 10, 20, 30, 40, 50, 60, 70 a 70, 80, 90 Tento operátor bude: N: \u003d 0; Opakujte N: \u003d N + 1; A: \u003d 10 * n; WRITELN (N: 2, '', A: 3); Až do n\u003e \u003d 9;

12 snímok

Slide Popis:

Cyklus s parametrom. Typ typového cyklu s parametrom sa používa, keď chcete vykonať daný počet krokov cyklu. Treba poznamenať, že Pascal Pascal cyklus nie je príliš flexibilný (naproti tomu napríklad z tohto typu cyklu v jazyku c). Pretože na Pascal, parameter cyklu (alebo počítadlo) sa mení podľa hodnoty rovnou jednému. Keď je teda potrebné vykonať frakčný krok, musíte použiť cyklus typu. Existujú dva odrody pre cyklus: so zvyšovaním a znížením hodnôt meradla (alebo parametra). Diagram blokov cyklu s parametrom (pre cyklus)

13 snímok

Slide Popis:

14 snímok

Slide Popis:

Prevádzkovateľ cyklu s parametrom. Typ cyklu pre spoločný pohľad (formát) prevádzkovateľa cyklu s parametrom<счетчик> := <начальное значение> do.<конечное значение> Začnite.<Операторы> koniec; Pre<счетчик> := <начальное значение> Downto.<начальное значение> Začnite.<Операторы> koniec; S zvýšením hodnôt merača (parameter) s poklesom hodnôt merača (parameter)

15

Slide Popis:

Prevádzkovateľ cyklu s parametrom. Typ cyklu pre operátora, ktorý implementuje, ak je to potrebné, ak je potrebné, aby fragment programu opakoval zadaný počet krát<переменная цикла>: = <начальное значение> To<конечное значение> Urobiť.<оператор>; \\ T Tu: pre, do, robiť - vyhradené slová (angličtina: pre, predtým, vykonané);<счетчик (параметр) цикла> - typ Premenná Integer, ktorý sa líši na segment<начального значения>, Zvýšenie jednotky na konci každého kroku cyklu;<оператор> - akýkoľvek (častejšie kompozitný) operátor.

16 snímok

Slide Popis:

Prevádzkovateľ cyklu s parametrom. Typový cyklus na vyhlásenie pozostáva z hlavičky a telesa cyklu. Kompozitný operátor umiestnený v telesnom telese musí byť uzavretý v zátvorkách na začiatku a koncových operátoroch. · Identifikátor metra sa zvyčajne používa "I". · Premenná merača musí byť typ sekvencie. Napríklad, celé číslo: bajt, celé číslo. · Počiatočné a koncové hodnoty parametra cyklu sa nedá zmeniť počas cyklu. · Prevádzkovateľ pre organizovanie cyklov s pevným, vopred známym alebo určeným počas vykonávania programu podľa počtu opakovaní.

17

Slide Popis:

Použitie cyklov pri riešení problémov sa každý z vyššie opísaných cyklov môže použiť na program Pascal rovnaké úlohy s cyklickým algoritmom.

18

Slide Popis:

Číslo úlohy 1 Otvorte program Pasccalabc.net (integrované programy pre programovacie programy Pascal) Uložte program do priečinka s vaším menom v systéme pracovný priečinok Pabcwork.net your_in / cikl_1.pas Uložiť, ako ...

19

Slide Popis:

Číslo úlohy 1 Používanie cyklu, zatiaľ čo (s predpokladom) vykonať a ladenie programu, ktorý vypočíta súčet štvorcov všetkých prírodných čísel od 1 do 100. Počiatočné údaje: A: Integer; Výsledok - Suma: S: Longint; Program ex1; VAR A: Integer; S: Longint; (Dlhé celé číslo) Začnite: \u003d 1; S: \u003d 0; (Premenná s akumuláciou množstva), zatiaľ čo a<=100 Do { Начало цикла – проверка условия } Begin S:=S+A*A; A:=A+1 End; Writeln(‘Вывод результата S= ’ ,S) End. Сохранить программу в папке с Вашим именем в системной рабочей папке PABCWork.NET \ Ваше_имя\Cikl_1.pas

20 snímok

Slide Popis:

Úloha 2. Vyčistite cyklickú štruktúru v jazyku Pascal v programe Pasccalabc.net ABC; Var x, u: celé číslo; Začiatok x: \u003d 2; Kým X.<= 10 do begin Y:=x*x; writeln(‘вывод х: ’, x, ‘вывод у: ’, y); x:= x+2; end; end. Применить оператор цикла с предусловием для вычисления значения функции y=x2, при значениях x 2, 4, 6, 8, 10. Сохранить программу в папке с Вашим именем в системной рабочей папке PABCWork.NET \ Ваше_имя\Cikl_2.pas























Vpred

Pozor! Prezentácia sa používa výlučne na informačné účely a nesmie poskytnúť nápady o všetkých možnostiach prezentácie. Ak máte záujem o túto prácu, stiahnite si plnú verziu.

Účel: Študovanie algoritmickej štruktúry cyklov, tvorbu modelov a algoritmov na riešenie praktických problémov.

Počas tried

I. Aktualizácia vedomostí

  • Opakujte koncepciu algoritmu, základné návrhy algoritmického jazyka.
  • Byť schopný vyvinúť matematický model, algoritmus a blokovú schému na riešenie problému.
  • Majú pojem programovacích jazykov a ich vymenovanie.
  • Byť schopný pracovať v programovacom prostredí.
  • Poznať štruktúru programu.
  • Byť schopný nahrávať výrazy obsahujúce číselné a znakové hodnoty.
  • Poznať štruktúru prevádzkovateľov a vlastností ich práce.
  • Byť schopný aplikovať operátorov pri písaní programov s lineárnymi a rozvetvenými štruktúrami.
  • Ak chcete vytvoriť a spúšťať programy na ladenie.

II. Teoretická hmotná lekcia

Väčšina praktických úloh si vyžaduje viacnásobné opakovanie rovnakých akcií, t.j. opätovné použitie jedného alebo viacerých operátorov. (Prezentácia)

Nech je potrebné zadať a spracovať postupnosť čísel. Ak sú čísla len päť, môžete vytvoriť lineárny algoritmus. Ak sú z nich tisíce, napíšte lineárny algoritmus, ale veľmi únavné a iracionálne. Ak je počet čísel v čase, keď algoritmus nie je známy, lineárny algoritmus je v podstate nemožný.

Ďalší príklad. Ak chcete nájsť priezvisko osoby v zozname, musíte skontrolovať krstné meno zoznamu, potom druhý, tretí, atď. Kým sa nenájde alebo nebude nájdený požadovaný alebo koniec zoznamu. Takéto ťažkosti môžete prekonať cyklom.

Cyklus sa nazýva viacnásobná spustiteľná časť algoritmu (programy). Cyklický algoritmus je teda algoritmus obsahujúci cykly.

Existujú dva typy cyklov: so známym počtom opakovaní a neznámeho počtu opakovaní. Zároveň v oboch prípadoch existuje množstvo opakovaní vo fáze vývoja algoritmu.

Existujú 3 typy cyklických štruktúr:

  • Cyklus s predpokladom;
  • Cyklus s pošpinním;
  • Cyklus s parametrom;

V opačnom prípade sa tieto štruktúry nazývajú "až do", "pre" typové cykly.

Grafická forma algoritmických štruktúr zaznamenávania údajov:

Cyklus s predpokladom (inak cyklus až do) To vyzerá:

stav - logický výraz.

Cyklus sa nesmie vykonať, ak hodnota logického výrazu okamžite ukáže, aby bola lož.

Séria príkazov umiestnených medzi začiatkom a konca sa vykonávajú do doteraz je podmienka pravdivá .

Pre na koniec cyklu, je potrebné, aby postupnosť pokynov medzi začiatkom a ukončením zmenili hodnotu premenných zahrnutých v stav.

Cyklus s postcondition (inak cyklus predtým) To vyzerá:

stav - logický výraz.

Poznámka:

Postupy pokynov medzi každýmopakovať. aaž do. bude vždy splnená aspoň raz;

Aby bol cyklus dokončený, je potrebné, aby postupnosť prevádzkovateľov medziopakovať. aaž do. Zmenili hodnoty premenných zahrnutých do stavu expresie.

Opakovaná inštrukcia, ako aj pri pokynoch, sa používa v programe, ak potrebujete vykonať niektoré opakujúce sa výpočty (cyklus), ale počet opakovaní nie je vopred známy a je určený počtom samotnej výpočtu.

Cyklus s parametrom (inak cyklus pre) Má formulár:

i - parameter cyklu;
A - počiatočná hodnota cyklu;
B - konečná hodnota cyklu;
H je krok zmeny parametra.

Štruktúra tohto cyklu je inak cyklus i krát.

Tento príkaz sa vykonáva týmto spôsobom: Parameter I je priradený počiatočná hodnota A sa porovnáva s konečnou hodnotou B a ak je menšia alebo rovná konečnej hodnote B, vykonáva sa séria príkazov. Parameter je priradený hodnotu predchádzajúceho, zväčšeného h. - kroky zmien parametra a opäť v porovnaní s konečnou hodnotou b.

V programovacom jazyku, Pascal, meniť krok parametra sa môže rovnať jednému alebo mínusu.

Ak je medzi začiatkom a konca je len jeden operátor, operátorové konzoly nemôžu písať. Toto pravidlo funguje pre "ešte" a "pre" typ cyklu.

Zvážte príklad riešenia úloh pomocou týchto štruktúr.

Príklad.

Vypočítajte produkt čísel od 1 do 5 pomocou rôznych možností cyklu.

Matematický model:

P \u003d 1 · 2 · 3 · 4 · 5 \u003d 120

Urobme algoritmus vo forme vývojového diagramu.

Ak chcete overiť správnosť algoritmu, vyplňte tabuľku sledovania.

Krok Prevádzka Ročník i. Kontrolný stav
1 P: \u003d 1 1
2 i: \u003d 1; 1 1
3 i.<=5
P: \u003d p * i
I: \u003d i + 1
1 1 1<=5, да (истина)
4 i.<=5
P: \u003d p * i
I: \u003d i + 1
2 2 2<=5, да (истина)
5 i.<=5
P: \u003d p * i
I: \u003d i + 1
6 3 3<=5, да (истина)
6 i.<=5
P: \u003d p * i
I: \u003d i + 1
24 4 4<=5, да (истина)
7 i.<=5
P: \u003d p * i
I: \u003d i + 1
120 5 5<=5, да (истина)
8 i.<=5
P: \u003d p * i
I: \u003d i + 1
6<=5, нет (ложь)

Podmienky overovania sa vyskytujú v niekoľkých krokoch: Kontrola podmienok a vykonania príkazov na jednej z pobočiek. Tabuľka sledovania preto nezaznamenáva príkazy algoritmu, ale samostatné operácie vykonávané počítačom v každom kroku.

Krok jedna: P je priradená hodnota jedna.

Dva krok: I je priradený k jednému.

Tretina: Pri rovnakej jednotke Kontrola stavu sám menším alebo rovným piatim, áno, podmienkou je pravdivá, znamená to, že hodnota jedného vynásobená, bude dve. Pre i: jeden plus, tam budú dva.

Štyri krok:pri rovnal na dve, stav je v súčasnosti menší alebo rovný piatim, áno, podmienkou je pravdivá, znamená to, že hodnota 2 vynásobená jedným, bude 2. pre i: dva plus jeden, bude tri .

Pitch piate:pri rovnal na tri, skontrolujeme stav tri menej alebo rovné piatim, áno, stav je pravdivý, čo znamená, že P priradí hodnotu dvoch vynásobených tromi, bude šesť. Pre i: tri plus jeden, bude štyri.

Šesť stupňov:pri rovnal na štyri, stav je štyri menej alebo rovné piatim, áno, tento stav je pravdivý, znamená to, že hodnota šesť vynásobených štyrmi bude dvadsaťštyri. Pre i: štyri plus jeden, tam bude päť.

Krok siedmy:pre rovnakého, čo som sa rovná piatim, je stav piatich menej alebo rovný päť, áno, podmienka je pravdivá, znamená to, že hodnota dvadsiatich štyroch vynásobených piatimi bude sto dvadsiatich. Pre i: päť plus jeden, bude šesť.

Krok ôsme:pri rovná sa šesť, stav je šesť menej alebo rovný piatim, nie, podmienka je nepravdivá, potom opustíme cyklus, a v dôsledku toho získame poslednú hodnotu rovnú sto dvadsiatim.

Program PR1;
Var I: Integer;
Začať.
P: \u003d 1;
i: \u003d 1;
Kým.<=5 do
Začať.
P: \u003d p * i;
i: \u003d i + 1;
koniec;
Písať ('p \u003d', p);
koniec.

Pre cyklus s defektom, vytvárame blokovú schému a stopu. (Slide16)

V dôsledku toho dostaneme poslednú hodnotu rovnú sto dvadsiatim krokom

A pre cyklus s parametrom vytvoríme blokový diagram a stopový stôl. (Slide17)

V dôsledku toho dostávame poslednú hodnotu rovnú sto dvadsiatich na šiestom kroku

Úloha:

Zobrazovacie čísla od 1 do 5 V:

  1. jednoduché;
  2. reverznej objednávky.

Matematický model:

  1. 1 2 3 4 5;
  2. 5 4 3 2 1.

Bloková schéma a problém riešenia problému je prezentovaný pre čísla v priamom a reverznom poradí.

(Snímka 21)

Zaznamenávame uvažované algoritmy v programovacom jazyku Pascal.

(Snímka 22)

III. Zhrnutie hodiny

A tak sme preskúmali nasledujúce otázky:

  1. Cyklus algoritmickej štruktúry;
  2. Typy algoritmických štruktúr:
    1. Cyklus s predpokladom;
    2. Cyklus s pošpinním;
    3. Cyklus s parametrom;
  3. Považované za spôsoby, ako napísať tieto štruktúry;
  4. Rozobraté príklady riešenia problémov s pomocou týchto štruktúr.

Cyklické algoritmy06.04.2017
Cyklické algoritmy
Typy cyklov a cyklických
Tímy na Pascal

Cyklus sa opakuje
Opakovanie sekvencie
činnosť
Opakujúca časť algoritmu
nazývaný cyklus
Typy cyklov
S daným číslom
Opakovanie
Podmienky
cyklus
S podmienkou
Stav výstupu je
cyklus

Typy cyklov (obsah)
Cyklus s predpokladom
Prax
Cyklus s postbandom
Prax
Cyklus s parametrami
Prax
Riešenie zložitých úloh

Cyklus s predpokladom

Prax

a akcie, ktoré treba vykonať len
Po skontrolovaní podmienok používajte cyklus v predpokladom.


Predtým, ako sa každé vykonanie cyklického telesa skontroluje
podmienky, ak je výsledok "pravdy", potom sa vykonáva cyklus
Ešte raz, ak "leží", potom existuje cesta z cyklu.
Na bloku
Začiatočný cyklus
Nie
Stav
ÁNO
Cyklistický orgán
Koniec cyklu
V Pascal.
Zatiaľ čo<условие> robiť.
Začať.
<тело цикла>
koniec;

Cyklus s postbandom

Prax
Ak je počet opakovaní neznámy vopred, ale iba špecifikovaný
a akcie, ktoré sa musia vykonať predtým
Kontroly stavov Použite cyklus s postcal.
Ako stav sa používa logický výraz, telo
Cyklus je jednoduchý alebo kompozitný operátor.
Po každom vykonaní tela cyklu, kontroly
Podmienky, ak je výsledok "FALSE", potom sa vykonáva cyklus
Ešte raz, ak je "pravda", potom existuje cesta z cyklu.
Na bloku
V Pascal.
Opakovať.
Cyklistický orgán
<тело цикла>
Áno
Nie
Stav
Až do<условие>;

Cyklus s parametrom

Prax
Cyklus s parametrom
V prípadoch, keď je počet opakovaní známy vopred
Cyklus sa používa v parametri.
Nazýva sa variabilná špecifikujúca počet opakovaní
Parametria cyklu alebo riadiaca premenná.
Po každom cykle vykonávania tela
Premenná sa zvyšuje alebo znižuje, cyklus
Je to beží, kým nie je čas, kým to neprekročí
menej obmedzenia.
Na bloku
V Pascal.
Pre X: \u003d A až B DOO
X: \u003d A, B, C
Cyklistický orgán
X - Riadiaca premenná (parameter cyklu)
A - Počiatočný význam X, in - konečný X
C - krok zmeny x
Začať.
<тело цикла>
Koniec;
Ako krok môžete použiť
len:
"Na" \u003d 1;
"Downto" \u003d -1

Príklad úlohy pomocou cyklu s predpokladom
Teória

Sliver Algorithm:
Vynásobte číslo X je pôvodne rovné 1
Zadaný počet časov (h) do 3.
Spustiť
Programový krok;
Var.
H, B, X: Integer;
Začať.
Writeln ('titul?' ');
Readln (h);
X: \u003d 1;
B: \u003d 1;
Kým B.<=H do
Začať.
X: \u003d x * 3;
B: \u003d B + 1;
Koniec;
WRITELN ("výsledok", x);
Koniec.
Pazd
N.
Zadajte daný titul
X: \u003d 1
Počiatočné hodnoty
B: \u003d 1
Nie
"B"
B≤h.
Áno
X: \u003d x * 3
Násobenie o 3.
B \u003d v + 1
Zväčšiť
H.
Vrátenie prijatého
Hodnosť
koniec
Bloková schéma
Vysvetlenia

Príklad úlohy pomocou cyklu s postcal
Teória
Úloha: Zdvihnite číslo 3 v danom stupni
Sliver Algorithm:

Programový krok;
Var.
H, B, X: Integer;
Začať.
Writeln ('titul?' ');
Readln (h);
X: \u003d 1;
B: \u003d 0;
Opakovať.
X: \u003d x * 3;
B: \u003d B + 1;
Nie
Až do b\u003e \u003d h;
WRITELN ("výsledok", x);
Koniec.
Spustiť
N.
Zadajte daný titul
X: \u003d 1
Počiatočné hodnoty
B: \u003d 0
Násobenie o 3.
X: \u003d x * 3
Zväčšiť
B \u003d v + 1
Áno
B\u003e \u003d h
"B"
H.
Vrátenie prijatého
Hodnosť
koniec
Pazd
Bloková schéma
Vysvetlenia

Príklad úlohy pomocou cyklu s parametrom
Teória
Úloha: Zdvihnite číslo 3 v danom stupni
Sliver Algorithm:
Vynásobte číslo X je spočiatku rovný 1 špecifikovaným počtom časov (h) o 3.
Programový krok;
Var.
H, B, X: Integer;
Začať.
Writeln ('titul?' ');
Readln (h);
X: \u003d 1;
Pre b: \u003d 1 až h doo
Začať.
X: \u003d x * 3;
Koniec;
WRITELN ("výsledok", x);
Koniec.
Pazd
Spustiť
N.
X: \u003d 1
B: \u003d 1, H, 1
X: \u003d x * 3
H.
koniec
Bloková schéma
Zadajte daný titul
Počiatočná hodnota X \u003d 1
Parametre od 1 bc
Násobenie o 3.
Vrátenie prijatého
Hodnosť
Vysvetlenia

Výber cyklu závisí od vlastností problému. Len prax vám povie optimálne riešenie.

Úloha: Spustenie výcviku, športovec na prvý deň
Ran 10 km. Každý deň zvýšil denné svetlo
NORMA pre 10% normy predchádzajúceho dňa.
Čo celková cesta prevádzkuje športovca na 7 dní.
Vstupné premenné:
D - Počet dní
SD - Vzdialenosť pre aktuálny deň
Výstupné premenné:
S - zdieľaný spôsob

Blok - schéma na riešenie

spustiť
S: \u003d 10
SD: \u003d 10
D: \u003d 1
D: \u003d D + 1
SD: \u003d SD * 1.1
S: \u003d S + SD
nie
D \u003d 7.
Áno
S.
koniec

Program na Pascal

Cyklus "pre"
Cyklus "kým"
Cyklus "predtým"
Program prosiť;
Program prosiť;
Program prosiť;
Var.
Var.
Var.
S, SD: Real;
S, SD: Real;
S, SD: Real;
D: Bajt;
D: Bajt;
D: Bajt;
Začať.
Začať.
Začať.
S: \u003d 10;
S: \u003d 10;
S: \u003d 10;
SD: \u003d 10;
SD: \u003d 10;
SD: \u003d 10;
Pre D: \u003d 2 až 7
Začať.
Zatiaľ čo D.<7 do
Začať.
Opakovať.
D: \u003d D + 1;
SD: \u003d 1,1 * SD;
D: \u003d D + 1;
SD: \u003d 1,1 * SD;
S: \u003d S + SD;
SD: \u003d 1,1 * SD;
S: \u003d S + SD;
koniec;
S: \u003d S + SD;
Až do (d \u003d 7);
Writeln ('s \u003d', s);
koniec;
Writeln ('s \u003d', s);
Koniec.
Writeln ('s \u003d', s);
Koniec.
Koniec.

Otázky na kontrolu:
1. Aký operátor v Pascal je nastavený cyklus
Provotovať
2. Ako v cykle v parametri označujú krok "1" a "-1"
3. Akú oblasť pochádza z cyklu
postcondition
4. Existuje cyklus s parametrom stavu
5. Aký by mohol byť cyklistický orgán
6. Keď sa cyklus používa s parametrami
koniec