Аралас типтер. Иерархиялық жазбалар

Автор работы: Пользователь скрыл имя, 06 Марта 2013 в 15:40, курсовая работа

Краткое описание

Мәліметтердің айнымалы типтері стандартты типтерден өзгеше болып келеді. Мәліметтердің әртүрлі типтері үшін амалдар қолдануға болады. Мысалы, нақты сандар үшін + ,- ,* ,/ амалдарын орындағанымызбен, оларға DIV (бөлінді табу), MOD (бүтін санды бүтін санға бөлгендегі қалдыкты табу) амалдарын қолдану мүмкін емес. Мәліметтердің жаңа типін құру бір жағынан амалдарды орындау жолдарын жеңілдетсе, екінші жағынан қате жібермеуге мүмкіндік береді. Сонымен, мәліметтердің стандартты типтерінен өзге жаңа айнымалы типтерді құруға болады. Мәліметтердің бұл типтеріне саналатын және шектелген типтер жатады.

Содержание

I. Кіріспе 4
II. Мәліметтердің күрделі типтері 6
2.1 Жиымдар (массивтер) 6
2.2. Көп өлшемді жиымдар 12
2.3 Жиындар 14
2.4 Жазбалар 17
2.5 Жалғастыру операторы WITH 21
ІІІ. Қорытынды 22
IV. Пайдаланылған әдебиеттер 23
V. Қосымша 24

Вложенные файлы: 1 файл

курсовой.docx

— 122.77 Кб (Скачать файл)

Жиым элементтерін енгізу  немесе экранға шығару үшін цикл операторларын мынадай түрде пайдалануға болады:

А жиымы элементтерін  пернелерден енгізу:

    FOR I :=i ТО N DO

   READ (A[I]);

    .........................

А жиымы элементтерін экранға шығару:

 FOR I:=l ТО N DO

WRITE(A[I],' ');

           .................................

Осы тәрізді eкi өлшeмдi жиым элементтері  қабатталған for операторы арқылы өңделеді:

FOR М ТО 10 DO

FOR J:=l ТО 15 DO

WRITE(A[I,J], ‘’);

..........................

 

Индекстері мен элементтерінің типтері бірдей жиымдардың бірнің мәндерін екшісіне көшіру үшін, мысалы A:=D; меншіктеу операторын немесе операторы арқылы былай орындау мүмкіндігі бар: For i:=l to 4 do A[i]:=D[i]

Бір өлшемді жиымды көбінесе сызықты жиым дейді, олар тип бөллігінде былай сипатталады.

Type Sl= array [1..N] of real;

S2= array [1..M] of integer;

S3= array [1..K] of char;

S4= array [0..20] of boolean;

VAR А, В : SI;

L, G :S4;

 С :S2;

D : S3;

Жиымды сипаттағанда индекстің үлкен мәні үшін кез келген (255-тен артпайтын) санды алуға болады, бірақ программада пайдаланылатын индекстің мәні оның берілген ең үлкен (максимум) мәніне дейін болуы шарт емес.

Мысалы, жиымды сипаттағанда array [1 ..255] деп жазып, программада оны пайдаланғанда i<255 кез келген мәнді пайдалануға болады. Программада i —дің мәнi жиымды сипаттағандағы оның ең үлкен мәнінен ешқашанда аспауы қажет.

Паскаль тілінде жиымдарға = (тең), < > (тең немесе) және меншіктеу  амалдарын қолдануға болады. Ал жиым элементтері үшін олардың типіне сәйкес кез келген амалдар орындала береді.

Мысалы, А және В жиымдары былайша  сипатталса:

VAR А,В: array [1...10] of real;

 онда пайдаланылған амалдар  төмендегі нәтижелер береді

өрнек

нәтиже

A=B

А жиымының әр элементінің мәні В жиымының сәйкес элементтерінің мәніне тең болса, онда нәтиже true болады.

A<>B

А жиымының ең аз дегенде бip элементтің мәні В жиымының сәйкес элементінің мәніне тең болмаса, онда нәтиже true болады.

A:=B

В жиымының барлық элементтері А жиымының сәйкес элементтеріне айналады.




 

Жиым элементері өрнектерде read, readln, write, writeln тәрізді оператор лардың параметрі міндетін атқара отырып, циклдік операторларда пайдаланылады немесе айнымалыларға басқа мәндер меншіктеуде операнд (аргумент) рөлін атқарады.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.3. Көп өлшемді жиымдар

 

      Күнделікті тұрмыста екі-үш өлшемді жиымдар да жиі қолданылады. Алгоритмдік тілдерде жиым өлшeмiнe шек койылмайды. Жоғарыда айтылғандай жиым бір,екі,үш,төрт тіпті одан да көп өлшемді болуы мүмкін. Бip өлшемді жиымдарды сызықты жиымдар десек, екі өлшемді жиымдарды математикада матрица немесе кесте деп атайды. Біз мұнда екі өлшемді жиымдарды ғана қарастырамыз. Екі өлшемді жиымға мысал ретінде студенттердің әр сабақтан алған бағалары толтырылған кестені алуға болады.

 1. Тип бөлігінде жиым былай сипатталады:

 A. TYPE атау=аrrау [l..n, l..m] of тип;

var В: атау;

мысалы, Т= аrrау [1..4Д..З] of Real;

В: Т;

немесе

Ә, TYPE атау= аrrау [l..n] of array [1..М] of тип;

мысалы,

Т= array [1..4] of array [ 1..3] of Real;

B:T;

Бірінші жағдайда индекстер әр типте сипатталынады да, одан соң жиым элементтерінің базалық типі көрсетіледі. Екінші жағдайда алдымен жол индекстерінің [1..N] типі, одан соң күрделі базалық тип array[l..M] of тип; көрсетіледі

Егер программада жиымның бағанасын және жолдарын бөліп жазу қажет болса, онда оны былай сипаттау қолайлы болады:

TYPE Tl=array[l..M] of тип;

Т= array [1..N] of Tl;

VAR B:T; A:T1;

Мұнда алдымен бағана типі Tl көрсетіледі де, одан соң ол жолдың типі арқылы матрицаның типі Т көрсетіледі. Айнымалы бөлікте eкi өлшемді жиым - В және бір өлшемді жиым - А көрсетілген.

2. Жиымды айнымалы бөлігінде сипаттауға болады.

VAR В: array [1..N, 1..М] of тип;

Жоғарыдағы бip өлшемді жиымда айтылғандай тік жақша ішінде индекстер типі, ал тип орнында элементтер типі көрсетіледі.Индекс типіне REAL, integer стандартты типтерден өзге типтердің барлығын пайдалануға болады, ал элементтер типі үшін Паскаль тіліде пайдалануға болатын барлық типтерді қолдану мүмкіндігі бар.

Мысалы,

 Туре

den=(mo, tue, wed, th, fr, sat, sum);

Rden=mo...fr;

Zadan=array[L..25, rden] of integr;

VAR

A: array [den] of array[1..25] of char;

B:zadan;

C:array [1.365] of zadan;

Көп өлшемді жиымдармен жұмыс атқарғанда бip қайталау операторының iшіне бipншe қайталау операторлары болуы мүмкін. Мысалы, жиым eкi өлшемді болса, онда қайталау екі рет, ал үш өлшeмдi болса қайталау үш рет және т.с.с. орындалады. Демек eкi өлшемді жиым элементтерін енгізу және шығару үшін төмендегі үлгіні пайдаланады.

1 .Енгізу:

for i:= 1 to n do for j:=1to m do

read (B[ ij ]);

2. Шығару.

for i: = lto n do

begin

writeln;

for j:= lto m do

write (В [i, j ] : k:b)

end;

Ескерту. Егер қайталау тұлғасы бірнеше операторлардан тұрса, онда олар операторлық жақша begin және end iшінe алынып жазылады.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.2. Жиындар

 

Жиын деп бір бірімен логикалық байланысты бip типтегі объектілердің (элементтердің) тобын айтады.

Жиынға кіретін элементтер саны 0-ден 256 аралығында болады. Жиын элементтері [ ] тік жақша ішіне жазылады.

Құрамында бірде бip элементі болмайтын жиынды бос жиын деп айтады да [ ] арқылы белгілейді. Егер жиын өсу реті бойынша бүтін сандардан тұратын болса, онда алғашқы элементі мен соңғы элементінің арасына екі нүкте қойылады, Мысалы, А {1,2,3,4,5} жиынын былай жазады А [1..5].

Жиын элементтеріне төмендегі амалдар қолданылады:

Жиындарды жалғастыру (қосу), ол жалпы түрде былай белгіленеді: C=AUB, ал алгоритмдік тілдерде U белгісі орнына + пайдаланылады. Мұнда С жиынның әр элементі А-ның немесе В-ның элементі болады. Мысалы,егер А[ 0-3,6], В[4,5] болса, онда С[0,1,2,3,4,5,6] болады.

Жиындарды қиылыстыру: С = АВ оны * арқылы белгілейді, мұнда С-ның әр элементі А-ның да және В-ның да элементі болады. Егер А=[0..3,6], В=[3..9] болса, С = А*В=[3], ал А = [0...3,6], В=[5,4] болса, онда С=[ ] бос жиын болады.

Екі жиынның айырмасы: С=А\В (немесе “-” арқылы белгілейді). С-ның әр элементі А-ның элементі бола алады, бірақ В-ның элементі бола алмайды. Мысалы, А= [1.7], В= [2,4] болса, С= А\В = [1,3,5,6,7] болады.

Eкi жиыннын теңдігі: А=В. Егер екі жиын эквивалента болса, онда орындалады. Мысалы, [5,6,7,3] = [3,7,5,6].

Соңғы амалдан жиынның элементтерінің реттеліп жазылуын қажет етпейтіндігі байқалады.

Мысалы, [1,2,3,4] = [2,1,4,3] = [4,3,2,1].

 

Жиын

жиын элементтері

[ ]

бос жиын

[1,2,3]

1,2, 3 бүтін сандардан құрылған жиын.

[‘a’,‘d’,‘x’,‘y’]

A,d,x,y-символдары.

[5...25]

5-тен 25 дейінгі бүтін сан

[5...2]

Бос жиын, ceбебi 5>2

[1...1,10...3]

1 бүтін сан

[true, false]

Саналатын екі элемент true және false

[7.8, 1.25]

Дұрыс берілмеген жиын. Ceбебi, элемент нақты типте

 

берілген.

[-3, ‘ m’]

Дұрыс берілмеген, ceбебi, элемент базалық типінің

 

біреуінде берілмеуі қажет.

['қала', 'тау']

Дұрыс емес, ceбебi мән жолдық тип бола алмайды.


 

Паскаль тілінде типтері бірдей әp түрлі элементтер тобын жиын дейді. Жиын элементтерінің типіне тәуелді, сол типке пайдалануға болатын барлық амалдарды орындауға болады, яғни: ‘+’, ‘-’, ‘*’, ‘/’, ‘:=’, ‘=’, ‘<>’ 

және т.б.

 

 

А жиынының мәні

В жиынының мәні

Өрнек

Нәтиже

[1, 2, 3]

[2,1, 3]

A=B

True

[‘a’… ‘d’]

[‘a’, ‘d’]

A=B

False

[1, 2, 3]

[1, 3, 5,2]

A<>B

True

[‘a’, ‘b’]

[‘a’, ‘b’]

A<>B

False

[1,2,3]

[1,7, 3]

A>=B

False

[‘a’… ‘d’]

[‘a’, ‘b’]

A>=B

True

[‘a’… ‘d’]

[‘a’, ‘k’]

A<=B

True

[1, 2, 3]

[2,3, 5, 7]

A+B

[1,2, 3,5, 7]

[‘a’… ‘d’]

[‘c’…‘z’]

A*B

[‘c’‘z’]

[1,2,3,4]

[2,4]

A-B

[1,3]




 

 

 

 

 

 

 

 

 

 

 

 

Бұлардан өзге жиын элементтеріне  ену үшін IN амалы қолданылады. Мысалы, S([l ,4,3,2] болса, онда:

3 in S - нәтиже ақиқат (true)

5 in S - нәтиже жалған (false)

IN күрделі шарттарды жеңілдетуге пайдаланылады.

  Мысалы,

y:=sin(x) жолына in-ді пайдаланса:

if a in[1...4] then y=sin(x) болады.

Бұл амалдарға қосымша екі процедураны пайдалануға болады:

      1. INCLUDE - жиынға жаңа элемент қосу (енгізу):

Жазылуы: INCLUDE (s,i);

Мұндағы S - базалық типтегі жиын;

I - жиынға енгізілетін элемент;

      1. EXCLUDE - жиыннан элемент алып тастау.

Жазылуы: EXCLUDE (s,i); S - жиынынан i-ді алып тастайды.

Жиым  тәрізді жиынға да бip ғана ат беріледі.Жиынның типтері программаның Туре (тип) немесе Var (айнымалы) бөлінде сипатталады. Тип бөлігінде: Туре тип aты=set of тип; (set of-жиыннан)

Var жиын аты: тип аты;

Мұндағы тип орнына word, integer, longint-тен өзге кез келген базалық типтің бipi алынады.

Мысалы, Type digitchar=set of ‘0’.. ‘9’;

digit=set of 0..9;

VAR S1,S2: digit char;

S3,S4: digit;

Type тип аты=set of < 1-элемент, 2-элемент...n-элемент>;

VAR жиын аты, жиын аты,..., жиын аты: тип аты;

 Мысалы,

type

PROST=set of (3, 5, 7,11);

den=set of (mo, tue, wed, th, fr, sdt, sun);

chis=1...30;

sym=set of char;

Var

PR:PROST;d=den;sm;sym;

ch:set of chis; int:set of byte;

2. Айнымалы бөлігінде:

VAR жиын аты: Set of тип; 

Мысалы, VAR gil: set of 1980..2000;

C:set of char;

 

 

2.4. Жазбалар

 

Паскаль тілінде әр түрлі типтегі элементтерден құралған күpдeлi типтегі объектілерді жазбалар дейді.

Жазбаны құрайтын элeмeнттepдi жазбаның өpici деп атайды.

Жазбаның және оны құрайтын өрістердің жеке атаулары болады. Өрістің қажетті элементтерін оның атауы бойынша табады. Жазба типі RECORD кызмет сөзі арқылы сипатталады.

Жазбаның жалпы түрде сипатталуы төмендегідей: тип аты=RECORD (өpic тiзiмi) END;

мысалы, T= RECORD

Pi : tl;

P2:t2;

Pn: tn

END;

Мұндағы T - жазба аты (тип аты); Pi - өpic аттары, ti - өpic типтері. Жазбаны программаның тип (Type) бөлiгiндe немесе айнымалы (VAR) бөлігінде сипаттауға болады.

Жазба программаның тип бөлігінде былай сипатталынады:

TYPE

T=RECORD

Pl : tl;

P2 : t2;

Pn: tn

END;

VAR

А,В : T;

ti-лер стандарты, саналатын немесе шектелген типтердің бipeyi болуы мүмкін.

Мысалы:

Y=RECORD

KYNK:1..31; (*күндер*)

AI: (Jan.. Dec); (* Айлар*)

Gil: 1915 .. 2000; (*жылдар*)

FAM : string [40] (*Аты, жөні*).

END;

VAR A : Y;

Жазбаны программаның айнымалылар бөлгінде былай сипаттайды: VAR

T:RECORD

Pl:tl;

P2:t2;

Pn:tn

END;

RECORD (жазба) түйін cөзi ашылатын, END жабылатын операторлық жақша міндеттерін атқарады. Олардың ішінде жазба элементтері сипатталады.

Мысалы, баға жазылған студенттердің тiзiмi берілген болсын делік.

 

Hөмip

Аты-жөні

Бағалар

1.

Сариев Ардақ

5,3,4

2.

Қайыржанов Берік

5,5,5

3.

Алпысбаев Сәрсен

4,4,5

...

...

...

...

...

...

  ...

...

...




 

Жазба атын V, нөмip атын N, Аты, жөнін F, бағаларды В арқылы белгілейік. Сонда, N - бүтін сан, F - символдың жиым (жол), В - бүтін сандардан құралған жиым. Демек, тізім жазбасы үш өpicтeн тұрады.

Жазбаның аты мен элeмeнттepiнiң аттары төмендегідей түрде жазылады:

 

Жазба аты. Элемент аты;

Мысалы, жоғарыдағы белгілеулерді пайдалансақ:

V.N

V.F

V.B

Бұл жазбаны сипаттауды айнымалы бөлгінде жазалық

VAR

V: RECORD;

N: Integer;

F : PACKED array [1..20] of char;

В : ARRAY [1..3] of integer

END;

Жазба элементтері программада  қарапайым айнымалылар тәрізді пайдалынылады. Жазба элементтерінің типіне қарай тиісті амалдар орындалады.

Мысалы, V.N:=2 - жазбаның нөмері N-гe 2 санын меншіктейді.

S:= V.B[1]+V.B[2]+V.B [3]- үш бағаның қосындысы S-ке меншіктеледі.

Сипаттау алдында жазбаның өрістерінің атауларын оқуға қолайлы eтіп түciнiктi түрде таңдап алған жөн.

Егер бірнеше айнымалы бірде өрісте және олардың типтері бірдей болса, онда оларды үтip арқылы бөліп жазып жазба атын (тип атын) бірақ рет көрсетуге болады.

Мысалы, St=RECORD

P1: integer;

Р2 : string [20];

РЗ : string [8];

Р4: integer;

Р5 : array [1.-8] of char

END;

VAR A.,B,C:st;

Бұл жағдайда толық атаулар былай болады:

              1. Р1, А.Р2, А.РЗ, А.Р4, А.Р5;
              2. Р1, В.Р2, В.РЗ, В.Р4, В.Р5;
              3. Р1, С.Р2, С.РЗ, С.Р4, С.Р5;

Жазба элементтерін жиым элементтері тәрізді енгізеді Мысалы, А жазбасының элементтері былай енгізіледі;

Read (А.Р1, А.Р2, А.РЗ, А.Р4, А.Р5);

немесе

Read (А.Р1); read (А.Р2); read (А.РЗ); read (А.Р4); read (A.P5);

1-мысал. Айталық программа құрушылар үйірмесіне қатынасушылардың аты, жөні және алған бағалары берілген екен делік:

  Асқаров Cepiк - 5    Алтынбекова Айнаш - 5

      Гайдаров Алмас -5             Керімбаев Алтай - 4

      Әлімжанов Болат - 4          Мейрамқұлов Сәкен - 5

      Сәрсекеева Сәуле - 5         Алмасбеков Бақыт - 5

а) 5-ке оқитын студенттердің санын;

Информация о работе Аралас типтер. Иерархиялық жазбалар