Циклдік алгоритмдер

Маңғыстау облысы.

Бейнеу  аудандық.

«Манашы орта мектебі»МКК

Информатика пәні мұғалімі

Бурунова  Зульпия

 

Сыныбы 8________________________________________

Күні_____________________________________________

Сабақтың тақырыбы: Циклдік алгоритмдер

Сабақтың мақсаты:

Білімділігі:Оқушыларға циклдік алгоритмдерді түсіндіру білімін жетілдіру

Тәрбиелігі: Оқушыларды алғырлыққа өз бетімен жұмыс істеуге тәрбиелеу

Дамытушылығы: Оқушылардың есте сақтау қабілетін дамыту

Түрі: Теория/практика

Сабақ көрнекіліктері: компьютер, карточкалар, тапсырмалар;

Сабақ жүрісі:  I. Ұйымдастыру.

  1. Үй тапсырмасын сұрау. Сұрақтар арқылы тексеріледі.

III. Жаңа сабақ

Паскаль тілінде қайталану процесін жүзеге асыратын циклдік операторлардың үш түрі бар: арифметикалық цикл,шартын алдын ала тексеретін цикл және шартты соңынан тексеретін цикл

«Төртжапырақты раушан»  графигін  салу  керек,  оған  қажет  формулалар  математикалық  анықтамалықтан  алынады:

X=R·cos(2t)·cos(t); Y=R·cos(2t)·sin(t)6   мұнда  t=0¸6.28

R=100, түсc=5  болсын.

0                              320                        x

Алг  сурет

Басыбүт С, нақ х,у,tR

С:=5

ҮшінTбастапдейін6.28  қад0.05

Цб                                                                               0

X:=(100-c·3)·cos(2t)·cos(t)

Y:=(100-c·3)·cos(2t)·sin(t)

Нүкте (x+320, y+240),c                                         y

Цс

Соңы

 

Әсерлі  болуы  үшін  әр  түрлі  түспен  15  график салайық.  Олардың  бәрі   көрініп  тұруы  үшін  R-дың  әр  түрлі  мәндерін  қолданайық:

(100-c·3)=100-15·2,100-14·2,…,100-1·2 формуласымен  анықталатын  әр түрлі  мәндерін  апйдаланайық.

Алг  сурет

Басы  бүт с, нақ  х,у,t

Үшін С  бастап 15 дейін1қад-1

Цб

ҮшінTбастапдейін6.28  қад0.05

Цб

X:=(100-c·3)·cos(2t)·cos(t)

Y:=(100-c·3)·cos(2t)·sin(t)                                                        320                               x

Нүкте (x+320, y+240),c  0

Цс

Цс

Соңы

 

 

240

y

 

 

 

 

Берілген  суретті  экранда  алу  үшін, алгоритмді Pascal  программалау  тілінде  жазу  керек:

Program_43 {төртжапырақты раушан};

Uses graph;

Vardriver, mode, x,y,c: integer; t: real;

Begin

Driver:=detect; initgraph (driver, mode, ‘c:\tp7\bgi’);

Setbkcolor(1);

For c:=15 downto1 do

Begin

T:=0;

While t<=2*pi  do

Begin

X:=trunk((100-c*3)*cos(2*t)*cos(t));

Y:=trunk((100-c*3)*cos(2*t)*sin(t));

Putpixel(x+320, y+240,c);

T:=t+0.05

End;

End;

Readln;cleardevice; closegraph;

End.

Crtмодулі  пайдаланатын  текстік  режим  кодтық  кестенің  символдарын  бейнелеу  үшін  қызмет  етеді де,  жолдағы  символдар   санымен  және  экрандағы  жолдар  санымен  сипатталады.Басқарудың  минималь  бірлігі  бірнеше  нүктеден  тұратын  символ  болып  табылады.

Текстік  режимде,  егер  экранды  максималь  мүмкін  болатын  терезе  деп  қарастырсақ, х (баған)  үшін  мәндер  ауқымы =1..80, у (жол) үшін  =1..25. Экранның  жоғарғы  сол жақ  бұрышының  координаталары  (1;1), оң жақ  төменгі  бұрышынікіндей (80;25).

 

44-мысал. Turbo Pascal-дың  түстік  мүмкіндіктерін  көрсететіндей  программа  құру  керек.

Program_44;{тексті  әр түрлі  түспен  басу}

Uses crt;

Var c:byte;

Begin

Clrscr;

For c:=0 to 15 do

Begin

If c=0 then textbackground (15) else textbackground (0);

Textcolor (c);

Gotoxy (20,c+1);

Writeln(‘түсі’, c);

End;

{жылтылдайтын  текст}

For c:=0 to  15  do

Begin

If c=0  thentextbackground (15) elsetextbackground (0);

Textcolor (c+128);

Gotoxy(30,c+1);

Writeln (‘color’, c);

End;

Readln; writeln;

End.

 

Соңғы writeln  операторына  назар  аударыңдар,  егер  оны   алып  тастасақ,  онда  символдардың  жылтылдау  режимі  жұмыс  біткеннен  соң да сақталады.

 

Мысал. Үлкейіп  отыратын  шеңберлерді  (радиус  1-ден  50-ге  дейін  өзгереді)  модельдеу  керек.

Program_;{үлкейетін  шеңберлер}

Uses  graph, crt;

Var  driver, mode, i:integer;

Begin

Driver:=detect; initgraph(driver, mode, ‘c:\tp7\bgi’);

Setcolor(9);

For i:=1 to50 do  begin delay (2000);

Setfillstyle(1,14); fillellipse(320,240,I,i); end;

Readln; cleardevice; closegraph;

End.

 

46-мысал. Жұлдызды  аспан  суретін  салу керек.

Program_46; {жұлдызды  аспан}

Uses graph, crt;

Vardriver, mode, I,xi,yi,c:integer;

Begin

Driver:=detect; initgraph(driver, mode, ‘c:\tp7\bgi’);

For i:=1 to 80 do begin

Xi:=random(639); yi:=random(479); c:=random(15)+1;

Setcolor(c);

Setfillstyle(1,c); fillellipse(xi,yi,1,1);

Delay(10000); end;

Readln;cleardevice; closegraph;

End.

Үй тапсырмасын беру Есептер шығару

Бағалау. Сабақ айтып есеп шығаруына қарай бағалау

 

 

Сыныбы  8 ________________________________________

Күні____________________________________________

Сабақтың тақырыбы: Циклдің алғы шарты

Сабақтың мақсаты:

Білімділігі: Циклдік алгоритм  туралы түсінік; қайталану саны белгісіз циклдер дегеніміз не?

оларға  бағдарлама құра білуді;

Тәрбиелігі: Адамгершілікке, ұқыптылыққа, тазалыққа тәрбиелеу.

Дамытушылығы: Оқушылардың есте сақтау қабілетін дамыту.

Түрі: Теория

Көрнекілік: Оқулық әдістемелік  нұсқау

 

Сабақтың барысы:

 

  1. Ұымдастыру
  2. Үй жұмысын сұрау
  3. Жаңа сабақ
  4. Бекіту
  5. Үйге тапсырма
  6. Қорытындылау
  1. Оқушылармен амандасып, журнал бойынша белгілеп, келмеген оқушылардың себебін анықтау, оқу құралдарын түгендеу.
  2. Оқушылардан үйге берілген тапсырманы сұрау.

Осындай әрекеттерді жүзеге асыратын алгоритмді  циклдік, ал көп рет қайталанатын  әрекеттер  тізбегін (цикл денесі) – цикл деп атайды. Циклдерді пайдалану жинақы программалардың көмегімен  есептеулердің үлкен көлемдерін  орындауға мүмкіндік береді.

Қайталану саны берілген (белгілі) циклдер және қайталану саны алдын ала белгісіз циклдер болады.

Кейде циклді неше рет қайталану керек екені  алдын ала белгісіз, бірақ ол қандай да шарт сақталғанша  орындалуы керек екені белгілі болады.

Жүзеге асыру түрлері:

Блок-схемаАлгоритмдік тілPascal
 

 

 

Иә                    жоқ

 

 

 

 

 

 

 

 

 

 

 

 

Қайталану командасы:

 

әзір  шарт

цб

цикл денесі

цс

Алғы шартты цикл

Операторы:

Whileшартdo

Begin

Цикл денесі

(серия)

End;

Егер серия бір командадан тұратын болса, операторлық жақшаларды қоймауға болады.

Соңғы шартты цикл операторы:

Repeat

Цикл денесі

(серия);

Until шарт;

Цикл шарт әзірше ақиқат

(while) немесе әзірше жалған

(repeat… until) болғанда орындала береді.

 

18 – мысал. 1,3,5,…,15 сандарының квадраттары кестесін құру керек.

Шешуі. Егер циклдің басқарушы айнымалысы Х-ті (параметрді)  бастапқы 1 мәнінен соңғы  15 мәніне дейін 2 қадаммен өзгертсе, У=Х2 формуласы бойынша сандар квадраттарының кестесін құруға болады.

Кестенің бірінші жолын жасау үшін келесі әрекеттерді орындау керек:

  1. Х-ке бастапқы мәнді меншіктеу:

Х: =1

  1. У-ті анықтау:

У: =Х2

  1. Алынған нәтижені шығару.

 

 

 

 

 

 

 

жоқ

 

 

 

 

 

 

 

 

 

 

 

 

Сонымен, циклді дұрыс ұйымдастыру үшін:

  1. Параметрдің бастапқы мәнін беру керек;
  2. циклдің аяқталу шартын тексеру керек;
  3. циклдің жаңадан қайталануының алдында параметрді өзгерту керек.

Программаларды циклдік алгоритмдер бойынша Pascal  тілінде құру – мейлінше  күрделі жұмыс, өйткені  циклдерді  ұйымдастыру  ережелерінің  бірінің  бұзылуы  түсініксіз, жөндеуге келмейтін  шиеленіскен программаның  пайда болуына әкеледі. Көбінесе мұндай программаларда логикалық қателер болады.

 

Алгоритмдік тілПрограмма
Алг квадраттар кестесі (нәтбүт  У)

Басыбүт Х

Х: =1

әзір Х<=15

цб

У: =Х2

Шығару х,у

Х: =х+2

Цс

соңы

Program_18; {Квадраттар кестесі}

Var x,y:iteger;

Begin

X:=1;

While  x<=15 do

Begin

Y:=sqr(x);

Writeln (x,y);

X:=x+2;

End;

End.

Параметрлі  қайталану  командасы ( «үшін» циклі ) қайталану саны алдын  ала  белгілген  жағдайларда  қолданылады.

Мысалы: 1,2,3 ,… , 15 сандары  квадраттарының  кестесін  құрайық

Шешуі.Параметрдің   бастапқы  мәні Хбас = 1. Соңы  мәні  Х соң  = 15. Каддамың  мәні Хкад = 1

алг квадраттар  кестесі (нәт  бүт Ү)

басы  бүт   Х

үшін Х  бастап 1 дейін 15

цб

Ү:=Х2

шығару  Х,Ү

цс

соңы

Бұл алгоритмнің  блок-схемасы мынадай:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Мысалы  Латын  алфавитін басып шығару керек.

program_ {Алфави}

Var i: char

begin

for i:= ‘a’ to  ‘z’  do

write (  ‘ ‘. i )

end.

ASCII  кестесінің  реттелген симвволдарының  жиыны ‘a’символынан  ‘z’ сиволына дейін  басылып шығады.

 

4.Бекіту:

– Циклдық алгоритмнің қандай түрлері бар?

— Қайталану командасы  қандай  жолмен орындалады?

— Қайталану саны белгісіз болса алгоритм нешеге бөлінеді, қандай операторлар қолданылады?

 

  1. Үйге тапсырма Есептер шығару
  2. Бағалау.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сыныбы  8_______________________________________

Күні_____________________________________________

Сабақтың тақырыбы: Есептер шығару

 

Сабақтың  мақсаты

Білімділігі: Циклдік алгоритм  туралы түсінік, оларға  бағдарлама құра білуді

үйрету;

Тәрбиелігі: Адамгершілікке, ұқыптылыққа, тазалыққа тәрбиелеу.

Дамытушылығы: Оқушыларды  есте сақтау  қабілетін  дамыту.

Түрі: Теория

Көрнекілік: Оқулық әдістемелік  нұсқау

Сабақтың барысы:

  1. Оқушылармен амандасып, журнал бойынша белгілеп, келмеген оқушылардың себебін анықтау, оқу құралдарын түгендеу.
  2. Оқушылардан үйге берілген тапсырманы сұрау.
  3. Жаңа сабақ:

 

Жоғарыда  қарастырылған  циклдік   программаларға келтіілген  мысалдардың  бәрінде  қарапайым циклдер болады.

Мысалы Келесі  фигураны экранға  басып шығару кере:

 

******

******

******

******

 

program _ 19;{Жұлдыша }

vari, j: byte;

begin

for i:= 1 to  4   do

begin

for j:=1  to 6 do

write (‘*’)

writeln;

end;

end.

Шешуі .Алдымен  сыртқы  цикл  жолдың нөмерінің  мәнін і = 1 белгілейді.

параметрі j  болатын  ішкі цикл  жолға алты  «жұлдызша» басады.Сондан  кейін writeln операторы  меңзерді  келесі  жолға  ауысырады.Келесі мән і=2  қабылданады да, басу  процесі   і ≤4 болғанша қайталана  береді.

 

Символдар  тізбегін  мына  түрде  шығару  керек.

а

ав

авс

…..

aвсd …z

program _ 20;{Симолдар  тізбегі}

vari, j:  char;

begin

for i:= ‘a’ to  ‘z’   do

begin

for j:= ‘a’  to  i do

write ( “ , j );

writeln;

end;

end.

 

Төмендегі  фигураны экранға шығаратын  программа  құрыңдар

*

**

**٭

٭٭٭٭

٭٭٭٭٭

٭٭٭٭٭٭

program _ 19;{Жұлдыша }

var i, j: integer;

begin

for i:= 1 to  6   do

begin

for j:=1  to i do

write (‘*’)

writeln;

end;

end.

 

  1. Қорытындылау:
  2. Үйге тапсырма: Есептер шығару

6.Бағалау.