Halimbawa ng cyclic algorithm ICT pascal. Pagtatanghal - cyclic algorithm. Loop na may precondition

Paglalarawan ng pagtatanghal sa pamamagitan ng mga indibidwal na slide:

1 slide

Paglalarawan ng slide:

Paksa ng aralin: “Algorithm para sa cyclic structure. Programming loops sa Pascal" Discipline "Informatics"

2 slide

Paglalarawan ng slide:

Pangunahing konsepto ng paksa Sa araling ito ang mga sumusunod na konsepto ay pinag-aaralan: ang konsepto ng isang cycle; mga uri ng cyclic algorithm (loop na may precondition, loop na may postcondition, loop na may parameter); block diagram ng cyclic algorithm; representasyon ng mga loop operator sa Pascal programming language; ang paggamit ng mga loop sa paglutas ng mga problema.

3 slide

Paglalarawan ng slide:

Ang konsepto ng isang cycle Kapag nilulutas ang maraming mga problema, ang parehong pagkakasunud-sunod ng mga aksyon ay ginaganap nang maraming beses. Halimbawa, sa pagpasok sa isang institusyong pang-edukasyon, ang isang mag-aaral ay kumukuha ng mga pagsusulit, at ang mga puntos na kanyang nakuha ay kinakalkula (variable S; ang paunang halaga nito ay S:=0;). Para sa bawat pagsusulit na naipasa, siya ay tumatanggap ng grado N. Kung ang grado ay mas mataas sa "2", kung gayon S:= S + N; kung hindi, itigil ang mga kalkulasyon (lumabas sa loop).

4 slide

Paglalarawan ng slide:

Konsepto ng Loop Ang loop ay isang pagkakasunod-sunod ng mga pahayag na maaaring isagawa nang higit sa isang beses. Ang cyclic algorithm ay isang algorithm na nagsasangkot ng paulit-ulit na pag-uulit ng parehong aksyon sa bagong data May tatlong uri ng loop operator: mga loop na may precondition; mga loop na may postcondition; mga cycle na may counter.

5 slide

Paglalarawan ng slide:

Loop na may precondition. Uri ng loop WHILE WHILE Nagtuturo na isagawa ang katawan ng loop hanggang matugunan ang kundisyon na nakasulat pagkatapos ng salitang while

6 slide

Paglalarawan ng slide:

Loop na may precondition. Uri ng loop WHILE WHILE Ang isang loop na may precondition ay ginagamit kapag ang bilang ng mga pag-uulit ng loop body ay hindi alam nang maaga, ngunit depende sa katuparan ng kundisyon. Kung totoo ang kundisyon, ang katawan ng loop ay isasagawa, pagkatapos ay susuriin muli ang kundisyon, at iba pa hanggang sa maging mali ang kundisyon.

7 slide

Paglalarawan ng slide:

Loop operator na may precondition (WHILE loop type) Ang pinakakaraniwang ginagamit na loop operator ay may pangkalahatang anyo sa Pascal (format): WHILE<условие>GAWIN<оператор>; dito WHILE, DO - mga nakalaan na salita (mula sa English: while - while, do - do);<условие>- pagpapahayag ng lohikal na uri;<оператор>- isang arbitrary (posibleng tambalan) operator.

8 slide

Paglalarawan ng slide:

Loop na may postcondition. Uri ng loop DO Ang pagkakasunud-sunod ng pagpapatupad ng isang operator ng loop na may postcondition Ang pagpapatupad ng mga operator na 1-N ay inuulit hanggang sa maging totoo ang kundisyon. Sa loop na ito, ang kundisyon ay nasuri lamang pagkatapos na maisakatuparan ang katawan ng loop. Ito ay sumusunod na ang katawan ay palaging pinaandar kahit isang beses

Slide 9

Paglalarawan ng slide:

Loop na may postcondition. Uri ng cycle MAHALAGA! Ang isang loop na may postcondition ay isinasagawa nang hindi bababa sa isang beses, hindi alintana kung ang kundisyon ay nasiyahan. Ang walang alinlangan na kaginhawahan ng isang loop na may postcondition ay ang ilang mga pahayag ay maaaring isulat sa loob nito nang hindi gumagamit ng isang compound operator. Ang pagsusuri sa kondisyon ay matatagpuan pagkatapos ng katawan ng loop. Serbisyong salita HANGGANG

10 slide

Paglalarawan ng slide:

Loop operator na may postcondition (LOC type DO - HANGGANG) Ang pangkalahatang anyo (format) ng loop operator na may postcondition sa Pascal ay ang mga sumusunod: Ulitin<Оператор 1>; <Оператор 2>; … <Оператор N>; Hanggang sa<условие>;

11 slide

Paglalarawan ng slide:

Isang halimbawa ng paggamit ng loop operator na may postcondition Upang ipakita sa mga pares ang mga halaga ng variable n=1, 2, 3, 4, 5,6, 7, 8, 9 at ang variable na a=10, 20, 30 , 40, 50, 60, 70, 80, 90 ang magiging hitsura ng operator na ito: n:= 0; ulitin n:=n+1; a:=10*n; writeln(n:2,’ ‘,a:3); hanggang n>=9;

12 slide

Paglalarawan ng slide:

Loop na may parameter. Loop ng uri PARA Ang isang loop na may isang parameter ay ginagamit kapag ito ay kinakailangan upang magsagawa ng isang tinukoy na bilang ng mga hakbang sa loop. Dapat pansinin na ang FOR loop sa Pascal ay hindi masyadong nababaluktot (hindi katulad, halimbawa, ang ganitong uri ng loop sa C). Dahil, sa Pascal, ang loop parameter (o counter) ay binago ng halagang katumbas ng isa. Kaya, kapag kailangan mong magsagawa ng fractional na hakbang, dapat kang gumamit ng WHILE loop. Mayroong dalawang uri ng FOR loop: pagtaas at pagbaba ng mga halaga ng counter (o parameter). Block diagram ng isang loop na may parameter (PARA sa loop)

Slide 13

Paglalarawan ng slide:

Slide 14

Paglalarawan ng slide:

Operator ng loop na may parameter. PARA sa loop Pangkalahatang view (format) ng isang loop operator na may para sa parameter<счетчик> := <начальное значение>sa<конечное значение>simulan mo na<Операторы>wakas; para sa<счетчик> := <начальное значение>pababa sa<начальное значение>simulan mo na<Операторы>wakas; na may pagtaas ng mga halaga ng counter (parameter) na may bumababa na mga halaga ng counter (parameter).

15 slide

Paglalarawan ng slide:

Operator ng loop na may parameter. FOR loop Ang isang operator na nagpapatupad ng FOR loop - FOR ay ginagamit kung kinakailangan para sa isang fragment ng programa na ulitin sa isang tinukoy na bilang ng beses PARA<переменная цикла>: = <начальное значение>NA<конечное значение>GAWIN<оператор>; Dito: FOR, TO, DO - mga nakalaan na salita (Ingles: for, to, execute);<счетчик (параметр) цикла>- isang variable ng uri ng INTEGER, na nagbabago sa isang segment mula sa<начального значения>, pagtaas ng isa sa dulo ng bawat hakbang ng cycle;<оператор>- anumang (karaniwang tambalan) operator.

16 slide

Paglalarawan ng slide:

Operator ng loop na may parameter. FOR Loop Ang FOR statement ay binubuo ng isang loop ulo at katawan. Ang isang tambalang pahayag sa loob ng katawan ng isang loop ay dapat na nakapaloob sa panimula at pagtatapos na panaklong. · Karaniwang ginagamit ang "i" bilang counter identifier. · Ang counter variable ay dapat na ordinal na uri. Halimbawa, uri ng integer: byte, integer. · Ang mga halaga ng simula at pagtatapos ng isang parameter ng loop ay hindi mababago habang tumatakbo ang loop. · Ang FOR operator ay ginagamit upang ayusin ang mga loop na may nakapirming bilang ng mga pag-uulit, na alam nang maaga o tinutukoy sa panahon ng pagpapatupad ng programa.

Slide 17

Paglalarawan ng slide:

Paggamit ng mga loop sa paglutas ng mga problema Ang bawat isa sa mga loop na inilarawan sa itaas ay maaaring gamitin upang i-program ang parehong mga problema sa isang cyclic algorithm sa Pascal.

18 slide

Paglalarawan ng slide:

Gawain Blg. 1 Buksan ang PascalABC.NET program (integrated development environment para sa mga program sa Pascal programming language) I-save ang program sa isang folder na may pangalan mo sa system working folder PABCWork.NET\Your_name\Cikl_1.pas Save as...

Slide 19

Paglalarawan ng slide:

Gawain Blg. 1 Gamit ang WHILE loop (na may precondition), lumikha at mag-debug ng isang program na kinakalkula ang kabuuan ng mga parisukat ng lahat ng natural na numero mula 1 hanggang 100. INITIAL DATA: A: integer; RESULTA - kabuuan: S: Longint; Programa Ex1; Var A: Integer; S: Longint; ( Mahabang integer) Simulan ang A:=1; S:=0; (variable S para sa naipon na kabuuan) Habang ang A<=100 Do { Начало цикла – проверка условия } Begin S:=S+A*A; A:=A+1 End; Writeln(‘Вывод результата S= ’ ,S) End. Сохранить программу в папке с Вашим именем в системной рабочей папке PABCWork.NET \ Ваше_имя\Cikl_1.pas

20 slide

Paglalarawan ng slide:

GAWAIN 2. I-debug ang isang cyclic structure program sa Pascal sa PascalABC.NET environment Program abc; var x, y: integer; simulan ang x:=2; habang ang 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

Mga paikot na algorithm04/06/2017
Mga paikot na algorithm
Mga uri ng cycle at cyclic
Utos ni Pascal

Ang isang cycle ay maramihang
pag-uulit ng pagkakasunod-sunod
mga aksyon
Paulit-ulit na bahagi ng algorithm
tinatawag na BODY OF THE LOOP
Mga uri ng cycle
Sa ibinigay na numero
mga pag-uulit
Kondisyon ng katuparan
ikot
May kondisyon
Kondisyon sa paglabas
ikot

Mga uri ng mga cycle (nilalaman)
Loop na may precondition
Magsanay
Loop na may postcondition
Magsanay
Loop na may mga parameter
Magsanay
Paglutas ng mga kumplikadong problema

Loop na may precondition

Magsanay

kundisyon, at ang aksyon na dapat gawin lamang
Pagkatapos suriin ang mga kundisyon, gumamit ng loop sa precondition.


Bago ang bawat pagpapatupad ng loop body, isang tseke ang nangyayari
mga kondisyon, kung ang resulta ay "totoo", pagkatapos ay ang katawan ng loop ay naisakatuparan
Muli, kung "false", pagkatapos ay lalabas ang loop.
Sa block diagram
Simula ng cycle
Hindi
Kundisyon
OO
Loop na katawan
Katapusan ng cycle
Sa Pascal
Habang<условие>gawin
magsimula
<тело цикла>
wakas;

Loop na may postcondition

Magsanay
Kung ang bilang ng mga pag-uulit ay hindi alam nang maaga, ngunit ibinigay lamang
kondisyon, at ang aksyon na dapat gawin bago
Ang mga pagsusuri sa kundisyon ay gumagamit ng loop na may postcondition.
Ang isang lohikal na expression ay ginagamit bilang isang kondisyon, katawan
loop – simple o tambalang operator.
Pagkatapos ng bawat pagpapatupad ng loop body, isang tseke ang nangyayari
kundisyon, kung mali ang resulta, ang katawan ng loop ay isasagawa
Muli, kung "totoo", pagkatapos ay lalabas ang loop.
Sa block diagram
Sa Pascal
Ulitin
Loop na katawan
<тело цикла>
Oo
Hindi
Kundisyon
Hanggang sa<условие>;

Loop na may parameter

Magsanay
Loop na may parameter
Sa mga kaso kung saan ang bilang ng mga pag-uulit ay alam nang maaga
ang isang loop ay inilapat sa parameter.
Ang variable na tumutukoy sa bilang ng mga pag-uulit ay tinatawag
loop parameter o control variable.
Pagkatapos ng bawat pagpapatupad ng loop body, ang kontrol
variable na pagtaas o pagbaba, loop
ay isinasagawa hanggang sa ito ay lumampas sa alinman
magkakaroon ng mas kaunting paghihigpit.
Sa block diagram
Sa Pascal
Para sa X:=A hanggang B gawin
X:=A,B,C
Loop na katawan
X – control variable (parameter ng cycle)
A – paunang halaga ng X, B – panghuling halaga ng X
C - baguhin ang hakbang X
Magsimula
<тело цикла>
Wakas;
Bilang isang hakbang na maaari mong gamitin
lamang:
"sa" = 1;
"pababa" = -1

Halimbawang gawain gamit ang isang loop na may precondition
Teorya

Verbal algorithm:
I-multiply ang numerong X sa una ay katumbas ng 1
isang naibigay na bilang ng beses (N) ng 3.
simulan
Hakbang ng Programa;
Var
H,B,X:integer;
Magsimula
Writeln('Degree?');
Readln(H);
X:=1;
B:=1;
Habang si B<=H do
Magsimula
X:=X*3;
B:=B+1;
Wakas;
Writeln('Resulta',X);
Tapusin.
Pascal
N
Pagpasok sa nais na antas
X:=1
Mga paunang halaga
B:=1
Hindi
"B" degree counter
B≤H
Oo
X:=X*3
Multiply sa 3
B=B+1
Kontra sa pagtaas
X
Output ng resulta
mga halaga
wakas
Block Diagram
Mga paliwanag

Halimbawa ng gawain gamit ang loop na may postcondition
Teorya
GAWAIN: Itaas ang numero 3 sa isang ibinigay na kapangyarihan
Verbal algorithm:

Hakbang ng Programa;
Var
H,B,X:integer;
Magsimula
Writeln('Degree?');
Readln(H);
X:=1;
B:=0;
Ulitin
X:=X*3;
B:=B+1;
Hindi
Hanggang B>=H;
Writeln('Resulta',X);
Tapusin.
simulan
N
Pagpasok sa nais na antas
X:=1
Mga paunang halaga
B:=0
Multiply sa 3
X:=X*3
Kontra sa pagtaas
B=B+1
Oo
B>=H
"B" degree counter
X
Output ng resulta
mga halaga
wakas
Pascal
Block Diagram
Mga paliwanag

Halimbawang gawain gamit ang isang loop na may parameter
Teorya
GAWAIN: Itaas ang numero 3 sa isang ibinigay na kapangyarihan
Verbal algorithm:
I-multiply ang numerong X, sa una ay katumbas ng 1, isang tinukoy na bilang ng beses (H) ng 3.
Hakbang ng Programa;
Var
H,B,X:integer;
Magsimula
Writeln('Degree?');
Readln(H);
X:=1;
Para sa B:=1 hanggang H gawin
Magsimula
X:=X*3;
Wakas;
Writeln('Resulta',X);
Tapusin.
Pascal
simulan
N
X:=1
B:=1,H,1
X:=X*3
X
wakas
Block Diagram
Pagpasok sa nais na antas
Paunang halaga X=1
Mga parameter mula 1 hanggang H
Multiply sa 3
Output ng resulta
mga halaga
Mga paliwanag

Ang pagpili ng cycle ay depende sa mga katangian ng mga kondisyon ng problema. Ang pagsasanay lamang ang magsasabi sa iyo ng pinakamainam na solusyon.

Gawain: Pagsisimula ng pagsasanay, ang atleta sa unang araw
tumakbo ng 10 km. Araw-araw dinadagdagan niya ang araw-araw
ang pamantayan ay 10% ng pamantayan ng nakaraang araw.
Ano ang kabuuang distansya na sasakupin ng atleta sa loob ng 7 araw?
Mga variable ng input:
d - bilang ng mga araw
Sd – distansya para sa kasalukuyang araw
Mga variable ng output:
S - karaniwang landas

Block - diagram para sa solusyon

simulan
S:=10
Sd:=10
d:=1
d:=d+1
Sd:=Sd*1.1
S:=S+Sd
Hindi
D=7
Oo
s
wakas

Programa sa Pascal

Ikot "Para sa"
Ikot ng "Bye"
Ikot "Noon"
Programa humingi;
Programa humingi;
Programa humingi;
Var
Var
Var
S,Sd: tunay;
S,Sd: tunay;
S,Sd: tunay;
d:byte;
d:byte;
d:byte;
Magsimula
Magsimula
Magsimula
S:=10;
S:=10;
S:=10;
Sd:=10;
Sd:=10;
Sd:=10;
Para sa d:=2 hanggang 7 gawin
magsimula
Habang d<7 do
magsimula
Ulitin
d:=d+1;
Sd:=1.1*Sd;
d:=d+1;
Sd:=1.1*Sd;
S:=S+Sd;
Sd:=1.1*Sd;
S:=S+Sd;
wakas;
S:=S+Sd;
hanggang (d=7);
Writeln(‘S=‘,S);
wakas;
Writeln(‘S=‘,S);
Tapusin.
Writeln(‘S=‘,S);
Tapusin.
Tapusin.

Mga tanong para sa kontrol:
1. Aling operator sa Pascal ang tumutukoy sa isang loop na may
paunang kondisyon
2. Paano tukuyin ang hakbang na "1" at "-1" bilang mga parameter sa isang loop
3. Aling sangay ang lalabas ng loop?
postkondisyon
4. Mayroon bang mga kundisyon sa isang loop na may parameter?
5. Ano ang maaaring katawan ng isang loop
6. Kapag gumagamit ng isang loop na may mga parameter
Tapusin























Bumalik Pasulong

Pansin! Ang mga slide preview ay para sa mga layuning pang-impormasyon lamang at maaaring hindi kumakatawan sa lahat ng mga tampok ng pagtatanghal. Kung interesado ka sa gawaing ito, mangyaring i-download ang buong bersyon.

Target: pag-aaral ng algorithmic na istraktura ng mga cycle, paglikha ng mga modelo at algorithm para sa paglutas ng mga praktikal na problema.

Pag-unlad ng aralin

I. Pag-update ng kaalaman

  • Suriin ang konsepto ng isang algorithm at ang mga pangunahing konstruksyon ng isang algorithmic na wika.
  • Magagawang bumuo ng mathematical model, algorithm at block diagram para sa paglutas ng problema.
  • Magkaroon ng pag-unawa sa mga programming language at ang kanilang mga layunin.
  • Makapagtrabaho sa isang programming environment.
  • Alamin ang mga istruktura ng programa.
  • Magsulat ng mga expression na naglalaman ng numerical at symbolic na dami.
  • Alamin ang mga istruktura ng mga operator at ang mga tampok ng kanilang trabaho.
  • Magagamit ang mga operator kapag nagsusulat ng mga programa na may mga linear at branching na istruktura.
  • Makagawa at magpatakbo ng mga program sa isang computer para sa pag-debug.

II. Teoretikal na materyal ng aralin

Karamihan sa mga praktikal na problema ay nangangailangan ng paulit-ulit na pag-uulit ng parehong mga aksyon, iyon ay, muling paggamit ng isa o higit pang mga operator. (Pagtatanghal)

Ipagpalagay na kailangan mong magpasok at magproseso ng isang pagkakasunud-sunod ng mga numero. Kung mayroon lamang limang numero, maaari kang lumikha ng isang linear algorithm. Kung mayroong isang libo sa kanila, posible na magsulat ng isang linear algorithm, ngunit ito ay napaka nakakapagod at hindi makatwiran. Kung ang bilang ng mga numero ay hindi alam sa oras na binuo ang algorithm, ang isang linear na algorithm ay sa panimula ay imposible.

Isa pang halimbawa. Upang mahanap ang apelyido ng isang tao sa listahan, kailangan mong suriin ang unang apelyido sa listahan, pagkatapos ay ang pangalawa, pangatlo, atbp. hanggang sa matagpuan ang ninanais o maabot ang dulo ng listahan. Malalampasan mo ang mga ganitong paghihirap sa tulong ng mga cycle.

Ang cycle ay isang seksyon ng isang algorithm (program) na paulit-ulit na isinasagawa. Alinsunod dito, ang isang cyclic algorithm ay isang algorithm na naglalaman ng mga cycle.

Mayroong dalawang uri ng mga cycle: may alam na bilang ng mga pag-uulit at may hindi kilalang bilang ng mga pag-uulit. Sa parehong mga kaso, ito ay tumutukoy sa bilang ng mga pag-uulit sa yugto ng pagbuo ng algorithm.

Mayroong 3 uri ng cyclic na istruktura:

  • Loop na may precondition;
  • Loop na may postcondition;
  • Loop na may parameter;

Kung hindi, ang mga istrukturang ito ay tinatawag na mga cycle tulad ng "Habang", "Noon", "Para sa".

Ang graphic na anyo ng pagtatala ng data ng mga istrukturang algorithm:

Loop na may precondition (aka loop paalam) ay may anyo:

kundisyon - pagpapahayag ng lohikal na uri.

Ang loop ay hindi maaaring isagawa kahit isang beses kung ang halaga ng lohikal na expression ay agad na lumabas na mali.

Ang serye ng mga utos sa pagitan ng simula at pagtatapos ay isinasagawa hanggang habang ang kondisyon ay totoo .

Para diyan para matapos ang cycle, kinakailangang baguhin ng pagkakasunod-sunod ng mga tagubilin sa pagitan ng BEGIN at END ang halaga ng mga variable na kasama sa kundisyon.

Loop na may postcondition (aka loop sa) ay may anyo:

kundisyon - pagpapahayag ng lohikal na uri.

Mangyaring tandaan:

Pagkakasunod-sunod ng mga tagubilin sa pagitanulitin Athanggang sa ay laging matutupad kahit minsan lang;

Upang makumpleto ang loop, kinakailangan na ang pagkakasunud-sunod ng mga pahayag sa pagitanulitin Athanggang sa binago ang mga halaga ng mga variable na kasama sa expression ng kondisyon.

Ang paulit-ulit na pagtuturo, tulad ng habang pagtuturo, ay ginagamit sa isang programa kung kinakailangan upang magsagawa ng ilang mga paulit-ulit na kalkulasyon (isang loop), ngunit ang bilang ng mga pag-uulit ay hindi alam nang maaga at tinutukoy ng pag-usad ng pagkalkula mismo.

Loop na may parameter (aka loop Para sa) ay may anyo:

i - parameter ng cycle;
a – paunang halaga ng cycle;
b – huling halaga ng cycle;
h – hakbang sa pagbabago ng parameter.

Ang istraktura ng siklo na ito ay tinatawag kung hindi man cycle i beses.

Ang utos na ito ay isinasagawa sa ganitong paraan: ang parameter i ay nakatakda sa paunang halaga a, kumpara sa panghuling halaga b, at kung ito ay mas mababa sa o katumbas ng panghuling halaga b, isang serye ng mga utos ang ipapatupad. Ang parameter ay itinalaga ang halaga ng nauna, nadagdagan ng h– hakbang ng pagbabago ng parameter at muling inihambing sa huling halaga b.

Sa wikang programming ng Pascal, ang hakbang sa pagbabago ng parameter ay maaaring katumbas ng isa o minus one.

Kung mayroon lamang isang pahayag sa pagitan ng simula at pagtatapos, hindi na kailangang isulat ang mga bracket ng operator. Gumagana ang panuntunang ito para sa mga loop tulad ng "Habang" at "Para sa".

Isaalang-alang natin ang isang halimbawa ng paglutas ng mga problema gamit ang mga istrukturang ito

Halimbawa.

Kalkulahin ang produkto ng mga numero mula 1 hanggang 5 gamit ang iba't ibang mga opsyon sa loop

Modelo ng matematika:

Р= 1·2·3·4·5=120

Buuin natin ang algorithm sa anyo ng isang block diagram.

Upang suriin ang kawastuhan ng algorithm, punan natin ang trace table.

Hakbang Operasyon R i Pagsusuri ng kundisyon
1 P:=1 1
2 i:=1; 1 1
3 i<=5
P:=P*I
i:=i+1
1 1 1<=5, да (истина)
4 i<=5
P:=P*I
i:=i+1
2 2 2<=5, да (истина)
5 i<=5
P:=P*I
i:=i+1
6 3 3<=5, да (истина)
6 i<=5
P:=P*I
i:=i+1
24 4 4<=5, да (истина)
7 i<=5
P:=P*I
i:=i+1
120 5 5<=5, да (истина)
8 i<=5
P:=P*I
i:=i+1
6<=5, нет (ложь)

Ang pagsuri sa isang kundisyon ay nangyayari sa ilang hakbang: pagsuri sa kundisyon at pagpapatupad ng mga utos sa isa sa mga sangay. Samakatuwid, ang talahanayan ng bakas ay hindi nagtatala ng mga utos ng algorithm, ngunit ang mga indibidwal na operasyon na ginagawa ng computer sa bawat hakbang.

Unang hakbang: Ang P ay itinalaga ng halaga ng isa.

Ikalawang hakbang: itinalaga ang halaga ng isa.

Ikatlong hakbang: kapag ang i ay katumbas ng isa, sinusuri namin ang kondisyon na ang isa ay mas mababa sa o katumbas ng lima, oo, ang kundisyon ay totoo, ibig sabihin, ang P ay itinalaga ang halaga ng isa na pinarami ng isa, magkakaroon ng dalawa. Para sa i: isa at isa ay katumbas ng dalawa.

Ikaapat na hakbang: kapag ang i ay katumbas ng dalawa, sinusuri namin ang kundisyong dalawa ay mas mababa sa o katumbas ng lima, oo, ang kundisyon ay totoo, na nangangahulugang ang P ay itinalaga ang halaga ng 2 beses ng isa, ito ay magiging 2. Para sa i: dalawa at isa, ito ay magiging tatlo.

Ikalimang hakbang: sa i katumbas ng tatlo, sinusuri namin ang kundisyon na tatlo ay mas mababa sa o katumbas ng lima, oo, ang kundisyon ay totoo, na nangangahulugang ang P ay itinalaga ang halaga ng dalawa na pinarami ng tatlo, ito ay magiging anim. Para sa i: tatlo at isa ay katumbas ng apat.

Ika-anim na hakbang: sa i katumbas ng apat, sinusuri namin ang kondisyon na apat ay mas mababa sa o katumbas ng lima, oo, totoo ang kundisyon, ibig sabihin, ang P ay itinalaga ang halaga ng anim na beses na apat, ito ay magiging dalawampu't apat. Para sa i: apat at isa ay katumbas ng lima.

Ikapitong hakbang: sa i katumbas ng lima, sinusuri namin ang kondisyon na lima ay mas mababa sa o katumbas ng lima, oo, ang kundisyon ay totoo, ibig sabihin, ang P ay itinalaga ang halaga ng dalawampu't apat na pinarami ng lima, ito ay magiging isang daan at dalawampu. Para sa i: five plus one is six.

Ika-walong hakbang: kapag ako ay katumbas ng anim, sinusuri namin ang kondisyon na anim ay mas mababa sa o katumbas ng lima, hindi, ang kundisyon ay mali, pagkatapos ay lumabas kami sa loop, at bilang isang resulta ay nakuha namin ang huling halaga na katumbas ng isang daan at dalawampu't .

Programa Pr1;
Var i: integer;
Magsimula
P:=1;
i:=1;
Habang ako<=5 do
magsimula
P:=P*i;
i:=i+1;
wakas;
Isulat('P=', P);
wakas.

Para sa isang loop na may postcondition, gagawa kami ng block diagram at trace table. (slide16)

Bilang resulta, nakukuha namin ang huling halaga na katumbas ng isang daan at dalawampu sa ikapitong hakbang

At para sa Cycle na may parameter ay bubuo kami ng block diagram at trace table. (slide 17)

Bilang resulta, nakukuha namin ang huling halaga na katumbas ng isang daan dalawampu sa ikaanim na hakbang

Gawain:

Ipakita ang mga numero mula 1 hanggang 5 sa:

  1. direktang pagkakasunud-sunod;
  2. sa reverse order.

Modelo ng matematika:

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

Ang block diagram at programa para sa paglutas ng problema ay ipinakita para sa mga numero sa forward at reverse order.

(slide 21)

Isulat natin ang isinasaalang-alang na mga algorithm sa wikang programming ng Pascal.

(slide 22)

III. Pagbubuod ng aralin

At kaya isinasaalang-alang namin ang mga sumusunod na katanungan:

  1. Ikot ng istraktura ng algorithm;
  2. Mga uri ng algorithmic na istruktura:
    1. Loop na may precondition;
    2. Loop na may postcondition;
    3. Loop na may parameter;
  3. Tumingin kami sa mga paraan upang maitala ang mga istrukturang ito;
  4. Tumingin kami sa mga halimbawa ng paglutas ng mga problema gamit ang mga istrukturang ito.





Loop na may paunang kondisyon Kung ang bilang ng mga pag-uulit ay hindi alam nang maaga, ngunit tinukoy lamang ng isang kundisyon, at isang aksyon na dapat gawin lamang pagkatapos suriin ang mga kundisyon, gumamit ng loop na may paunang kondisyon. Ang isang lohikal na expression ay ginagamit bilang isang kondisyon, ang katawan ng loop ay isang simple o tambalang operator. Bago ang bawat pagpapatupad ng loop body, ang kondisyon ay nasuri, kung ang resulta ay "totoo", pagkatapos ay ang loop body ay isasagawa muli, kung "false", pagkatapos ay ang loop ay lumabas. Sa block diagram Sa Pascal magsisimula sa dulo; Kondisyon Katawan ng loop Hindi Practice Simula ng loop Wakas ng loop OO Habang ginagawa


Loop na may postcondition Kung ang bilang ng mga pag-uulit ay hindi alam nang maaga, ngunit tinukoy lamang ng isang kundisyon, at ang aksyon na dapat gawin bago suriin ang kundisyon, gumamit ng loop na may postcondition. Ang isang lohikal na expression ay ginagamit bilang isang kondisyon, ang katawan ng loop ay isang simple o tambalang operator. Pagkatapos ng bawat pagpapatupad ng loop body, ang kondisyon ay nasuri, kung ang resulta ay "false", pagkatapos ay ang loop body ay isasagawa muli, kung "totoo", pagkatapos ay ang loop ay lumabas. Sa block diagram Sa Pascal Repeat Condition Loop Body Oo Hindi Practice Hanggang ;


Loop na may isang parameter Sa mga kaso kung saan ang bilang ng mga pag-uulit ay alam nang maaga, isang loop na may isang parameter ay ginagamit. Ang variable na tumutukoy sa bilang ng mga pag-uulit ay tinatawag na loop parameter o control variable. Pagkatapos ng bawat execution ng loop body, ang control variable ay nadaragdagan o nababawasan, ang loop ay pinaandar hanggang sa lumampas ito o maging mas mababa sa limitasyon. Sa block diagram sa Pascal, X ay ang control variable (cycle parameter) A ay ang inisyal na halaga ng X, B ay ang huling halaga ng X C ay ang hakbang ng pagbabago ng X. Bilang isang hakbang maaari mo lamang gamitin ang: "to" = 1; “downto” = -1 X:=A,B,C Loop Body Practice Para sa X:=A to B do Begin End;


Isang halimbawa ng problema sa paggamit ng loop na may precondition Itaas ang numero 3 sa isang ibinigay na kapangyarihan TASK: Verbal algorithm: I-multiply ang numero X na una ay katumbas ng 1 sa isang naibigay na bilang ng beses (H) ng 3. simulan ang H BHBH X:=1 X:=X*3 dulo X Ipasok ang ibinigay na mga degree Mga paunang halaga "B" degree counter B=B+1 Pagpaparami ng 3 Pagdaragdag ng counter Outputting ang resultang halaga Programm Stepen; Var H,B,X:integer; Simulan ang Writeln(Degree?); Readln(H); X:=1; B:=1; Habang si B


H X:=1 X:=X*3 end X Maglagay ng ibinigay na kapangyarihan Initial values" title="Halimbawa ng gawain gamit ang loop na may postcondition Itaas ang numero 3 sa ibinigay na power TASK: Verbal algorithm: Multiply ang numerong X sa una ay katumbas ng 1 ibinigay na bilang ng beses (H) para sa 3. simula N B>=H X:=1 X:=X*3 dulo X Magpasok ng isang naibigay na degree Mga paunang halaga" class="link_thumb"> 8 !} Halimbawa ng problema sa paggamit ng loop na may postcondition Itaas ang numero 3 sa isang ibinigay na kapangyarihan TASK: Verbal algorithm: I-multiply ang numero X na una ay katumbas ng 1 sa isang naibigay na bilang ng beses (H) ng 3. simulan ang H B>=H X:=1 X:=X*3 dulo X Pagpasok ng isang naibigay na degree Initial values ​​​​"B" degree counter B=B+1 Multiply by 3 Increasing the counter Outputting the resulting value Programm Stepen; Var H,B,X:integer; Simulan ang Writeln(Degree?); Readln(H); X:=1; B:=0; Ulitin ang X:=X*3; B:=B+1; Hanggang B>=H; Writeln(Resulta,X); Tapusin. Hindi Oo Pascal Theory Block Diagram Mga Paliwanag B:=0 =H X:=1 X:=X*3 dulo X Pagpasok ng isang naibigay na degree Mga paunang halaga"> =H X:=1 X:=X*3 dulo X Pagpasok ng isang naibigay na degree Mga inisyal na halaga "B" degree counter B=B +1 Pag-multiply ng 3 Taasan ang counter Output ang resultang halaga Programm H,B,X:integer;Readln(H):=1; Pascal Block Diagram Explanations B:=0"> =H X:=1 X*3 end X Ilagay ang tinukoy na degree Initial values" title=" Halimbawa ng problema sa paggamit ng loop na may postcondition Itaas ang numero 3 sa isang ibinigay na kapangyarihan TASK: Verbal algorithm: I-multiply ang numero X, sa una ay katumbas ng 1, isang naibigay na bilang ng beses (H) sa 3. simula N B>=H X: =1 X:=X*3 dulo X Pagpasok ng tinukoy na degree Mga paunang halaga"> title="Halimbawa ng problema sa paggamit ng loop na may postcondition Itaas ang numero 3 sa isang ibinigay na kapangyarihan TASK: Verbal algorithm: I-multiply ang numero X na una ay katumbas ng 1 sa isang naibigay na bilang ng beses (H) ng 3. simulan ang H B>=H X:=1 X:=X*3 dulo X Pagpasok ng isang naibigay na degree Mga paunang halaga"> !}


Isang halimbawa ng gawain gamit ang loop na may parameter Itaas ang numero 3 sa isang ibinigay na kapangyarihan TASK: Verbal algorithm: I-multiply ang numero X, sa una ay katumbas ng 1, isang tinukoy na bilang ng beses (H) ng 3. simulan ang H X:=1 X:=X*3 end X Maglagay ng ibinigay na power Initial value X=1 Parameters mula 1 hanggang N Multiplication by 3 Output ng resultang value Programm Stepen; Var H,B,X:integer; Simulan ang Writeln(Degree?); Readln(H); X:=1; Para sa B:=1 hanggang H gawin ang Simulan ang X:=X*3; Wakas; Writeln(Resulta,X); Tapusin. B:=1,H,1 Pascal Theory Block Diagram Explanations




Gawain: Ang pagsisimula ng pagsasanay, ang atleta ay tumakbo ng 10 km sa unang araw. Araw-araw ay tinaasan niya ang pang-araw-araw na pamantayan ng 10% ng pamantayan ng nakaraang araw. Ano ang kabuuang distansya na sasakupin ng atleta sa loob ng 7 araw? Mga variable ng input: Mga variable ng output: S – kabuuang landas d – bilang ng mga araw Sd – distansya para sa kasalukuyang araw


Mga Tanong sa Pagtatapos para sa kontrol: 1. Aling operator sa Pascal ang tumutukoy sa isang loop na may precondition 2. Paano tukuyin ang hakbang na "1" at "-1" sa isang parameter sa isang loop 3. Aling sangay ang sinusunod ng loop na may postcondition? 4. Mayroon bang loop na may parameter ng kondisyon 5. Ano ang maaaring katawan ng loop 6. Kailan ginagamit ang loop na may mga parameter


Mga uri ng cycle

mga loop na may parameter para sa

mga loop na may precondition

ikot habang may precondition

ikot ulitin - hanggang may postcondition


Loop na may precondition sa Pascal - WHILE

Ang isang loop operator na may precondition ay nagsasagawa ng mga aksyon sa hindi kilalang dami ng beses. Ang loop ay lumabas kung ang ilang lohikal na expression o ang resulta nito ay lumabas na mali.

Dahil ang bisa ng lohikal na expression ay nasuri sa simula, ang katawan ng loop ay maaaring hindi maisakatuparan kahit isang beses.


Istruktura ng loop HABANG


Block - cycle diagram HABANG

operator

kundisyon


Halimbawa

Gawain: Sumulat ng isang programa na kinakalkula ang kabuuan ng lahat ng even na numero hanggang 50.

writeln("Ang kabuuan ay: ",sum);


Gawain

Sumulat ng isang programa na naghahanap para sa n!.


Loop na may postcondition sa Pascal – REPEAT-HANGGANG

Ang operator na ito ay katulad ng loop operator na may paunang kondisyon, ngunit naiiba mula dito dahil ang kundisyon ay nasuri pagkatapos na maisakatuparan ang katawan (mga aksyon) ng loop. Tinitiyak nito na ito ay naisakatuparan ng hindi bababa sa isang beses, hindi tulad ng mga naunang na-parse na mga loop.

Pakitandaan na ipinapalagay ng operator ng loop na ito ang pagkakaroon ng ilang mga operator sa katawan ng loop, iyon ay, maraming mga aksyon ang maaaring maisagawa, kaya ang mga salita ng serbisyo Magsimula At Tapusin hindi kailangan.


Istruktura ng loop

REPEAT-HANGGANG


Block - cycle diagram REPEAT-HANGGANG

operator

kundisyon


Halimbawa

Gawain: Sumulat ng isang programa na tumutukoy sa kabuuan ng una at huling mga numero sa isang numero.

a,b,c,d:integer;

writeln("magpasok ng numero");

writeln('Ang kabuuan ng una at huling digit ay:'c);


Gawain

Sumulat ng isang programa na tumutukoy kung ang isang numero ay prime.


Loop na may parameter sa Pascal - PARA

Ikot PARA SA itinatakda ang kundisyon kung saan gagana ang program bago ang pagpapatupad nito, sabihin nating kailangan mong i-loop ang program nang mga beses, pagkatapos ay madali itong magawa gamit ang loop na ito.

U cycle PARA SA Mayroong isang katangian na katangian - isang counter, na karaniwang itinalaga ng titik i o j.

Sa isang loop, ang counter ay maaaring direktang tukuyin (service word sa ), at sa reverse order (functional word pababa sa ).


Istruktura ng loop PARA SA

PARA sa i:= n1 TO n2 DO

1st recording form

PARA sa i:= n2 DOWNTO n1 DO

2nd recording form


Block - cycle diagram PARA SA

ako:= n1 … n2

Katawan ng Loop


Halimbawa

Gawain: Sumulat ng isang programa na kinakalkula ang ika-n na kapangyarihan ng isang ibinigay na numero.

a, n, i, pr: integer;

writeln('Magpasok ng numero');

writeln('Ipasok ang kapangyarihan ng numero');

para sa i:= 1 sa n gawin

writeln('Ang kapangyarihan ng numero ay',pr);


Gawain

Sumulat ng isang programa na naghahanap ng numerong P = (1-1/2)(1-1/3)*…*(1-1/n).

N ay ipinasok mula sa keyboard.