Кiрiспе
Паскаль тiлiнiң операторлары.
Программаға енетiн нұсқауларды (командаларды) Паскаль тiлiнде оператор дейдi.
Паскаль тiлiнiң операторларын қарапайым және күрделi (құрама) операторлар деп екi топқа бөледi.
Қарапайым операторлардың құрамына басқа оператор енбейдi. Ал күрделi операторлардың iшiне бiрнеше қарапайым операторлар енуi мүмкiн.
Паскаль тiлiнде қарапайым операторларға: меншiктеу, көшiру, бос, енгiзу және шығару операторлары жатады.
Күрделi операторларға: шартты көшiру, қайталау (цикл), таңдау, жалғастыру және т.б. операторлар жатады. Бұл оператоблар тұтас бiр оператор қызметiн атқарады. Программада операторлар орналасқан ретi бойынша (көшiру операторы болмаса) орындалады..
Меншiктеу операторы.
Меншiктеу операторы барлық тiлдерде пайдаланылатын негiзгi оператор болып табылады.
«Мән меншiкте» деген бұйрықты орындайтын операторды меншiктеу операторы дейдi.
Меншiктеу операторының жалпы жазылу түрi төмендегiдей:
W:=Е.
Мұнда: W— айнымалы атауы, “:=” меншiктеу белгiсi, Е-арифметикалық өрнек.
Бұл оператор екi мiндет атқарады.
Айнымалылардың белгiлi мәндерi бойынша Е-арифметикалық өрнегiнiң мәнiн есептейдi.
Есептелген мән W атауына меншiктеледi, яғни W-ге сәйкес жады ұяшығына орналасады. Мұнда әдеттегi теңдiк “=” белг3с3мен меншiктеу “:=” белгiсiн шатастырмау қажет. Олар тек түр жағынан ғана емес, мағынасы жағынан да өзгеше. Мысалы х=5өрнегi х-тiң мәнi 5-ке тең дегендi бiлдiредi де, ал х:=5 өрнегi х нөмiрi бар ұяшыққа 5 санын орналастырамыз дегендi бiлдiредi. Сондай-ақ Паскаль тiлiнде х=х+3 өрнегi дұрыс мағына бермейдi, ол х:=х+3 түренде жазылады, бұл бұрыңғы х ұяшығында тұраған санға 3 санын қосып х жәшiгiне қайта орналастыр дегендi бiлдiредi.
Жалпы жағдайда арифметикалық өрнек:
Тұрақты
Айнымалы атауы
Функция
өрнек
түрлерiнiң бiрiнде берiлуi мүмкiн.
Мысалы:
R:=19.36;
M:=’завод’;
Y:=sqrt(sqr(x)+1);
Меншiктеу операторы тек арифметикалық өрнектер үшiн ғана емес, логикалық және символдық берiлгендер үшiн де пайданылады. Мысалы: К:=A AND B, егер мұнда А-ақиқат, ал В-жалған болса, онда К жалған мән қабылдайды, К-ақиқат мән қабылдау үшiн А және В ақиқат болу қажет.
Символдық мән әрқашанда апостроф «’» iшiне алынып жазылады. Мысалы: В:=’T’; B5:=’9’;
Меншiктеу операторын пайдаланғанда айнымалы атауының типi мен қабылдайтын мәнiнiң типi бiрдей болуы қажет Мысалы: егер VAR M: REAL; болып оператор былай M:=’15’ жазылса, онда ол дұрыс болмайды, себебi М-нiң типiн нақты, ал мән символдық. Сол сияқты, төменгi оператор да дұрыс жазылмаған.
VAR A,B,C,D:REAL;
………………………
А:=(B<C) AND (D>C);
………………………..
Себебi мұнда оң жағындағы өрнек логикалық типте, ал айнымалы нақты типте.
Бос оператор
Бос оператор ешқандай да амал орындамайды. Бос оператор қалдырылып кеткен (жоқ оператор) оператордың орнын белгiлеу үшiн пайдалынылады. Әдетте бос оператор орнына нүктелi үтiр ‘;’ қойылады. Мысалы:
S:=A;
R:=5;
;
M:=19.36;
Мұнда үшiншi оператор бос оператор болады.
Сандық берiлгендердi енгiзу операторы
Берiлген мәндердi айнымалыға жазу үшiн меншiктеу операторын пайдалануға болады. Мысалы. А:=15; BC:=16.4; т.с.с. бiрақ бұл жағдайда программа әмбебап болмайды. Программаны әмбебап етiп жасау үшiн айнымалылардың мәндерiн өзгеретiн түрде жазу қажет, бұл жағдайда программа айнымалының әр түрлi мәндерi үшiн дұрыс болады. Ол үшiн енгiзу операторы READ пайдаланылады.
Енгiзу операторының жалпы түрi төмендегiдей:
READ (а1, а2, … ,аn);
Мұндағы а1, а2, …, аn-айнымалы атаулары, лоарды енгiзу операторының параметрлерi депте атайды. READ операторы орындалғанда параметрлер өздерiне сәйкес мәндердi қабылдайды, бұл мiндет енгiзу файлы INPUT (енгiзу) арқылы жүзеге асырылады параметрлер жаңа мән қабылдағанда олардан бұрын орналысқан көне мән өшiрiлiп, орнына жаңа мәндер жазылып, программа параметрлердiң жаңа мәне бойынша жұмыс атқарады.
Параметрлердiң сандық мәндерi бiр-бiрiнен бос орын арқылы ажыратылып жазылады. Мәндердi енгiзiп болғаннан кейiн, ENTER (енгiзу) клавишы басылады. Мысалы, енгiзу операторы берiледi. 5_6.2_4.5. бұл жағдайда А=5, В=6.2, С=4.5 мәндер қабылдайды.
Осы мәндер бойынша программа орындалып болған соң басқа мәндер үшiн программаның қайталау қажет болса, онда программаны басынан бастап қайта орындау қажет.
Бүтiн айнымалыларға-бүтiн, нақты айнымалыларға нақты-мәндер берiлуi қажет.
Айнымалы бейнеленгенде нақты ретiнде бейнеленсе, оған нақты да, бүтiн де мән беруге болады, себебi нақты сан құрамына бүтiн сан енедi. Ал машина “өзi” бүтiн санды нақты сан түрiне келтiрiп алады. Мысалы: VAR A, В: REAL; READ (А, В); түрiнде берiлiп-А,В айнымалылары үшiн 4_5 ENTER орындалса, онда машина оларды А=4.0 , В=5.0 түрiнде қабылдайды.
Бiр немесе бiрнеше бос орын қалдыруға болады, себебi сан енгiзiлгенде бос орын еске алынбайды.
Мәндердi енгiзгенде мән енгiзгенде жолдан келесi жаңа жолға көшiру үшiн параметрсiз немесе параметрмен сәйкес READLN;, READLN (а1, а2, …, аn), операторды пайдалану қажет. Сонымен READ (а1, а2, …, аn); READLN операторлардың орнына бiр ғана READLN (а1, а2, …, аn); операторын пайдануға болады.
Шығару операторы
Паскаль тiлiнде нәтиженi экранға шығару үшiн WRITE (жазу) операторы пайдалынылады:
WRITE (а1, а2, …, аn)
Мұндағы а1, а2, …, аn-жай айнымалылар немесе апостофтар алынған символдар тобы болу мүмкiн. Мысалы егер В=17.15 болып,
WRITE (‘B:=, B’)
Командасы орындалғанда, экранда В=17.15 дерегi көрiнедi.
Шығарылған параметр бiр-бiрiмен үтiр арқылы ажыратылып, WRITE қызмет сөзiнен соң, дөңгелек жақша iшiне жазылады.
Бүтiн және нақты сандарды шығару үшiн сандардың фарматын беру қажет. Фармат айнымалы атынан соң қос нүкте арқылы жазылады. Нақты сан үшiн формат екi саннан тұрады:
I-сан-санға берiлетiн барлық орын,
II-сан-үтiрден кейiн алынатын бөлшек бөлiк саны.
Мысалы (Y: 5: 2);
Мұндағы 5-нәтижеге берiлген барлық орын, 2-үтiрден соң алынатын бөлшек бөлiктiң саны.
Жалпы түрде:
Бүтiн сан үшiн: WRITE(N.: S) немесе WRITE(‘K=’ N: S) мұндағы S-формат, яғни бүтiн санға берiлетiн орын.
Нақты сан үшiн: WRITE(‘Y=’, Y: 8: 3)
Егер Y=1.76 болса, экраннан Y=1.760 көрiнедi.
Жалпы түрде: WRITE(‘Y=’, Y: M: N).
Мұндағы-М барлық сан үшiн берiлген орын саны, N-бөлшек бөлiктiң орындарының саны. Егер операторда формат көрсетiлмесе, онда нәтижеде қанша орынды сан алынса, сол сан экранға шығады.
Паскаль тiлiнде параметрсiз шығару операторы WRITELN жаңа жолға көшiру үшiн пайдаланылады.
Егер WRITE (a1, a2, …, an); оператор пайдаланылса, онда a1, a2, …, an мәндерiн экранға шығарған соң курсор келесi жолға көшедi.
WRITE операторын түсiнiктеме беруге пайдалануға болады.
Мысалы: WRITE(‘A,B,C-мәндерiн енгiз:’); READ (A,B,C)
Бұл жағдайда экранға:
A,B,C мәндерiн енгiз: деген түсiнiктеме шығады. Мәндер арасына қажеттi бос орын қалдыру үшiн: ‘.’ пайдаланылады. Мысалы: WRITE (‘T=’, N : 3, ‘ ‘: 4, ‘M=’ : 4: 2) болса, онда Т-ның үш орынды мәнiнен соң 4-бос орын қалады да, одан соң М-нiң мәнi жазылады.
Айталық X=7, Y=15, Z=11 ал R=450.08 болсын, оларды экранға шығарудың әр түрлi жағдайын көрсетейiк.
Оператордың жазылуы Экранда
WRITE(X,Y); 715
WRITE(X,’_ ’,Y); 7_ _15
WRITE(‘X=’,X); X=7
WRITE(X,’ ‘ : 3, Z); 7 11
WRITE(‘X+Y=’, X+Y); X+Y=22
WRITE(Z,’соңы’); 11-соңы
WRITE(‘бiттi’); бiттi
WRITE(R); 4.5008+2
Мысалы:
Табанының радиусы R , биiктiгi h болатын цилиндрдiң толық бетi мен көлемiн табуға программа құру керек.
Шешуi: Цилиндрдiң толвқ бетi және көлемi сәйкес мына формулаларымен анықталатыны белгiлi:
S=2ПR(R+h); V=ПR^2h, (R=2.5; h=4.7; П=3.14)
Программа.
(*тiк цилиндрдiң толық бетi мен көлемiн есептеу*)
Program S1 (input, output);
Const p=3.14
Var r : real (*радиус*)
h : real (*биiктiк*)
v, s : real; (*көлем, толық бет*)
begin
r:=2.5;
h:=4.7;
s:=2*p*r (r+h);
writeln (‘цил. Толық бетi s=’, s: 6: 3 );
writeln (‘цил.көлемi v=’, v: 6: 3 );
end.
Таңдау операторы
Берiлген өрнектiң мәнiне тәуелдi бiр немесе бiрнеше оператор орындалатын жағдайда таңдау оператор орындалатын жағдайда таңдау опреторы пайдаланылады. Таңдау операторы алгоритмдiк тiлдегi таңдау командасына ұқсағанымен бiрге, аз өзгешелiгi бар. Алгоритмдiк тiлде таңдау шарт бойынша орындалса, Паскаль тiлiнде тұрақтылар бойынша iске асырылады.
Жазылу түрi:
Таңдау
Жағдай 1-шарт:
1-серия
Жағдай 2-шарт
2-серия
………………..
жағдай n-шарт:
n-серия
бiттi
CASEөрнек OF
1-тұрақты:
1-оператор;
2-тұрақты:
2-оператор;
………………..
n-тұрақты:
n-оператор
END
CASE-жағдай
OF-солар,
Төмендегiлер.
Таңдау оператор былай орындалады: өрнектiң мәнi берiлген тұрақтының қайсысына тең болса, оған сәйкес оператор орындалады да, басқару таңдау операторының соңындағы операторға берiледi.
Егер өрнектiң мәнi тұрақтылардың ешқайсысымен тең болмаса да, басқару таңдау операторынан кейiнгi операторға берiледi.
Өрнектiң мәнi және тұрақтылар әрқашанда бүтiн сан, тұрақты типi бiрдей болу керек.
Мысалы:
CASE k+1 OF
5:; y:=sqr(x);
11: y:=sqrt(x);
4: z:=y*(a-b);
7: write(a,b)
END.
Тармақталу операторы
Тармақталу операторы көрсетiлген шартқа байланысты құрамына кiретiн оператордың орындалу-орындалмауын қамтамасыз етедi.
Жызылуы: If<шарт> then<оператор1> else<оператор2>;
Мұндағы оператор1 , оператор2-жай немесе құрама оператор. Бұл оператордың жұмысы төмендегiдегi суретте көсетiлген
жалған
ақиқат |
Мұндағы шартымыз логикалық өрнек болғандықтан, ақиқат(true) немесе жалған(false) нәтижелерiнiң бiрiн ғана қабылдай алады. Осы нәтижеге сәйкес операторлар тобының бiреуi таңдалып алынады. Шарт қатынас немесе логикалық өрнектер түрiнде жазылады.
Мысал: If x>=0 then (‘x-оң сан’)
Else (‘x-терiс сан’)
Бұл мысалда x-тiңмәнiнiң 0-ден үлкен немесе 0-ге тең екендiгi тексерiледi, егер шарт орындалса, экранға x-тiң оң сан, әйтпесе терiс сан екендiгi туралы хабар шығады. Мұнда then, else тармақтарынан соң жазылған опнратор – жай операторлар.
Тармақталу операторында шарттар күрделi де болуы мүмкiн. Күрделi шарт логикалық амалдардың (and, or, not) көмегiмен құрылады.
Келесi мысалда шарттың күрделi түрiн және then, else тармақтарынан соң орналасқан операторлардың құрмалас болып келуiн қарастырайық.
Мысалы:
X,y сандары берiлген. Егер осы сандар терiс болса, оларды модулдерiмен айырбастаймыз; бiреуi ғана терiс болса, әрқайсысын 0,5-ке көбейтемiз; екеуi де оң болса, оларды 10 есе арттырамыз.
Program m4;
Var x,y:real;
Begin Read (x,y);
If (x<0) and (y<0)
Then
Begin
X:=abs (x);
Y:=abs(y);
End
Else
If (x<0) or (y<0)
Then
Begin
X:=x+0.5;
Y:=y+0.5;
End
Else
Begin
X:=10*x;
Y:=10*y
End
Write (x,y)
End.
|
Қайталану операторы
Қайталау операторлары белгiлi бiр оператарды немесе операторлар тобын бiрнеше рет орындау мүмкiндiгiн ұйымдастыруға қолданылады. Қайталанылатын операторлар тобы циклдың денесiн құрайды. Паскльда циклдердi ұйымдастырудың үш түрi бар: While(әзiр), Repeat(дейiн), For(параметрлi цикл). While, Repeat операторлары қайталау саны белгiсiз, бiрақ циклге кiру немесе циклден шығу шарттары белгiлi жағдайда қолданылады. Егер де қайталау саны белгiлi болса, параметрлi циклдi пайдаланған жөн.
While-Do
While операторы қызметшi сөздерден басқа циклге кiру шартынан және цикл денесiнен тұрады.
Жазылуы: While<шарт> do<циклдiң денесi>;
Цикл денесiн әрбiр қайталау алдында шарт тексерiледi. Шарт ақиқат болған жағдайда, цикл денесi орындалады, әйтпесе программа келесi операторға көшедi. Егер шарт алғаш тексерiлгенде, жалған болса, цикл бiр рет орындалмастан программа цикл соңына шығады.
While-Do схема түрiнде
жалған
ақиқат |
Мысал: a,b (a>1) сандары берiлген a^1, a^2, a^3,… шексiз тiзбегiнiң берiлген bсанынан кiшi мүшелерiн алу керек.
Program M7;
Var a,b,c:real;
Begin Read (a,b);
Writeln (‘ ‘);
C:=a;
While c<b do
Begin
Writeln ( c );
C:=c*a
End;
End.
жалған ақиқат |
Repeat-Until
Оператор цикл басынан (Repeat), денесiнен және циклден шығу шартынан (Until) тұрады.
Жазылуы: Repeat <циклдiң денесi> Until<шарт>;
Оператор жұмысы
ақиқат
жалған |
Repeat-Until және While-Do операторларының арасында негiзiнен үш айырмашылық бар:
- Repeat операторында циклден шығу шарты соңында көрсетiледi, сондықтан да цикл денесi, шартқа тәуелсiз, мiндеттi түрде бiр рет рындалады;
- Repeat операторында циклден шығу шарты шарт ақиқат болғанда қанағаттандырылады, While операторында, керiсiнше, шарт жалған болғанда цикл соңына шығады;
- Repeat-Until қызметшi сөздерiнiң арасына бiр немесе бiрнеше операторлар орналасуы мүмкiн, ал While операторында цикл денесi бiр ғана жай немесе құрмалас операторлардан тұрады.
Мысалы:
Ендi 0 мен 10-ның расындағы жұп сандардың қосындысын есептейтiн программаны Repeat операторының көмегiмен көрсетейiк:
Жалған ақиқат
|
Program M9;
Var i,sum: integer;
Begin
I:=0; sum:=0;
Repeat
Sum:=sum+1;
I:=1+2
Until (i>10);
Writeln (‘2+4+6+8+10= ‘, sum)
End.
For-do, For-Down to
For-do циклдiк операторы қайлалау саны алдын ала белгiлi болған жағдайларда қолданылады. Бұл оператор екi түрлi берiледi:
Жазылуы:
- For <циклдiк параметр>:=<алғашқы мән> to<соңғы мән> do<циклдiң денесi>;
- For <циклдiк параметр>:=<соңғы мән> downto<алғашқы мән> do<циклдiң денесi>;
Мысалы:
Параметрлi циклдердiң көмегiмен бiзге жиi кездесетiн n! мәнiн
(n-нiң факториалын) есептеу программасын екi түрмен көрсетейiк:
Program M11_1;
Var n,i,p:integer;
Begin Read (n);
P:=1;
For i:=2 to n do
P:=p*i;
Write (‘n!=’, p)
End.
Program M11_1;
Var n,i,p:integer;
Begin Read (n);
P:=1;
For i:=2 to n do
P:=p*i;
Write (‘n!=’, p)
End.
Қорытынды
Паскальда программаның негiзгi болiмi нүкте-үтiрмен (;) ажыратылып жазылған операторлар тiзбегiнен тұрады. Оператор дегенiмiз-белгiлi бiр шамаларға жүргiзiлетiн амалдардың орындалу жолдарын көрсететiн нұсқау. Құрамына басқа операторлар кiрмейтiн операторлар жай операторлар деп аталады. Күрделi операторлар басқа операторлардан алдын ала анықталған белгiлi бiр ережеге сай құрылады. Күрделi операторлардың түрлерiне құрмалас, тармақталу, таңдау, қайталау операторы жатады. Құрмалас операторлар бiрнеше жай оператор тiзбегiнен тұрады да, begin, end қызметшi сөзiмен шектелiп, соңынан үтiр мен нүкте таңбасы қойылады.
Жоспар:
- Кiрiспе
- Меншiктеу операторы
Бос оператор
Енгiзу операторы
Шығару операторы
Таңдау операторы
Тармақталу операторы
Қайталану операторы:
While-Do
Repeat-Until
For-do, For-Down to
- Қорытынды.