Арифметикалыќ функциялар.
Abc, arctan, cos, exp, ln, sin, sqr, sqrt – стандарт маѓынасы бар функциялар.
Функция fruc.
Жазылу ‰лгiсi: fruc (R: real):real;
fruc ( I: integer):real;
Б±л функция аргументiнiњ бµлшек бµлiмiнiњ мєнiн ќайтарады.
Функция INT
Жазылу ‰лгiсi: INT (R: real):real;
INT ( I: integer):real;
Скаляр функциялар.
Жазылу ‰лгiсi:
Odd (х) – true, егер функция мєнi таќ болса;
Pred(x) –х–ке байланысты алдындаѓы символды аныќтайды, мысалы PRED (‘N’)=’T’
SUCC(x)– х–ке байланысты кейiн т±рѓан символды аныќтайды, мысалы SUCC(x) – функциясын ќолданѓанда, есте саќтау керек: егер тiлдiњ наќты т‰рiнде х ‰шiн алдыњѓы жєне соњѓы символдары жоќ болса, онда функцияныњ мєнi аныќталмаѓан болады. Б±л функциялардыњ аргументтерi ретiнде наќты деректер болуы м‰мкiн емес. Себебi, наќты деректер ‰шiн алдыњѓы жєне соњѓы элементтер т‰сiнiгi жоќ.
Т‰рлендiру функциялары.
chr, ord, round функциялары .
chr(х) – kou– 7 бойынша реттiк нµмiрi х арќылы символды аныќтайды.
Жазылу ‰лгiсi:
Ord(х) – х символыныњ реттiк нµмiрiн аныќтайды.
Ord(R) – ењ жаќын б‰тiндi ќайтарады.
trunc функциясы.
Жазылу ‰лгiсi:
Trunc(R:real): integer;
R– кiшi ењ ‰лкен мєндi ќайтарады, егер R0, 2–ден ењ кiшi б‰тiн мєндi, егер R0
Арифметикалыќ µрнектер
Айнымалылар мен сандар – б±л µрнектердiњ ќарапайым жеке жаѓдайлары. К‰рделi µрнектер сандар мен айнымалылардан, єрт‰рлi операциялар тањбаларынан т±рады. Олар +,-,*,/. Б±лардан басќа µрнектерде жаќшалар мен кейбiр функциялар ќолданылуы м‰мкiн. Бµлу операциясыныњ тањбасы µрнектi бiр жолѓа жазуѓа м‰мкiндiк бередi. * -кµбейту тањбасын жазбауѓа немесе н‰ктемен алмастыруѓа болмайды.
Мысалдар:
а/в
с
Àìàëäàðäû» îðûíäàëó ïðèîðèòåòi:
* /
+ -
/17
(а*х+в)/(с+d)
0.5*(x+7)*(x+2)*(x-3)
-x
-(a*b+y)
sqrt(sqr(b)-4*f*c)
x*x*x немесе sqr(x)*x
Єрiптер мен цифрлардыњ єрiптерден басталатын тiзбегiн идентификатор- деп, атайды. Кµрсетiлген мысалдардан кµретiнiмiз, идентификатор ретiнде айнымалылар ѓана емес, функциялар да жєне таѓы басќа т‰рлерде ќолданылады.
Логикалыќ µрнектер
Логикалыќ µрнектер логикалыќ µрнектерден, логикалыќ операциялардан жєне логикалыќ ќатынастардан ќ±ралады. Логикалыќ µрнектiњ мєнi TRUE немесе FALSE болуы м‰мкiн.
Логикалыќ µрнектiњ приоритетi:
NOT
* (кµбейту) , /( бµлу) , DIV, MOD, AND;
+ (ќосу) , - ( азайту) , OR;
< (кiшi), <= (кiшi немесе тењ), =(тењ),<> (тењ емес), >=(‰лкен немесе тењ), > (‰лкен)
Жоѓарыда бiр жолда кµрсетiлген операциялар(амалдар) бiрдей приоритеттi болып табылады.
Ескерту. Логикалыќ µрнекте тек ќана дµњгелек жаќша ќолданылады. Жаќша болѓанда бiрiнiшi жаќша iшiндегi (ењ кiшi жаќшадаѓы), iс єрекеттер орындалады. Дµњгелек жаќшаларѓа AND немесе OR – логикалыќ амалданырыныњ оњ жєне сол жаѓындаѓы µрнектiњ бµлiктерi алынады.
Мысал.
( A>3) AND (B=A+6) OR NOT (C=4)
Егер А=2, B=8, C=5 болса, онда амалдарыныњ орындалу ретi:
а) A>3 – нєтиже FALSE, себебi 2<3;
b) A+6=B – нєтиже TRUE, себебi 8=8;
в) NOT (c=4) --- FALSE, себебi 54;
г) NOT (c=4) NOT FALSE– нєтиже TRUE;
д) AND (FALSE AND TRUE) – нєтиже FALSE;
е) OR (FALSE OR TRUE) – нєтиже TRUE;
Сонымен нєтиже TRUE болады.
Тақырып. Сызықтық алгоритмді программалау
Енгiзу–шыѓару процедуралары (Файлдыќ процедуралар ќолданылады).
1. Read процедурасы:
Жазылу ‰лгiсi:
Read (var F: file of type; var v: type);
Read (var F: text ; var I: integer);
Read (var F: text; var R: real);
Read (var F: text; var C: string);
М±ндаѓы , F – файлдыќ типтi айнымалыныњ аты, ал V,I,R,C,S– бiр немесе бiрнеше айнымалылар, типi файл элементтерiнiњ типiне сєйкес.
2. Readln процедурасы.
Жазылу ‰лгiсi:
Readln (var F:text; var var1, var2,…,varN);
Readln (var var1, var2,…,varN);
Readln (var F:text);
Readln;
М±ндаѓы F – айнымалыныњ аты, тип– text, ал var1,… var N– char типтi айнымалылар, файл аты жазылмаѓан болса, INPUT аты ќабылданады, егер айнымалылар аты жазылмаса, онда келесi жолѓа келесi жолѓа кµшу орындалады.
3. WRITE процедурасы.
Жазылу ‰лгiсi:
Write (var F:file of type; var v: type);
Write (var F:text; var i: integer);
Write (var F:text; var b: boolen);
Write (var F:text; var c: char);
Write (var F:text; var s: string);
4 Writeln процедурасы.
Жазылу ‰лгiсi:
Writeln
Writeln(var F:text);
М±ндаѓы F– text типтi айнымалыныњ аты, var1,… var N– char типтi айнымалылар. Егер файл аты жазылмаса, OUTPUT аты ќабылданады. Егер айнымалылар тiзiмi жазылмаса келесi жолѓа кµшу орындалады.
INPUT жєне OUTPUT – стандарт файлдары ‰шiн стандарт синтаксисi бар енгiзу – шыѓару процедуралары ќолданылады.
6 Тақырып. Шартты және таңдау операторлары
Шартты оператор
Шартты оператор екi м‰мкiн єрекеттердiњ (операторлардыњ) бiреуiн шартты орындалу немесе орындалмауына байланысты орындауѓа тањдалуы. Тањдау шарты ретiнде логикалыќ µрнек ќолданылады.
Шартты оператордыњ жазылу ‰лгiсi:
If <µрнек> then <1 операторлар сериясы>
else <2 операторлар сериясы>;
Б±л оператор тµмендегiдей орындалады: алдымен if ќызметшi сµзiнен кейiнгi т±рѓан µрнек есептелiнедi. Есептеудiњ нєтижесi булевтiк типтi болуы керек. Егер µрнектiњ мєнi true болса, онда then ќызметшi сµзiнен кейiнгi т±рѓан оператор орындалады. Егер есептеудiњ нєтижесi false болса, онда else ќызметшi сµзiнен кейiнгi т±рѓан оператор орындалады. Егер б±л жаѓдайда else – ќызметшi сµзiнен басталатын шартты оператор бµлiгi жоќ болса, онда басќару шартты операторынан кейiнгi т±рѓан операторѓа бiрден жiберiледi.
Мысалдар:
if x
Max:=y
еlse
Max:=x
if Color= Red then
begin
x:=cos(y);
y:=alpha+beta;
color:=Yellow;
end
else begin
X:=sin(y);
сolor:= Red;
end;
Бiрiнiњ–iшiне бiрi енетiн к‰рделi шартты операторларды ќолданѓанда синтаксистiк бiржаќсыздыќ болуы м‰мкiн.
If µрнек1 then if µрнек2 then серия1 else серия2
1-шi бµлiк сыртќы if µрнек1–де жатуы м‰мкiн, немесе if µрнек2 then iшкi оператордыњ бiр бµлiгi болуы м‰мкiн. Б±л жаѓдайда мєселенi тµмендегiдей ќ±рылым ќолдану арќылы шешуге болады:
If µрнек1 then
begin
if µрнек2 then
серия1
else
серия2
еnd;
Басќаша айтќанда, else ќызметшi сµзi, егер ол else ќызметшi сµзiмен байланыстырылмаса, єрќашанда текстте жаќын т±рѓан if ќызметшi сµзiне жатќызылады.
Вариант операторы
Б±л оператор шартты оператордыњ кµп альтернативтi жаѓдайдаѓы жалпы т‰рi болады.
Мысал : case Color of
Red : x:=y+2;
Yellow : x:=y-2;
Green : x:=y
еnd;
Б±л жаѓдайда Color –айнымалы. Алдымен, Color айнымалысыныњ мєнi есептелiнедi. Одан кейiн ол операторлар алдындаѓы жазылѓан т±раќтылармен салыстырылады. Егер айнымалыныњ мєнi ќандайда бiр т±раќтымен сєйкес келгенде, осы т±раќтымен “белгiленген” оператор орындалады. Осымен, оператордыњ орындалуы аяќталады. Егер Color айнымалысыныњ мєнi т±раќтыныњ ешќайсысымен сєйкес келмесе, онда б±л оператормен ешќандай iс– єрекеттер жасалынбайды. Егер, сєйкес келмейтiн жаѓдайѓа iс–єрекеттер беру керек болса, онда else альтернативасын ќолданамыз, мысалы:
Case (k+1)*2 of
2: Add(A,B)
4: Multiply(A,B)
0: Subtract (A,B)
else
Writeln (‘ ЌАТЕ!’)
end
Егер (К+1)*2 µрнегiнiњ мєнi 2,4,0 т±раќтылардыњ бiрiмен де сєйкес келмесе, else ќызметшi сµзiнен кейiнгi т±рѓан оператор орындалады. Жалѓыз т±раќтылардан басќа, вариант операторыныњ альтернативтерiнде тiзiм берiлуi м‰мкiн немесе мєндер диапазоны берiлуi м‰мкiн. Олар ‰тiрмен ажыратылады, мысалы:
case Switch of
1..2 : Proc1;
3,4,10..20 : Proc2;
5,6 : Proc3;
else
Proc4
end
Б±л мысалда Proc2 процедурасыныњ операторы Switch айнымалысы 3, 4, 10, 11, 12,…,20 –мєндерiнiњ бiрiн ќабылданѓанда ѓана орындалады.
Вариант операторын ќолданѓанда келесi ережелер орындалуы керек.
case ќызметшi сµзiнен кейiнгi “ќосып–ажыратушы” µрнектiњ мєнi дискреттi типке жату керек; б‰тiн типтер ‰шiн мєндер 32768..32768 диапазонында жату керек.
альтернатив операторларыныњ алдындаѓы т±раќтылар, µрнек типiне сай тип алу керек.
альтернативте т±раќтылардыњ ќайталануына болмайды; диапазондар ќиылыспауы керек жєне осы жєне басќа альтернативтерде кµрсетiлген т±раќтылар болмауы керек.
Жазылу ‰лгiсi:
Case <µрнек> of
<альтернатива1>: <оператор1>;
<альтернатива2>: <оператор2>;
…
<альтернативак>: <операторк>
else
<оператор>;
end;
альтернатива ќ±рылысы:
<т±раќты> [.. <т±раќты>];
Тiлдiњ синтаксисi бойынша єр альтернативасы ‰шiн бiр оператор, ал егер бiрнеше операторды беру керек болса, онда оларды бiр ќ±рама операторѓа топтау керек. Сонымен ќатар, else тармаѓы операторлар тiзбегiн жазуѓа м‰мкiндiк бередi. Олардыњ арасына “;” тањбасы ќойылады.
Тақырып. Параметрлі цикл операторы
Параметрлi ќайталану(цикл)
Мысал:
For i:=1 to 10 do
M[i]:=i*2;
Б±л мысалда басќарушы анымалы 1,2,9…10 мєндерiн ќабылдап, 10 рет меншiктеу операторы орындалып т±р.
Басќарушы айнымалыныњ мєндерiнiњ µзгеру диапазоны µрнекпен берiлуi м‰мкiн, ол цикл орындалмас б±рын бiр рет есептелiнедi.
For j:=x+2 downto x-2 do
begin
M[ j*2-1]:=Func (A,B);
Proc( M,j)
End;
Б±л мысалда j айнымалысыныњ мєнi бiртiндеп х+2 мєнiнен соњѓы х-2 мєнiне дейiн азаяды.
Параметрлi циклдiњ жазылу ‰лгiсi:
Егер, <µрнек1> мєнi <µрнек2> мєнiнен кiшi болса, онда
For <айнымалы>:=<µрнек1> to <µрнек2> do
оператор
Егер, <µрнек1> мєнi <µрнек2> мєнiнен ‰лкен болса, онда
For <айнымалы>:=<µрнек1> downto <µрнек2> do
оператор
Осы ќайталанудыњ семантикасына тоќталайыќ:
For V:=Expr1 to Expr2 do Body; – операторы тµмендегi операторѓа эквивалент болады:
Begin forV:=Expr1 downto Expr2 do Body;
temp1:= Expr1;
temp2:= Expr2;
if temp1<= temp2 then begin
begin temp1:=expr1;
V:=temp1; temp2:=exr2;
Body; if temp1>=Temp2 then
While V<> temp2 do begin
Begin V:=Temp1;
V:=Succ(V); Body;
Body; While V<> Temp2 do
end; begin
end; V:=Pred (V);
end; Body;
end;
end;
end;
м±ндаѓы temp1 жєне temp2 – кµмекшi айнымалылар, олардыњ типтерi V айнымалыныњ типiне байланысты жєне программаныњ басќа жерiнде кездеспейдi.
Мысалдар:
for i:=2 to 63 do
if data[i]>Max then Max:=data[i]
2) for i:=2 to 10 do
for j:=1 to 10 do
begin
x:=0;
for k:=1 to 10 do
x:=x+Mat1[i,k]*Mat2[k,j];
Mat [i,j]:=x;
end;
for Day:=Monday to Friday do
Calculator_Prof (Day);
4) Латын єрiптерiн басу программасы.
PROGRAM arip;
VAR SIM: CHAR;
BEGIN
WRITTELN (‘латын алфавитi:’);
FOR SIM:=’A’ TO ‘Z’ DO
WRITE( ‘’, SIM)
END
y=2K+N- µрнегiн N=1,2,3 жєне K=2,4,6 ‰шiн есептеу программасы
PROGRAM D2 (I,0);
VAR N,K,Y: INTEGER;
BEGIN
FOR N:=1 TO 3 DO
BEGIN
K:=2;
WHILE K<=8 DO
BEGIN
Y:=2*K+N;
WRITLN (N:4,K:4,Y:4);
K:=K+2
END
END
END.
Қолданылған әдебиеттер [1], [2], [4-7], [11-13], [15-19], [20], [25]
8 Тақырып. Циклді процестерді ұйымдастыру
Ќайталанатын(циклдiк) процестердi ±йымдастыру
Aлдыњѓы шартты цикл операторы:
Жазылу ‰лгiсi:
While <логикалыќ µрнек> do
Begin
<1 оператор>;
<2 оператор>;
…
end;
Егер µрнектiњ мєнi true болса, келесi итерация орындалады, керiсiнше жаѓдайда (false) циклдiњ орындалуы аяќталады.
Мысал.
while M[i]<>0 do i:=i+1;
while x<=N do
begin
fact:=fact*x;
x: =x+1
end;
while true do begin – шексiз цикл б±л циклдiњ … орындалуы цикл сыртына
шыѓаратын белгi бойынша
goto M; кµшкенде ѓана iске асырылады.
…
end;
M:
Кейiнгi шартты цикл
Б±л цикл алдыњѓы циклге ±ќсас, бiраќ шарт итерация орындалѓаннан кейiн тексерiледi (осылай, ењ жоќ дегенде ќайталануды бiр рет орындауды ќамтамасыз етедi); шарт true болса, онда т±раќты цикл тоќтайды, false болса, онда цикл ќайталанады.
Мысал:
s:=0; i:=n;
repeat
s:=s+i;
i:=i-1
Until i=0;
Б±л цикл i параметрi нµлден улкен болѓанда орындалады.
Кейiнгi шартты ќайталанудыњ (циклдiњ) жазылу ‰лгiсi:
repeat
<оператор 1>;
<оператор 2>;
<оператор 3>;
…
<оператор n>;
until <µрнек>;
whilе–єзiр цикл денесiнде бiр ѓана оператор жазылса(операторлар тiзбегiн жазу ‰шiн begin-end жаќшасын ќолдану ќажет), repeat–цикл операторлар тiзбегiн жазуѓа м‰мкiндiк бередi.
Мысалдар:
Repeat–цикл
repeat 2) repeat
K:=I mod J; write (‘б‰тiн сан енгiзiњiз:’);
I:=J; readln(i);
J:=K; process(i)
until J=0; until (i<0)and(i>9);
Тақырып. Ішкі программалар: процедуралар және функциялар
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:
Procedure <идентификатор> [(var <формаль параметрлер тiзiмi>:<тип>)];
2>1>2>1>
Достарыңызбен бөлісу: |