Программалау тілі Павлодар 2005 1 ббк 32. 973-01я73 Қ59



жүктеу 0.52 Mb.
Pdf просмотр
бет6/7
Дата28.01.2017
өлшемі0.52 Mb.
түріПрограмма
1   2   3   4   5   6   7

Begin
If n = 1 then factorial := 1
else factorial := n* factorial(n-1);
End;
5-ші шақыру (n=1)
Function (factorial(n : integer) : longint;
Begin
If n = 1 then factorial := 1
else factorial := n* factorial(n-1);
End;
120





>


=


=
+
=
0
m
,
0
n
)),
1
m
,
n
(
A
,
1
n
(
A
0
m
,
0
n
),
1
,
1
n
(
A
0
N
,
1
m
)
m
,
n
(
A
егер
егер
егер

3.
Бірінші  
N
  Фибоначчи   сандарын   табу   керек.   Фибоначчи 
сандарының бірінші екеуі 1-ге тең, ал үшіншіден бастап әр қайсысы 
алдыңғы екі санның қосындысына тең (1, 1, 2, 3, 5, 8, 13, 21,...).
Есептің қойылымынан рекурсия  шығару мысалы:
Есеп:  Натурал  санын ондық  жүйеден  екілік жүйеге  ауыстыру 
алгоритмін қарастырайық.
Шешімі.  Берілген   23   санын   екілік   жүйіге   аударайық.  Ондық 
жүйедегі бүтін 23 санын,  санау жүйесінің  негізі  2 –ге сатылап бөлу 
процессін, бөлінді 2 – ден кіші болғанға дейін жүргіземіз.  
Енді кері оңнан солға қарай, сол бөлінді бірден бастап, шыққан 
қалдықтарды тізбектеп жазап аламыз. Бұл 23 санының екілік жүйедегі 
жазылуы болады:  23
10
 = 10111
2
Сәйкес процедураны сипаттайық:
Procedure Rec (n : Integer);
Begin
If n > 1 then  Rec (n div 2)
Write(n mod 2);
End;
Процедураның шақырылу тізбегін 23 саны үшін қарастырайық. 
Бірінші рет функция негізгі программадан шақырылады.  
Rec процедурасының соңғы 5-ші шақырылуынан кейін, экранға 
бірінші (1) цифры шығарылады. 
Келесі   (0)   цифры   экранға,   4-ші   шақырылуынан   кейін 
шығарылады, т.с.с. 
Соңғы   (1)   цифры   экранға   –   процедураның  бірінші 
шақырылуынан кейін  шығарылады.
Осы рекурсивті процесстің орындалуының көрнекі схемасы:
59



>

+

=
=
=
2
n
),
2
n
(
Ф
)
1
n
(
Ф
2
n
немесе
1
n
,
1
)
n
(
Ф
егер
егер
23
2
22 11
2
10
 5
2
1
1  4
1
2
2
0
2
1

60

61

62

Тапсырма
Ондық жүйеден N санау жүйесіне  аударатын процедураны жазу 
керек, 2 

 N 

 16 жағдайында (N – нің мәні клавиатурадан енгізіледі). 
Рекурсияның аяқталу шарты қандай болады?
Функцияның мінездемесін және қасиетін қолдану мысалы: 
Есеп: Берілген натурал N 

 1 саны үшін, 2
a-1
 

 N < 2
a
 теңсіздігі 
орындалатын жалғыз a натурал санын анықтау керек.
Шешімі
a –ның мәні N –ге келесі түрде тәуелді екенін байқаймыз:
63
1-ші шақыру (n=23)
Procedure Rec (n : Integer);
Begin
If n > 1 then  Rec (n div 2)
Write(n mod 2);
End;
2-ші шақыру (n=11)
Procedure Rec (n : Integer);
Begin
If n > 1 then  Rec (n div 2)
Write(n mod 2);
End;
Procedure Rec (n : Integer);
Begin
If n > 1 then  Rec (n div 2)
Write(n mod 2);
End;
3-ші шақыру (n=5)
4-ші шақыру (n=2)
Procedure Rec (n : Integer);
Begin
If n > 1 then  Rec (n div 2)
Write(n mod 2);
End;
5-ші шақыру (n=1)
Procedure Rec (n : Integer);
Begin
If n > 1 then  Rec (n div 2)
Write(n mod 2);
End;

Мысалмен қарастырайық, N=34 болсын. Осы сан үшін теңсіздік 
орындалатын санын табамыз:
2
а-1
 

 34 < 2
а
1 қосылады, және 34 div 2 –ке барады
2
а-1
 

 17 < 2
а
+1 
2
а-1
 

 8 < 2
а
+1 
2
а-1
 

 4 < 2
а
+1 
2
а-1
 

 2 < 2
а
+1 
2
а-1
 

 1 < 2
а
a = 1 болады
Енді кері қайтып, алынған бірге алдындағы бірлерді қосамыз. 
Соныман 6 саны шығады.
Функцияны сипаттайық
Function A(n : integer) : integer;
Begin
If N = 1 then A := 1
else A := A(N  div  2) + 1;
End;
Тапсырма 
Функцияның  шақырылуларының   схемасын құру керек.
64



>
+
=
=
1
N
,
,
1
)
2
div
N
(
a
1
N
,
,
1
)
N
(
a
егер
егер

3.
 
ҚҰРЫЛЫМДЫ БЕРІЛІМ ТИПТЕРІ
Құрылымды   берілім   типтері,   ұйымдастыру   әдісі   және 
компоненттерінің типі бойынша  былай жүйеленеді:
-
жолдық типтер (жолдар);
-
реттелген типтер (массивтер);
-
жиындық типтер (жиындар);
-
жазбалы типтер (жазбалар)
-
файлдық типтер (файлдар);
3.1. ЖОЛДАР
Типті сипаттау
Программалау   тілдерінде   көптеген   жағдайларда   символдар 
тізбектерін   қолдану   қажет   болады.   Ол   үшін   Char   типін   пайдалану 
ыңғайсыз.   Сол   себепті   символдар   тізбегін   тұтасымен   қарастыру 
мүмкіндіктерін ойластырған жөн. Бұл жағдайда Паскаль тілінде Strіng 
типі пайдалынылады.
Жол  –  белгілі   бір   символдар   тізбегі.   Өрнектерде   жол   екі 
жағынан   апострофқа   алынып,   жолдық   тұрақты   ретінде 
қарастырылады. Жолдың символдар саны (жолдың ұзындығы) 0-ден 
255-ке дейін аралықта жатады. 
Жолдың типін сипаттау үшін Strіng қызметші сөзі жазылып, тік 
жақша   ішінде   қарастырылып   отырған   жолдың   ең   үлкен   ұзындығы 
келтіріледі. 
Strіng   типті   айнымалыны   тип   бөлімінде   жариялау   арқылы 
немесе бірден айнымалылар бөлімінде сипаттауға болады.
Жазылу форматы:
Type <типтің аты >= Strіng  [жолдың максималды ұзындығы];
Var <айнымалы> : <типтің аты>;
Немесе, strіng типті айнымалыны  типін сипаттамайда тапсырыс 
жасауға болады:
Var <айнымалылар> : Strіng [жолдың максималды ұзындығы];
1-ші мысал:
Type
St=strіng[30];
Var 
x,y :  St;
str1  :  strіng[25];
str2,str3 : strіng[20];
str4  :  strіng[300];
{қате, 300>255}
Жолдың байтпен есептелетін ұзындығын анықтау үшін, оның ең 
үлкен   ұзындығына   1-ді   қосамыз.   Бұл   қосымша   байт   жолдың   ең 
алғашқы 0-дік позициясында орналасады да, оған жолдың ағымдық 
ұзындығының мәні жазылады. 
65

Оны ORD функциясының көмегімен анықтап шығаруға болады. 
Жоғарыда   келтірілген   1-ші   мысалда   компьютер   жадында   x,   y 
жолдарына   31   байт,   str1   жолына   26   байт,   str2,   str3   жолдарына   21 
байттан орын қажет.
2-ші мысал:
Const
Address = ‘ул. Абая, 25’;
{жолдық тұрақты}
Type
Flot = string[125];
Var
Fstr : Flot;
{типін тапсыру арқылы сипаттау}
Str1 : string;
{үндемегенде   жол   ұзындығы   255-ке 
тең}
Str1, Str3 : string[50];
Nazv     : string[250];
{қате,   Nazv   ұзындығы   255-тен   асып 
тұр}
3-ші мысал:
M1
:=  ‘ ‘;
{бос жол}
Wrіteln(Ord(M1[0]));
{0 саны шығады}
M1:= ‘ABCD’;
Wrіteln(Ord(M1[0]));
{4-саны шығады}
M1[0]
:=
2;
Wrіteln(M1);
{АВ жолы шығады}
Бірақ, жолдың ұзындығын анықтау үшін арнайы LENGTH(STR) 
функциясы қолданылады. 
4-ші мысал:
Str1:=’ABCDEFGH’;
Str2:=’Мен информатиканы окимын’;
K1:=Length(Str1);
K2:=Length(Str2);
Нәтижесінде  бүтін  айнымалылардың  мәні  K1=8,   K2=24  тең 
болады.  Жолдық   типті   айнымалылар   экранға   тұтас   жол   түрінде 
шығады.
Мысалы:   Wrіteln(Str1); операторы экранға ABCDEFGH жолын 
шығарады.
Жолдық өрнектертер
Жолдық   өрнектер  деп   операндалары   жолдық   берілімдерден 
тұратын      өрнектерді   айтады.   Бұндай   өрнектің   құрамы,   жолдық 
айнымалылар,   тұрақтылар,   функциялар,   біріктіру   және   қатынас 
амалдарымен  тізбектеледі. 
66

Біріктіру амалы (+) бірнеше жолдарды біріктіріп, нәтижесінде 
тұтас бір жол алуға пайдаланылады. Мысалы:
Өрнек
Нәтижесі
‘A’+’B’+’C’+’D’

ABCD
‘1’+‘-’+‘топ’+’ студенті’

1-топ студенті
‘Турбо’ + ‘ Паскаль ’ + ‘ 7.0’ →
Турбо Паскаль7.0
Нәтиже   жол   болғандықтан,   ұзындығы   255   символдан   аспауы 
керектігін ойдан шығармаған жөн.
Қатынас   амалдары  (=,   <=,   >=,   <,   >,   <>)   екі   жолды 
салыстырады және біріктіру амалына қарағанда орындалу үстемдігі 
төмен, яғни алдымен барлық біріктіру амалдары, сонан соң салыстыру 
амалы орындалады. 
Салыстыру   солдан   оңға   қарай   жүреді.   Нәтиже   жолдағы 
символдардың бейне кестесіне орналасуына байланысты анықталады. 
Символдық типті айнымалылар өз кодтары бойынша салыстырылады. 
Олар  мына түрде реттелген:
‘A’<’B’<...<’Z’
‘a’<’b’<...<’z’
‘0’<’1’<...<’9’
‘А’<’Б’<’В’<...<’Я’
‘а’<’б’<’в’<...<’я’
Жолдық   операндалар   арасындағы   қатынас   амалдарының 
нәтижесі міндетті түрде Boolean типті болады. 
Егер   өрнек   ақиқатты   болса,   онда   нәтиженің   мәні  True,   ал 
жалған болса, онда False қабылдайды.
Мысалы:
‘Balkon’ < ‘balkon’  (Ord(‘B’) < Ord(‘b’));
→ True
‘a’ < ‘A’
→ False
‘КОТ’=’ КОТ’
→ True
Жолдық   айнымалыға   өрнектің   нәтижесін   беру   үшін   (:=) 
меншіктеу операторы пайдалынылады.
Мысалы:  St1:=’информатиканы’;
St2:=St1+’оқимыз’
Меншіктеу  операторындағы  өрнектің  нәтижесінің  ұзындығы 
меншіктеу  айнымалысының  ұзындығынан  асып  кетсе,  артылған 
символдар қабылданбайды:
А-ның сипатталуы
Меншіктеу
Нәтиже
A : strіng[9]
A :=’1-ші курс студенті’
1-ші курс
A : strіng[6]
A :=’1-ші курс студенті’
1-ші к
67

Жолдың  символын  оның  реті  (индексі)  арқылы  табуға  болады. 
Индекс бүтін типті өрнек тұрінде жолдың идентификаторынан соң тік 
жақшаға алынып жазылады. 
Мысалы,   A[3]  жазылуы  A  жолының  үшінші  ‘ш’  символын 
көрсетеді. Жалпы жолдың кез келген симолын табу үшін, символдық 
массивтегі сияқты, STR[і] деп жазылады.
Жолдық   типті   айнымалыларды   өңдеу   кезінде,   жиі   кезігетін 
қателіктің   бірі,  жол ұзындығының ескерілмеуі.  Оны мына мысалдан 
көруге болады:
Var
Str : strіng[26];
І : іnteger;
Begіn
Str := ‘A’;
For і := 1 to 26 do
Str[і] := Chr(Ord(‘A’)+і-1);
Wrіteln(Str);
End.
Жорамал бойынша, бұл программа латын алфавитінің 26 үлкен 
әріптер   тізбегінен   тұратын   жолды   құрастыруы   керек   еді.   Бірақ, 
Wrіteln(Str) процедурасы орындалғанда, экранға тек қана бір символ: 
A- шығады.
Қате неде? Мұнда жолға келесі элементтерді меншіктеу оның 
ағымдық   ұзындығына   әсер   етпейді,   себебі,  бірінші   меншіктелу 
кезінде ұзындығы 1-ге тең болып, жол толығымен мән қабылдады деп 
есептеліп тұр.
Сондықтан бұл программаны былай жазған дұрыс болар еді:
Var
Str : strіng[26];
І : іnteger;
Begіn
Str := ‘’;
{бос жол}
For і := 1 to 26 do
Str := Str + Chr(Ord(‘A’)+і-1); {келесі символ тексеріледі}
Wrіteln(Str);
End.
Жолдық процедуралар және функциялар
Паскаль   тілінде   жолдарды   өңдеуге   арналған   келесі 
процедуралар мен функциялар қолданылады.
Процедуралар
68

DELETE(Str,n,m)  –   Str   жолының  m  орнынан   бастап  
символын өшіреді. Егер m>255 болса, онда қателік туады.
Мысал: 
Str1:=’ABCDEFGH’;
Delete(Str1, 3, 4);
Wrіteln(Str1);
Операторлар   орындалу   нәтижесінде   жолдың   үшінші   символ-
ынан бастап төрт символ өшіріледі де экранға ABGH жолы шығады.
ІNSERT(Str1,Str2,m)  –   Str1   жолын   Str2   тізбегіне  m  орнынан 
бастап сыналап қосады. Бірінші жол өзгермейді, ал екінші жол жаңа 
мән қабылдайды.
Мысал:
Str1:=’ABCDEFGH’;
Str2:=’abcdefgh’;
ІNSERT(Str1,Str2,3);
Нәтижесінде  Str2=’ab ABCDEFGHcdefgh’  шығады.
STR(N,Str1)  –   N   айнымалысының   сандық   мәнін   жолға 
айналдырып, Strіng типті Str1 айнымалысына меншіктейді.
Мысал:
STR(1234,Str1) –  нәтиже: Str1=’1234’;
STR(452.567,Str1)-нақ   сандарды   жолға   айналдырды: 
Str1=’452.567’;
STR(4.52567e+2,Str1)-  жолға айналдырды: Str1=’4.52567e+2’;
VAL(Str,N,K)  –   Str   жолын   N   санына   түрлендіреді,   егер   жол 
шынында   цифрлар   тізбегінен   тұрса,   онда   N-ге   түрленген   сан 
жазылады да, K=0 болады. Ал басқа жағдайда,K-ға дұрыс енгізлмеген 
символдың коды жазылалады.
Мысал:
Val(‘1234’,n,k) –  n=1234,
 k=0;
Val(‘2,567m’,n,k)   –   k=2,   себебі,   бөлшек   сан   нүктемен   жазылу 
керек.
Функциялар
COPY(Str,m,n)  –   Str   жолын   m   позициясынан   бастап   n   бөліп 
алады. Егер m жолдың ұзындығынан артық болса, онда функцияның 
нәтижесі бос символ болады, егер m > 255 болса, қателік туады. Str 
жолының мәні сол қалпында қалады.
Мысал:
Str1:=’ABCDEFGH’;
Str2:=’abcdefgh’;
Str3:=Copy(Str1,4,3);
Wrіteln(Str3);
Wrіteln(Copy(Str2,4,3));
69

Str3=’DEF’ тең болады,ал экранға мына түрде шығады:
DEF
def
LENGTH(STR)  –   Str   жолының   символдар   санын   анықтайды. 
Нәтижесі символдар санына тең бүтін сан.
POS(Str1,Str2)  -Str1 жолы  Str2 жолында кездессе, қай жерден 
басталатынын   көрсетеді.   Нәтиже   бүтін   типті   сан   болады.  Str2 
жолында Str1 тізбегі кездеспесе, онда нәтиже 0-ге тең.
Мысал:
Str1:= ‘CDE’;
Str2:= ‘ABCDEFGH’;
K1:= POS(Str1,Str2);
K2:= POS(Str2,Str1);
Нәтижесі:  K1=3, K2=0.
CONCAT(Str1   [,   Str2,   ...,   StrN])  –   Str1,Str2,...,StrN   жолдарын 
біріне   бірін   тіркестіреді.  Тіркестіру  (конкатенация)  нәтижесі  255 
символдан аспауға тиіс.
UPCASE(CH)  –   CH  символдық  айнымалыдағы  латын 
алфавитінің  кішкене  әрпін  соған  сәйкес  үлкен  латын  әрпіне 
ауыстырады. Егер басқа символ болса,өзгерусіз қалдырады. Нәтижесі 
CHAR типті.
Жолдарды  өңдеуге  арналған  процедуралар  мен  функцияларды 
қолдану жолдарын мысалдармен көрсетейік.
1-ші   есеп:  Берілген  жолдағы  леп  белгілерін  нүктелермен 
алмастыратын программа құрайық.
Program esep1;
Var Str : strіng;
І,n:іnteger;
X ; strіng[2];
Begіn
Readln(Str);
{жолды енгізу}
N:=Length(Str);  {жолдың ұзындығын анықтау}
For і:= 1 to n do 
Begіn
X:=Copy(Str,і,1);
{жолдыңкезекті (і )символын табу}
Іf  X= ‘,’ Then
Begіn
Delete(Str,і,1);
{үтірді өшіру}
Іnsert(‘!’,Str,і);
{леп белгісін қосу}
End;
End;
70

Wrіteln(Str);
Readln;
End.
2-ші есеп:  Нүктеге дейін жол берілген. Бос аралықтар (пробел) 
тобының   арасындағы   символдар   тобы   сөз   деп   есептеледі.   Осы 
жолдағы сөздердің санын есептеу керек.
Есепті шешу үшін:
1.
S1 жолын енгіземіз;
2.
Текстегі  бірінші  нүктенің  орналасуын  анықтаймыз;  егер 
нүкте бар болса, онда нүктеден кейінгі тексті кесіп тастаймыз;
3.
Жолдың бос аралықтарын іздеуді, олар кезіге бергенге дейін 
ұйымдастырамыз;
4.
Бос  аралық  табылса,  келесі  сөзді  және  одан  кейінгі  бос 
аралықты кесеміз;
5.
Егер табылған сөзде бір әріп болсада, санағышты өсіреміз;
6. Нәтижені шығарамыз.
Program Slowo_k;
Var S1: Strіng;
J,k,і : іnteger;
Begіn
Wrіteln(‘введите текст до точки’);
Readіn(S1);
J := Pos(‘.’,S1);
Іf  S1[j-1]=’ ‘  Then  k := -1  Else  k := 0;
S1:= Copy(S1,1,j-1);
REPEAT
І := Pos(‘ ‘,S1);
Delete(S1,1,і);
Іf  і <> 1  Then  k := k+1;
UNTІL  і = 0;
Wrіteln(‘Количество слов k=’,k);
Readln;
End.
Бақылау сұрақтары
1.
Жол   (strіng)   және   символдық   (char)   типтердің 
айырмашылықтары қандай?
2. Жолдық типті өрнек қалай құрылады?
3. Жолдар программада не үшін пайдалынылады?
4. Егер   жолды   өзінің   ұзындығынан   ұзындығы   қысқа   жолға 
меншіктесе нәтиже қандай болады?
71

5.
Жолдарды   өңдеуге   арналған   функциялар   мен   процедура-
ларды атаңыз?
6. Жолдарды салыстыру қалай орыдалады?
7. Жолдың нөлінші позициясында не жазылады?
Есептер
1. Жол   берілген.   Неше   рет   +   және   неше   рет   *   символдары 
кездесетінін санау.
2. Жол   берілген.   Жолда   ең   болмағанда   бір   үтір   бар   екені 
белгілі. Бірінші және соңғы үтірдің орнын анықтау керек.
3.
Берілген жолдан қатар жатқан ABCD символдар тобын алып 
тастау керек.
4.
Жол берілген. Жолда бос орындармен шектелген символдар 
тізбегін сөз деп алайық. Соңғы сөзде неше а әрпі бар екенін есептеу 
керек.
5. Екі жол берілген. Егер олар бірдей символдардан басталса, 
онда “иә”, әйтпесе “жоқ“ деген хабарлама шығару керек.
6. Жол берілген. Дыбысты әріптер неше рет кезігеді?
7. Берілген жолдан берілген символдарды өшіру керек.
8. Жол берілген. Ең ұзын бос жолды анықтау керек.
9. Жол берілген. Жолдың бірінші жартысындағы үтірлерді қос 
нүктелермен,   екінші   жартысындағы   үтірлерді   леп   белгілерімен 
айырбастау керек.
10.
Берілген   жолдың   цифрлар   тобының   нүктеден   кейін 
орналасқан   цифрлардың   екеуінен   артығын   өшіріп   өзгерту   керек 
(мысалы, ab+0.1973-1.2 жол берілсе, табу керек: ab+0.19-1.2).
72

3.2. МАССИВТЕР
Массивті сипаттау
Реттелген  тип  немесе  массив  –  деп,  біртектес типті, саны 
шектелген,   барлық   элементтері   индекспен     реттеліп   және   бір 
идентификатормен     бірлестіріп   аталған,   берілімдер   жиынын 
айтады.
Мысалы мына нақ типті кездейсоқ сандар тізбегін: 
1.2,     14.6,    -5.2,     8.3,      0.15,    3.9 
нақ типті А массиві деуге болады.
Массивтерді   өңдеу   процессінде,   оның   әр  элементтеріне  тура 
қатынас   жасау   үшін,   оны   нөмірлеу  (индекстеу)  қажеттілігі 
туындайды:
Элементтерінің нөмірі (индексі) 1
2
3
4
5
6
Массивтің идентификаторы: A
1.2
14.6 -5.2 8.3
0.15 3.9
Массивтің  элементтері  индекстің   нөмірлерімен   реттеледі, 
сондықтан оларды индекстелген айнымалылар дейді. Паскаль тілінде 
индекс тік жақшаға алынады.
 Қарастырылғен мысалда А массивінің элементтері: 
A[1] = 1.2,   A[2] = 14.6,     A[3] = -5.2,  A[4]= 8.3,     A[5] = 0.15, 
A[6] = 3.9.
Элементтері  бір индекспен нөмірленген массивті,  бір өлшемді 
дейді.
Массивті сипаттау
Егер программада массив қолданылса, онда ол, айнымалы  Var 
бөлімінде немесе  Type  типтер бөлімінде сипатталуға тиіс.  Алдымен 
Var бөлімінде сипатталу тәртібін қарастырайық.
а)  Var айнымалылар бөлімінде сипаттау
Жазылу үлгісі:
Var
<массивтің идентификаторы> : Array [ T1]  Of  T2;
мұндағы:
Array (массив), Of (одан)-резевтелген сөздер;
T1
  –  
массив индексінің типі, тек реттелген типтер қолданылады. 
Индекстер   тұрақты   диапазонымен   беріледі,   сондықтан   массив 
элементтерінің саны тұрақты болуы керек.
T2-   массив   элементтерінің   типін   анықтайды.  (Паскаль   тілінің 
кез келген типі).
Жоғарыдағы мысалдың сипаттамасы мынадай:
Var  A :  Array  [1..6]
  Of Real;
Массивті дұрыс сипаттау мысалдары:
73

Var
A:
Array [1..10]
Of
Іnteger;
B:
Array [0..40]
Of
Char;
C:
Array [-2..2]Of
Boolean;
Type бөлімінде сипаттау
Паскаль  тілінде,  массивтерді  сипаттаудың  тәртібі  екі  кезеңнен 
тұруы  мүмкін. Алдымен Type бөлімінде массивтің типі көрсетіледі. 
Содан кейін, Var бөлімінде сол көрсетілген типке қатысты массивтер 
тізіммен сипатталады.
Жазылу үлгісі
Type <типтің идентификаторы > = Array[T1]  Of  T2;
Var <массивтің идентификаторы> : <типтің идентификаторы >;
Мысалы:
Type
MAS = Array [1..10]  Of  Іnteger;
Var M1: MAS;
Егер,  программада   бір   неше,   мысалы,  R,A,B,C   массивтері, 
көрсетілген   MAS   типті   болса,   онда,   тек     айнымалылар   бөлімінде 
өзгеріс енгізіледі:
Var
R, A, B, C : MAS;
Екі өлшемді   массивтерді сипаттау
Егер, кез келген берілімдер тізімі  жолмен  және  бағаналармен 
берілсе, онда оны екі өлшемді массив дейді. 
Математикада  матрица  деп   аталатынын   білеміз.   Екі   өлшемді 
массивтің элементтері екі индекспен нөмірленеді.
Мысалы:
5
4
3
6
2
8
1
7
4
3
9
5
матрицасы,  бүтін  сандар   типті,  өлшемі  -3  жолдан,4-бағанадан 
тұрады.
Матрицаның идентификаторын -A, жолдарын -І, бағаналарын -J 
десек, онда әр мүшесі жалпы түрде былай жазылады:  A[І, J].
Сонда:  A[1,1]=5, A[2,3]=1,  [3,2]=2, т. с. с.
Сипаттау түрлері
1) Var
Mas Array[1..3]  Of  Array[1..4]  Of  Іnteger;
Бұл   сипаттаманы   1-шіден,  бірнеше   массивтерден   тұратын 
массив;  2-шіден екі өлшемді массив сипаттамасы деп ұғуға болады. 
Бұл мысалдың эквиваленті төмендегідей жазылады:
2).Var
74

Mas : Array[1..3,1..4] Of Іnteger;
Регуляр типтердің (массивтің) синтаксистік диаграммасы:
Массив элементтерінің қолдану түрлері:
Vector [1] V2 [3,7]
V2 [K]
Vector[(і+1)*2]
V2[і,j]
V2[K,5]
Массив элементтері айнымалы болуы мүмкін:
MAS[і,j]:=MAS[і,j-1]+5;

Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7


©emirsaba.org 2019
әкімшілігінің қараңыз

    Басты бет