Лекція №6 Регулярні типи (масиви)



Скачати 50.83 Kb.
Дата конвертації05.03.2017
Розмір50.83 Kb.
Лекція №6

Регулярні типи (масиви).
Масив – регулярна структура даних, яка складається з фіксованого числа елементів одного і того ж базового типу.

Такий спосіб утворення значень дозволяє позначати значення цих типів одним ім'ям.

На практиці використовується одновимірні, двовимірні і 3-х вимірні масиви. Більші розмірності зустрічаються рідко.
Одновимірний масив
Запис регулярного типу має вигляд:

Array [діапазон індексів] of тип компонентів; Одновимірний масив або вектор;

Var

Vector: array [1..10] of byte; - оголошена структура з 10 елементів типу byte;


Вимоги до діапазону:

  1. максимальний тип word;

  2. добуток кількості елементів на його розмір компонент в байтах не повинен перевищувати 64К !

ch : array [5..80] of char; {масив з 80 символів}

array [-20..20] of integer; {з 40 елементів}



  • діапазон індексів – не обов'язковий діапазон чисел;

  • як індекси, можна використовувати будь-які типи, що перераховуються;

Type

Month = (Jan, Feb, Mar, Apr, May);

Spring = array [Mar .. May] of byte;

Var


M: array [1..5] of month; {п'ять елементів}

S: spring; {три елементи}

A: array [‘ A’..’Z’] of char;

B: array [Boolean] of byte; {два елементи}




Масиви масивів або двомірні масиви.
Оголошення масиву в декларативній частині програми:

Var


Matrix: array [1..5,1..10] of real;
Кожне вимірювання не залежить від останніх, тому можна оголошувати масиви з різними індексами:

M: array [-5..0,’A’..’F’,boolean] of byte;

У пам'яті масиви зберігаються як суцільні послідовності компонент, причому, найшвидше змінюється «найдальший» індекс.

Mass : array [1..3, 1..5] of real;


Операції над масивами.
До сумісних масивів застосовується тільки операція “:=”

А: = У – копіює поелементно масив У в А.

Математичні дії над масивами необхідно реалізовувати поелементно.

Наприклад:

Підрахувати суму елементів і знайти максимальний елемент.


Введення значень в масиви:

  • оператором привласнення A [1]:=5; . A[10]:=10;

  • процедурою read

  • константою, що типізується:

Const

R: array [1..5] of byte = (1,2,3,7,10);

M: array [1..3, 1..3] of integer = (1,2,3),(4,5,6),(7,8,9);

C: array [1..4] of char = (‘a’’, з’,’ d ’, ’ f ’);


Виведення масивів на екран здійснюється за допомогою процедур Write і Writeln.

Наприклад вивід одно і двомірних масивів.


Множина і операції з множинами
Множина – це неповторювана і неврегульована сукупність об'єктів одного (базового) типу.

Базовий тип обмежується порядковими типами не більше ніж з 256 різними значеннями, ці значення повинні лежати в діапазоні 0..255.

Таким обмеженням задовольняють стандартні типи byte і char
Type

Tchar = set of char;

Tbyte = set of byte;

Tcolor = (red, black, yellow);

Tinteger = set of 1..100;

Var


Vchar: Tchars;

Vbyte: Tbyte;

Vcolor: Tcolor;

Tinteger: Tinteger;




  1. Множинний тип задається за допомогою двох службових слів – set і of-

  2. Змінна, описана як множина, підкоряється спеціальному синтаксису: елементи множини повинні знаходитися в квадратних дужках.

Vchars: = [‘a’,’b’,’c’];

Vbyte: = [1,2,3,4,5,6,7];

Vcolor: = [Red, Yellow];

Vinterval: = [1..7];

Vinterval: = [ ]; - порожня множина.

На відміну від масивів – порядок проходження елементів в множині не має значення, як і не має значення число повторень.
SetChar: =[‘a’,’b’,’a’,’c’,’a’] еквівалентно SetChar: = [‘a’,’b’,’c’].
Як елементи множини в квадратні дужки можуть включатися константи, а також вирази, якщо тип їх результату співпадає з базовим типом множини.
Var

X: byte;


S: set of byte;

..

X: =7;



S: = [

S: =S+[x+1];


Введення множин можливе тільки по елементах
Var

S: set of char; {

З: char; {

Begin


S: =[ ]; C:=#0;

While з <>’.’ Do begin

Readln (c);

S: =s+[c];

End;

S: =S- [


End.
Множинним типам властиві наступні групи операцій:




  1. Теоретико-множинне об'єднання – знак «+»

[1,2,3]+[1,2,3,4] - [1,2,3,4,5,6];

Об'єднанням двох множин буде множина, отримана злиттям елементів цих множин і виключенням дублюючих елементів.




  1. Теоретико-множинний перетин – знак «*»

[1,2,3]*[1,4,5,6] – [1]

Перетином двох множин буде множина, що складається з тих елементів, які знаходяться в обох множинах.




  1. Віднімання множин – знак «-»

S1 – S2 – результат множини, елементами якої будуть елементи множини S1, але не входитимуть елементи множини S2.


  1. Перевірка на рівність – знак «=» - результат True, якщо обидві множини складаються з однакових елементів незалежно від порядку проходження S1=S2.




  1. Перевірка на нерівність – знак «<>». S1<>S2 – результат True



  1. Перевірка на підмножину – знак «<=». S1<=S2, тобто S1 є підмножиною S2. Результат операції True, якщо всі елементи S1 містяться в S2.




  1. Перевірка на підмножину – знак «>=». S1>=S2, тобто S2 є підмножиною S1. Всі елементи S2 містяться в S1 – результат True.




  1. Перевірка на входження елементу в множину, ця логічна операція позначається службовим словом «in». Правий операнд множина – [2,3,4,5], лівий операнд 2 – 2 in [2,3,4,5] або [if ch in [‘a’,’b’,c’]] then – значення базового типу множини – операція True


Виведення елементів множини на екран.
Const

S: set of byte = [1,2,5,8,20];

Var

I: byte;


Begin

For i:=1 to 255 do

If i in S then Write(i);

End.
Стандартні процедури.


Include (S,4) – включити в множину

Exclude (S,2) – виключити з множини


База даних захищена авторським правом ©lecture.in.ua 2016
звернутися до адміністрації

    Головна сторінка