Циклдік операторларды пайдаланып бағдарламалау. Қайталану саны белгісіз циклдер

98

Сабақтың тақырыбы: Циклдік операторларды пайдаланып бағдарламалау. Қайталану саны белгісіз циклдер

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

Білімділік:   Оқушыларға берілген есептің шартына  қарай талдау жасауды, цикл командасын және  циклді ұйымдастыру принциптері туралы ұғымын қалыптастыру.

Тәрбиелік: Оқушыларды берілген есептер арқылы тиянақтылыққа, ұқыптылыққа, ақпараттық мәдениеттілікке тәрбиелеу.

Дамытушылық: Оқушылардың алгоритмдік ой-өрістерін кеңейтіп, пәнге деген қызығушылығын арттыру, оқушылардың шеберліктерін және дағдыларын дамыту.

 

Сабақтың түрі: дәстүрлі сабақ

 

Сабақтың әдісі: Болжау стратегиясы, түсіндіру, деңгейлік тапсырма

 

Сабақтың көрнекілігі: Дербес компьютер, интерактивті тақта

 

Әдістемелік және бағдарламалық қамтамасыз ету: Рower Рoint бағдарламасында

жасалған презентация, флипчарт,  Тurbo Рascal бағдарламалау тілі,

тест, “Информатика 9”  электронды оқулығы.

Пән аралық байланыс: математика

Күтілетін нәтиже:

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

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

  1. Ұйымдастыру сәті(1 мин)
  2. Үй тапсырмасын тексеру(2 мин)
  3. Проблемалық жағдаят туғызу(5 мин)
  4. Жаңа сабақтың негізгі мазмұны және оны түсіндіру(10 мин)
  5. Есептер шығару(20 мин)

а. «Тәжірибеден қорықпаңыз – нәтижесін көру үшін бағдарламаның бір  бөлігін

өзгертіңіз». Оқулықтан №19,21 есептер

ә. «Прогрессияға берілген есептерді компьютерде шығарайық» Алгебра 9 сынып, №168(а)

  1. Қорытындылау. Тест тапсырмалары, электронды оқулықтан тапсырма (4 мин)
  2. Бағалау(2 мин)
  3. Үйге тапсырма(1 мин)
  4. Ұйымдастыру: Оқушылардың сабаққа қатысы мен дайындығын тексеру.
  5. Үй тапсырмасын бағдарламалардағы қатені анықтау және сұрақтар қою арқылы

    тексеру:

  1. Егер m — нақты сан болса, онда m+1 өрнегінің мәні қандай болады?              (нақты)
  2. Қай операторлар дұрыс жазылмаған?

program qq;

var a, b: integer;   x, y: real;

begin

a := 5;

10 := x;

y := 7,8;

b := 2.5;

x := 2*(a + b +y);

writeln (x);

end.

Жауабы: (10 := x;       айнымалы := белгісінің сол жағында болуы керек.

y := 7,8;      санның бүтін бөлігі мен бөлшек бөлігі нүктемен ажыратылады.

b := 2.5;      нақты санды бүтін айнымалыға меншіктеуге болмайды)

 

  1. Үзіндідегі бағдарлама жолдары есеп шешіміне сәйкес келуі үшін қандай ретпен

орналасуы керек?

Есеп:Егер үшбұрыш қабырғалары А, В, С берілген болса, онда үшбұрышқа сырттай сызылған шеңбердің  радиусын  формуласымен есептеңдер.

{1}begin

{2}readln (a,b,c);

{3}s:=sqrt(p*(p-a)*(p-b)*(p-c));

{4}p:=(a+b+c)/2;

{5}writeln(‘r=’,r);

{6}end.

{7}r:=(a*b*c)/(4*s);

                                             (Рет бойынша 1, 2, 4, 3, 7, 5, 6 орналасуы керек)

 

  1. 3. Проблемалық жағдаят туғызу.

Алғашқы 5 натурал санның қосындысын есептеу бағдарламаласын құру.

Бағдарламаны сызықтық және тармақталушы алгоритмдерді пайдаланып түзейік.

а)  Сызықтық алгоритмді пайдаланып бағдарлама құрайық.

    program kosyndy;                                                                                                       

    var s: integer;                                                               

begin                                                                                                                           

s:=0;

s:=s+1;

s:=s+2;

s:=s+3;

s:=s+4;

s:=s+5;

writeln (s);                                                                 

      end.

Сызықтық бағдарламалауда натурал сандар қатарында сан артқан  сайын бағдарламада қосындыны жазу саны да артады.  S:=s+1; S:=s+2; s:=s+3;  …. ; S:=s+n; Яғни, қосындыны есептеу үшін қайталап жазу, бағдарлама құруда көп уақыт кетеді және бағдарлама тексті  өте ұзақ, оқуға ыңғайсыз.

 

б) Осы есепті тармақталу командасын пайдаланып шығарайық, ол үшін алдыңғы бағдарламадан қатардың қосындысын есептеу формуласын шығарайық.

Қатардың қосындысының формуласы: S:=S+х; мұндағы S – қосындының бастапқы мәні; х — әр жолы 1–ге артып отыратын параметр. Егер х<5 болса, онда шартсыз көшу операторы goto белгіде көрсетілген операторға көшуді ұйымдастырады, яғни қосындыны есептейді. Шарт орындалмаса қосындыны баспаға шығарады.

program kosyndy;                                                                

label 1;                                                                     

var x,s: integer;                                                          

begin                                                                       

s:=0; х=1;

1: s:=s+х;

х:=х+1;

if х<5 then goto 1;                                                         

writeln (‘s=’,s);                                                                 

end. 

Тармақталу командасында бағдарлама құруда шартсыз көшу операторын

пайдаланып бағдарламасын құрғанмен, мұнда алгоритмдік тілде жазу мен блок-схемада

шартты тексеру көрсету қиындық туғызады.

Олай болса  бағдарламалық текстер қысқа әрі оқуға жеңіл болу үшін қайталану процесін

циклдік алгоритмді қолданып ұйымдастырайық. Бүгінгі өтетін тақырыбымыз «Циклдік

операторларды пайдаланып бағдарламалау. Қайталану саны белгісіз циклдер» дәптерге

жазайық.

 

  1. Жаңа сабақтың негізгі мазмұны және оны түсіндіру:

А: Белгілі бір шартқа байланысты қайталанатын әрекеттер тобын жүзеге асыратын алгоритм циклдік деп аталады. Ал, қайталанатын әрекеттер тізбегін (цикл денесі) цикл  деп аталады.

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

 

Түрлері Блок схемасы Алгоритмдік тілдегі жазылуы Бағдарламалау тілінде
1  

Шартын алдын ала тексеретін цикл.

 

әзір шарт

цб

     цикл денесі

цс

 

while  шарт do

begin

        цикл денесі

(серия);

 end;

 

2  

Шартын соңынан тексеретін цикл.

 

қайталау

     цикл денесі

дейін шарт

 

 

 

repeat

            цикл денесі

(серия);

until   шарт    

 

 

  1. While-Do операторының орындалуы:
  2. While операторы циклге кіру шартынан және цикл денесінен тұрады.
  3. Цикл денесін әрбір қайталау алдында шарт тексеріледі. Шарт ақиқат болған жағдайда, цикл денесі орындалады, әйтпесе бағдарлама келесі операторға көшеді.
  4. Егер шарт алғаш тексерілгенде жалған болса, цикл денесі бір рет те орындалмастан бағдарлама цикл соңына шығады.
  5. Repeat–until операторының орындалуы:
  6. шарт кейін тексеріледі, сондықтан серия кем дегенде бір рет атқарылады.
  7. repeat операторында шарт ақиқат (иэ) болғанда қайталау (цикл) аяқталады.
  8. repeat операторында қайталау соңы шартпен аяқталады.

 

Енді алдыңғы мысалдағы алғашқы 5 натурал санның қосындысын есептеу бағдарламасын циклдік операторлар көмегімен құрайық. Ол үшін алгоритмдік тілде, блок схемасын  және бағдарламасын жазайық.

әзір циклін пайдаланып алгоритмдік тілдегі жазылуын мен жазамын, оқушылар бағдарламалау тіліне аударады (флипчартта, TP бағдарламасында)

 

Алгоритмдік тілде Бағдарламасы
 

aлг қосынды ( нәт бүт S)

басы бүт х

S:=0; х:=1

әзір x<=5

цб

S:=S+x

       х:=х+1

цс

шығару S

соңы

 

 

program kosyndy;   

var x,s: integer;                                                            

begin                                                                        

     s:=0; x:=1;

     while x<=5 do                                                                

     begin        

     s:=s+x;

x:=x+1;

     end;                                                                         

     writeln (‘s=’,s);

end        

                                             

 

дейін циклін алгоритмдік тілде мен, бағдарламалау тілінде оқушы жазуы керек (флипчартта, ТР бағдарламасында)

 

aлг қосынды (нәт бүтS)

басы бүт х

S:=0; х:=1

қайталау

S:=S+x

      х:=х+1

дейін x>5

шығару S

соңы

 

program kosyndy;                                                              

var x,s: integer;                                                            

begin                                                                        

    s:=0; x:=1;

    repeat                                                                      

     s:=s+x;

x:=x+1;

     until x>5;

     writeln (‘s=’,s);

end.  

Алғышартты циклден соңғы шартты циклге ауысып бағдарлама құруда не байқадық?

program kosyndy;  

var x,s: integer;                                                             begin    

       s:=0; x:=1;

while x<=5 do  

        begin        

        s:=s+x;

x:=x+1;     

       end;  

        writeln (‘s=’,s);

end.

program kosyndy;                                                              var x,s: integer;                                                             begin 

       s:=0; x:=1;

repeat     

        s:=s+x;

        x:=x+1;     

        until x>5;

        writeln (‘s=‘,s);                                                            end.

 

  1. Бірінші бағдарламадағы while операторы жазылған жолға екінші бағдарламада repeat

операторы жазылады.

  1. Бірінші бағдарламадағы цикл денесі begin … еnd; операторлық жақшаға алынады, ал

екінші бағдарламада цикл денесін (операторлық жақшаға алу міндетті емес) кейін until

операторы  жазылады.

  1. әзір цикліндегі шартқа дейін цикліндегі шарт қарама-қарсы.

 

  1. Есептер шығару:

а. «Тәжірибеден қорықпаңыз – нәтижесін көру үшін бағдарламаның бір бөлігін өзгертіңіз».

Оқулықтағы №19 есеп

1, 3, 5, …, 15 сандары квадраттарының қосындысын есептеу алгоритмін және бағдарламасын құру керек. Соңғы шартты циклді пайдаланып жауабын алу керек. Оқушылар компьютерде өздері орындауы керек.

program kosyndy;

var x,y,s:integer;

begin                                                                      

x:=1; s:=0;

while x<=15 do

begin            

y:=sqr(x);

s:=s+y;

x:=x+2;

end;

writeln (‘s=’,s);

end.

program kosyndy;

var x,y,s:integer;

begin                                                                      

x:=1; s:=0;

repeat

y:=sqr(x);

s:=s+y;

x:=x+2;

until x>15;

writeln (‘s=’,s);

end.

x:=x+2;  өрнегін inc(x,2) бүтін санды арттыру процедурасымен ауыстыруға болады.                                                                   

№21 есеп.

S=22+23+24+25 есептеу бағдарламасы әзір циклімен жазылған, дейін цикліне ауыстырып жазуы керек.

program kosyndy;

var x:integer;

s:real;

begin                                                                      

x:=2; s:=0;

while x<=5 do

begin      

s:=s+exp(x*ln(2));

x:=x+1;

end;

writeln (‘s=’,s);

end.

program kosyndy;

var x:integer;

s:real;

begin                                                                       

x:=2; s:=0;

repeat

s:=s+exp(x*ln(2));

x:=x+1;

until x>5;

writeln (‘s=’,s);

end.                                                         

ә. «Прогрессияға берілген есептерді компьютерде шығарайық»

 

Алгебра 9 сынып оқулығынан №186 есеп

 

А)Егер арифметикалық прогрессияның a1=7, d=4, n=13 болса, онда n-ші мүшесін және

алғашқы  n  мүшесінің қосындысын табыңдар.

Арифметикалық прогрессияның n-ші мүшесінің және алғашқы  n  мүшесінің

қосындысының формуласына ,  қойып есептейік:

a13= 7+ 4*12=55,  S13=0,5*(7+55)*13=403

 

В)  Арифметикалық прогрессияны тізбек түрінде жазайық.  7, 11, 15, …, 55 тізбегінің

қосындысын есептеу үшін әзір циклін пайдаланып алгоритмдік тілде кескіндейік.

 

aлг қосынды ( нәт бүт s)

басы бүт х

s:=0; х:=7

әзір x<=55

цб

s:=s+x

      шығару s

х:=х+4

цс

соңы

 

С) while – do және Repeat–until операторларын қолданып бағдарлама құру.

program kosyndy;

var x,s:integer;

begin

x:=7; s:=0;

while x<=55 do

begin

s:=s+x;

x:=x+4;

writeln (‘s=’,s);

end;

end.

program kosyndy;

var x,s:integer;

begin

x:=7; s:=0;

repeat

s:=s+x;

x:=x+4;

until x>55;

writeln (‘s=’,s);

end.

 

 

  1. Қорытындылау: «Не үйрендім?»
  2. 1. Тест «PowerPoint»-пен жасалған, бағасы компьютерде шығады.
  3. Алгоритмді орындағанда қосынды неге тең?

S:=0; х:=2

әзір x<5

цб

S:=S+x

шығару S

х:=х+1

цс

а)5                   ә) 11                б) 9*               в) 7

  1. Төмендегі цикл орындалғанда а-ның мәні неге тең?

a := 4; b := 6;

repeat

a := a + 1;

until a > b;

а)6          ә)7*                 б)8                  в)10

  1. Төмендегі цикл орындалғанда а-ның мәні неге тең?

a := 0

while a <5 do

a:=a+1;

а)6          ә)7                   б)5*                в)4

  1. Бағдарлама үзіндісінің орындалу нәтижесін (компьютерсіз) анықта:

i:=1;   

    while i<=3 do   

        begin         

             x:=sqr(i);         

             writeln(‘i=’,i,’  ‘,’x=’,x);         

             i:=i+1;    

        end;

а) i=1, x=1                  ә) i=1, x=1*                б) i=1, x=1                  в) i=1, x=1

i=3, x=5                   i=2, x=4                       i=3, x=9                      i=2, x=4

i=5, x=25                i=3, x=9                        i=5, x=25        i=5, x=25

 

  1. Бағдарлама үзіндісінің орындалу нәтижесін (компьютерсіз) анықта:

begin                                                                      

         x:=10; s:=0;                                                               

   repeat                                                                      

        s:=s+x;

x:=x+10;                                                              

    until x>12;                                                                

    writeln (‘s=’,s);                                                          

end.

а)12                         ә)10                 б)20*              в)22

  1. Электронды оқулықтан екі тапсырма:

а) Блок-схемада көрсетілген алгоритмнің орындалу нәтижесі бойынша Х айнымалысының мәні неге тең?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ә) Бағдарламаның келесі бөлігін сәйкес орынға қойыңыз.

 

  1. Бағалау. Оқушыларды бағалау тапсырманы орындауына байланысты орындалады.

 

                     № Оқушының аты жөні Үй

тапсырмасы

(сұрақтар)

Есептер шығару (компьютерде)

 

қосымша Деңгейлік

тапсырма

Тест тапсыру (бағасы компьютерде шығады) Бағасы
№19 №21 А В С
1
2
3
12

 

  1. Үйге тапсырма: 1.8. Қайталану саны белгісіз циклдер.

№4. Бағдарламаның орындау нәтижесін (компьютерсіз) анықтаңдар.

begin

s:=0; x:=10;

repeat

s:=s+x;

x:=x+10;

until x>12;

writeln (‘s=’,s);

end.