Цикл алгоритм МХХТ-ийн паскал жишээ. Циклийн алгоритмууд Паскаль хэл дээрх мөчлөгийн төрөл ба мөчлөгийн командууд. Циклийн сонголт нь асуудлын нөхцлийн онцлогоос хамаарна. Зөвхөн дадлага нь танд оновчтой шийдлийг хэлэх болно


Циклийн төрлүүд

параметр бүхий гогцоо төлөө

урьдчилсан нөхцөл бүхий гогцоо

мөчлөг байхад урьдчилсан нөхцөлтэйгээр

мөчлөг давтах - хүртэл дараах нөхцөлтэй


Паскаль хэл дээрх урьдчилсан нөхцөлтэй давталт - WHILE

Урьдчилсан нөхцөл бүхий давталтын оператор тодорхойгүй тооны үйлдлийг гүйцэтгэдэг. Хэрэв ямар нэг логик илэрхийлэл эсвэл түүний үр дүн худал бол гогцоо гарна.

Учир нь үнэнч байдал логик илэрхийлэлэхэнд нь шалгагдсан бол давталтын биеийг нэг удаа ч гэсэн гүйцэтгэхгүй байж болно.


Давталтын бүтэц ХЭЗЭЭ


Блок-цикл диаграмм ХЭЗЭЭ

оператор

нөхцөл


Жишээ

Даалгавар: 50 хүртэлх бүх тэгш тоонуудын нийлбэрийг тооцоолох програм бич.

writeln("Нийлбэр нь: ",нийлбэр);


Даалгавар

n! гэж хайдаг програм бич.


Паскаль хэл дээрх дараах нөхцөлтэй давталт – REPEAT-UTIL

Энэ оператор нь урьдчилсан нөхцөл бүхий давталтын оператортой төстэй боловч давталтын бие (үйлдэл) гүйцэтгэсний дараа нөхцөлийг шалгадгаараа ялгаатай. Энэ нь өмнө нь задлан шинжилсэн гогцооноос ялгаатай нь дор хаяж нэг удаа хийгдэхийг баталгаажуулдаг.

Үүнийг анхаарна уу энэ операторЦикл нь мөчлөгийн биед хэд хэдэн оператор байгааг илтгэнэ, өөрөөр хэлбэл хэд хэдэн үйлдлийг гүйцэтгэх боломжтой тул үйлчилгээний үгс Эхлэх Тэгээд Төгсгөл Хэрэггүй.


Давталтын бүтэц

ДАХИН-ХҮРТЭЛ


Блок-цикл диаграмм ДАХИН-ХҮРТЭЛ

оператор

нөхцөл


Жишээ

Даалгавар: Тооны эхний болон сүүлчийн цифрүүдийн нийлбэрийг тодорхойлох програм бич.

a,b,c,d:бүхэл тоо;

writeln("тоо оруулах");

writeln(‘Эхний болон сүүлийн цифрүүдийн нийлбэр нь:‘c);


Даалгавар

Тоо анхных эсэхийг тодорхойлох програм бич.


Паскаль дахь параметртэй давталт - FOR

Цикл ТӨЛӨӨ Програмыг ажиллуулахын өмнө ямар нөхцөлд ажиллахыг зааж өгдөг, та програмыг n удаа давталт хийх хэрэгтэй гэж бодъё, тэгвэл энэ давталтыг ашиглан үүнийг хялбархан хийж болно.

U мөчлөг ТӨЛӨӨ Онцлог шинж чанар байдаг - тоолуур нь ихэвчлэн i эсвэл j үсгээр тэмдэглэгдсэн байдаг.

Гогцоонд тоолуурыг шууд зааж өгч болно (үйлчилгээний үг руу ), мөн урвуу дарааллаар (функциональ үг доош ).


Давталтын бүтэц ТӨЛӨӨ

FOR i:= n1 TO n2 DO

1-р бичлэгийн маягт

FOR i:= n2 DOWNTO n1 DO

2-р бичлэгийн маягт


Блок-цикл диаграмм ТӨЛӨӨ

i:= n1 … n2

Гогцооны бие


Жишээ

Даалгавар: Өгөгдсөн тооны n-р зэрэглэлийг тооцоолох програм бич.

a, n, i, pr: бүхэл тоо;

writeln('Тоо оруулна уу');

writeln('Тооны хүчийг оруулна уу');

for i:= 1 to n do

writeln('Тооны хүч нь',pr);


Даалгавар

P = (1-1/2)(1-1/3)*…*(1-1/n) тоог олох програм бич.

N-г гарнаас оруулна.







Урьдчилсан нөхцөл бүхий давталт Хэрэв давталтын тоо нь урьдчилан тодорхойгүй, зөвхөн нөхцөлөөр тодорхойлогддог бөгөөд зөвхөн нөхцөлийг шалгасны дараа хийх ёстой үйлдлүүд бол урьдчилсан нөхцөл бүхий давталтыг ашиглана. Логик илэрхийллийг нөхцөл болгон ашигладаг, давталтын бие нь энгийн эсвэл нийлмэл оператор юм. Гогцооны биеийг гүйцэтгэхийн өмнө нөхцөлийг шалгаж, үр дүн нь "үнэн" бол давталтын биеийг дахин ажиллуулж, "худал" бол давтахаас гарна. Блок диаграм дээр Pascal-д эхлэл төгсгөл; Нөхцөл гогцооны үндсэн хэсэг Үгүй Дадлага давталтын эхлэл Давталтын төгсгөл ТИЙМ While do


Дараах нөхцөл бүхий давталт Хэрэв давталтын тоо нь урьдчилан тодорхойгүй, зөвхөн нөхцөлөөр тодорхойлогддог бол нөхцөлийг шалгахын өмнө хийх ёстой үйлдлийг дараах нөхцөлтэй давталт ашиглана. Логик илэрхийллийг нөхцөл болгон ашигладаг, давталтын бие нь энгийн эсвэл нийлмэл оператор юм. Давталтын биеийг гүйцэтгэсний дараа нөхцөлийг шалгаж, үр дүн нь "худал" бол давталтын биеийг дахин ажиллуулж, "үнэн" бол давтахаас гарна. Блок схем дээр Pascal-д Repeat Condition Loop Body Тийм Үгүй Дадлага хийх хүртэл ;


Параметр бүхий гогцоо Давталтын тоог урьдчилан мэдэж байсан тохиолдолд параметр бүхий гогцоо ашигладаг. Давталтын тоог тодорхойлсон хувьсагчийг давталтын параметр буюу хяналтын хувьсагч гэж нэрлэдэг. Давталтын биетийн гүйцэтгэл бүрийн дараа хяналтын хувьсагчийг нэмэгдүүлж, багасгаж, давталт нь хязгаараас хэтрэх эсвэл бага болох хүртэл гүйцэтгэгдэнэ. Паскал хэл дээрх блок диаграммд X нь хяналтын хувьсагч (мөчлөгийн параметр) A нь X-ийн анхны утга, B нь X-ийн эцсийн утга C нь X-ийг өөрчлөх алхам юм. Алхам болгон та зөвхөн дараах зүйлийг ашиглаж болно: “to” = 1; “доошоо” = -1 X:=A,B,C давталтын биеийн дадлага For X:=A to B do Begin End;


Урьдчилсан нөхцөл бүхий гогцоог ашигласан бодлогын жишээ Өгөгдсөн чадлаар 3-ын тоог өсгөх ДААЛГАВАР: Аман алгоритм: Анх 1-тэй тэнцүү X тоог өгөгдсөн тооны (H) 3-аар үржүүлнэ. H эхлэх H BHBH X: =1 X:=X*3 төгсгөл X Өгөгдсөн градусуудыг оруулна уу Анхны утгууд “B” зэрэглэлийн тоолуур B=B+1 3-аар үржүүлэх Тоолуурыг нэмэгдүүлэх Үр дүнгийн утгыг гаргах Programm Stepen; Var H,B,X:бүхэл тоо; Бичгээр эхлэх(Зэрэг?); Readln(H); X:=1; B:=1; Харин Б


H X:=1 X:=X*3 төгсгөл X Өгөгдсөн хүчийг оруулна уу Анхны утгууд" title=" Пост нөхцөл бүхий гогцоо ашигласан даалгаврын жишээ Өгөгдсөн чадлаар 3-ын тоог өсгөх ДААЛГАВАР: Үгийн алгоритм: Үржүүлэх. X тоо нь анх 1-тэй тэнцүү өгөгдсөн удаа (H) 3. эхлэл N B>=H X:=1 X:=X*3 төгсгөл X Өгөгдсөн зэрэглэлийг оруулна уу Анхны утгууд" class="link_thumb"> 8 !}Дараах нөхцөл бүхий гогцоо ашигласан бодлогын жишээ Өгөгдсөн чадлаар 3-ын тоог өсгөх ДААЛГАВАР: Аман алгоритм: Анх 1-тэй тэнцүү X тоог заасан тооны (H) 3-аар үржүүлнэ. H эхлэх B>=H X :=1 X:=X*3 төгсгөл X Өгөгдсөн зэрэг оруулах Анхны утгууд “B” зэрэглэлийн тоолуур B=B+1 Тоолуурыг 3-аар үржүүлэх Үр дүнг гаргах Программ Степен; Var H,B,X:бүхэл тоо; Бичгээр эхлэх(Зэрэг?); Readln(H); X:=1; B:=0; X:=X*3 давт; B:=B+1; B>=H хүртэл; Бичсэн(Үр дүн,X); Төгсгөл. Үгүй Тийм Паскалийн онолын блок схемийн тайлбар B:=0 =H X:=1 X:=X*3 төгсгөл X Өгөгдсөн зэрэг оруулах Анхны утгууд"> =H X:=1 X:=X*3 төгсгөл X Өгөгдсөн зэрэг оруулах "B" зэрэглэлийн анхны утгууд B=B +1 3-аар үржүүлэх Тоолуурыг нэмэгдүүлэх Үр дүнгийн утгыг гаргана Programm Stepen; Var H,B,X:integer; Begin Writeln(Degree?); Readln(H); X:=1; B:=0; Давтан X:= X*3; B: =B+1; B>=H хүртэл; Бичих (Үр дүн,X); Төгсгөл. Үгүй Тийм Онол Паскалийн блок диаграмын тайлбар B:=0"> =H X:=1 X:=X*3 төгсгөл X Өгөгдсөн зэрэглэлийг оруулна уу Анхны утгууд" title=" Пост нөхцөл бүхий гогцоо ашигласан бодлогын жишээ Өгөгдсөн чадалтай 3-ын тоог өсгөх ДААЛГАВАР: Аман алгоритм: Өгөгдсөн тооны X тоог анх 1-тэй тэнцүү үржүүлэх. удаа (H) 3. эхлэл N B>=H X: =1 X:=X*3 төгсгөл X Заасан зэрэгт оруулах Анхны утгууд"> title="Дараах нөхцөл бүхий гогцоо ашигласан бодлогын жишээ Өгөгдсөн чадлаар 3-ын тоог өсгөх ДААЛГАВАР: Аман алгоритм: Анх 1-тэй тэнцүү X тоог заасан тооны (H) 3-аар үржүүлнэ. H эхлэх B>=H X :=1 X:=X*3 төгсгөл X Өгөгдсөн зэрэг оруулах Анхны утгууд"> !}


Параметр бүхий гогцоо ашиглан даалгаврын жишээ Өгөгдсөн чадалд 3-ын тоог өсгөх ДААЛГАВАР: Аман алгоритм: Анх 1-тэй тэнцүү X тоог заасан тооны (H) 3-аар үржүүлнэ. H эхлэх:=1. X:=X*3 төгсгөл X Өгөгдсөн хүчийг оруулна Анхны утга X=1 1-ээс N хүртэлх параметрүүдийг 3-аар үржүүлэх Үр дүнгийн утгын гаралт Programm Stepen; Var H,B,X:бүхэл тоо; Бичгээр эхлэх(Зэрэг?); Readln(H); X:=1; B:=1-ээс H-ийн хувьд Эхлэх X:=X*3; Төгсгөл; Бичсэн(Үр дүн,X); Төгсгөл. B:=1,H,1 Паскалийн онолын блок схемийн тайлбар




Даалгавар: Тамирчин бэлтгэл хийж эхэлснээр эхний өдөр 10 км гүйсэн. Өдөр бүр тэр өдрийн нормоо өмнөх өдрийн нормоос 10 хувиар нэмэгдүүлсэн. Тамирчин 7 хоногт нийт хэдэн замыг туулах вэ? Оролтын хувьсагч: Гаралтын хувьсагч: S – нийт зам d – өдрийн тоо Sd – тухайн өдрийн зай


Төгсгөлийн хяналтын асуултууд: 1. Паскал хэлний аль оператор угтвар нөхцөлтэй давталтыг тодорхойлдог вэ 2. Давталтын параметрийн “1” ба “-1” алхмыг хэрхэн зааж өгөх вэ 3. Дараах нөхцөлтэй давталт аль салбарыг дагадаг вэ? 4. Нөхцөл параметр байгаа эсэх 5. Давталтын бие ямар байж болох вэ 6. Параметр бүхий гогцоо хэзээ хэрэглэх вэ?

Слайд 2

Төлөвлөгөө

Давталтын тухай ойлголт For Loop while давталт давталтын зохиол

Слайд 3

Уран зохиол

Касторнов А.Ф., Евстратова Г.А. Паскаль програмчлалын хэл: зааварих дээд сургуулиудад зориулсан. - Череповец: Дээд мэргэжлийн боловсролын улсын боловсролын байгууллага ChSU, 2010. - 117 х. - Ном зүй: Х.114. Паскаль програмчлалын хэлний цахим сурах бичиг /http://pascal.guti.ru Төлөвлөгөө

Слайд 4

Циклийн тухай ойлголт

Олон асуудлыг шийдвэрлэх алгоритмууд нь үр дүнд хүрэх мөчлөгтэй байдаг тодорхой дараалалүйлдлүүд хэд хэдэн удаа хийгддэг. Жишээлбэл, мэдлэгийг хянах програм нь асуултыг харуулж, хариултыг хүлээн авч, нийт оноонд хариултын оноог нэмж, дараа нь тухайн субъект бүх асуултад хариултал эдгээр үйлдлүүдийг давтана. Эсвэл жишээлбэл, жагсаалтаас хүссэн овог нэрээ хайхын тулд жагсаалтын эхний овог хайсантай таарч байгаа эсэхийг шалгах хэрэгтэй, дараа нь хоёр дахь, гурав дахь гэх мэт. хүссэн овог олдох эсвэл жагсаалтын төгсгөлд хүрэх хүртэл.

Слайд 5

Хэд хэдэн удаа биелэгдэх бүлэг хэллэг бүхий алгоритмыг цикл гэж нэрлэдэг. Давтагдсан хэллэгүүдийн бүлгийг давталтын бие гэж нэрлэдэг. Паскаль хэлэнд For, While, Repeat давталтын хэллэгүүдийг ашиглан давталтыг хэрэгжүүлж болно. Төлөвлөгөө

Слайд 6

Давталтын операторын хувьд

For давталтын оператор нь давталтын биеийг хэд хэдэн удаа гүйцэтгэх шаардлагатай бөгөөд давталтын тоог урьдчилан мэддэг бол хэрэглэнэ.

Слайд 7

For давталтын операторыг бичих 1-р хэлбэр

For операторыг бичих 1-р хэлбэр ерөнхий үзэлдараах байдалтай байна: ForCounter:=Start_valuetoFinal_valuedoOperator; For, to, do функцын үгс хаана байна. Тоолуур нь давталт хэдэн удаа давтагдахыг тодорхойлдог дарааллын хувьсагч (ихэвчлэн бүхэл тоо) юм. Давталтын тоог дараах томъёогоор тооцоолно: Эцсийн_утга – Анхны_утга+1. Төгсгөлийн_утга нь Эхлэх_утгаас их буюу тэнцүү байх ёстой.

Слайд 8

Хэрэв давталтын их бие нь хэд хэдэн оператороос бүрдэх бол For операторыг бичих 1-р хэлбэр нь дараах байдалтай байна: ForCounter:=Start_valuetoFinal_valuedo Begin (Loop body) End;

Слайд 9

Бичгийн эхний хэлбэрт For давталтын алгоритмыг харцгаая. Тоолуурт Initial_ утгыг өгсөн. Нөхцөлийг шалгасан: Тоолуурын утга нь Төгсгөлийн_утгаас их үү? Хэрэв нөхцөл үнэн бол (Тийм) давталт дуусна. Хэрэв нөхцөл худал (Үгүй) бол давталтын биеийг гүйцэтгэнэ, дараа нь тоолуурын утгыг нэгээр нэмэгдүүлж, нөхцөлийг дахин шалгана, өөрөөр хэлбэл. 2-р зүйл.

Слайд 10

For давталтын операторыг бичих 2-р хэлбэр

For операторыг ерөнхийд нь бичих 2-р хэлбэр нь дараах байдалтай байна: For Counter:=Start_valuedowntoFinal_valuedoOperator; Үүнд: For, downto, do гэсэн функцийн үгс байна. Тоолуур нь давталт хэдэн удаа давтагдахыг тодорхойлдог дарааллын хувьсагч (ихэвчлэн бүхэл тоо) юм. Давталтын тоог дараах томъёогоор тооцоолно: Эхлэх_утга–Эцсийн_утга+1. Эхлэх_утга нь Төгсгөлийн_утгаас их буюу тэнцүү байх ёстой.

Слайд 11

Хэрэв давталтын бие нь хэд хэдэн операторуудаас бүрдэх бол For операторыг бичих 2-р хэлбэр нь дараах байдалтай харагдана: ForCounter:=Start_valuedowntoFinal_valuedo Begin //Loop body End;

Слайд 12

For давталтын алгоритмыг тэмдэглэгээний хоёр дахь хэлбэрээр авч үзье: Тоолуурт Initial_ утга оноогдсон. Нөхцөлийг шалгасан: Тоолуурын утга нь Төгсгөлийн_утгаас бага байна уу? Хэрэв нөхцөл үнэн бол (Тийм) давталт дуусна. Хэрэв нөхцөл худал (Үгүй) бол давталтын биеийг гүйцэтгэнэ, дараа нь тоолуурын утга нэгээр буурч, нөхцөлийг дахин шалгана, өөрөөр хэлбэл. 2-р зүйл.

Слайд 13

Давталтын операторын хувьд

програмEx1; var i, n:бүхэл тоо; (i – тоолуур, n – шаардлагатай оддын тоо) s:string;(s – үүсгэсэн оддын мөр) эхлэх Writeln("Оддын тоог оруулна уу"); (оддын тоог асууна) Readln(n); (хэрэглэгч n одны тоог оруулна) s:=""; (одны тэмдэгтийн мөр үүсэх нь хоосон тэмдэгтээс эхэлдэг) (Мөр нь For давталт ашиглан үүсгэгддэг. Тоолуурын анхны_утга 1, Эцсийн_утга нь шаардлагатай оддын тоо n байна.) fori:= 1 to n do s :=s+"*"; (гогцооны алхам бүрт нэг одыг зураасанд наасан) Writeln(s);(мөр хэвлэсэн) Readln; Төгсгөл. Төлөвлөгөөний жишээ: Програм нь оддын эгнээ үүсгэдэг. Нэг мөрөнд байгаа оддын тоог хэрэглэгч өөрөө тодорхойлно.

Слайд 14

While Loop

Хөтөлбөр боловсруулах явцад давталтын биетийн давталтын тоо тодорхойгүй, програм ажиллаж байх үед л тодорхойлох боломжтой үед while давталт ашиглагддаг. Ерөнхийдөө While мэдэгдлийг дараах байдлаар бичнэ: While Condition doOperator; Хаана, while, do нь функциональ үгс юм. Нөхцөл нь давталтын үргэлжлэлийг тодорхойлдог логик илэрхийлэл юм.

Слайд 15

Хэрэв давталтын бие нь хэд хэдэн хэллэгээс бүрдэх бол While давталт дараах байдлаар бичигдэнэ: WhileCondition do Begin //Дүртийн бие Төгсгөл;

Слайд 16

While давталтын алгоритмыг харцгаая: Нөхцөл шалгагдсан. Хэрэв нөхцөл үнэн бол давталтын бие биелнэ. Үүний дараа нөхцөл байдлыг дахин шалгана. Хэрэв нөхцөл худал бол гогцоо дуусна.

Слайд 17

Тиймээс While нь урьдчилсан нөхцөлтэй давталт эсвэл “While” гогцоо юм (нөхцөл үнэн байхад давталтын бие биелнэ). Хэрэв давталтын эхний дамжуулалт дээр нөхцөл худал байвал давталтын бие нэг удаа ч биелэгдэхгүй. Хэрэв нөхцөл хэзээ ч худал болохгүй бол гогцоо тодорхойгүй хугацаагаар давтагдах болно, өөрөөр хэлбэл. гогцоо үүсэх болно.

Слайд 18

ProgramEx2; varAccount: Бодит; (дансны хэмжээ) Сар: Бүхэл тоо; (данс нээснээс хойш өнгөрсөн сарын тоо) begin Account:=1000; (дансанд 1000 рубль хийсэн) Сар:=0; (бүртгэл дөнгөж нээгдсэн) whileAccount

Слайд 19

Циклийг давтах

Давталтын гогцоо нь while давталтын нэгэн адил давталтын биеийг хэд хэдэн удаа гүйцэтгэх шаардлагатай боловч давталтын тоо нь урьдчилан тодорхойгүй тохиолдолд програмд ​​ашиглагддаг. Ерөнхийдөө Repeat давталт дараах байдлаар бичигдэнэ: Repeat //Condition хүртэл давталтын бие; Repeat, Until функцийн үгс хаана байна. Нөхцөл нь давталтын төгсгөлийг тодорхойлдог Булийн илэрхийлэл юм.

Слайд 20

Repeat давталтын алгоритмыг авч үзье: Repeat болон Until гэсэн нөөцлөгдсөн үгсийн хооронд байрлах давталтын бие биелэгдэх болно. Нөхцөл байдлыг шалгаж байна. Хэрэв нөхцөл үнэн бол гогцоо дуусна. Хэрэв нөхцөл худал бол давталтын их бие дахин ажиллана.

Слайд 21

Тиймээс Repet гэдэг нь дараах нөхцөлтэй давталт эсвэл “Өмнө нь” давталт юм (нөхцөл үнэн болтол давталтын бие гүйцэтгэгдэнэ). Тиймээс давталтын биеийг дор хаяж нэг удаа гүйцэтгэдэг. Хэрэв нөхцөл хэзээ ч үнэн болохгүй бол гогцоо хязгааргүй болно.

Слайд 22

ProgramEx3; var Time:integer; (хуваах хугацаа) Нүд: бүхэл тоо;(нүдний тоо) эхлэх Хугацаа:=0;(нүд хуваагдаж эхлээгүй байна) Нүд:=1;(нэг нүд) Давтах хугацаа:=Хугацаа+3;(дараагийн гурван цагт ) Эсүүд: =Эс*2;(нүдний тоо 2 дахин нэмэгдсэн) Эс>24 болтол; ("нүдний тоо 24-өөс их" нөхцөл үнэн болтол) Writeln(Time);(үр дүнг гарга) Readln; Төгсгөл. Төлөвлөгөөний жишээ: Нэг эстэй амеба 3 цаг тутамд 2 эсэд хуваагддаг. Хэдэн цагийн дараа эсийн тоо 24-өөс хэтрэхийг тодорхойл.

Бүх слайдыг үзэх























Буцаад урагшаа

Анхаар! Урьдчилан үзэхСлайд нь зөвхөн мэдээллийн зорилгоор хийгдсэн бөгөөд танилцуулгын бүх шинж чанарыг илэрхийлэхгүй байж болно. Хэрэв та сонирхож байвал энэ ажил, бүрэн хувилбарыг нь татаж авна уу.

Зорилтот:мөчлөгийн алгоритмын бүтцийг судлах, практик асуудлыг шийдвэрлэх загвар, алгоритмыг бий болгох.

Хичээлийн үеэр

I. Мэдлэгийг шинэчлэх

  • Алгоритмын тухай ойлголт, алгоритмын хэлний үндсэн бүтцийг авч үзэх.
  • Хөгжих чадвартай байх математик загвар, асуудлыг шийдвэрлэх алгоритм, блок схем.
  • Програмчлалын хэл, тэдгээрийн зорилгын талаар ойлголттой байх.
  • Програмчлалын орчинд ажиллах чадвартай байх.
  • Програмын бүтцийг мэдэх.
  • Тоон болон бэлгэдлийн хэмжигдэхүүн агуулсан илэрхийлэл бичих чадвартай байх.
  • Операторуудын бүтэц, тэдгээрийн ажлын онцлогийг мэдэх.
  • Шугаман болон салаалсан бүтэцтэй программ бичихдээ оператор ашиглах чадвартай байх.
  • Дибаг хийх программуудыг компьютер дээр үүсгэж ажиллуулах чадвартай байх.

II. Хичээлийн онолын материал

Ихэнх практик асуудлууд нь ижил үйлдлүүдийг дахин давтах, өөрөөр хэлбэл нэг буюу хэд хэдэн операторыг дахин ашиглахыг шаарддаг. (Танилцуулга)

Та тоонуудын дарааллыг оруулж, боловсруулах хэрэгтэй гэж бодъё. Хэрэв зөвхөн таван тоо байгаа бол шугаман алгоритм үүсгэж болно. Мянга байгаа бол шугаман алгоритм бичих боломжтой ч энэ нь маш уйтгартай, үндэслэлгүй юм. Хэрэв алгоритмыг боловсруулах үед тоонуудын тоо тодорхойгүй бол шугаман алгоритм нь үндсэндээ боломжгүй юм.

Өөр нэг жишээ. Жагсаалтаас хүний ​​овог нэрийг олохын тулд жагсаалтын эхний овог, дараа нь хоёр дахь, гурав дахь гэх мэтийг шалгах хэрэгтэй. Хүссэн хүн олдох эсвэл жагсаалтын төгсгөлд хүрэх хүртэл. Та мөчлөгийн тусламжтайгаар ийм бэрхшээлийг даван туулж чадна.

Цикл гэдэг нь алгоритмын (програмын) давтагдах хэсэг юм. Үүний дагуу циклийн алгоритм нь цикл агуулсан алгоритм юм.

Мэдэгдэж буй давталтын тоо, тодорхойгүй давталттай гэсэн хоёр төрлийн мөчлөг байдаг. Аль ч тохиолдолд энэ нь алгоритм боловсруулах үе шатанд давталтын тоог хэлнэ.

Гурван төрлийн мөчлөгийн бүтэц байдаг:

  • Урьдчилсан нөхцөл бүхий гогцоо;
  • Дараах нөхцөл бүхий давталт;
  • Параметр бүхий гогцоо;

Үгүй бол эдгээр бүтцийг "While", "Before", "For" гэх мэт мөчлөг гэж нэрлэдэг.

Алгоритм бүтцийн өгөгдлийг бүртгэх график хэлбэр:

Урьдчилсан нөхцөл бүхий давталт (өөрөөр хэлбэл давталт Баяртай) дараах хэлбэртэй байна.

нөхцөл - логик хэлбэрийн илэрхийлэл.

Логик илэрхийллийн утга шууд худал болсон тохиолдолд давталт нэг удаа ч биелэгдэхгүй байж болно.

Эхлэх ба төгсгөлийн хоорондох цуврал тушаалууд нь хүртэл гүйцэтгэгдэнэ нөхцөл үнэн байхад .

Үүний төлөө мөчлөг дуусахын тулд, энэ нь BEGIN болон END хоорондох зааврын дараалалд орсон хувьсагчдын утгыг өөрчлөх шаардлагатай. нөхцөл.

Дараах нөхцөл бүхий давталт (өөрөөр хэлбэл давталт өмнө) дараах хэлбэртэй байна.

нөхцөл - логик хэлбэрийн илэрхийлэл.

Жич:

хоорондын зааврын дараалалдавтана Тэгээдхүртэл үргэлж биелэх болно ядаж нэг удаа;

Гогцоо дуусгахын тулд тэдгээрийн хоорондох мэдэгдлүүдийн дарааллыг дагаж мөрдөх шаардлагатайдавтана Тэгээдхүртэл нөхцөл илэрхийлэлд орсон хувьсагчдын утгыг өөрчилсөн.

Давтан хийх заавар нь while зааврын нэгэн адил хэд хэдэн давтагдсан тооцоолол (гогцоо) хийх шаардлагатай бол програмд ​​ашиглагддаг, гэхдээ давталтын тоог урьдчилан мэддэггүй бөгөөд тооцооллын явцаар тодорхойлогддог.

Параметр бүхий гогцоо (өөрөөр хэлбэл давталт Учир нь)хэлбэртэй байна:

i - мөчлөгийн параметр;
a - мөчлөгийн анхны утга;
b – мөчлөгийн эцсийн утга;
h - параметрийн өөрчлөлтийн алхам.

Энэ мөчлөгийн бүтцийг өөрөөр нэрлэдэг цикл i удаа.

Энэ командыг дараах байдлаар гүйцэтгэнэ: i ​​параметрийг эцсийн b-тэй харьцуулах анхны утгад тохируулах ба эцсийн b утгаас бага буюу тэнцүү бол хэд хэдэн командыг гүйцэтгэнэ. Параметрт өмнөх утгыг нь нэмж өгсөн h– параметрийн өөрчлөлтийн алхам бөгөөд эцсийн утгатай дахин харьцуулна b.

Паскал програмчлалын хэлэнд параметрийн өөрчлөлтийн алхам нь нэг эсвэл хасах нэгтэй тэнцүү байж болно.

Эхлэл ба төгсгөлийн хооронд ганцхан мэдэгдэл байгаа бол оператор хаалт бичих шаардлагагүй. Энэ дүрэм "While", "For" гэх мэт гогцоонд ажиллана.

Эдгээр бүтцийг ашиглан асуудлыг шийдвэрлэх жишээг авч үзье

Жишээ.

Төрөл бүрийн давталтын сонголтуудыг ашиглан 1-ээс 5 хүртэлх тооны үржвэрийг тооцоол

Математик загвар:

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

Алгоритмыг блок диаграмм хэлбэрээр хийцгээе.

Алгоритмын зөв эсэхийг шалгахын тулд мөрийн хүснэгтийг бөглөцгөөе.

Алхам Үйл ажиллагаа Р би Нөхцөл байдлын шалгалт
1 P:=1 1
2 i:=1; 1 1
3 би<=5
P:=P*I
i:=i+1
1 1 1<=5, да (истина)
4 би<=5
P:=P*I
i:=i+1
2 2 2<=5, да (истина)
5 би<=5
P:=P*I
i:=i+1
6 3 3<=5, да (истина)
6 би<=5
P:=P*I
i:=i+1
24 4 4<=5, да (истина)
7 би<=5
P:=P*I
i:=i+1
120 5 5<=5, да (истина)
8 би<=5
P:=P*I
i:=i+1
6<=5, нет (ложь)

Нөхцөл байдлыг шалгах нь хэд хэдэн үе шаттайгаар явагддаг: нөхцөлийг шалгах, аль нэг салбар дээр тушаалуудыг гүйцэтгэх. Тиймээс мөрийн хүснэгт нь алгоритмын командуудыг бүртгэдэггүй, харин компьютерийн алхам бүр дээр гүйцэтгэдэг бие даасан үйлдлүүдийг бүртгэдэг.

Нэгдүгээр алхам: P-д нэг утгыг өгсөн.

Хоёрдугаар алхам: i-д нэг утгыг өгсөн.

Гуравдугаар алхам: i нэгтэй тэнцүү байх үед бид нэг бол таваас бага эсвэл тэнцүү байх нөхцөлийг шалгадаг, тиймээ, нөхцөл нь үнэн, энэ нь P-д нэгээр үржүүлсэн утгыг өгсөн, хоёр байх болно. Би: нэгийг нэмэх нь хоёр.

Дөрөвдүгээр алхам: i хоёртой тэнцүү бол бид хоёр нөхцөл таваас бага эсвэл тэнцүү байх нөхцөлийг шалгана, тиймээ, нөхцөл нь үнэн, энэ нь P-д 2 дахин нэгийн утгыг өгсөн бол энэ нь 2 болно. i-ийн хувьд: хоёр нэмэх нэг, гурав болно.

Тав дахь алхам: i гуравтай тэнцүү бол бид гурав таваас бага буюу тэнцүү байх нөхцөлийг шалгана, тийм ээ, нөхцөл нь үнэн, энэ нь P-д хоёрыг гураваар үржүүлсэн утгыг онооно гэсэн үг, энэ нь зургаа болно. Би-ийн хувьд: гурав нэмэх нь дөрөв.

Зургаадугаар алхам: i дөрөвтэй тэнцүү бол бид дөрөв дэх нөхцөлийг таваас бага эсвэл тэнцүү эсэхийг шалгана, тийм ээ, нөхцөл нь үнэн, энэ нь P-д зургаа дахин дөрөв дэх утгыг өгсөн гэсэн үг, энэ нь хорин дөрөв болно. Би: дөрөв нэмэх нь нэг нь тавтай тэнцүү.

Долоо дахь алхам: i тавтай тэнцүү бол бид тавыг таваас бага буюу тэнцүү эсэхийг шалгана, тийм ээ, нөхцөл нь үнэн, энэ нь P-д хорин дөрөвний утгыг таваар үржүүлбэл нэг зуун хорин болно гэсэн үг юм. Миний хувьд: тав дээр нэмэх нь нэг нь зургаа.

Наймдугаар алхам: i зургаатай тэнцэх үед бид зургаа нь таваас бага буюу тэнцүү байх нөхцөлийг шалгана, үгүй, нөхцөл худал бол бид давтахаас гарч, үр дүнд нь бид зуун хоринтой тэнцэх сүүлчийн утгыг авна. .

Pr1 програм;
Var i: бүхэл тоо;
Эхлэх
P:=1;
i:=1;
байхад би<=5 do
Эхлэх
P:=P*i;
i:=i+1;
Төгсгөл;
Write('P=', P);
Төгсгөл.

Дараах нөхцөл бүхий давталтын хувьд бид блок диаграмм болон мөрийн хүснэгтийг байгуулна. (слайд 16)

Үүний үр дүнд бид долоо дахь алхам дээр нэг зуун хоринтой тэнцэх сүүлчийн утгыг авдаг

Параметр бүхий мөчлөгийн хувьд бид блок диаграмм, мөрийн хүснэгтийг байгуулна. (слайд 17)

Үүний үр дүнд бид зургаа дахь алхам дээр зуун хоринтой тэнцэх сүүлчийн утгыг авна

Даалгавар:

1-ээс 5 хүртэлх тоог харуулах:

  1. шууд захиалга;
  2. урвуу дарааллаар.

Математик загвар:

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

Асуудлыг шийдвэрлэх блок диаграмм ба програмыг тоонуудын хувьд урагш болон урвуу дарааллаар үзүүлэв.

(слайд 21)

Боловсруулсан алгоритмуудаа Паскаль програмчлалын хэлээр бичье.

(слайд 22)

III. Хичээлийг дүгнэж байна

Тиймээс бид дараах асуултуудыг авч үзсэн.

  1. Алгоритмийн бүтцийн мөчлөг;
  2. Алгоритм бүтцийн төрлүүд:
    1. Урьдчилсан нөхцөл бүхий гогцоо;
    2. Дараах нөхцөл бүхий давталт;
    3. Параметр бүхий гогцоо;
  3. Бид эдгээр бүтцийг бүртгэх арга замыг авч үзсэн;
  4. Бид эдгээр бүтцийг ашиглан асуудлыг шийдвэрлэх жишээг авч үзсэн.