Таңдау операторы.
Берілген өрнектің мәніне тәуелді бір немесе бірнеше оператор орындалатын
жағдайда таңдау операторы пайдаланылады. Таңдау операторы алгоритмдік
тілдегі таңдау командасына ұқсас болғанымен аздаған өзгешелігі
бар.Алгоритмдік тілде таңдау шарт бойынша орындалса, Паскаль тілінде
тұрақтылар бойынша жүзеге асырылады.
Жазылу түрі: CASE өрнек OF
1 – тұрақты;
2-тұрақты;
- - - - - - -
N – тұрақты;
End.
3-Мысал. Апта күндерінің нөмірі бойынша аттарын анықтауға программа
құрыңдар:
Program Apta;
Var n:integer;
Begin
Writeln(‘күн нөмірін енгіз’);
Read(n);
Case n of
1: writeln(‘дүйсенбі’);
2: writeln(‘сейсенбі’);
3: writeln(‘сәрсенбі’);
4: writeln(‘бейсенбі’);
5: writeln(‘жұма’);
6: writeln(‘сенбі’);
7: writeln(‘жексенбі’);
End;
End.
Экранда:
күн нөмірін енгіз
5
Жұма.
Өз бетіндік тапсырмалар:
1. 2 3
3
cos3 5
3 sin
x tg x x
x
y
2. b x 2x2 7x 2 x 3
3. z b6 sin x2 cos3x 3x
4. Ай аттарын нөмірі бойынша анықтайтын программа құрыңдар.
5. Жанұяның бір күнде азық – түлікке жұмсайтын ақшасын есептеуге
программа құру.
Бақылау сұрақтары:
1. Меншіктеу, енгізу, шығару операторларының атқаратын қызметі?
2.Паскаль программалау тілінде есептің нәтижесін алу қандай команда
көмегімен жүзеге асады?
3. Паскальда келесі терезені белсенді ету қандай функциональды терезенің
көмегімен жүзеге асады?
4. Санның абсолюттік шамасын Паскаль тілінде қалай белгілейміз?
5. Write мен Writeln-нің айырмашылығы неде?
Практикалық сабақ№12
Сабақтың тақырыбы: Шартты оператор.
Мақсаты: шартты операторды пайдалана отырып, экономикалық есептерді
шығару.
Әдістемелік нұсқау:
Жазылу түрі мынадай:
IF шарт THEN 1-оператор ELSE 2-оператор
Егер шарт онда 1-серия әйтпесе 2-серия
Мұндағы 1,2-ші операторлардың өзі қарапайым немесе құрама оператор
болуы мүмкін.
Егер IF сөзінен кейінгі жазылған шарт сақталса (ақиқат болса), онда
THEN (онда) сөзінен кейін жазылған операторлар сериясы орындалады, онда
2-серия операторлары орындалмайды.
IF сөзінен соң жазылатын шартты жазу үшін Паскаль тіліндегі
өрнектерді салыстыру:=, >,>=, <, <=,<> белгілерін пайдаланады.
Мысал1. Нан алу керек, қалған ақша жетсе алма алу есебі.
NS- айранның саны,
NK-айранның құны,
AS- алма саны,
AK-алма құны.
D – барлық ақша.
X -?
Program prim1;
Var ns, nk, as, ak,d,x:real;
Begin
Write(‘нан саны=’); read(ns);
Write(‘нан құны=’); read(nk);
Write(‘алма саны=’); read(as);
Write(‘алма құны=’); read(ak);
Write(‘барлық ақша=’); read(d);
X:=D-NK*NS;
IF x>=AS*AK then x:=x-AS*AK else writeln (‘алмаға ақша жетпейді’);
Write (‘x=қалған ақша’,x);
End.
Мысал2. Алманың килограмы 250 теңге, алдымен алма алу керек, ақша
жетсе сүт алу қажет.
Программа құрып нәтижесін алу.
Практикалық сабақ №13-14 (2-сағ.)
Сабақтың тақырыбы: Циклдік программа құру.
Мақсаты: Цикл операторын пайдаланып программа құра білуге үйрету.
Негізгі ұғымдар:
Көп жағдайларда аргументтердің әртүрлі мәндері бойынша
(алгоритмнің белгілі бөліктерін немесе) программаның бірнеше операторлар
тобын бірнеше рет қайталауға тура келеді. Осындай процесстерді
ұйымдастыру үшін цикл операторлары пайдаланылады. Қайталанушы
бөліктер әртүрлі заңдылықтар ережелер бойынша құрастырылады.
Паскаль тілінде қайталау процесін 3 түрлі жолмен ұйымдастыруға
болады:
1. Жалғасу шартымен берілген циклдер
2. Аяқталу шартымен берілген циклдер
3. Параметрлі цикл мәні бойынша қайталауды ұйымдастыру
Бұл қайталаудың қай-қайсысын алсақ та, олар қайталау операторларының
көмегімен жүзеге асырылады.
Жалғасу шартымен берілген шарт бойынша қайталау.
Бұл қайталау көп жағдайда қайталаудың саны белгісіз болған жағдайда
пайдаланылады. Құрылымы:
WHILE шарт DО
BEGIN cерия
END;
Аталған операторды жалпы түрде былай да жазуға болады:
WHILE В DО Р;
Мұндағы В- шарт (логикалық өрнек), Р-операторлар.
Келтірілген оператор былай орындалады. Алдымен, шарт
тексеріледі. Егер шарт орындалса, онда циклдың денесі орындалады.
Содан соң қайтадан шарт тексеріледі және тағы сол сияқты, бұл процесс
қашан шарт сақталудан қалғанша қайталанады. Егер шарт сақталмаса,
басқару операторлық жақшаның соңында тұрған операторға көшіріледі.
Басқаша айтқанда, логикалық өрнектің мәні қашан жалған болғанша циклдің
денесі қайталанып орындала береді. Егер қайталаудың денесі бірнеше
оператордан құралса, онда олар BEGIN-END қызметші сөздерінің арасына
алынып жазылады. Ал, егер циклдің денесі бір ғана оператордан тұратын
болса, онда оны операторлық жақшасыз да жазуға болады.
Егер шарт жалған болса, онда цикл денесі бірде-бір рет орындалмайды.
Мысал1. 2-ден 10-ға дейінгі жұп сандардың қосындысын анықта.
Program prim1;
Var i,S:integer;
Begin
S:=0; i:=2;
While i<=10 do
Begin
S:=s+i; i:=i+2;
Writeln (‘S=’,S); End;
End.
Аяқталу шарты бойынша қайталау операторы.
Бұл оператор да көптеген жағдайларда қайталаудың саны белгісіз болған
кезде пайдаланылады. Құрылымы:
REPEAT Цикл денесі UNTIL шарт;
Бұл оператор да көптеген жағдайларда қайталаудың саны белгісіз болған
кезде пайдаланылады.
Мұндағы REPEAT –қайтала, UNTIL – соған дейін қызметші сөздері.
Оператордың орындалуы: қашан логикалық өрнектің мәні ақиқат болғанша
циклдің денесі қайталана береді. Бұл оператордың WHILE …DO циклынан
айырмашылығы циклдың денесі кемінде бір рет орындалады. Демек,
операторда алдымен циклдың денесі орындалады да, одан соң шарт
тексеріледі. Оператордың соңы UNTIL қызметші сөзімен аяқталатын
болғандықтан, мұнда BEGIN және END қызметші сөздері жазылмайды. Егер
циклдың денесінде шартсыз көшіру операторы болып, ол циклдың
сыртындағы оператордың белгісіне басқаруды берсе, онда циклдың
орындалуы ары қарай жалғаспайды.
Program prim2;
Var i,S: integer;
Begin
S:=0; i:=2;
Repeat
S:=s+i; i:=i+2;
Writeln(‘S=’,S);
Until i>10;
End.
Параметрлі қайталау операторы.
Қайталау саны белгілілі болғанда, шартты параметрлі қайталау
операторын пайдалануға қолайлы:
for i:= m1 to m2 do
begin
oператорлар
end;
Мұндағы for – үшін, to - дейін, do - орындау, i - циклдің параметрі,
типі бүтін тип болуы керек; m1, m2 – параметрдің бастапқы және соңғы
мәндері. Параметрдің қадамы тек екі мән: 1 немесе –1 ғана болады. Егер
қадам 1-ге тең болса, онда to, ал қадам –1-ге тең болса, downto қолданылады.
Оператордың орындалу тәртібі:
а) параметрдің мәні m2 –мен салыстырылады, егер ол m2-ден кіші болса,
онда циклдың денесі бір рет қайталанады. Ал, ол m2-ден үлкен болса, онда
басқару цикл денесінің соңындағы операцияға беріледі де, қайталану
аяқталады.
ә) әр қайталанғанда, параметрдің алғашқы мәніне бір қосыла отырып, қашан
параметрдің мәні m2-ден артық болғанша циклдің денесі қайталана береді.
Мысалдар:
1. for i: =1 to 6 do 2. for i: = 6 down to 1 do
write (i: 6); write (i: 6);
1 2 3 4 5 6 6 5 4 3 2 1
Келтірілген программа бөліктерінде қадам h=1-ге тең болып, өсіп
отыратын және h=-1-ге тең болып, кеміп отыратын жағдайлар келтірілген.
Бірінші жағдайда to қызметші сөзі, ал екінші жағдайда downto қызметші
сөздері қолданылып тұр.
Program prim3;
Var i, S:integer;
Begin
For i:=2 to 10 do begin
If i mod 2=0 then S:=S+i; (if I mod<>0 then S:=s+i тақ сандар)
Writeln (‘S=’,S);
End;
End.
Өзін-өзі тексеруге арналған сұрақтар:
1. Цикл дегеніміз не?
2. Цикл денесі деген не?
3. Цикл операторларының түрлері, олардың қолданылу ерекшеліктері.
4. Цикл операторларының программада жазылуы.
5. Іштестірілген циклдар деген не?
Әдебиеттер: Алдыңғы тақырыпта ұсынылған әдебиеттер.
Өз бетіндік тапсырмалар:
1. 3-ке еселі 30 ға дейінгі сандардың қосындысын 3-тәсілмен есептеу.
2. 4-ке еселі 20-ға дейінгі сандардың көбейтіндісін 3-тәсілмен шығару.
3. 10-ға дейінгі тақ (жұп) сандардың көбейтіндісін 3-тәсілмен есептеу.
Практикалық сабақ №15
Сабақтың тақырыбы: Массив түсінігі, массивтерді өңдеу
Сабақтың мақсаты: Массив элементтері туралы түсінік беру.
Массив дегеніміз – бір типті берілгендер жиыны. Басқаша айтқанда,
массив – бір атауға біріктірілген айнымалылардың реттелген тізбегі. Массив
бір ғана атпен белгіленеді. Мысалы: 2,4, 8,5,6-ны бір өлшемді массив деп,
оған А деп атау беруге болады. Масивтің әр элементі массивтің атымен
белгіленеді де, оның индексі қойылады, яғни массив элементтері индекстері
бойынша реттеліп жазылады. A(N)-N A[1]=2, A[2]=4, …, A[5] =6
Егер программада массив пайдаланылатын болса, ол айнымалы VAR
бөлігінде немесе тип TYPE бөлігінде сипатталуы қажет. Массив айнымалы
бөлігінде былай сипатталады:
VAR массив атауы: array[t1] of t2;
Мұндағы: array-(массив), of – одан қызметші сөздер. 1 t -индекстің типі, t2-
базалық тип.
VAR f: array[1..5]of real;
Индекстің типі ретінде шектелген, саналатын, логикалық литерлік
типтерді қолдануға болады.
Егер бірнеше массив бірдей базалық және индекстік типтес болса, онда
оларды сипаттағанда бір массив ретінде үтір арқылы жазуға болады.
Мысалы,
VAR a,b,c:array[1..10] of real;
Массив элементтерін енгізк немесе шығару үшін программаның мына
үзінділерін пайдаланады:
а) енгізу б) шығару
for i:=1 to N do for i:=1 to N do
write(A[i], ‘’); read(A[i]);
Массивтің тип бөлігінде жазылуы: type тип атауы =array[t1] of t2
Var массив атауы: тип атауы;
Массивтің элементтері кез-келген тип болуы мүмкін. Ал, индекс
ретінде шектеулі тип пайдаланылады. Оның ішінде шектеулі бүтін тип
көбірек қолданылады. Шынында шектеулі типтің мәндерінің жиыны ақырлы,
тәртіптелген және нөмірленген.
Массив элементтер тізбегін экранға шығару:
Program esep1;
Const n=5;
Var a:array[1..n] of integer;
I:byte;
Begin
For i:=1 to n do begin
Write (‘a[‘,I,’]=’);
Read(a[i]);
End;
Writeln;
For i:=1 to n do write(a[i],’’);
End.
Массив элементтерінің қосындысын алу.
Program esep2;
Const n=5;
Var x:array[1..n] of integer;
I:byte; S:real;
Begin
For i:=1 to 5 do begin
Read(x[i]);
S:=S+x[i];
End;
Write(‘S=’,S:6:2);
End.
Массивтің 5 элементі берілген, соның ішінде жұп индексті элементтерді
шығару
Program esep1;
Const n=5;
Var a:array[1..n] of integer;
I:byte;
Begin
For i:=1 to n do begin
Write (‘A[‘,I,’]=’);
Read(A[i]);
End;
I:=2;
Repeat
Writeln(a[i]);
I:=i+2;
Until i>n;
End.
Program esep2;
Const n=5;
Var a:array[1..n] of integer;
I:byte;
Begin
For i:=1 to n do begin
Write(‘A[‘,I,’]=’);
Read(A[i]);
End;
I:=2;
While i<=5 do begin
Writeln (a[i]);
I:=i+2;
End;
End.
Массивтің тақ элементінің қосындысын алу
Program esep3;
Var x:array[1..5] of integer;
I:byte;
S:real; begin
For i:=1 to 5 do begin
Read(x[i]);
If odd(x[i]) then S:=S+x[i]; (Жұп элементтерінің қосындысы not(odd(x[i])))
End;
Write(‘тақ элементтерінің қосындысы=’, S:6:2);
End.
Тақ орында тұрған массив элементтерінің көбейтіндісін есептеңіздер.
Program prim1;
Const n=5;
Var s:real; i:byte; x:array[1..n] of integer;
Begin
S:=1;
For i:=1 to n do begin
Read(x[i]);
If I mod 2<>0 then S:=s*x[i]; (жұп орында тұрған санның көбейтіндісі,
End; if I mod 2=0)
Write (‘S=’,S:6:2);
End.
Бақылау сұрақтары:
1. Массив дегеніміз не?
2. Массив элементі, индекісі, өлшемі дегеніміз не?
3. Массив не үшін қажет?
4. Массив элементтерінің, индекстерінің типі қандай?
5. Массив элементтерін енгізуді қалай жүзеге асыруға болады?__
Достарыңызбен бөлісу: |