Стандартты типтер. Паскаль тілінде төмендегі қарапайым типтер пайдаланылады:
бүтін типтер - SHORTINT, INTEGER, LONGINT, BYTE, WORD;
нақты тип — REAL, SINGLE, DOUBLE, EXTENDED, COMP;
логикалық— BOOLEAN;
символдық — CHAR;
саналатын тип;
аралық (диапазонды) тип.
Бүтін сан түріндегі типтер. Паскаль тілінде бүтін шамалар үшін бес стандартты тип пайдаланылады. Олар 2-кестеде көрсетілген.
2-кесте
Бүтінсанды тип
|
Мәндер диапазоны
|
Қажетті жады
|
Integer
|
-32768..32767
|
2
|
ShortInt
|
-128..127
|
1
|
LongInt
|
-2147483648..2147483647
|
4
|
Byte
|
0..255
|
1
|
Word
|
0..65535
|
2
|
Нақты сан түріндегі типтер. Ондық сандар бүтіні мен бөлшегін бөлетін үтірі жылжымалы және тұрақты түрде жазылады. Үтірі тұрақты ондық сандар кәдімгі математикадағыдай жазылады, бірақ үтір орнына нүкте қойылады. Мысалы, 25.48, -127.25, 0.67, -8.0. Үтірі жылжымалы ондық сандар дәрежелік көрсеткіші берілген экспотенциалды түрде жазылады, мысалы, -1.25Е + 12 (1,25*1012), 1.3Е-05 (1,3*105) т.б. Олар 3-кестеде көрсетілген.
3-кесте
Нақты тип
|
Мәндер диапазоны
|
Мантиссаның цифрларының саны
|
Қажетті жады
|
Real
|
2.9E-39..1.7E38
|
11-12
|
6
|
Single
|
1.5E-45..3.4E38
|
7-8
|
4
|
Double
|
5.0E-324..1.7E308
|
15-16
|
8
|
Extended
|
1.9E-4951..1.1E4932
|
19-20
|
10
|
Comp
|
-2E+63+1..2E+63-1
|
19-20
|
8
|
Логикалық типтегі (BOOLEAN) шамалар, негізінен, екі мән қабылдайды — TRUE (ақиқат) және FALSE (жалған), олар компьютер жадында бір байт орын алады.
Символдық типтегі (CHAR) шамалар мән ретінде тек бір таңбаны ғана қабылдай алады. Мәннің символ екендігін көрсету үшін оны апостроф ішіне алып жазады. Мысалы, ‘а’ , ‘һ’ , ‘5’, ‘*’, т.б.
Жолдық типтегі шамалар (STRING) апостроф ішіне алынған символдар тізбегін қабылдайды. Мысалы, "компьютер", "университет", "main", "#&*" т.б.
Саналатын тип стандартты типке жатпайды, ол параметрлердің мәніне сәйкес келетін атаулар (идентификаторлар) тізімінен тұрады. Атаулар тізімі үтір арқылы ажыратылып, жай жақша ішіне жазылады. Мысалы:
атау = (1-идентификатор, 2-идентификатор,..., n-идентификатор);
kynder = (‘дүйсенбі’, ‘ сейсенбі ‘, ... , ' жексенбі ‘);
Идентификаторлар орналасқан орны бойынша 0-ден бастап номерленеді. Бір идентификатор тек бір ғана саналатын типті көрсетеді.
Диапазондық немесе аралық тип. Мұнда көрсетілген шама қабылдай алатын мәннің алғашқысы (ең кіші) мен соңғысы (ең үлкен) екі нүкте арқылы бөлініп көрсетіледі.
Мысалы:
атау = <алғашқы мән>..<соңғы мән>;
Программада мынадай шамалар кездесуі мүмкін:
Apta_kunderi = 1..7; Aj_kunderi = 1..31;
Бұл типтегі шамалар көрсетілген алғашқы және соңғы мәнге дейінгі немесе олардың арасында жататын кез келген бөлігін пайдалана алады.
5-ДӘРІС. Айнымалылардың алдын ала анықталган типтері (кұрылымдық).
Құрылымдық типтер.
Жолдық.
Массивтер.
Жиындар.
Қарапайым типтер сақтауға жадының бір ғана ұяшығы жұмсалатын қарапайым мәндерге есептелген. Дегенмен, әртүрлі есептерді программалау кезінде логикалық байланысқан қарапайым мәліметтер жиынтығымен амалдауға тура келеді. Құрылымдық типтер қарапайым мәндерді күрделі құрылымдарға біріктіруге мүмкіндік береді. Құрылымдық типтерге массивтер, жазбалар, жиындар, файлдар және объектілер жатады.
Массивтер
Құрылымдық типтердің бірі – массив. Массив - базалық деп аталатын бір типті элементтердің бекітілген санынан тұратын байланысқан мәліметтер жиынтығы. Массивті анықтау үшін оның базалық типін, және де массивтегі элементтердің санын және оларды номерлеу әдісін көрсету жеткілікті. Массивтің жеке элементтеріне қатынас жасауға болады – ол үшін массив атауы мен қажетті элементтің номерін (индексін) көрсету жеткілікті.
Массивті сипаттау келесі түрге ие:
Type
s=array[i] of a
Мұндағы ARRAY және OF - массив және осыдан мағынасы бар резервтелген сөздер; s – массив атауы; i – индекстер типі (тік жақшаға алынады); a – массив элементтерінің типі (базалық тип). Массив элементтері кез-келген типті мәндер бола алады. Массивті индекстеу үшін Turbo Pascal-да мәліметтер типі қолданылады. Бұл бүтінсанды типтерлің кез-келгені (LongInt-тен өзгесі), Char және Boolean, сол сияқты саналатын және аралық типтер (LongInt негізіндегі аралық типтен өзгесі) бола алады. Нақты типтер массивтерді индекстеуге жарамайды. Төменде массивтерді сипаттау мысалдары.
Var
a1:array [byte] of Boolean;
a2:array [char] of Boolean;
a3:array [Red, Yellow, Green] of char;
a4:array [1..100] of integer;
Мұндағы а1 - boolean типті 256 (0..255) мәннен тұратын массив. а2 – бұл да 256 boolean типті мәннен тұратын массив, дегенмен, а1 массивінен айырмашылығы ол char типті мәндермен индекстеледі. а1 және а2 массивінің жеке элементтеріне қатынас жасау төмендегідей болады.
а1[90]:=false;
a2[z]:=true;
а1 және а2 массивтерінің мазмұны келесідей бола алады:
1-ші элемент 2-ші элемент 3-ші элемент ... 256-ші элемент
True False True False
(а1 массивінің 1-256 элементтері 0-ден 255-ке дейінгі сандармен белгіленетін болады, ал а2 массивінің элементтері – ASCII кестесінің символдарымен реті бойынша белгіленеді).
Үшінші мысал (а3) char типті үш элементтен тұратын массив болып табылады. Бұл массивтің элементтері Red, Yellow және Green атауларымен белгіленеді (мұнда интекстеу үшін саналатын тип қолданылған). Бұл элементтерге қатынас жасау мысалдарын 5-кестеден көруге болады.
5-кесте
Әрекет мысалы
|
Түсініктеме
|
a3[Red]:=chr(100)
|
а3 массивінің Red элементіне “d” әрпіне сәйкес келетін char типті мән меншіктеледі.
|
a3[Red]:=’d’
|
алдыңғы оператордың эквиваленті
|
Write(a3[Yellow])
|
a3 массивінің Yellow элементінің мәні экранға шығарылады
|
Read(а3[Green])
|
a3 массивінің Green элементінің мәніy пернетақтадан енгізу
|
а3 массивінің мазмұны төмендегідей көріне алады.
a3[Red] a3[Yellow] a3[Green]
‘A’ ‘$’ ‘8’
Төртінші мысал (a4 массиві) – бұл Integer типіне жататын 100 элементтен тұратын массив.
Мұнда индексті тип аралық тип (интервалды, диапазондық) тип болып табылады. (Осы аралық тип массивтерді индекстеу үшін өте жиі қолданылады, себебі индекстердің өзгеру шекарасын ең көрнекі түрде көрсетеді).
Массивтердің индексін тек айқын түрдегі мәндермен ғана емес, сол сияқты айнымалы, өрнек түрінде де беруге болады. Айталық қандай-да бір программада а5 және і айнымалылары жарияланған болсын.
Var
a5:array[1..20] of integer;
i:integer;
Содан кейін а5 массивінің элементтері мен і айнымалысына қандай-да бір мәндер берілді. Осыдан кейін программада а5 массивіне келесі қатынастар бола алады.
a5[i+1];
a5[2*i];
a5[i/2-5];
a55[22-i];
Мұнда тік жақшалардағы өрнектің мәндері (яғни индекстерінің мәндері) мүмкін мәндер шекарасынан (біздің жағдайымызда 1..20) асып кетпеуі керек.
Және де массивтерді тек жасырын типтер ретінде ғана емес, сол сияқты жеке атауы бар типтер ретінде типтерді сипаттау бөлімінде жариялауға болады.
Type
LogScale=array[1..100] of boolean;
Var
a1:LogScale
Массивтер жолдарға өте ұқсас. Шыныда да массив те жолдар сияқты біртипті элементтердің тізбегі, дегенмен, егер жол символдары тек Char типті мәндерден тұрса, ал массив элементтері әртүрлі типтерге жата алады, қарапайымдарға да, құрылымдық типтерге де.
Жолдардың және массивтердің жеке элементтеріне қатынас жасау бірдей – ол үшін жолдың немесе массивтің атауы мен индексін көрсету жеткілікті.
Дегенмен, айырмашылықтары да бар.
Егер жолдың ағымдағы ұзындығын өзгертуге болса, массивпен мұны жасай алмаймыз.
Жолдың ұзындығы 255 символмен шектелген болса, массив мұндай шектеулер жоқ.
Жене де жолдың ұзындығын бір ғана оператордың көмегімен енгізуге немесешығаруға болады (мысалы, Read(X) немесе Write(X), мұндағы Х – String типті мән), ал массивпен мұны жасауға болмайды.
Осы қарастырған массив бірөлшемді массив болып табылады. Оны басқаша вектор деп те атайды.
Мысал:
Бірөлшемді массивті енгізу және экранға шығару.
Program Mas1;
Var
A:array[1..20] of integer;
i, n:integer;
begin
Write(‘массивтегі элементтер санын енгіз ’);
ReadLn(n);
For i:=1 to n do
Begin
Write(‘A[‘, I, ‘]=’);
Readln(A[i]);
End;
For i:=1 to n do
Write(A[i]);
Readln;
End.
Достарыңызбен бөлісу: |