Příklad cyklického ICT algoritmu Pascal. Cyklické algoritmy typy cyklů a cyklických týmů na Pascal

Snímek 2.

Plán

Cyklus koncepce operátor cyklus cyklu, zatímco cyklus opakování literatury

Snímek 3.

Literatura

Kastornov A.f., Evstratova g.a. Programovací jazyk Pascal: Výukový program pro univerzity. - Cherepovets: Gou VPO CHSU, 2010. - 117 C. - Bibliogr.: Str.114. Elektronická učebnice na programovací jazyk Pascal /http://pascal.guti.ru plán

Snímek 4.

Cyklus koncepce

Algoritmy pro řešení mnoha úkolů jsou cyklické, ve kterých se dosáhne výsledku několikrát určitá sekvence akcí. Program pro kontrolu znalostí například zobrazí otázku, přijímá odpověď, přidává značku pro odpověď na částku bodů a poté tyto akce opakuje, dokud objekt reaguje na všechny otázky. Nebo například hledat požadované příjmení v seznamu, zkontrolujte jméno seznamu, který odpovídá náhody, pak druhý, třetí atd. Pokud je požadované příjmení nalezeno nebo bude nalezen konec seznamu.

Snímek 5.

Algoritmus, ve kterém existuje skupina operátorů několikrát, se nazývá cyklický. Skupina opakovaných operátorů se nazývá tělo cyklu. V Pascalu lze cykly implementovat pomocí operátorů, zatímco a opakované cykly. Plán

Snímek 6.

Provozovatel cyklu pro

Provozovatel pro cyklus je používán, pokud těleso cyklu musí být provedeno několikrát a počet opakování je známo předem.

Snímek 7.

1. Forma záznamového cyklu

První forma obsluhy pro obsluhu je obecně popsána následovně: Forschechik: \u003d iniciál_treatmentto-opačný; Kde pro, do, do - servisní slova. Měřič je proměnnou typu sekvence (obvykle jako celé číslo), který určuje počet opakování cyklu. Počet opakování je považován podle vzorce: final_dative je inicializační + 1. Hodnota finálie by měla být větší nebo rovna počátečnímu_jáznamu.

Snímek 8.

Pokud tělo cyklu se skládá z několika operátorů, pak vypadá první forma záznamu operátora pro operátora takto: Forschechik: \u003d inicializace_nameto-confined_do začít (cyklus tělo) konec;

Snímek 9.

Zvažte algoritmus pro práci cyklu v první formě záznamu. Čítač je přiřazen počáteční hodnotě. Podmínka je zaškrtnuta: Hodnota čítače je větší než final_station? Pokud je podmínka pravdivá (ano), končí provedení cyklu. Pokud je podmínka FALSE (NO), provede se těleso cyklu, pak se hodnota čítače zvyšuje o jednu a znovu kontrolují podmínky, tj. p.

Snímek 10.

2. Forma záznamu cyklu operátora pro

2. Forma obsluhy záznamu pro obsluhu je obecně popsán následovně: Pro čítač: \u003d inicializace_downdowndowndo-end_daktivita. Kde: pro, downto, do - servisní slova. Čítač je proměnnou typu sekvence (obvykle jako celé číslo), který určuje počet opakování cyklu. Počet opakování je považován za vzorec: počáteční hodnota-finite_dation + 1. Inicializace_namedInteriality být větší nebo stejně jako stejně.

Snímek 11.

Pokud se těleso cyklu skládá z několika operátorů, pak vypadá 2. forma záznamu operátora pro operátora takto: Forschechik: \u003d inicializace_downtofo-evrajindo začíná // konec cyklu těla;

Snímek 12.

Zvažte algoritmus pro provoz cyklu pro druhý formulář záznamu: Počítadlo je přiřazeno počáteční hodnotu. Stav je zaškrtnuta: Hodnota čítače je menší než final_station? Pokud je podmínka pravdivá (ano), končí provedení cyklu. Pokud je podmínka FALSE (NO), pak se provádí těleso cyklu, pak se hodnota čítače snižuje na jednotku a znovu kontrolují podmínky, tj. p.

Snímek 13.

Provozovatel cyklu pro

pROGRAMEX1; Var i, n: celé číslo; (I - čítač, n - požadovaný počet hvězd) s: řetězec; (s - generovaná řetězec) začátek writeln ("Zadejte počet hvězdiček"); (Požaduje se počet hvězdiček) Readln (n); (Uživatel zadá počet SPARS n) s: \u003d ""; (Tvorba řetězce zdvihu začíná prázdným řetězcem) (řetězec je tvořen podél cyklu pro cyklus. Iniciálie je metr - 1, final_tilita je požadovaný počet nosníků n.) Fori: \u003d 1 až n Do s: \u003d s + "*"; (V každém kroku cyklu na řetězec je lepen jeden hvězdičkový) Writeln (S); (zobrazí se řádek) Readln; konec. Model plánu: Program tvoří řetězec řetězec. Počet hvězd v řetězci je určen uživatelem.

Snímek 14.

Zatímco cyklus

Zatímco cyklus se používá, pokud je počet opakování těla cyklu během programu neznámý a může být stanoven pouze během jeho provozu. Obecně platí, že prohlášení Zatímco je napsáno následovně: zatímco stav douertaři; Kde, Do - Servisní slova. Stav je výraz logického typu, který určuje pokračování cyklu.

Snímek 15.

Pokud se těleso cyklu sestává z několika operátorů, je cyklus Zatímco je zapisován následujícím způsobem: Celýeboard začíná // konec cyklu těla;

Snímek 16.

Zvažte algoritmus cyklu Zatímco se kontroluje stav. Pokud je podmínka skutečně provedena těleso cyklu. Poté je stav znovu zkontrolován. Pokud je podmínka false, cyklus je dokončen.

Snímek 17.

Když tedy cyklus s předpokladem nebo cyklem "zatímco" (tělo cyklu je stále skutečný stav). Pokud se při prvním předání cyklu, bude podmínka nepravdivá, těleso cyklu nikdy nebude splněna. Pokud se stav nikdy nestane false, cyklus se bude opakovat nekonečně, tj. Dojde k studené.

Snímek 18.

Program EX2; Varaccount: skutečný; (velikost účtu) Měsíc: celé číslo; (Počet měsíců od otevření účtu) začíná účet: \u003d 1000; (na výdajích 1000 rublů) měsíc: \u003d 0; (Účet právě otevřel) WhileAccount

Snímek 19.

Opakování cyklu

REPEAT cyklus, stejně jako cyklus Zatímco v programu, se používá v programu, pokud potřebujete několikrát provádět těleso cyklu, ale počet opakování není v předstihu neznámý. Obecně platí, že cyklus opakování je napsán následovně: opakování // tělesný cyklus až do stavu; Kde opakujte, až do servisních slov. Stav je výraz logického typu, který určuje konec cyklu.

Snímek 20.

Zvažte provozní algoritmus opakovaného cyklu: opakování a dokud se těleso cyklu provádí mezi vyhrazenými slovy. Podmínka je zkontrolována. Pokud je stav skutečně, cyklus je dokončen. Pokud je stav false, tělo je opět provedeno.

Snímek 21.

Repet je tedy cyklus s post-vlna nebo cyklu "to" (těleso cyklu se provádí na pravdu stavu). V důsledku toho se těleso cyklu provádí alespoň jednou. Pokud se stav nikdy nestane pravdou, cyklus se stane nekonečným.

Snímek 22.

Program EX3; Var time: celé číslo; (Dodací lhůta) buňky: celé číslo; (číslo buňky) začátek času: \u003d 0; (buňka stále nikdy nespustila) buňky: \u003d 1; (jeden) čas opakování: \u003d čas + 3; (po dalších třech hodinách) buňkách: \u003d Buňky * 2; (počet buněk se zvýšil o 2 kráty) do buněk\u003e 24; (až do stavu pravdy "počet buněk více než 24") writeln (čas); (výstup) readln; konec. Příklad z výroby: Jednobuněná Ameba každých 3 hodiny je rozdělena do 2 buněk. Určete, po kolik hodin překročí počet buněk 24.

Zobrazit všechny snímky

Skluzu 1.

Dodavatel Robot cyklický algoritmus
Prezentace na lekci informatiky. Stupeň 9 Předmět: Management a algoritmy

Snímek 2.

Pro I: \u003d 1 až n začněte akci1; Akce2; Konec;
Pro I: \u003d 1 až n do akce1; Akce2;
1

Snímek 3.

2
Zatímco (podmínka true) začnou akci1; Akce2; Konec;
Zatímco (podmínka true) do akce1; Akce2;

Snímek 4.

3
17 buněk
12 buněk

Snímek 5.

4
Program N1; VAR I: Integer; Začněte pro I: \u003d 1 až 12 do robotforw; Robotleft; Pro I: \u003d 1 až 17 do robotforw; Robotleft; Pro I: \u003d 1 až 12 do robotforw; Robotleft; Pro I: \u003d 1 až 17 do robotforw; Robotleft; konec.
Pohybující se dolů
Pohybující se doprava
Pohybující se nahoru
Pohybující se doleva
Toto a následující příkazy se otočí k rohu robota vlevo

Snímek 6.

5
Pokud dáte zeď, bude robot ponořen do něj a program se zastaví

Snímek 7.

6
Program N2; VAR I: Integer; Začátek, zatímco freeforw do robotforw; Robotleft; Zatímco freeforw do robotforw; Robotleft; Zatímco freeforw do robotforw; Robotleft; Zatímco freeforw do robotforw; Robotleft; konec.
Zatímco dopředu je zdarma, proveďte robot vpřed.

Snímek 8.

Snímek 9.

8
Program N3; VAR I: Integer; Začněte pro I: \u003d 1 až 4 Začněte, zatímco freeforw do robotforw; Robotleft; konec; konec.
Čtyřikrát se pohybovat vpřed, dokud neexistuje žádná překážka a odbočit vlevo

Snímek 10.

9
Čtyřikrát se pohybovat vpřed, dokud neexistuje žádná překážka a odbočit vlevo

Snímek 11.

10
Úkoly pro nezávislou práci
Úkol 1. Levá stěna situace v libovolném místě je umístěna překážka. Robot by se měl dostat do bodu 1 a vrátit se do původního stavu. Poznámka: zatím používejte tři postupně připojené cykly.
1
1

Snímek 12.

11
Úkol 2 Levá stěna situace v libovolném místě je vyřezávána. Robot by se měl dostat do nákladu, vezměte si jej přepravovat do skladu a vrátit se do původního stavu. Poznámka: Zatím používejte dva postupně připojené cykly.

Snímek 13.

12
Úkol 3. Levá stěna situace v libovolném místě je umístěna pět nákladu. Robot musí celý náklad dopravovat do skladu. Poznámka: Použijte dva postupně připojené cykly dosud investované do cyklu s parametrem.

Snímek 14.

13
Příklad 1 Robot se nachází před vchodem do chodby. Je nutné poznamenat všechny buňky uvnitř chodby a vrátit se zpět

Snímek 15.

14
Program N7; Začněte robotforw; Zatímco ne Freeleft začnou vybrat; Robotforw; konec; Robotback; Zatímco není freeleft dělat robotback; konec.
Provádíme krok vpřed, abychom zadali tunel
Zatímco vlevo je zeď, oslavuje klec a udělat krok vpřed
Vrátit se zpět do tunelu
Zatímco levá stěna, pohybující se krok zpět

Snímek 16.

15
Příklad 2 Existují dva stěny dodávané úhlem. Délka stěn jsou libovolné. Robot je v rohu mezi stěnami (viz obrázek). Je nutné provést program, ve kterém robot označuje všechny buňky na vnitřní straně stěny. Konečná poloha robota libovolně.

Snímek 17.

16
Program N8; Začněte, když ne freeright začne vybrat; Robotforw; konec; Zatímco freeback dělá robotback; Robotleft; Zatímco ne Freeleft začnou vybrat; Robotforw; konec; konec.
Zatímco právo není zdarma, oslavuji buňku a udělat krok vpřed.
Vrátit robota zpět
Odbočit vlevo
Zatímco vlevo není volný, oslavuji buňku a udělat krok vpřed.

Snímek 18.

Snímek 19.

18
Příklad 3 Situace překrývá zeď, která rozděluje situaci do dvou částí. Stěna má průchod v buněčné velikosti v libovolném místě. Je nutné provést program, ve kterém robot najde tuto pasáž a jde do jiné části situace.

Snímek 20.

19
Program N9; Začněte Robotleft; Zatímco freeforw do robotforw; Robotright; Zatímco není freeleft dělat robotforw; Robotleft; Robotforw; Robotforw; konec.
Otočte robota směrem ke zdi.
Pohybujeme se kupředu, dokud nebudu stát ve zdi
Otočte robota podél zdi
Pohybující se dopředu, dokud se stěna nekončí
Otočte robota směrem k průchodu
Děláme dva kroky vpřed, jdeme do další poloviny situace

Popis prezentace na jednotlivých diapozitivech:

1 skluzavka

Popis snímku:

Předmět tříd: "Algoritmy cyklické struktury. Programovací cykly na Pascal »Disciplína" Informatika "

2 snímek

Popis snímku:

Hlavními pojmy tématu v této okupaci jsou studovány následujícími pojmy: koncept cyklu; Odrůdy cyklických algoritmů (cyklus s předpokladem, cyklus s postbandem, cyklus s parametrem); blokové schémata cyklických algoritmů; Zastoupení cyklů operátorů v programovacím jazyce Pascal; Použití cyklů při řešení problémů.

3 snímek

Popis snímku:

Koncept cyklu při řešení mnoha úkolů, jeden a stejný posloupnost akcí se provádí několikrát. Například při vstupu do vzdělávací instituce Student dává zkoušky, přičemž vypočítá body, které jsou hodnoceny (proměnné S; jeho počáteční hodnota S: \u003d 0;). Pro každou zkoušku obdrží odhady N. Pokud je odhad větší než "2", pak s: \u003d S + N; V opačném případě zastavte výpočty (výstup z cyklu).

4 Slide.

Popis snímku:

Koncept cyklu cyklu je posloupnost operátorů, které lze provádět více než jednou. Cyklický algoritmus se nazývá algoritmus, který poskytuje více opakování stejné akce na nových datech. Existují tři typy operátorů cyklu: cykly s předpokladem; Cykly s postcondition; Cykly s metrem.

5 Slide.

Popis snímku:

Cyklu s předpokladem. Zadejte cyklus, zatímco při předepisuje těleso cyklu, dokud se stav není proveden, zaznamenaný po slovním vývojovém diagramu s předpokladem

6 Slide.

Popis snímku:

Cyklu s předpokladem. Typový cyklus, zatímco zatímco cyklus při současném použití se použije, když je počet opakování tělesa cyklu neznámý předem, a závisí na stavu. Pokud je podmínka pravdivá, pak se provádí těleso cyklu, pak znovu kontrolovat podmínky a tak, dokud se stav nestane nepravdivým.

7 Slide.

Popis snímku:

Provozní cyklus s přípravou (zatímco cyklus) Tento běžně používaný operátor opakování má společný pohled na Pascal (formát): zatímco<условие> Dělat.<оператор>; Zde, do - rezervovaná slova (z angličtiny: zatímco-in, do - do);<условие> - logický výraz;<оператор> - libovolný (případně kompozitní) operátor.

8 Slide.

Popis snímku:

Cyklus s postbandem. Typ Cyklus až do pořadí provozu cyklu s detonací, provedení 1-n operátorů se opakuje, dokud se stav nestane správným. V tomto cyklu je podmínka ověřena pouze po tělesech cyklu. Z toho vyplývá, že tělo vždy provádí alespoň jednou po vývojový diagram s postkalem

9 Slide.

Popis snímku:

Cyklus s postbandem. Typ cyklu před tím, než je důležitý! Cyklus s příspěvkem se provádí alespoň jednou nezávisle na stavu. Nepochybné pohodlí cyklu smyčka je, že uvnitř ji můžete napsat několik operátorů bez použití kompozitního operátora. Kontrola podmínek je po tělese cyklu. Servisní slovo do.

10 Slide.

Popis snímku:

Provozní cyklus s postbandem (typ až do cyklu) Obecný pohled (formát) Operátor cyklu s Pascal Pascal Další: Opakovat<Оператор 1>; <Оператор 2>; … <Оператор N>; Dokud<условие>;

11 Slide.

Popis snímku:

Příklad aplikace obsluhy cyklu se sloupkem pro výstup na obrazovku ve dvojice, hodnoty proměnné n \u003d 1, 2, 3, 4, 5, 6, 7, 8, 9 a Proměnná A \u003d 10, 20, 30, 40, 50, 60, 70 a 70, 80, 90 tohoto operátora bude: N: \u003d 0; Opakujte n: \u003d n + 1; A: \u003d 10 * n; Writeln (n: 2, '', a: 3); Dokud n\u003e \u003d 9;

12 Slide.

Popis snímku:

Cyklu s parametrem. Typ typového cyklu s parametrem se používá, když chcete provést daný počet kroků cyklu. Je třeba poznamenat, že pascal Pascal cyklus není příliš flexibilní (například na kontrastu, například z tohoto typu cyklu v jazyce C). Protože, na Pascal, parametr cyklu (nebo čítač) se liší o hodnotu rovnou jednom. Tak, když je nutné provést zlomkový krok, musíte použít cyklus typu Zatímco typ. Existují dvě odrůdy cyklu pro cyklus: se zvyšováním a snížením hodnot měřiče (nebo parametrů). Diagram blokového cyklu s parametrem (pro cyklus)

13 Slide.

Popis snímku:

14 Slide.

Popis snímku:

Provozovatel cyklu s parametrem. Typ cyklu pro běžný zobrazení (formát) operátora cyklu s parametrem pro<счетчик> := <начальное значение> na.<конечное значение> Začněte.<Операторы> konec; Pro<счетчик> := <начальное значение> Dolů.<начальное значение> Začněte.<Операторы> konec; S zvýšením hodnot měřiče (parametr) s poklesem hodnot měřiče (parametr)

15 Slide.

Popis snímku:

Provozovatel cyklu s parametrem. Typ cyklu pro obsluhu, který implementuje cyklus pro pro použití, pokud je nutné, aby programový fragment opakoval zadaný počet časů<переменная цикла>: = <начальное значение> Že<конечное значение> Dělat.<оператор>; Zde: pro, to, do - vyhrazená slova (angličtina: pro, dříve, execute);<счетчик (параметр) цикла> - typová proměnná Celé číslo, které se mění na segmentu od<начального значения>a zvýšení jednotky na konci každého kroku cyklu;<оператор> - Každý (častěji kompozitní) operátor.

16 Slide.

Popis snímku:

Provozovatel cyklu s parametrem. Cyklus typu Prohlášení se skládá z hlavičky a tělesa cyklu. Kompozitní operátor umístěný v tělese cyklu musí být uzavřen v závorkách zahájení a koncových operátorů. · Identifikátor měřičů se obvykle používá "I". · Proměnná měřidla musí být typ sekvence. Například celé číslo: Byte, celé číslo. · Počáteční a koncové hodnoty parametru cyklu nelze během cyklu měnit. · Pro operátor se používá k uspořádání cyklů s pevným, předem známým nebo určeným během provádění programu počtem opakování.

17 Slide.

Popis snímku:

Použití cyklů při řešení problémů, každý z výše popsaných cyklů může být použita pro programování pascal stejných úkolů s cyklickým algoritmem.

18 Slide.

Popis snímku:

Číslo úkolu 1 Otevřete program Pascalabc.net (integrované programy pro programovací programy Pascal) Uložte program ve složce se svým jménem v systému pracovní složka PABCWORK.NET_in / cikl_1.pas Uložit jak ...

19 Slide.

Popis snímku:

Číslo úlohy 1 Použití cyklu (s předpokladem) pro vytvoření a ladění programu, který vypočítá součet čtverců všech přírodních čísel od 1 do 100. Počáteční data: A: Integer; Výsledek - množství: S: Longint; Program EX1; VAR A: Integer; S: Longint; (Dlouhé celé číslo) Začněte: \u003d 1; S: \u003d 0; (proměnná s nahromadit množství), zatímco a<=100 Do { Начало цикла – проверка условия } Begin S:=S+A*A; A:=A+1 End; Writeln(‘Вывод результата S= ’ ,S) End. Сохранить программу в папке с Вашим именем в системной рабочей папке PABCWork.NET \ Ваше_имя\Cikl_1.pas

20 Slide.

Popis snímku:

Úloha 2. Odstranění cyklické struktury v jazyce Pascal v programu Pascalabc.NET ABC prostředí ABC; Var x, u: celé číslo; Začněte x: \u003d 2; Zatímco 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























Zpět vpřed

Pozornost! Náhled snímků se používají výhradně pro informační účely a nemusí poskytovat představy o všech schopnostech prezentace. Máte-li zájem o tuto práci, stáhněte si plnou verzi.

Účel: Studium algoritmické struktury cyklů, vytvoření modelů a algoritmů pro řešení praktických problémů.

Během tříd

I. Aktualizace znalostí

  • Opakujte koncept algoritmu, základních návrhů algoritmického jazyka.
  • Aby bylo možné rozvíjet matematický model, algoritmus a blok blokování pro řešení problému.
  • Mají pojem programovacích jazyků a jejich jmenování.
  • Být schopen pracovat v programovém prostředí.
  • Znát strukturu programu.
  • Být schopen nahrávat výrazy obsahující číselné a znakové hodnoty.
  • Znát strukturu operátorů a vlastností jejich práce.
  • Aby bylo možné aplikovat operátory při psaní programů s lineárními a rozvětvovacími strukturami.
  • Chcete-li vytvořit a spustit programy pro ladění.

II. Teoretická lekce materiálu

Většina praktických úkolů vyžaduje více opakování stejných akcí, tj. Opětovné použití jednoho nebo více operátorů. (Prezentace)

Nechť je nutné vstoupit a zpracovat posloupnost čísel. Pokud jsou čísla pouze pět, můžete provést lineární algoritmus. Pokud jsou jich tisíce, napište lineární algoritmus, ale velmi únavné a iracionální. Pokud je počet čísel v době, kdy algoritmus není znám, je lineární algoritmus zásadně nemožný.

Další příklad. Chcete-li najít příjmení osoby v seznamu, musíte zkontrolovat jméno seznamu, pak druhý, třetí atd. Dokud se nehledáte požadovaný nebo konec seznamu nebo nebude nalezen. Takové potíže můžete překonat cykly.

Cyklus se nazývá více spustitelné části algoritmu (programy). Proto je cyklický algoritmus algoritmus obsahující cykly.

Existují dva typy cyklů: se známým počtem opakování as neznámým počtem opakování. Současně v obou případech existuje řada opakování ve fázi vývoje algoritmu.

Existují 3 typy cyklických konstrukcí:

  • Cyklus s předpokladem;
  • Cyklus s odporem;
  • Cyklus s parametrem;

Jinak se tyto struktury nazývají "až", "pro" typy cyklů.

Grafická forma algoritmických struktur pro záznam dat:

Cyklu s předpokladem (jinak cyklus dokud) To vypadá:

stav - Logický výraz.

Cyklus nesmí být proveden, pokud se hodnota logického výrazu okamžitě ukáže, že je lež.

Série příkazů umístěných mezi začátkem a koncem jsou prováděny až do zatím je podmínka pravdivá .

Pro ke konci cyklu, je nutné, aby posloupnost pokynů mezi začátkem a koncem změní hodnotu proměnných zahrnutých v stav.

Cyklus s postcondition (jinak cyklus před) To vypadá:

stav - Logický výraz.

Poznámka:

Sekvence instrukcí mezi každýmopakovat. adokud. bude vždy splněna alespoň jednou;

Aby byl cyklus dokončen, je nezbytné, aby posloupnost operátorů meziopakovat. adokud. Změnili hodnoty proměnných v podmínkách výrazu.

Opakované instrukce, stejně jako instrukce při chvíli, je používána v programu, pokud potřebujete provést některé opakované výpočty (cyklus), ale počet opakování není předem známo a je určen počtem samotného výpočtu.

Cyklu s parametrem (jinak cyklus pro) Má formulář:

i - Parametr cyklu;
A - počáteční hodnota cyklu;
b - konečná hodnota cyklu;
h je krok změny parametrů.

Struktura tohoto cyklu je jinak volána cyklus I Times..

Tento příkaz se provádí tímto způsobem: Parametr I je přiřazen počáteční hodnotu A je porovnán s konečnou hodnotou B a pokud je menší nebo rovna konečné hodnotě B, provede se série příkazů. Parametr je přiřazen hodnotu předchozího, zvětšeného h. - kroky změn v parametru a opět porovnávány s konečnou hodnotou b.

V programovacím jazyce Pascal může být krok změny parametrů roven jedné nebo mínus.

Pokud je mezi začátkem a ukončena pouze jeden operátor, držáky operátorů nemohou psát. Toto pravidlo funguje pro cyklus "ještě" a "pro".

Zvažte příklad řešení úkolů pomocí těchto struktur.

Příklad.

Vypočítejte produkt čísel od 1 do 5 pomocí různých možností cyklu.

Matematický model:

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

Udělejme algoritmus ve formě vývojového diagramu.

Chcete-li ověřit správnost algoritmu, vyplňte tabulku trasování.

Krok Úkon R. i. I. Kontrola stavu
1 P: \u003d 1 1
2 i: \u003d 1; 1 1
3 i. I.<=5
P: \u003d p * i
I: \u003d I + 1
1 1 1<=5, да (истина)
4 i. I.<=5
P: \u003d p * i
I: \u003d I + 1
2 2 2<=5, да (истина)
5 i. I.<=5
P: \u003d p * i
I: \u003d I + 1
6 3 3<=5, да (истина)
6 i. I.<=5
P: \u003d p * i
I: \u003d I + 1
24 4 4<=5, да (истина)
7 i. I.<=5
P: \u003d p * i
I: \u003d I + 1
120 5 5<=5, да (истина)
8 i. I.<=5
P: \u003d p * i
I: \u003d I + 1
6<=5, нет (ложь)

Verifikační podmínky dochází v několika krocích: Kontrola podmínek a provedení příkazů na jedné z poboček. Proto tabulka trasování nezaznamenává příkazy algoritmu, ale samostatné operace prováděné počítačem v každém kroku.

Krok první: P je přiřazen hodnotu.

Krok dva: Jsem přiřazen k jednomu.

Krok třetí: Na I rovné jednotce kontrola stavu samotného nebo rovného pěti, ano, podmínka je pravdivá, znamená to, že hodnota jednoho násobeného k jednomu bude dvě. Pro I: Jeden plus jeden, budou dva.

Krok čtyři:na jsem se rovnat dvěma, podmínka je v současné době menší nebo rovná pěti, ano, podmínka je pravdivá, znamená to, že hodnota 2 vynásobená k jednomu, bude 2. pro I: Dva plus jedna, bude tam tři .

Pitha pátá:na i se rovná tři, zkontrolujeme podmínku třiceté nebo rovné pěti, ano, podmínka je pravdivá, což znamená, že P přiřazuje hodnotu dvou násobených třemi, bude šest. Pro I: Tři plus jeden, budou čtyři.

Krok šest:na I se rovnat čtyři, stav je čtyři méně nebo rovnající se pěti, ano, podmínka je pravdivá, znamená to, že hodnota šesti násobená čtyřmi bude dvacet čtyři. Pro I: čtyři plus jedna, bude pět.

Krok Sedmý:aby se rovná pěti, stav je pět méně nebo rovných pěti, ano, podmínka je pravdivá, znamená to, že hodnota dvaceti čtyř násobí pěti bude sto dvacet. Pro I: pět plus jeden, bude šest.

Krok osmý:na I rovný šest, stav je šest méně nebo rovná pěti, ne, podmínka je nepravdivá, pak opustíme cyklus, a v důsledku toho získáme poslední hodnotu rovnou sto dvaceti.

Program PR1;
VAR I: Integer;
Začít.
P: \u003d 1;
i: \u003d 1;
Zatímco já.<=5 do
Začít.
P: \u003d p * i;
i: \u003d I + 1;
konec;
Zápis ('p \u003d', p);
konec.

Pro cyklus s odvozem konstruujeme blokové schéma a stopový stůl. (Slide16)

V důsledku toho dostaneme poslední hodnotu rovnou sto dvaceti v sedmém kroku

A pro cyklus s parametrem stavíme blokové schéma a trasovací stůl. (Slide17)

V důsledku toho dostaneme poslední hodnotu rovnou sto dvaceti v šestém kroku

Úkol:

Zobrazovací čísla od 1 do 5 V:

  1. přímočarý;
  2. obrácené pořadí.

Matematický model:

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

Blokové schéma a problém vyřešení problému je prezentován pro čísla v přímém a zpětném pořadí.

(Snímek 21)

Zaznamenáváme zvažované algoritmy v programovacím jazyce Pascal.

(Snímek 22)

III. Sčítání lekce

A tak jsme přezkoumali následující otázky:

  1. Algoritmický cyklus struktury;
  2. Typy algoritmických konstrukcí:
    1. Cyklus s předpokladem;
    2. Cyklus s odporem;
    3. Cyklus s parametrem;
  3. Považovány za způsoby, jak napsat tyto struktury;
  4. Demontované příklady řešení problémů s pomocí těchto struktur.

Cyklické algoritmy06.04.2017.
Cyklické algoritmy
Typy cyklů a cyklických
Týmy na Pascal.

Cyklus se opakuje
Opakování sekvence
akce
Opakující se část algoritmu
volal tělo cyklu
Typy cyklů
S daným číslem
Opakování
Podmínky podmínky
cyklus
Se stavem
Stav ukončení je
cyklus

Typy cyklů (obsah)
Cyklus s předpokladem
Praxe
Cyklus s postbandem
Praxe
Cyklus s parametry
Praxe
Řešení složitých úkolů

Cyklus s předpokladem

Praxe

podmínka a akce, která musí být provedena
Po kontrole podmínek používejte cyklus v předpokladu.


Před kontrolou každého provedení těla cyklu
PODMÍNKY, pokud je výsledkem "pravdy", pak se provádí těleso cyklu
Ještě jednou, jestliže "lež", pak je tu cesta venku.
Na bloku - schéma
Startovní cyklus
Ne
Stav
ANO
Tělo cyklu
Konec cyklu
V Pascalu.
Zatímco<условие> dělat.
Začít.
<тело цикла>
konec;

Cyklus s postbandem

Praxe
Pokud je počet opakování neznámý předem, ale pouze určený
a akce, která musí být provedena dříve
Stav kontroly používají cyklus s postkalem.
Jako podmínka se používá logický výraz, tělo
Cyklus je jednoduchý nebo kompozitní operátor.
Po každém provedení těla cyklu, kontroly
Podmínky Pokud je výsledek "false", pak se provádí těleso cyklu
Kdysi opět, pokud "pravda", pak je tu cesta venku.
Na bloku - schéma
V Pascalu.
Opakovat.
Tělo cyklu
<тело цикла>
Ano
Ne
Stav
Dokud<условие>;

Cyklus s parametrem

Praxe
Cyklus s parametrem
V případech, kdy je počet opakování známo předem
V parametru se používá cyklus.
Volá proměnná určující počet opakování
Parametr cyklu nebo regulační proměnnou.
Po každém jednání každého procesu provádění těla
Variabilní se zvyšuje nebo klesá, cyklus
Je spuštěn, dokud není čas, dokud nepřesáhne ani
budou méně omezení.
Na bloku - schéma
V Pascalu.
Pro x: \u003d a až b doo
X: \u003d A, B, C
Tělo cyklu
X - Řídicí proměnná (parametr cyklu)
A - počáteční význam x, in - konečný x
C - krok změny x
Začít.
<тело цикла>
Konec;
Jako krok můžete použít
pouze:
"Do" \u003d 1;
"Downlo" \u003d -1

Příklad úkolu pomocí cyklu s předpokladem
Teorie

Algoritmus pramene:
Vynásobte číslo x je zpočátku rovna 1
Zadaný počet časů (h) o 3.
Start
Program Stepen;
Var.
H, B, X: Integer;
Začít.
Writeln (titul? ');
Readln (h);
X: \u003d 1;
B: \u003d 1;
Zatímco b.<=H do
Začít.
X: \u003d x * 3;
B: \u003d b + 1;
Konec;
Writeln ('výsledek', x);
Konec.
Pascal.
N.
Zadejte daný titul
X: \u003d 1
Počáteční hodnoty
B: \u003d 1
Ne
Čítač "B"
B≤h.
Ano
X: \u003d x * 3
Násobení o 3.
B \u003d v + 1
Zvýšení metr
H.
Derokace přijatého
Hodnoty
konec
Blokové schéma
Vysvětlení

Příklad úkolu pomocí cyklu s postkalem
Teorie
Úkol: Zvedněte číslo 3 v daném stupni
Algoritmus pramene:

Program Stepen;
Var.
H, B, X: Integer;
Začít.
Writeln (titul? ');
Readln (h);
X: \u003d 1;
B: \u003d 0;
Opakovat.
X: \u003d x * 3;
B: \u003d b + 1;
Ne
Dokud b\u003e \u003d h;
Writeln ('výsledek', x);
Konec.
Start
N.
Zadejte daný titul
X: \u003d 1
Počáteční hodnoty
B: \u003d 0
Násobení o 3.
X: \u003d x * 3
Zvýšení metr
B \u003d v + 1
Ano
B\u003e \u003d h
Čítač "B"
H.
Derokace přijatého
Hodnoty
konec
Pascal.
Blokové schéma
Vysvětlení

Příklad úkolu pomocí cyklu s parametrem
Teorie
Úkol: Zvedněte číslo 3 v daném stupni
Algoritmus pramene:
Vynásobte číslo x je zpočátku roven 1 specifikovaným počtem časů (H) o 3.
Program Stepen;
Var.
H, B, X: Integer;
Začít.
Writeln (titul? ');
Readln (h);
X: \u003d 1;
Pro b: \u003d 1 až h doo
Začít.
X: \u003d x * 3;
Konec;
Writeln ('výsledek', x);
Konec.
Pascal.
Start
N.
X: \u003d 1
B: \u003d 1, H, 1
X: \u003d x * 3
H.
konec
Blokové schéma
Zadejte daný titul
Počáteční hodnota x \u003d 1
Parametry od 1 př.nl
Násobení o 3.
Derokace přijatého
Hodnoty
Vysvětlení

Výběr cyklu závisí na vlastnostech problému. Jediné praxe vám řekne optimální řešení.

Úkol: startovní trénink, sportovec první den
10 km. Každý den se zvýšil denní světlo
Norma za 10% normy předchozího dne.
Jaká celková cesta běží sportovec po dobu 7 dnů.
Vstupní proměnné:
D - počet dní
SD - vzdálenost pro aktuální den
Výstupní proměnné:
S - Sdílený způsob

Blok - schéma vyřešit

start
S: \u003d 10
SD: \u003d 10
D: \u003d 1
D: \u003d d + 1
SD: \u003d SD * 1.1
S: \u003d S + SD
ne
D \u003d 7.
Ano
S.
konec

Program na Pascal.

Cyklus "pro"
Cyklus "zatímco"
Cyklus "před"
Program prosit;
Program prosit;
Program prosit;
Var.
Var.
Var.
S, SD: Real;
S, SD: Real;
S, SD: Real;
D: Byte;
D: Byte;
D: Byte;
Začít.
Začít.
Začít.
S: \u003d 10;
S: \u003d 10;
S: \u003d 10;
SD: \u003d 10;
SD: \u003d 10;
SD: \u003d 10;
Pro d: \u003d 2 až 7
Začít.
Zatímco D.<7 do
Začít.
Opakovat.
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;
konec;
S: \u003d S + SD;
Do (d \u003d 7);
Writeln ('s \u003d', s);
konec;
Writeln ('s \u003d', s);
Konec.
Writeln ('s \u003d', s);
Konec.
Konec.

Otázky k řízení:
1. Jaký operátor v Pascalu je nastaven
Provotní
2. Jako v cyklu v parametru označte krok "1" a "-1"
3. Jakou větev pochází z cyklu
Postcoction.
4. Existuje cyklus s parametrem stavu
5. Co by mohlo být těleso cyklu
6. Když je cyklus používán s parametry
konec