Просмотр содержимого документа
«Ашы? саба? ?айталау операторы»
7
№17 сабақ
Сыныбы: 9а Күні: 14.01.2016ж
Сабақтың тақырыбы: Қайталау операторы
Сабақтың мақсаты:
Білімділік: Оқушыларды Паскаль тілінің қайталау операторларымен таныстырып, программа құруға дағдыландыру;
Дамытушылық:ОқушылардыңПаскаль программалау тілінде есеп шығару мүмкіндіктерін, логикалық ойлау қабілеттерін дамыту.
Тәрбиелілік:Топтасып жұмыс істеуге, ұйымшылдыққа, белсенділіке, жауапкершілікке
тәрбиелеу
Сабақың түрі: Аралас сабақ
Сабақта қолданылатын көрнекті құралдар: компьютер, окулық, слайдтар, тақта Сабақтың өту барысы:
І. Ұйымдастыру
- Саламатсыздар ма, балалар! Көңіл күйіміз қалай?
«Бала білімді махаббатпен көксерлік болса, сонда ғана оның аты адам болғаны», - деп Абай атамыз айтқандай, сіздерге білімге деген құштарлық пен махаббат тілеймін.
ІІ. Ой шақыру (Оқытылған тақырып бойынша білімді өзектеу)
«Өткенді білмей, болашаққа ұмтылу мүмкін емес».
Н.Ә. Назарбаев
«Бөшкеден шыққан бас қатырғылар»
1.a:=3; b:=6
If a
А-ның мәні неге тең? (а=4)
2. 33 MOD 6 =? (3)
3. Var операторының қызметі қандай? (айнымалыларды сипаттау)
4.50 DIV 8 =? (6)
5.b=a+1
Егер а-ның типі REAL болса, онда в-ның типі қандай болады? (REAL)
6.Write операторының қызметі қандай? (шығару)
7. Программа үзіндісінің міндеті қандай? Program esep1;
Var x: integer; (xайнымалысы бүтін типті мәндер қабылдайды)
8. Программа үзіндісінің міндеті қандай? BEGIN
Read (X);
Y:=SQR(X);
Write (Y);
End. (Х-тің квадратын есептеу)
9.Қай операторлар дұрыс жазылмаған?
program qq;
var a, b: integer;
x, y: real;
begin
a := 5;
10 := x; (айнымалыатауы := белгісінің сол жағында болуы керек)
y := 7,8; (бүтінменбөлшектіңарасынүктеменажыратылуыкерек)
b := 2.5; (нақтымәндібүтінайнымалығаменшіктеугеболмайды)
x := 2*(a + y);
a := b + x; (нақтымәндібүтінайнымалығаменшіктеугеболмайды)
end.
10. a:=7; b:=5
If ab then writeln(a) else writeln(b);
Осы программа үзіндісінен кейін экранда не шығады?(7)
ІІІ. Мағынаны тану (Жаңа материалды оқыту)
Көп жағдайда аргументтердің әртүрлі мәні бойынша алгоритмнің белгілі бір бөліктерін бірнеше рет қайталауға тура келеді. Осындай процестерді ұйымдастыру үшін циклдік құрылымды алгоритмдер – қайталау операторлары қолданылады.
Цикл деп программадағы қайталанатын әрекетті айтады. Паскаль тілінде қайталау процесін жүзеге асыратын циклдік операторлардың үш түрі бар: арифметикалық цикл – FOR, шартын алдын ала тексеретін цикл – WHILE, шартты соңынан тексеретін цикл – REPEAT операторлары.
WHILE операторы. Алдын ала берілген шарт бойынша қайталауды жүзеге асыратын бұл оператор WHILE (оқылуы: уаил, аударылуы: әзірше) және DO (оқылуы: ду, аударылуы: орындау) түйінді сөздері қолданылып аударылады.
Жазылу үлгісі:
While шарт Do false
Begin
1-оператор; true
Цикл денесі
2-оператор;
……..;
n-оператор;
End;
WHILE операторының орындалу тәртібі
Цикл қайталанар алдында, логикалық өрнетің мәні тексеріледі, егер true (ақиқат) болса, онда цикл денесі қайталанып орындалып отырады. Керісінше false (жалған)болса, циклдің орындалуы аяқталып, While операторынан кейінгі жолдар орындалады.
Егер ең басында, өрнектің мәні жалған болса, онда цикл бір ретте орындалмайды. 1-мысал: 1-ден 100-ге дейінгі сандардың қосындысын есептеу керек.
Program sum;
Var i,S: integer;
Begin
S:=0; i:=1;
While i
Begin
S:=S+i;
i:=i+1; End;
Writeln (‘S=‘, S)
End.
REPEATқайталау операторы WHILE операторына ұқсас, айырмашылығы – қайталану шарты цикл соңында тексеріледі, сондықтан ол кем дегенде бір рет орындалатын болады. Екінші өзгешелігі – цикл тұлғасы шарт жалған болғанда қайталанып, ол ақиқат болған кезде циклді орындау доғарылады. (WHILE операторында керісінше болған).
Бұл оператор REPEAT (оқылуы: рипит, аударылуы: қайталау) және UNTIL (оқылуы: антил, аударылуы: дейін, шейін) түйінді сөздерін пайдаланып орындалады.
Жазылу үлгісі:
оператор
Repeat
Begin
1-оператор;
2-оператор;false
……..;
n-оператор;true
Until шарт
Repeat операторының орындалу тәртібі
Алдымен Repeat сөзінен кейінгі операторлар тізбегі орындалады;
Until сөзінен ткейінгі шарт тексеріледі;
Егер өрнектің мәні false болса, онда цикл қайталанады, true болса цикл
аяқталады.
2-мысал: 1-ден n-ға дейінгі сандардың қосындысын есептеу керек
Program sum;
Var i,n,S: integer;
Begin
Write(n=’); Read(n);
S:=0; i:=1;
Repeat S:=S+і;
i:=i+1;
Until in;
Writeln(‘S=’, S);
End.
FOR операторы. Егер алгоритмде қайталану саны алдын ала белгілі болған жағдайда FOR операторы қолданылады. Бұл оператор параметрлі цикл операторы деп те аталады.
. Жазылу үлгісі:
FOR цикл парамері:=n1 TO n2 DO
цикл денесі;
FOR цикл парамері := n2 DOWNTO n1 DO
цикл денесі;
Мұндағы FOR (үшін), TO (дейін), DO (орындау) – қызметші сөздер;
:= - циклді басқару айнымалысы, Integer типті (немесе) кез келген реттелген тип) . n1, n2 – цикл параметрінің бастапқы және соңғы мәндері, ( типі циклді басқару айнымалысымен сәйкес). (кері қарай, DOWN төмен, TO дейін). Егер қадам -1 ге тең болса онда операторда ТО, ал қадам -1 –ге тең болса онда DOWNTO сөзі қолданылады.
FOR операторының орындалу тәртібі
Ең алдымен мән есептеліп цикл парамеріне меншіктеледі. Содан кейін мына әрекеттер қайталанады:
- n2 -шарты тексеріледі, егер шарт орындалса, онда:
Цикл денесіндегі оператор орындалады
Цикл параметріне 1 қосылып, 1-ші пунктқа оралады.
(DOWNTO болса, = n2 тексеріліп, цикл параметрі -1-ге өзгеріп отырады.);
Егер шарт орындалмаса, онда FOR операторы жұмысын аяқтайды
3-мысал: 1- ден 10-ға дейінгі cандардың қосындысын есептеу керек.
Program kosindi;
Var i, S:integer;
Begin
S:=0;
For i:=1 to 10 do
S:=S+i;
Writeln (‘S = ‘, S);
End.
4-мысал: 10- нан 1-ге дейінгі cандардың қосындысын есептеу керек.
Program kosindi;
Var i, S:integer;
Begin
S:=0;
For i:=10 downto 1 do
S:=S+i;
Writeln (‘S = ‘, S);
End.
IV. Қолдану
Топпен жұмыс
1-тапсырма
І топ: Бірден n-ға дейінгі жұп сандардың қосындысын есептейтін программа құру
Program jup;
Var i, s,n : integer;
S:=0;
For i:=1 to n do
Begin
If I mod 2 = 0 then s:=s+i ;
Writeln (‘ s=’, s);
End;
End.
ІІ топ: Жүзден бірге дейінгі тақ сандардың қосындысын есептейтін программа құру
Program esep2;
Var i, s: integer;
begin
S:=0;
For i:=100 downto 1 do
Begin
If I mod 2 = 1 then s:=s+i ;
Writeln (‘ s=’, s);
End;
End.
2-тапсырма
x∈[1;3] аралығында 0,2 қадаммен өзгергендегі y=
функциясының мәнін тап.
I топ: Шартты алдымен тексеретін цикл
Program pr3;
Var x,y: integer;
Begin
x:=1;
While x
Begin
y:=sqrt(x+1)-1/x;
Writeln(‘x=’,x, ‘y=’,y);
x:=x+0,2;
End;
End.
IІ топ: Шартты соңынан тексеретін цикл
Program pr3;
Var x,y: integer;
Begin
x:=1;
Repeat y:=sqrt(x+1)-1/x;
Writeln(‘x=’,x, ‘y=’,y);
x:=x+0,2;
Until x3;
Readln;
End.
Тәжірибелік жұмыс
N! факториалды табу программасын жаз. P=1*2*3*…. *N
Program fakt;
Var i,n,P: integer;
Begin
Writeln(;n=’); Readln(n);
P:=1; i:=1;
Repeat
P:=p*1;
I:=i+1;
Until in;
Writeln(‘p=’,p);
End.
VІ. Жинақтау
«Түйін»
Белгілі бір заңдылықпен алгоритмдік тізбекті толтыр