Primjer za ciklički ICT algoritam Pascal. Cikličke algoritme Vrste ciklusa i cikličkih timova na Pascalu

Slide 2.

Plan

Ciklus CONCLE CONCEPT operatora za ciklus dok se ciklus ponavlja literatura

Slide 3.

Literatura

Kastornov A.F., Evstratova G.A. Programski jezik Pascal: Tutorial za univerzitete. - Cherepovets: Gou VPO CHSU, 2010. - 117 C. - Bibliogr .: P.114. Elektronski udžbenik na programskom jeziku Pascal /http://pascal.Guti.ru Plan

Slide 4.

Koncept ciklusa

Algoritmi za rješavanje mnogih zadataka su ciklički, u kojima će se postići rezultat, određeni niz radnji nekoliko puta se izvodi. Na primjer, program kontrole znanja prikazuje pitanje, prihvaća odgovor, dodaje oznaku za odgovor na količinu bodova, a zatim ponavlja ove radnje dok tema ne odgovori na sva pitanja. Ili, na primjer, potražite željeno prezime na popisu, provjerite prvo ime liste da odgovara slučajnoj koncibiciji, a zatim drugi, treći, itd. Sve dok se nađe željeno prezime ili će se naći kraj popisa.

Slide 5.

Algoritam u kojem se nalazi grupa operatora koji se vrši nekoliko puta naziva se cikličkom. Grupa ponovljenih operatera naziva se ciklusom tijela. U Pascalu se ciklusi mogu implementirati koristeći za, dok i ponoviti operatore ciklusa. Plan

Slide 6.

Za ciklus za

Za operatoru za ciklus koristi se ako se ciklično tijelo mora izvesti nekoliko puta, a broj ponavljanja je poznat unaprijed.

Slide 7.

1. oblik ciklusa snimanja operatora za

1. oblik operatora za snimanje za operatera općenito je opisan na sljedeći način: Forschechik: \u003d inicijal_treatto-suprotno_dorator; Gdje za, do - servisne riječi. Merač je varijabla vrste sekvence (obično kao što je cijeli broj), koji određuje broj ponavljanja ciklusa. Broj ponavljanja smatra se prema formuli: Final_dativati \u200b\u200bje inicijal_station + 1. Finalna_ vrijednost treba biti veća od ili jednaka inicijalnom imenu.

Slide 8.

Ako se ciklus tijela sastoji od nekoliko operatera, tada prvi oblik snimanja operatera za operatera izgleda ovako: fant

Slajd 9.

Razmotrite algoritam za rad za ciklus u prvom obliku snimanja. Brojač je dodijeljen početnoj vrijednosti. Stanje se provjerava: Protuprotrna vrijednost je veća od finalne_Station? Ako je uvjet istinito (da), izvršenje ciklusa završava. Ako je uvjet lažan (ne), vrši se ciklus tijela, tada se brojač povećava za jedan i uvjeti ponovo provjeravaju, i.e. str.

Slide 10.

2. oblik ciklusa operatora za snimanje

Drugi oblik operatora za snimanje za operatera općenito je opisan na sljedeći način: za brojač: \u003d inicijal_downdownto-end_dactivity. Gdje: za, do, do - servisne riječi. Brojač je varijabla vrste sekvence (obično kao što je cijeli broj), koji određuje broj ponavljanja ciklusa. Broj ponavljanja razmatra formula: inicijal_ vrijednost-finite_dation + 1. Inicijal_namentinterity da bude veća od ili jednako namijenjena.

Slide 11.

Ako se ciklus tijela sastoji od nekoliko operatera, tada ovakav oblik snimanja operatera za operatera izgleda ovako: Forschechik: \u003d inicijal_downtofo-večernji počnite // Kraj tijela za tijelo;

Slajd 12.

Razmotrite algoritam za rad ciklusa u drugom obliku snimanja: Brojač je dodijeljen početnu vrijednost. Stanje se provjerava: Protuprotrna vrijednost je manja od finalne_Station? Ako je uvjet istinito (da), izvršenje ciklusa završava. Ako je stanje lažno (ne), tada se izvodi ciklus tijela, tada se brojač smanjuje po jedinici i provjeru uvjeta, i.e. str.

Slide 13.

Za ciklus za

programex1; Var I, N: cijeli broj; (i - brojač, n - potreban broj zvjezdica) S: string; (S - generirana linija niza) započinje Writeln ("unesite broj zvijezda"); (broj zvjezdica) zatraži se Readln (n); (Korisnik ulazi u broj spars n) s: \u003d ""; (Formiranje udarnog žica počinje praznim nizom) (niz se formira u ciklusu za ciklus. Početna_nity je brojila - 1, finalna_tilnost je potreban broj spars n.) Forije: \u003d 1 do n? \u003d s + "*"; (Na svakom koraku ciklusa do žice, jedna zvjezdica) zalijepljena je Writeln (s); (linija se prikazuje) Readln; Kraj. Primjer plana: Program formira niz niza. Broj zvijezda u nizu određuje korisnik.

Slide 14.

Dok se ciklus

Dok se ciklus koristi ako je broj ponavljanja tijela ciklusa tijekom programa nepoznat i može se utvrditi samo tokom njenog rada. Općenito, dok je izjava napisana na sljedeći način: Iako je stanje dvoboja; Gde dok, uradite - servisne reči. Stanje je izraz logičkog tipa koji određuje nastavak ciklusa.

Slide 15.

Ako se biciklističko tijelo sastoji od nekoliko operatera, dok je ciklus napisano na sljedeći način: Na kraju je počnite // Kraj tijela za tijelo;

Slide 16.

Razmislite o algoritmu dok se ciklus: provjerava stanje. Ako je stanje uistinu, izvodi se ciklus tijela. Nakon toga, stanje se ponovo provjerava. Ako je stanje lažno, ciklus je završen.

Slide 17.

Stoga, kada ciklus s preduvjetom ili ciklusom "dok" (ciklus tijela je i dalje istinsko stanje). Ako, kada prvi put prođete ciklus, stanje će biti lažno, ciklično tijelo nikada neće biti ispunjeno. Ako stanje nikad ne postane lažno, ciklus će se ponavljati beskonačno, i.e. Hladno će se pojaviti.

Slide 18.

Program Ex2; Varchont: Real; (veličina računa) Mjesec: INTEGER; (Broj mjeseci od otvaranja računa) Početak računa: \u003d 1000; (na trošku stavite 1000 rubalja) mjesec: \u003d 0; (Račun se upravo otvorio) whileaccount

Slajd 19.

Ponoviti ciklus

Ponovljeni ciklus, kao i dok se ciklus, koristi u programu ako trebate izvesti ciklus tijelu nekoliko puta, ali broj ponavljanja nije unaprijed nepoznat. Općenito, ciklus ponavljanja piše se na sljedeći način: Ponovite // Ciklus tijela do stanja; Gde ponovite, do - servisne reči. Stanje je izraz logičkog tipa koji određuje kraj ciklusa.

Slide 20.

Razmotrite operativni algoritam ciklusa ponavljanja: ponavljanje i dok se između rezerviranih riječi ne izvrši ciklus. Stanje se provjerava. Ako je stanje uistinu, ciklus je završen. Ako je stanje lažno, telo ciklusa se ponovo izvodi.

Slajd 21.

Stoga je RePet ciklus s post talasom ili ciklusom "do" (ciklus tijela se izvodi u istinit stanja). Shodno tome, ciklično tijelo se izvodi barem jednom. Ako stanje nikada ne postane istinito, ciklus će postati beskonačan.

Slide 22.

Program Ex3; Var time: cijeli broj; (Vrijeme isporuke): cijeli broj; (broj mobitela) Početak vremena: \u003d 0; (ćelija i dalje nikad ne pokreće) ćelije: \u003d 1; (jedno) Vrijeme ponavljanja: \u003d Vrijeme + 3; (nakon naredne tri sata) Ćelije: \u003d Ćelije * 2; (broj ćelija povećan za 2 puta) do ćelija\u003e 24; (do stanja istine "Broj ćelija više od 24") Writeln (vrijeme); (izlaz) Readln; Kraj. Primjer fabrike: jednoćelijska ameba Svaka 3 sata podijeljena je u 2 ćelije. Odredite, nakon koliko sati broj ćelija prelazi 24.

Pogledajte sve slajdove

Slajd 1.

COCTOR RAGOVORI CICIKILNI Algoritam
Prezentacija na predavanje informatike. 9. razred Predmet: Upravljanje i algoritmi

Slide 2.

Za i: \u003d 1 do n počinju akciju1; Action2; Kraj;
Za i: \u003d 1 do n action1; Action2;
1

Slide 3.

2
Dok (uslovno istinito) počinju akciju1; Action2; Kraj;
Dok (uslovno istinito) rade action1; Action2;

Slide 4.

3
17 ćelija
12 ćelija

Slide 5.

4
Program N1; Var i: cijeli broj; Započnite za I: \u003d 1 do 12 do robotforw; Robotleft; Za i: \u003d 1 do 17 do robotforw; Robotleft; Za i: \u003d 1 do 12 do robotforw; Robotleft; Za i: \u003d 1 do 17 do robotforw; Robotleft; Kraj.
Krećući se
Prelazak udesno
Kretanje
Prelazak na levo
Ovo i sljedeće naredbe okreću se u kut robota ulijevo

Slide 6.

5
Ako stavite zid, robot će zaroniti u njega i program će se zaustaviti

Slide 7.

6
Program N2; Var i: cijeli broj; Započnite dok je FreeForw do robotforw; Robotleft; Dok je FreeForw do robotforw; Robotleft; Dok je FreeForw do robotforw; Robotleft; Dok je FreeForw do robotforw; Robotleft; Kraj.
Dok je unaprijed besplatan, izvršite robota naprijed.

Slide 8.

Slajd 9.

8
Program N3; Var i: cijeli broj; Započnite za I: \u003d 1 do 4 počinju dok se Freeforw do robotforw; Robotleft; kraj; Kraj.
Četiri puta da se krene naprijed, sve dok ne nema prepreka i skrenite lijevo

Slide 10.

9
Četiri puta za kretanje naprijed, sve dok ne nema prepreka i skrenite lijevo

Slide 11.

10
Zadaci za nezavisni rad
Zadatak 1. Lijevi zid situacije na proizvoljnom mjestu stavlja se prepreka. Robot bi trebao doći do točke 1 i vratiti se u prvobitno stanje. Napomena: Još koristite tri uzastopno povezana ciklusa.
1
1

Slajd 12.

11
Zadatak 2. Lijevi zid situacije na proizvoljnom mjestu je urezan. Robot bi trebao doći do tereta, odvedi ga da ga prevozi u skladište i vrati se u prvobitno stanje. Napomena: Još koristite dva uzastopno povezana ciklusa.

Slide 13.

12
Zadatak 3. Lijevi zid situacije na proizvoljnoj lokaciji nalazi se pet tereta. Robot mora svi prevoziti u skladište. Napomena: Koristite dva uzastopno povezana ciklusa do sada uložena u ciklus parametrom.

Slide 14.

13
Primjer 1 robot nalazi se ispred ulaza u hodnik. Potrebno je zabilježiti sve ćelije unutar hodnika i vratiti se natrag

Slide 15.

14
Program N7; Započnite robotforw; Iako ne bile freeleft počinju odabrati; Robotforw; kraj; Robotback; Iako nije freeleft do robotback; Kraj.
Naprijed napravimo korak za ulazak u tunel
Dok se s lijeve strane nalazi zid, proslavite kavez i napravite korak naprijed
Vrati se nazad u tunel
Dok je lijevi zid, pomičući korak natrag

Slide 16.

15
Primjer 2 Postoje dva zida koja se isporučuju po uglu. Duljine zidova su proizvoljne. Robot je u uglu između zidova (vidi sliku). Potrebno je napraviti program u kojem robot označava sve ćelije na unutrašnjoj strani zida. Konačni položaj robota proizvoljno.

Slide 17.

16
Program N8; Započnite dok nije freering počinje odabrati; Robotforw; kraj; Dok besplatni povrat robotback; Robotleft; Iako ne bile freeleft počinju odabrati; Robotforw; kraj; Kraj.
Dok desno nije besplatno, slavim ćeliju i napravim korak naprijed.
Vratite robota nazad
Skrenuti ulijevo
Dok lijevo nije besplatno, slavim ćeliju i napravim korak naprijed.

Slide 18.

Slajd 19.

18
Primjer 3 Situacija prekriva zid koji podijeli situaciju na dva dijela. Zid ima prolaz u veličini ćelije na proizvoljnom mjestu. Potrebno je napraviti program u kojem robot nalazi ovaj odlomak i odlazi u drugi dio situacije.

Slide 20.

19
Program N9; Započnite Robotleft; Dok je FreeForw do robotforw; Robotright; Iako nije freeleft do robotforw; Robotleft; Robotforw; Robotforw; Kraj.
Okrenite robota prema zidu.
Krećemo se naprijed dok ne stojim u zidu
Okrenite robota duž zida
Krećući se prema naprijed dok se zid neće završiti
Okrenite robota prema odlomku
Izrađujemo dva koraka naprijed, idemo na drugu polovinu situacije

Opis prezentacije na pojedinačnim slajdovima:

1 slajd

Klizni opis:

Predmet časova: "algoritmi cikličke strukture. Programski ciklusi na Pascalu »Disciplina" Informatika "

2 slajd

Klizni opis:

Glavni pojmovi teme u ovom zanimanju proučavaju se sljedećim konceptima: koncept ciklusa; Sorte cikličkih algoritama (ciklus s preduvjetom, ciklus s postbandom, ciklusom s parametrom); blok dijagrami cikličkih algoritama; Zastupljenost ciklusa operatora u programiranju Pascal-a; Primjena ciklusa prilikom rješavanja problema.

3 Slide

Klizni opis:

Koncept ciklusa prilikom rješavanja mnogih zadataka, jedan i isti niz akcija vrši se nekoliko puta. Na primjer, po priznanju na obrazovne ustanove Student daje ispite, dok su izračunati bodovima postignutim po njima (varijabla s; njena početna vrijednost S: \u003d 0;). Za svaki ispit dobiva procjene N. Ako je procjena veća od "2", a zatim s: \u003d s + n; U suprotnom, zaustavite proračune (izlaz iz ciklusa).

4 slajd

Klizni opis:

Koncept ciklusa ciklusa je niz operatora koji se mogu obavljati više puta. Ciklički algoritam naziva se algoritam koji pruža višestruko ponavljanje iste akcije na novim podacima. Postoje tri vrste operatora ciklusa: ciklusi sa preduvjetom; Ciklusi sa postkondicijom; Ciklusi sa metrom.

5 slajd

Klizni opis:

Ciklus sa preduvjetom. Tip ciklus dok dok propisuje ciklus telo dok se stanje ne izvrši, zabilježeno nakon riječi dijagrama s preduvjetom

6 slajd

Klizni opis:

Ciklus sa preduvjetom. Ciklus tipa, dok se dok se dok ciklus sa gore navedenim koriste kada je broj ponavljanja ciklusa tijela unaprijed nepoznat, a ovisi o stanju. Ako je stanje tačno, tada se ciklus telo izvrši, a zatim provjeravajte uvjete i tako dok stanje ne postane lažno.

7 Slide

Klizni opis:

Ciklus operatera sa prepalom (dok - dok ciklus) ovaj najčešće korišteni operativni operater ima zajednički prikaz Pascala (format): dok<условие> Do<оператор>; Evo dok, uradite - rezervirane riječi (s engleskog: dok-in, uradite - učiniti);<условие> - logički izraz;<оператор> - proizvoljni (možda kompozitni) operater.

8 Slide

Klizni opis:

Ciklus s postbandom. Tip ciklus do redoslijeda operatera ciklusa s detonacijom, izvršenje 1-N operatora se ponavlja dok stanje ne postane ispravno. U ovom ciklusu je stanje verificirano tek nakon tijela ciklusa. Slijedi da tijelo uvijek izvodi barem jednom postchartu s poštanskim kazalištem

9 slajd

Klizni opis:

Ciklus s postbandom. Vrsta ciklusa prije nego što je važno! Ciklus s postovom vrši se barem jednom samostalno od stanja. Nesumnjiva pogodnost ciklusa petlje je da unutar njega možete napisati nekoliko operatera bez upotrebe kompozitnog operatera. Provjera uvjeta je nakon ciklusa tijela. Servisna riječ do.

10 slajd

Klizni opis:

Ciklus operatera s postbandom (tip do ciklusa) Opći prikaz (format) Ciklus operatora sa Pascal Pascalom Sljedeći: Ponavljajte<Оператор 1>; <Оператор 2>; … <Оператор N>; Do<условие>;

11 slajd

Klizni opis:

Primjer primjene operatera ciklusa Postband za izlaz na ekran u paronu, vrijednosti varijable n \u003d 1, 2, 3, 4, 5, 6, 7, 8, 9 i Promjenjiva A \u003d 10, 20, 30, 40, 50, 60, 70 i 70, 80, 90 Ovaj operator bit će: N: \u003d 0; Ponovite N: \u003d N + 1; A: \u003d 10 * n; Writeln (n: 2, '', a: 3); Do n\u003e \u003d 9;

12 slajd

Klizni opis:

Ciklus sa parametrom. Vrsta ciklusa tipa s parametrom koristi se kada želite izvršiti određeni broj ciklusa koraka. Treba napomenuti da Pascal-ov Pascal ciklus nije previše fleksibilan (nasuprot tome, na primjer, iz ove vrste ciklusa na jeziku C). Jer, na Pascalu, parametar ciklusa (ili brojač) varira po vrijednosti jednakim jednom. Stoga, kada je potrebno izvesti frakcijski korak, morate koristiti ciklus dok ste tip. Postoje dvije sorte za ciklus: s povećanjem i smanjenjem vrijednosti brojila (ili parametra). Dijagram blok ciklusa s parametrom (za ciklus)

13 Slide

Klizni opis:

14 Slide

Klizni opis:

Ciklus operatera sa parametrom. Vrsta ciklusa za zajednički prikaz (format) operatora ciklusa s parametrom<счетчик> := <начальное значение> do.<конечное значение> Počnite.<Операторы> kraj; Za<счетчик> := <начальное значение> Do.<начальное значение> Počnite.<Операторы> kraj; Povećanjem vrijednosti brojila (parametar) s padom vrijednosti brojila (parametar)

15 Slide

Klizni opis:

Ciklus operatera sa parametrom. Vrsta ciklusa za operatera koji implementira ciklus - za upotrebu se koristi ako je potrebno da se fragment programa ponovio određeni broj puta za<переменная цикла>: = <начальное значение> To<конечное значение> Do<оператор>; Ovdje: za, do, do - rezervirane riječi (engleski: za, prije, izvršite);<счетчик (параметр) цикла> - tip varijabla Cijeli broj koji varira od segmenta iz<начального значения>, povećavajući jedinicu na kraju svakog koraka ciklusa;<оператор> - Bilo koji (češće kompozitni) operater.

16 Slide

Klizni opis:

Ciklus operatera sa parametrom. Ciklus tipa za izjavu sastoji se od zaglavlja i ciklusa tijela. Kompozitni operater smješten u ciklusu tijela mora biti priložen u početni i krajnjim operaterima. · Identifikator brojila se obično koristi "I". · Varijabla metra mora biti vrsta sekvence. Na primjer, tip cijelih: bajt, cijeli broj. · Početne i krajnje vrijednosti ciklusa parametra ne mogu se mijenjati tokom ciklusa. · Za operatera se koristi za organizovanje ciklusa sa fiksnim, unaprijed poznatim ili određenim tokom izvršenja programa po broju ponavljanja.

17 Slide

Klizni opis:

Upotreba ciklusa prilikom rješavanja problema, svaki gore opisani ciklusi može se koristiti za programiranje pascala istih zadataka cikličkim algoritmom.

18 Slide

Klizni opis:

Broj zadatka 1 Otvorite program Pascalabc.net (Integrirani programi za programe Pascal) Spremite program u mapu sa vašim imenom u sistemu radna mapa Pabcwork.net \\ your_in / cikl_1.pas Sačuvaj kako ...

19 slajd

Klizni opis:

Broj zadatka 1 Korištenje ciklusa dok (s preduvjetom) za izradu i uklanjanje pogrešaka koji izračunava zbroj kvadrata svih prirodnih brojeva od 1 do 100. Početni podaci: A: Integer; Rezultat - Iznos: S: Longint; Program Ex1; Var A: cijeli broj; S: Longint; (Dugi cijeli broj) započnite: \u003d 1; S: \u003d 0; (varijabla s akumuliranim iznosima) dok a<=100 Do { Начало цикла – проверка условия } Begin S:=S+A*A; A:=A+1 End; Writeln(‘Вывод результата S= ’ ,S) End. Сохранить программу в папке с Вашим именем в системной рабочей папке PABCWork.NET \ Ваше_имя\Cikl_1.pas

20 Slide

Klizni opis:

Zadatak 2. Izvijati cikličku strukturu na Pascal jeziku u programu Pascalabc.net ABC okruženje; VAR X, U: INTEGER; Započnite X: \u003d 2; Dok je 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























Naprijed

Pažnja! Pregledi za pregled koristi se isključivo u informativne svrhe i ne može pružiti ideje o svim mogućnostima prezentacije. Ako vas zanima ovaj posao, preuzmite punu verziju.

Svrha: Proučavanje algoritamske strukture ciklusa, stvaranje modela i algoritama za rješavanje praktičnih problema.

Tokom nastave

I. Aktuelizacija znanja

  • Ponovite koncept algoritma, osnovnih dizajna algoritamskog jezika.
  • Da biste mogli razviti matematički model, algoritam i blok shemu za rješavanje problema.
  • Imaju koncept programskih jezika i njihovog imenovanja.
  • Biti u mogućnosti raditi u programskom okruženju.
  • Znate strukturu programa.
  • Moći snimati izraze koji sadrže numeričke i karakteristične vrijednosti.
  • Znati strukturu operatora i karakteristika njihovog rada.
  • Da biste mogli primijeniti operatere prilikom pisanja programa sa linearnim i granarskim konstrukcijama.
  • Da biste mogli stvoriti i pokrenuti programe za uklanjanje pogrešaka.

II. Lekcija teorijske materijale

Najviše praktičnijih zadataka zahtijeva višestruko ponavljanje istih akcija, tj. Ponovna upotreba jednog ili više operatera. (Prezentacija)

Neka bude potrebno unijeti i obraditi niz brojeva. Ako su brojevi samo pet, možete napraviti linearni algoritam. Ako ih ima na hiljade, napišite linearni algoritam, ali vrlo mučni i iracionalni. Ako je broj brojeva do trenutka nepoznat algoritam, linearni algoritam je u osnovi nemogući.

Još jedan primer. Da biste pronašli prezime osobe na listi, morate provjeriti ime popisa, a zatim drugi, treći itd. Dok se ne nađe željeni ili kraj popisa ili neće biti pronađeni. Možete prevladati takve poteškoće sa ciklusima.

Ciklus se naziva višestruki izvršni deo algoritma (programa). U skladu s tim, ciklički algoritam je algoritam koji sadrži cikluse.

Postoje dvije vrste ciklusa: sa poznatim brojem ponavljanja i sa nepoznatim brojem ponavljanja. U isto vrijeme, u oba slučaja postoji niz ponavljanja u fazi razvoja algoritma.

Postoje 3 vrste cikličkih struktura:

  • Ciklus sa preduvjetom;
  • Ciklus uz afteriniciju;
  • Ciklus sa parametrom;

U suprotnom, ove se strukture nazivaju "do", "za" cikluse tipa.

Grafički oblik algoritamskih konstrukcija za snimanje podataka:

Ciklus sa preduvjetom (u suprotnom ciklusu do) Izgleda:

stanje - logički izraz.

Ciklus se ne može izvršiti ako se vrijednost logičkog izražavanja odmah ispruži laž.

Serija naredbi smještenih između početka i kraja obavljaju se do do sada je stanje tačno .

Za na kraj ciklusa, potrebno je da slijed upute između početka i kraja promijene vrijednost varijabli uključenih u stanje.

Ciklus sa postkondicijom (u suprotnom ciklusu prije) Izgleda:

stanje - logički izraz.

Bilješka:

Niz uputa između svakogponovite. ido. uvek će biti ispunjena barem jednom;

Da bi se ciklus završio, potrebno je da slijed operatora izmeđuponovite. ido. Promijenili su vrijednosti varijabli uključenih u stanje izraza.

Ponovna uputstva, kao i dok se pouči, koristi se u programu, ako trebate provesti neke ponavljajuće proračune (ciklus), ali broj ponavljanja nije poznat unaprijed i određuje se brojem samog izračuna.

Ciklus sa parametrom (u suprotnom ciklusu za) Ima obrazac:

i - parametar ciklusa;
A - početna vrijednost ciklusa;
b - konačna vrijednost ciklusa;
H je korak promjene parametara.

Struktura ovog ciklusa inače je zvana ciklus I puta.

Ova naredba se vrši na ovaj način: parametar koji sam dodijelio početnu vrijednost A uspoređen je s konačnom vrijednošću B i, ako je manja ili jednaka konačnoj vrijednosti B, vrši se niz naredbi. Parametar je dodijeljen vrijednost prethodnog, povećanog h. - Koraci promjena parametra i opet u usporedbi s konačnom vrijednošću b.

Na programskom jeziku Pascal, korak promjene parametara može biti jednak jednom ili minusu.

Ako je samo jedan operator između početka i kraja, nosači operatera ne mogu pisati. Ovo pravilo radi za ciklus tipa "ipak" i "za".

Razmotrite primjer rješavanja zadataka pomoću ovih struktura.

Primjer.

Izračunajte proizvod brojeva od 1 do 5 pomoću različitih opcija ciklusa.

Matematički model:

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

Napravimo algoritam u obliku dijagrama u toku.

Da biste provjerili ispravnost algoritma, napunite tablicu u tragovima.

Korak Operacija R i. Provjera stanja
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, нет (ложь)

Uvjeti provjere nastaju u nekoliko koraka: provjeravanje uvjeta i izvršenja naredbi na jednoj od grana. Stoga tablica u tragovima ne bilježi naredbe algoritama, već odvojene operacije koje obavljaju računar na svakom koraku.

Popisati jedan: P je dodijeljen vrijednost.

Drugi korak: Dodijeljen sam jednom.

Treći korak: Na i ravnopravnoj jedinici provjeravam stanje manje ili jednako pet, da, stanje je istinito, znači da vrijednost jednog pomnoženog na jedan bit će dvije. Za i: jedan plus jedan, bit će dva.

Četvrti korak:nadleban je da je stanje trenutno manje ili jednako pet, da, uvjet je istinito, to znači da će vrijednost 2 pomnožiti na jedan, biti 2. za I: dva plus jedan, bit će tri plus jedan .

Napit peti:nadju tri, provjeravamo stanja tri manje ili jednaku pet, da, uvjet je istinita, što znači da p dodjeljuje vrijednost dva pomnožena za tri, bit će šest. Za i: tri plus jedan, bit će četiri.

Korak šest:na jednako četiri, stanje je četiri manje ili jednako pet, da, stanje je istinito, znači da vrijednost šest pomnožena sa četiri bit će dvadeset četiri. Za i: četiri plus jedan, bit će pet.

Korak sedmu:za mene je jednako pet, stanje je pet manje ili jednako pet, da, stanje je istinito, to znači da vrijednost dvadeset četiri pomnožena za pet godina bit će sto dvadeset. Za i: Pet plus jedan, bit će šest.

Osmo korak:nadležen je u šest, stanje je šest manje ili jednako pet, ne, stanje je lažno, a zatim ostavljamo ciklus, a kao rezultat dobivamo zadnju vrijednost jednaku cijeni od sto dvadeset.

Program PR1;
Var i: cijeli broj;
Započnite.
P: \u003d 1;
i: \u003d 1;
Dok sam ja.<=5 do
Započnite.
P: \u003d p * i;
i: \u003d i + 1;
kraj;
Pisati ('p \u003d', p);
kraj.

Za ciklus sa deselacijom izgrađujemo blok dijagram i tablicu u tragovima. (slajd16)

Kao rezultat toga, zadnju vrijednost dobivamo jednakoj sto dvadeset na sedmom koraku

A za ciklus sa parametrom izgrađujemo blok dijagram i tablicu u tragovima. (slajd17)

Kao rezultat toga, dobivamo posljednju vrijednost jednaku stotinu dvadeset na šestom koraku

Zadatak:

Prikažite brojeve od 1 do 5 V:

  1. direktno;
  2. obrnuti red.

Matematički model:

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

Blok dijagram i problem rješavanja problema predstavljeni su za brojeve u direktnom i obrnutom redoslijedu.

(Slajd 21)

Snimamo razmatrane algoritme na programskom jeziku Pascal.

(Slajd 22)

III. Sažimanje lekcije

I tako smo pregledali sljedeća pitanja:

  1. Ciklus algoritamske strukture;
  2. Vrste algoritamskih struktura:
    1. Ciklus sa preduvjetom;
    2. Ciklus uz afteriniciju;
    3. Ciklus sa parametrom;
  3. Smatrali su načinima na pisanje ovih struktura;
  4. Rastavljeni primjeri rješavanja problema uz pomoć ovih struktura.

Ciklički algoritami06.04.2017
Ciklički algoritmi
Vrste ciklusa i cikličke
Timovi na Pascalu

Ciklus se ponavlja
Ponavljanje sekvence
akcija
Ponavljajući dio algoritma
nazvan ciklus telo
Vrste ciklusa
Sa danim brojem
Ponavljanja
Pojmovi uslovi
ciklus
Sa stanjem
Izlazni uvjet je
ciklus

Vrste ciklusa (sadržaj)
Ciklus sa preduvjetom
Vježbati
Ciklus sa postbandom
Vježbati
Ciklus sa parametrima
Vježbati
Rješenje složenih zadataka

Ciklus sa preduvjetom

Vježbati

Stanje i radnja koja treba obaviti samo
Nakon provjere uvjeta koristite ciklus u preduvjetu.


Prije provjere svakog izvršenja ciklusa tijela
Uslovi, ako je rezultat "istine", tada se izvodi ciklusa tijela
Još jednom, ako "laže", tada postoji izlaz iz ciklusa.
Na bloku - šema
Početni ciklus
Ne
Stanje
Da
Ciklus telo
Kraj ciklusa
U Pascalu.
Dok<условие> učiniti.
Započnite.
<тело цикла>
kraj;

Ciklus sa postbandom

Vježbati
Ako je broj ponavljanja nepoznat unaprijed, ali samo naveden
stanje i radnju koja se mora obaviti prije
Stanje provjerava ciklus koristite s poštanskim kakalom.
Kao uvjet koristi se logički izraz, tijelo
Ciklus je jednostavan ili kompozitni operater.
Nakon svakog izvršenja ciklusa tijela, čekovi
Uvjeti Ako je rezultat "FALSE", tada se izvodi ciklus tijela
Još jednom, ako je "istina", tada postoji izlaz iz ciklusa.
Na bloku - šema
U Pascalu.
Ponovite.
Ciklus telo
<тело цикла>
Da
Ne
Stanje
Do<условие>;

Ciklus sa parametrom

Vježbati
Ciklus sa parametrom
U slučajevima kada je broj ponavljanja unaprijed poznat
Ciklus se koristi u parametru.
Naziva se varijabla koja određuje broj ponavljanja
Ciklus parametar ili kontrolna varijabla.
Nakon svakog upravljanja ciklusom izvođenja tijela
Varijabla se povećava ili smanjuje, ciklus
Trči se dok nije vrijeme dok ne pređe ni jedno
biće manje ograničenja.
Na bloku - šema
U Pascalu.
Za X: \u003d A do B doo
X: \u003d A, B, C
Ciklus telo
X - Kontrolna varijabla (ciklus parametar)
A - početno značenje x, u - konačno x
C - korak promjene x
Započnite.
<тело цикла>
Kraj;
Kao korak koji možete koristiti
Samo:
"Do" \u003d 1;
"Downto" \u003d -1

Primjer zadatka pomoću ciklusa s preduvjetom
Teorija

Sliver algoritam:
Pomnožite broj x u početku je jednak 1
Navedeni broj puta (h) do 3.
Počnite
Program Stepten;
Var.
H, B, X: INTEGER;
Započnite.
Writeln ('stepen?' ');
Readln (H);
X: \u003d 1;
B: \u003d 1;
Dok B.<=H do
Započnite.
X: \u003d x * 3;
B: \u003d B + 1;
Kraj;
Writeln ('rezultat', x);
Kraj.
Pascal
N.
Unesite određenu stepenu
X: \u003d 1
Početne vrijednosti
B: \u003d 1
Ne
Broj stepena "B"
B≤h.
Da
X: \u003d x * 3
Množenje za 3.
B \u003d u + 1
Povećati brojilo
H.
Odrediti primljenog
Vrijednosti
kraj
Blok dijagram
Objašnjenje

Primjer zadatka pomoću ciklusa s postcalom
Teorija
Zadatak: Podignite broj 3 u određenoj mjeri
Sliver algoritam:

Program Stepten;
Var.
H, B, X: INTEGER;
Započnite.
Writeln ('stepen?' ');
Readln (H);
X: \u003d 1;
B: \u003d 0;
Ponovite.
X: \u003d x * 3;
B: \u003d B + 1;
Ne
Do b\u003e \u003d h;
Writeln ('rezultat', x);
Kraj.
Počnite
N.
Unesite određenu stepenu
X: \u003d 1
Početne vrijednosti
B: \u003d 0
Množenje za 3.
X: \u003d x * 3
Povećati brojilo
B \u003d u + 1
Da
B\u003e \u003d h
Broj stepena "B"
H.
Odrediti primljenog
Vrijednosti
kraj
Pascal
Blok dijagram
Objašnjenje

Primjer zadatka pomoću ciklusa sa parametrom
Teorija
Zadatak: Podignite broj 3 u određenoj mjeri
Sliver algoritam:
Pomnožite broj x u početku je jednak 1 određeni broj puta (h) do 3.
Program Stepten;
Var.
H, B, X: INTEGER;
Započnite.
Writeln ('stepen?' ');
Readln (H);
X: \u003d 1;
Za B: \u003d 1 do H doo
Započnite.
X: \u003d x * 3;
Kraj;
Writeln ('rezultat', x);
Kraj.
Pascal
Počnite
N.
X: \u003d 1
B: \u003d 1, h, 1
X: \u003d x * 3
H.
kraj
Blok dijagram
Unesite određenu stepenu
Početna vrijednost x \u003d 1
Parametri od 1 BC
Množenje za 3.
Odrediti primljenog
Vrijednosti
Objašnjenje

Odabir ciklusa ovisi o karakteristikama problema. Samo će vam praksa reći optimalno rješenje.

Zadatak: Početni trening, sportaš prvog dana
trčao 10 km. Svaki dan je povećao dnevnu svjetlost
Norma za 10% norme prethodnog dana.
Ono što ukupni put vodi sportaš 7 dana.
Ulazna varijabla:
D - Broj dana
SD - Udaljenost za tekući dan
Izlazne varijable:
S - zajednički način

Blok - shema za rješavanje

počnite
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.
Da
S.
kraj

Program na Pascalu

Ciklus "za"
Ciklus "dok"
Ciklus "prije"
Program Početni program;
Program Početni program;
Program Početni program;
Var.
Var.
Var.
S, SD: Real;
S, SD: Real;
S, SD: Real;
D: bajt;
D: bajt;
D: bajt;
Započnite.
Započnite.
Započnite.
S: \u003d 10;
S: \u003d 10;
S: \u003d 10;
SD: \u003d 10;
SD: \u003d 10;
SD: \u003d 10;
Za D: \u003d 2 do 7 učiniti
Započnite.
Dok je D.<7 do
Započnite.
Ponovite.
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;
kraj;
S: \u003d S + SD;
Do (d \u003d 7);
Writeln ('s \u003d', s);
kraj;
Writeln ('s \u003d', s);
Kraj.
Writeln ('s \u003d', s);
Kraj.
Kraj.

Pitanja za kontrolu:
1. Koji je operater u Pascalu postavljen ciklus
Provesti
2. Kao što u ciklusu parametra označite korak "1" i "-1"
3. Koja grana dolazi iz ciklusa sa
postkondicioniranje
4. Postoji li ciklus sa parametrom stanja
5. Šta bi moglo biti ciklus tijela
6. Kada se ciklus koristi sa parametrima
kraj