Not-логикалық терістеу Not a жазылуы а-ға қарсы қарама-қарсы мәнді қабылдайды. Мысалы: Not=
Not=
-
A
|
B
| Not A | A Or B |
A And B
|
True
|
True
|
False
|
True
|
True
|
True
|
False
|
False
|
True
|
False
|
False
|
True
|
True
|
True
|
False
|
False
|
False
|
True
|
False
|
False
|
Мысал2: А=2, B=8, C=3 (A>3) And (B=A+6) Or Not (C=4)
-
2>3 False
-
8=2+6 True
-
False And True=False
-
Not (3=4)=True
-
False Or True=True
Char-символды түрі Char түріндегі айнымалы өзіне мәнді белгілі бір реттелген символдар тізбегінен алады. Берілген символдар тізбегін бүтін оң сандар жиынына сәйкестендіретін екі стандартты функция бар. Осы функциялар түрлендіру функциялары деп аталады.
Or D (c) – c символының реттік санын білдіреді.
Ch R(I) – тізбектің І белгісін білдіреді.
Cтандартты функциялар.
Бағдарлама құру есептеу кезінде Логарифм, Sin, Cos, экспоненттер және т.б функциялармен жиі кездесетін боламыз. Тәжірибеде іс жүзінде жиі кездесетін есептеулерді тиімді орындау мақсатымен Паскаль тілінің құрамына бағ-да тұрақты аттармен берілген бір топ функциялар енгізілген осы енгізілген функцияларды тілдің негізгі элементтері арқылы тікелей пайдалануға болады.
-4-
Жалпы түрі
TYPE T=REKORD
A11,A21,..AN1: TYPE 1;
----------------------------------
Ar1,Ar2,..,Arn
End.
Мұндағы A R M өрістердің атауы TYPE T өрістердің тиісті түрлері Т түрдің атауы Мыс. Студенттердің анкеталық деректерін беретін жағдай былай сипатталады.
TYPE Ctudent=record
Фамилия: packed Array [1..15] of char;
туылғын дерек: Rekord
күн: 1..31.
2
Ай: (я,ф,м,а,м,и..д);
Жыл: integer;
End.
Var C:ctudent;
Групп: array
WITH қосып алу операторы
REKORD түріндегі жазылу мен жұмысты жеңілдету үшін қосып алу операторын қолданамыз. Осы оператордың басты міндеті Ол біраз іс-қимылды жинақтап ықшамдайды. Жалпы түрі.
WITH A DO ST
Мұндағ А – REKORD түріндегі айнымалының аты ST –оператордық іс-қимылдар бөлігі немесе жеке оператор. Бағдарлама жазу кезінде жазылуларды қолданғанда бағдарлама тексті ұзарып кетеді.
Қосып алу операторы ST операторы орындалу арқылы жүзеге асады. Осы ST операторының ішкі құрамындағы А аралас түріндегі айнымалының белгілі бір мүшелерінің атауларын көрсету арқылы жұмысты жеңілдетеміз. Мыс жоғары да көрсетілген бағдаламаның үзіндісін өз операторын қолдану арқылы көрсетейік.
WITH A DO ST
With c, туыл. Дерек do
Begin Күн:=18;
Ай:=апрель;
Жыл:=1976;
Мыс28 Студенттік топтың құрамының анкеталық дерегін алу керек. Онда туылған жылы, оқуға түскен жылы, соңғы сессияда алған бағалары мен үздік студенттердің аты жөнін көрсету керек.
Program m28 (,);
Type студент=record ф.и.о: packed array [1..10] of char;
-25-
Мыс26. А1,...,А20
Program m26 (,);
Type T=array[1..20] of real;
Var A:T; I:integer; S:real;
Begin S:=0;
For I:=1 To 20 do
Begin read (A[I]);
If A[I]>0 Then S:=s+A[I];
End;
Write (s);
End.
M27.Массивтің ең үлкен максимал мәнін есептеу.
Program m27 (,);
Const M=1; N=20;
Var I, J: integer;
X:array [M...N] of real;
Begin For I:=M to n do
Read (X[I]);
J:=M;
For I:=M+1 TO n do
If X[I]>x[J] Then J:=I;
Writeln (x[I];
End.
Аралас түрлер
Деректерді өңдеу барысында әртүрлі түрлердегі деректермен жұмыс жүргізуге тура келеді. Қарастырайын деп отырған аралас түріміз құрамында өзіне ғана тиісті атауы бар өлшеміде шамасы да әртүрлі болып келетін деректерді бойында ұстайды. Аралас түрді көп жағдайда мәні бойынша жазылу деп атайды. Аралас түр құрамы бойынша күрделі біртекті емес болып келген құрылымдағы информациялық жүйелерді құруға көп пайдаланылады. Кез-келеген информациялық жүйе өз бойында сан алуан түрлі мәлімет ұстайды Мыс. Мамандар жөніндегі мәлімет құрамында қызметкерлерге тиісті әртүрлі деректері болады. Фамилиясы Аты-жөні, туылған жылы, білімі жөніндегі дерек ж.т.б Осы мәліметтер құрамында цифрлар литерлік қатарлар болады. Деректердің мүшелерінің белгілі бір санын өріс деп атаймыз аралас түрдің мәні осы деректердің өрістік жиынын береді. Әрбір өріске өз атауы беріледі және қай түрде екені көресетіледі. Сонымен әртүрлі өлшемді щамасы да әртүрлі жазылуларды біріктіріп белгілі бір кескін беріп тұратын аралас түр болып табылады. Ол түр REKORD сөзімен басталып END сөзімен аяқталады да осы екі сөз аралығында барлық мәліметтер өз түрлерімен көрсетіледі.
-24-
Функция
|
Матем. жазылуы
|
Паскаль тілінде
|
Синус
|
Sinx
|
Sin(x)
|
Косинус
|
Cosx
|
Cos(x)
|
Натурал лог
|
Lnx
|
LN(x)
|
Экспонент
|
e
|
Exp(x)
|
Кв.түбір
|
|
Sqrt(x)
|
Арктангенс
|
arctgx
|
ARCTAN(x)
|
|
ln
|
LN(sqrt(cos(Sqr(x)))
|
|
3^x+2
|
EXP((x+2)*LN(3))
|
|
lq
|
LoG(x)
|
-
V = 4/3 П R^3
-
F = Ln(b-y)/)
-
Sin =
-
Sin3 = 3Sin-4Sin^2
-
R = Sin(x+(П/4)
-
2,78+2,1*10^3/Cos^2(x^2+ax+a^2)+cosx^2+Sin^3y/
-
b = ((x^2/(3)+cos^4z))/1,25+Exp(Sin(z^2))
-
V = 4/3*3.14(R^3)
-
F = ln((b-y)/Sqrt(b-y))
-
Sin a = Sqrt(1-cos^2a)
-
R = Sin(x+(3.14/4))
Паскаль тілінде жазыған бағдарлама 2 бөліктен тұрады. Іс-қимылдардың тізбегі және іс-қимылдарға қажетті деректерді сипаттау бөлімі. Барлық іс-қимылдар операторлар арқылы жүзеге асады оператор деп отырғанымыз, белгілі бір шектелген іс-қимылды білдіретін және жүзеге асыратын қызмет сөз. Ал деректер тек сипаттау мен анықтау арқылы жүзеге асады. Осы деректерді сипаттаушы объектілерді алты бөлікке бөлуге болады.
-
Таңбаларды сипаттау бөлігі
-
Тұрақтыларды сипаттау бөлігі
-
Түрлерді сипаттау бөлігі
-
Айнымалыларды сипаттау бөлігі
-
Процедуралармен функциялар бөлігі
-
Операторлар бөлігі
-5-
Таңбаларды сипаттау бөлігі
Бағдарламадағы кез-келген операторды таңбалауға болады. Былай таңбалап алу кейбір жағдайда бағдарламаның кез-келген жерінен соң, сол таңбаланған операторға немесе іс-қимылға шартсыз өту операторы арқылы өзіңізге іске араластыруыңызға мүмкіндік береді. Таңбамен жұмыс жүргізу үшін біз таңбаны алдын ала сипаттау бөлімінде көрсетуіміз керек таңба деп отырғанымыз 0 мен 9999 аралығындағы бүтін сандар таңбаны сипаттаушы қызмет сөз Label түріндегі жазу мысалы: Label 5,10,12 сол бағдарламадағы 5,10,12 мен таңбаланған іс-қимылдар бар екенін білдіреді.
Тұрақтыларды сипаттау бөлігі
Бағдарламада кездесетін тұрақтыларды алдын ала жинақтап, сипаттап алған жөн. Өйткені тұрақтылардың мәнін өзгерткіңіз келсе, оларды бағдарламадан өзгертіп жатпай бір жерде өзгерту арқылы жұмысыңызды жеңілдетуге болады Тұрақтыларды сипаттауды білдіретін қызметші СONST сөзі. Оның жалпы түрде жазылуы:
CONST A=K;
А – атау, К – тұрақты,
Мысалы: Avagadro = 6.023;
T = 50;
R = 45;
Түрлерді сипаттау бөлігі
Паскаль тіліндегі деректердің қандай түр қабылдайтынын айнымалыларды сипаттау бөлімінде көрсетілген немесе белгілі бір атпен көрсетуге болады. Егер бағдарламада келісілген түрлерден өзгеше бір түр енгізілсе, онда ол түрлер бөлігінде сипатталу керек. Қызмет сөзі TYPE.
Жалпы түрі:
TYPE T1 = (түрдің көрінісі);
T2 = (түрдің көрінісі);
Т1, Т2 – енгізушілердің аттары;
TYPE COLOR = ( RED, YELLOW, қара, жасыл)
Айнымалыларды сипаттау бөлімі
Айнымалыларды сипаттау бөлімінің қызметші сөзі VAR.
Жалпы түрі:
VAR A, B: TYPE1;
C, D: TYPE2;
A,B,C,D – айнымалылар;
TYPE 1, TYPE 2 – осы айнымалыларды түрлері;
VAR K, I, J: INTEGER;
A, B: TYPE1;
C, D: TYPE2;
-6-
Begin
(*бағдарламаны есептеу*);
kvadrat (5.7, -1.2, -8.3, y1, y2);
Writeln (‘Y1=’,Y1,’Y2=’,Y2);
End.
Функциялық процедура.
Нәтижесі тек 1 мән қабылдайтын жеке дара алгоритмдік функция түрінде беруге болады. Жалпы түрі:
Function max(x,y:real):real;
Мысал25. Кез келген төртбұрыш өзінің қабырғаларымен диагоналінің ұзындықтары мен берілсін. Ауданын табу керек.
В С
А D
Program M25 (Input,output);
Var AB,CD,BC,DA,AC,S1,S2:real;
Procedure TR( Var A,B,C,D: real);
Var P:real;
Begin
P:=(A+B+C)/2;
S:=Sqrt(P*(P-A)*(P-B)*(P-C);
End;
Begin
Read (AB,CD,BC,DA,AC);
TR(CD,DA,AC,S2); write(S1+S2);
End.
Осыны процедуралық функция түрінде жазып көрейік.
Program M25 (Input,output);
Var AB,CD,BC,DA,AC,:real;
Function TR( A,B,C: real):real;
Var P:real;
Begin
P:=(A+B+C)/2;
S:=Sqrt(P*(P-A)*(P-B)*(P-C);
End;
Begin
Read (AB,CD,BC,DA,AC);
Write(TR(AB,BC,AC)+TR(CD,DA,AC));
End.
-23-
Writeln (‘матрица:’);
For I:=1 to n do
For j:=1 to m do
Read (B[i,j]);
(*көбейтіндіні есепте*);
P:=1;
For I:=1 to n do
For j:=1 to m do
P:=P*B[I,j];
Writeln (‘көбейтінді=’,P);
End.
1.2 1.5 1.3 1.4 1.2
1.6 1.3 1.4 1.7 1.5
1.5 1.9 1.6 1.8 1.4
сандарды енгізген кезде жауабы:
335.4
Процедуралар.
Іс-қимылдарды белгілі бір жиыны бағдарламаның бірнеше жерінде кездессе, осы іс-қимылдарды іске асыратын операторлардың тобын қайталап жаза беру көп ыңғайсыздық тудырады осы қайталанудан құтылу үшін көрсетілген операцияның тобын бағдарламада бір рет жазып алып қажет жерінде шақыртуға болады. Бағдарламаның әр жерінде керек уақытында бірнеше рет қолдануға болатын операторлардың ерекшеленген тобын ішкі бағдарлама (подпрограмма) дейді. Ал паскаль тілінде мұны процедура дейміз. Жалпы түрі:
Procedure N(P1:T1; P2:T2;…; var P3:T3;…);
Мұндағы N-процедура аты; PI – формальды, келісімді параметр көрсеткіштер. TI – олардың түрлері.
Мысал24. 5,72-1,2у-8,3=0 квадрат теңдеудің шешімін табу керек.
Program M23 (Input,output);
Var y1,y2:real;
Procedure kvadrat(A,B,C:real; Var x1,x2: real);
Var D:real;
Begin
D:=B*B-4*A*C;
X1:=(-B+Sqrt(D))/(2*A);
X2:=(-B-Sqrt(D))/(2*A);
End;
-22-
Іс-әрекеттер бөлігі
Бұл бөлік BEGIN сөзінен басталып, END сөзімен аяқталады. Осы аралықта нақты іс-қимылдар амалдар жүреді. Екі сөз аралығындағы іс-әрекеттер сол қимылдарға сәйкес операторлар тобы атқарады. BEGIN сөзінен кейін еш уақытта нүктелі үтір қойылмайды.
Жалпы түрі:
BEGIN
…
S1 = A;
…
S1, S2;
…
GOTO 5
…
END;
Операторлар бөлігі
Әрбір іс-қимылдың қызмет сөздері болады және осы қызмет сөздер белгілі бір өзіне ғана тиісті іс-қимылды атқарады. Бағдарлдамалауда оларды операторлар деп атаймыз паскаль тілінде мынандай негізгі операторлар бар:
-
Тағайындау операторы
-
Шартсыз өту операторы
-
Құрама оператор
-
Алдын ала шартталған циклдіқ оператор
-
Кейін шартталған циклдік оператор
-
Жазылулар оператор
Тағайындау операторы
Тағайындау (:=) оператордың міндеті кез келген белгілі бір операторға мәндестіріп отыруға болады.
Жалпы жазылуы: V:=A;
А - өрнек немесе шама;
V - айнымалы;
:= - тағайындау;
Мысалы: x:=0.5;
X:=x+0.2;
A:=10+x*cos(x);
Енгізу және шығару операторы
Енгізу – READ
Шығару – WRITE
Жалпы түрі:
READ (V1, V2,…, Vn);
V – енгізуші айнымалылары және бұл айнымалылар Integer, real,
-7-
CHAR түрлерінің біреуі болуы мүмкін.
Шығару операторы барлық шарттарды баспаға шығару үшін қорытынды нәтиже алу үшін қолданылады.
Жалпы түрі:
WRITE (P1, P2, … , Pn)
P – шығарушы нәтиженің тізімі
Мысалы, WRITE (‘P=’ P);
P = 28
M3. Радиусы 5,78 ге тең шеңбердің ұзындығын анықтауымыз керек.
L - ? L = 2ПР;
PROGRAM M3 (INPUT, OUTPUT);
CONST R = 5.78;
PI = 3.14;
VAR L: REAL;
BEGIN
L := 2*PI*P;
WRITE (‘L=’ L);
END.
МЫСАЛЫ:
PROGRAM M3.1 (INPUT, OUTPUT);
VAR R:= REAL;
BEGIN
R := 5.78;
WRITE (‘L=’ 2*3.14*R);
END.
М4. Х= 15.3 болғанда y = (cos (x) + e^x)/x^3 функцияның мәнін тап.
PROGRAM M4 (INPUT, OUTPUT);
VAR X, Y: REAL;
BEGIN
X:= 15.3;
Y:= (COS(X)+EXP(X))/(EXP(3*LN(X));
WRITE (‘y=’ y);
END.
Құрама оператор
Егер белгілі бір шартпен оператордың бір нақты онда оларды құрама операторларға біріктіреді Құрама операторы Begin негізгі жазылуымен басталып End сөзімен аяқталады. Осы екі оператордың аралығында орналасу тәртібімен орындалатын операторлар тізбегі жазылады End сөзінен соң нүктелі үтір қойылады.
-8-
Var А:array[1..n] of real;
sum:real; I: integer;
Begin
(*массив енгізу*);
Writeln(‘сандар:’);
For I:=1 to n do Read(A[I]);
(*қосындысын шығару*);
S:=0;
For I:=1 to n do
Sum:=Sum+A[I];
Writeln(‘қосынды=’, Sum);
End.
Мысал22.3 TYPE түрінде сипаттаймыз
Program m22.2 (Input,output);
Const n=7;
Type T:=array [1..n] of real;
Var А:T;
sum:real; I: integer;
Begin
(*массив енгізу*);
Writeln(‘сандар:’);
For I:=1 to n do Read(A[I]);
(*қосындысын шығару*);
S:=0;
For I:=1 to n do
Sum:=Sum+A[I];
Writeln(‘қосынды=’, Sum);
End.
Мысал23.{Bij}, i=1,2,3, j=1,2,3,4,5 нақты сандардан тұратын матрица берілген.
Program M23 (Input,output);
Const N=3;
M=5;
Type Mas:=array [1..n,1..m] of real;
Var B:mas;
I:1..n;
J:1..M;
P:real;
Begin
(*матрица мәнін енгізу*);
-21-
Var A:T;
TYPE t= array [1..3] of array;[1..4] of integer;
Var A:T;
Мыс:21 Қатар санымен баған саны 5-ке тең болатын матрицаның қатарларының 1-ші мүшелерінің өсу тәртібі бойынша орналастыру қажет.
Program m21 (,);
Const n=5;
Type katar=array [1..n] of read;
Matrissa=array [1..n] of katar;
I,J,K: integer;
Begin
For I:=1 to n do
For J:=1 to n do Read (x[I,J]);
For I:=1 to n do
Begin
K:=I;
For j:=I+1 to n do
If x[I,J]
V:=x[I]; x[I]:=x[K]; X[k]:=V;
For J:=1 to n do Write (x[I, J]);
End;
End.
Мыс22. 5,1; 6,4; 8,7; 1,9; 3,6; 2,0; 4,2 жеті нақты сандардың қосындысын табу керек.
Program m22 (Input,output);
Const n=7;
Var sum:real; I: integer;
Begin
Sum:=0;
Writeln(‘сандар:’);
For I:=1 to n do
Begin
Read (A);
Sum:=Sum+A;
End;
Writeln(‘қосынды=’, Sum);
End.
Мысал22.2 VAR айнымалы бөлімінде сипатталады.
Program m22.2 (Input,output);
Const n=7;
-20-
Шартты тексеру операторы
Шартты өту операторы If және Case түрінде беріледі.
If операторы- шартты операторы белгілі бір шарттарды тексеру үшін қолданылады. Осы If операторы бойынша шарттарды тексеру қызметін логикалық белгілер атқарады және оған қосымша екілік өрнектерде қолданылады. Олар
=, >,<, >=,<=, <>.
If операторының жазылу түрі IF A THEN ST мұндағы А логикалық өрнек ST- ,белгілі бір оператор.
IF <логикалық өрнек> THEN <оператор1> ELSE <оператор2>
Егер логикалық өрнек ақиқат мән қабылдаса онда THEN сөзінен кейін орналасқан оператор1 орындалады. Егер лгикалық өрнек жалған болса онда оператор2 орындалады.
ELSE операторының алдында (;) қойылмайды.
Мыс:5 А ж/е В екі кез келген санның үлкенін есептейтін бағдарлама құру керек.
PROGRAM M5(INPUT,OUTPUT)
VAR A,B, max; Real;
Begin
Real (A,B);
If A>B Then max :=A
Else max:=B;
Write (“max=”,max)
End.
Мыс6. a Ln/x/<1, /x/;
W= x=0
, /x/;
Мыс7.
Z=; b-y=0 – шешімі жоқ
Program M7
Var z,b,y: Real;
Begin
Read (b,y);
If b-y <>0 Then
Begin z:=Ln(b-y)/Sqrt(b-y);
Write (“z=”,z);
End;
Else Write(шешімі жоқ);
End.
-9-
Case Таңдау операторы
Жалпы түрі Case <Выражение> Of
константа 1: оператор Р1;
Константа 2: оператор Р2;
------------------------------------
Константа n: операторы;
Case операторының таңбалары Label таңбалар бөлішінде сипатталуы керек. Мыс: Case I Of
2: K:=0,
3: k:=x*x;
100: k:=Sin(x);
End,
T:=k*k;
Мыс8; Аптаның көлемін баспаға шығару.
Program M8 (Input, Output);
Var Den: integer;
Begin
Read (Den);
Case Den Of
1:Writeln(“понедельник”);
2:Writeln(“вторник”);
3:Writeln(“среда”);
4:Writeln(“четверг”);
5:Writeln(“пятница”);
6:Writeln(“суббота”);
7:Writeln(“воскресенье”);
End;
End.
5.04.2002 ж.
Циклдік операторлар.
Кейбір есептеулерде берілген функцияның формуларының немесе белгілі бір санды есептейтін бірнеше айнымалыларды осы фукцияға қоя отырып есептеу керек болады. Осы кезде циклдік айнымалы процесс басталады. Паскаль тілінде осы айнымалы циклдік іс-қимылды 3 түрлі оператормен есептеуге болады. Олар WHILE, REPEAT, FOR.
WHILE – түріндегі циклдік оператор.
Жалпы түрі:
WHILE A DO ST
Мұндағы А логикалық өрнек.
ST – оператор. Бұл жазылу өрнегі А – логикалық ақиқат болса, онда ST операторы орындалады. Егер А жалған болса оператор орындалмайды.
-10-
Типтер бөліміндегі массив.
Типтер бөлімінде массивтің сипатталуы
TYPE массив тип аты=ARRAY [t1] of [t2]; var масситв аты : тип аты
Бұл жерде т1 индекстің өзгеру аралығы немесе индекс типі, т2 мүшелерінің түрі. Мыс. Егер 10 нақты сандардан тұратын R массивін алып оның типінің атын Mas деп белгілесек
TYPE MAS=array[1..10] of real;
Var R:Mas;
Мысал20. Футбол командасының орта жасын есептейтін бағдарлама құру.
Program m20 (,);
TYPE t=array [1..11] of real;
Var A: T;
Begin s:=0;
For I:=1 to 11 do
Begin read (A[I]);
S:=s+A[I];
End;
S:=s/11;
Write (s);
End.
Жинақталған массив
Егер массивтің алдында PACKED сөзі тұрса онда машинаның есте сақтау бөлігінде деректер тығыз жинастырылып транцлятция жинақталады және есептеумен деректерді өңдеу жылдамдайды. Бұл есте сақтау бөлігінің тиімділігін артырады. «Var” айнфмалылар түрінде
VAR __ массив аты: PACKED array [тип индексі] of char;
Мыс. «Киргизова Алия» Масивтің атын FAM деп алатын болсақ Var Fam : Packed array [1..14] of char;
Fam [1]= “k” , Fam[2]= ‘и’, ,,, , Fam[14] ‘я’ ;
TYPE t=Packed array [1..14] of char;
Var A:T;
Көп өлшемді массивтер
Массив элементтері бір индексті болса бір өлшемді ал екі индексті болса екі өлшемді немесе Матрица деп аталады. Бір өлшемді массивтің жазылуы A[I], екі өлшемді массивтің жазылуы A[I,j] деп жазылады. Мыс. 5 4 3 6
2 8 1 7 =А
4 3 9 5
A[I,J] I=1,2,3 j=1,2,3,4
Жалпы түрі TYPE t= array [1..3, 1,,4] of integer;
-19-
Массивтер ұғымы.
Массив деп бір ортақ белгісі бар деп деректердің N өлшемдік жиындығын айтамыз. Негізгі массив бір ортақ атпен аталатын тізбекті береді. Кез келген бір келкі деректердің жинақты тізбегі массив болады. Массивтің әрбір элементі массив аты және индекс арқылы болады. Егер программада массив қолданылса, онда ол var айнымалылар бөлімінде немесе типтер бөлімінде сипатталуы тиіс.
Мысалы: 1.6; 14.9; -5.0; 8.5; 0.46 A деп алатын болсақ,
Математикалық түрде А(1), А(2), А(3), А(4), А(5), немесе А1, А2, А3, А4, А5 деп жазамыз.
{Ai}, I= 1,2,3,4,5
Паскаль тілінде: A[1]=1.6, A[2]=14.9,… , A[5]=0.46,
VAR массив аты: ARRAY [t1] of [t2];
ARRAY –массив, t1 – индекстің өзгеру аралығы немесе индекстің типі, t2 – мүшелердің түрі.
Var A: ARRAY [1..5] of real;
Var massiv: array[1..n] of real;
Жыл: array [январь..декабрь] of integer;
L: array [қатар] of Boolean;
Егер массивтің индекс типі мен мүшелерінің түрлері бірдей болса, оларды қосып жазса болады.
Var A,B,C: ARRAY [1..50] of real;
A[1], A[2],..,A[50];
B[1], B[2],..,B[50];
C[1], C[2],..,C[50];
Мысалы: 15 бүтін сандардың қосындысын табу керек. Х- массив, І – қосындысы, SUM – сумма,
SUM = x[1]+x[2]+…+x[15] суммасын табу керек.
Program M19 (Input, Output);
Var X: ARRAY [1..15] of integer;
I, Sum: integer;
Begin
Sum:=0;
FOR I:=1 TO 15 DO
Begin
Read(x[I]);
Sum:=Sum+x[I];
End;
Writeln(Sum);
End.
-18-
Осы оператордың пайдалы жері белгілі бір берілген аралықтың ең үлкен шекарасына шектеу жасап аралықтарға тиісті мәндерінің барлығын алуға болады.
Мысал9: Алғашқы 5 натурал сандардың квадратын суммасын есептеу керек.
Program M9 (Input, Output);
Var S,N: integer;
Begin
S:=0, N:=1
WHILE N<=5 DO
Begin
S:=S+SQR(N);
N:=N+1;
End;
Write(‘S=’,S);
End.
Мысал10.
Program M9 (Input, Output);
Var S:real; N: integer;
Begin
S:=0, N:=1
WHILE N<=50 DO
Begin
S:=S+1/N;
N:=N+1;
End;
Write(‘S=’,S);
End.
REPEAT – түріндегі циклдік операторлар.
Жалпы түрі:
REPEAT ST UNTIL A
UNTIL – орындаушы оператор.
А – логикалық өрнек. А - логикалдық өрнек жалған болған жағдайда ST – операторы орындалады. А – логикалық өрнек ақикат болып орындалса, онда цикл тоқтатылады, онда циклдан кейінгі іс-әрекет орындала береді.
Мысал9.1:
Program M9 (Input, Output);
Var S:real; N: integer;
-11-
Begin
S:=0, N:=1
REPEAT S:=S+SQR(N);
N:=N+1;
UNTIL N>5;
Write(‘S=’,S);
End.
Мысал10.1
Program M10.1 (Input, Output);
Var S, N: integer;
Begin
S:=0, N:=1
WHILE N<=50 DO
Begin
S:=S+1/N;
N:=N+1;
End;
Write(‘S=’,S);
End.
Мысал11.
Program M9 (Input, Output);
Var V:real;
Begin
V:=0, K:=1
REPEAT K<=20 DO
Begin
V:=K+1;
K:=K+1;
End;
Write(‘V=’,V);
End.
Мысал12. Х=8,6,4,2; Y=X2-?
Program M12 (Input, Output);
Var Y,X: integer;
Begin
X:=8;
REPEAT
S:=SQR(X);
Writeln(Y,X);
-12-
Мысалы: х= көктем
SUCC(X)=жаз;
PRED(X)= қыс;
ORD(X) = 2;
Мысалы: Аң тізімі берілсін және реттік нөмері берілсін.
Program m18(input,output);
TYPE andar = ( tulki, kaskir, aiy, koian, pil, jolbaris, arstan);
Var P1,P2: andar;
N1, N2:integer;
Begin
P1:=aiy;
P2:=pred(jolbars);
N1:=ord(P1)+1;
N2:=ord(P2)+1;
Writeln(‘аю рет номері=’,n1);
Writeln(‘жолбарыстың алдындағы рет номері=’,n2);
End.
Шектеулі тип.
Тек шектелген аралықтағы мәндерді ғана қабылдайтын айнымалы шектеулі типтің айнымалысы деп қарастырады.
Мысалы: Типтерді сипаттау бөлімінде жылдың ай атаулары түріндегі санаулы типі берілген.
TYPE АЙ = (я,ф,м,а.м,и,и,а,с,о, н,д)
Есеп шартында тек жаз мезгілі айларын пайдалану керек болса, онда ай типінің бөлігі болып келетін шектеулі тип төмендегідей болады.
TYPE жаз =(июнь,, август);
Шектеулі типті анықтағанда тек бастапқы және соңғы мәндері екі нуктемен бөлініп жазылады. Шектеулі типті анықтау үшін алдымен базалық типі болып табылады.
Жалпы түрі: TYPE тип аты=<константа1>..<константа2>
<константа1>,<константа2> - өзгеру аралықтары.
Бұл жағдайда келесі шарттар орындалуы тиіс. Шектеулі тұрақтылар бір типті болуы керек. Базалық типке шектеулі түр әр уақытта деректер нақты мән а:real алғанда ғана орындалады.
Мысалы:
Ball=0..100;
Alfavit = ‘a’..’t’;
Logic = false..true;
Күз =қыркүйек..қараша;
Шектеулі типтегі бастапқы тұрақты мәні соңғы тұрақты мәнінен кіші болуы керек.
-17-
N – таңба;
N – таңбасы алдымен LABEL Таңбалар бөлігінде толық сипатталып жазылуы керек. GOTO N жазылуы белгілі бір іс-әрекеттен орындалуы тиіс N таңбалы қатар операторлар тобын орындауды шартсыз көшу операторы дейді.
М17.
К=1…N өзгереді. Осы сандарда 0.001 кіші сан барма, жоқпа соны тексеру керек.
PROGRAM M17 (Input, Output);
LABEL 1,2;
Var N,K: integer;
Begin
Read(N);
FOR I:=1 TO N DO
IF Cos(k)+Sin(k*k)<0.001 THEN
GOTO 1;
1:Write(‘бар’);
2:End.
Санақтау және шектеулі түрлер.
Кейбір жағдайларда сандық деректерден гөрі белгілі бір шектеулі санақталған деректермен жұмыс жүргізуге тура келеді. Паскаль тілінде берілгендердің стандартты типтерінен басқа жаңа пайдаланушы анықтайтын айнымалы типтер бар. Бұл топқа санақты және шектеулі типтер кіредісанақты тип түрақтылар тізімінен тұрады. Бұл типтің айнымалылары тізімдегі тұрақтылардың кез келген мәнін қабылдай алады.Жалпы түрі:
TYPE тип аты= (тұрақтылар тізімі);
VAR айнымалы аты: тип аты;
Тізімдегі тұрақтылар (,) арқылы жазылып дөңгелек жақшаға алынып жазылады.
Мысалы: TYPE жыл = (қыс, көктем, жаз, күз);
VAR A: жыл;
Жыл – тип аты, Қыс, көктем ... – тұрақтылар және олардың типтік нөмері 0 ден басталады. А – тұрақтылардың кезкелген мәнін айнымалы ретінде қабылдайтын айнымалы.
Санақтау түрде мынан дай келісімді функциялар қолдануға болады: SUCC(X) – х тан соң болатын мәнді береді.
PRED (x) – х тан алдын болатын мәнді береді.
ORD(x) – х тың мәні болатын санды көрсетеді.
-16-
X:=X-2
UNTIL X<0;
End.
FOR – түріндегі циклдік оператор.
Жалпы түрі:
FOR I:=N DO ST
Мұндағы I – айнымалы
I:=N1 TO N2
N1 – дегеніміз циклдік айнымалыныңғ бастапқы мәні,
N2 – соңғы мәні, ST – оператор.
Паскаль тілінде 1 мен –1- ден өзгеше қадам беруге болмайды. Егерде біз FOR түріндегі жазуды қолдансақ N1, N2 айнымалылары барлық уақытта REAL нақты түрін қолдану керек.
Мысал9.3.
Program M12 (Input, Output);
Var S,N: integer;
Begin
S:=0;
FOR N:=1 TO 5 DO
S:=S+SQR(N);
Writeln(‘S=’,S);
End.
Мысал 10.3.
Program M10.3 (Input, Output);
Var S,N: integer;
Begin
S:=0; N:=1;
FOR N:=1 TO 5 DO
S:=S+1/N;
Writeln(‘S=’,S);
End.
Мысал 13.
Program M13 (Input, Output);
Var S1,S2, S,T: REAL; K,N:integer;
Begin
READ(T);
S1:=0; S2:=0;
FOR K:=3 TO 18 DO
S1:=K*K+T;
-13-
FOR N:=6 TO 12 DO
S2:=N-T;
Writeln(‘S=’,S1+S2);
End.
Мысал 14.
Латын алфавитін баспаға шығару бағдарламасын құру.
Program M14 (Input, Output);
Var Sim:Char;
Begin
Writeln(‘Lat alfav:’);
FOR Sim:=’A’ TO ‘Z’ DO
Write(‘ ’,Sim);
End.
FOR – циклдық операторының параметр мәні кеміп отырғандағы жалпы түрі:
FOR I:=N1 DOWNTO N2 DO ST;
Мысал 9.4.
Program M9.4 (Input, Output);
Var S,N: integer;
Begin
S:=0;
FOR N:=1 DOWNTO 5 DO
S:=S+SQR(N);
Writeln(‘S=’,S);
End.
Ендірілген циклдар.
Циклдік құрылымның ішіндегі кұрделі циклдардан ендірілген циклдар деп атаймыз. Яғни ол бір циклдың ішінде екінші цикл орналасады.
Мысал15. Y=2k+N; N=1,2,3; k=2,4,6,8;
N – сыртқы циклдің параметрі,
К – ішкі циклдің параметрі.
Program M15 (Input, Output);
Var Y,K,N: integer;
Begin
FOR N:=1 TO 3 DO
-14-
Begin
FOR N:=1 TO 8 DO
Begin
Y:=2*k+N;
K:=K+2;
Writeln(N,K,Y);
End;
End;
End.
Program M15.1 (Input, Output);
Var Y,K,N: integer;
Begin
FOR N:=1 TO 3 DO
Begin K:=2
WHILE K<= 8 DO
Begin
Y:=2*k+N;
Writeln(N,K,Y); K:=K+2;
End;
End;
End.
Мысал16. Нақты сандар жиынының арифметикалық ортасын табу. N – жалпы сандар жиыны, S – сумма, Т – арифметикалық орта, D – енгізілетін сандар.
Program M15 (Input, Output);
Var I,N: integer;
S,T,D:real;
Begin
Read(N);
S:=0;
FOR I:=1 TO N DO
Begin
Read(D);
S:=S+D;
End;
T:=S/N;
Writeln(T,S);
End.
Шартсыз өту операторы.
Шартсыз өту операторы – GOTO операторлардың бағдарламада орналасу ретіне байланысты орындалу тәртібін бұзу үшін қолданылады. Жалпы түрі: GOTO N;
-15-