Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекцый для 1 курса-1 семестр.doc
Скачиваний:
3
Добавлен:
09.11.2019
Размер:
2.95 Mб
Скачать

Дзеянні над масівамі

Пераменная тыпу «масіў» можа ўдзельнічаць толькі ў аператары «на­даць зна­чэн­не» :=. Масівы, якія ўдзельнічаюць у гэтай аперацыі, павінны быць ідэн­тыч­ны­мі па структуры (для масіваў ідэнтычнасць па структу­ры – гэта фак­тыч­на аб’яўленне ў адным спісе):

VAR

A, B : ARRAY [1..20] OF Real;

C, D : ARRAY [1..5, 1..5] OF Word;

Аператар A := B азначае, што адпаведным элементам масіву A на­да­юц­ца значэнні элементаў масіву B. Аператар C := D азначае, што ад­па­вед­ным элементам масіву C надаюцца значэнні элементаў масіву D. Апе­ра­тар A := D прывядзе да памылкі.

Дзеянні над элементамі масіву

Разгледзім тыповыя сітуацыі, што ўзнікаюць пры рабоце з данымі ты­пу «масіў» у наступнай праграме:

CONST n=10; m=5; L=4;

VAR A, O : ARRAY [1..L] OF Real;

B : ARRAY [1..n,1..m] OF Integer;

k, i, j : Integer;

S : Real;

. . .

FOR i:=1 TO L DO Read(A[i]);

{ініцыялізацыя аднамернага масіву}

FOR i:=1 TO n DO

FOR j:=1 TO m DO Read(B[і,j]);

{ініцыялізацыя двухмернага масіву}

FOR i:=1 TO n DO

BEGIN

FOR j:=1 TO m DO Write(B[і,j]);

Writeln;

END; {вывад матрыцы ў выглядзе матрыцы}

Пераменныя тыпу «масіў» са стартавым значэннем, ці тыпізаваныя канстанты-масівы

Стартавыя значэнні складаных пераменных задаюцца па-рознаму для розных тыпаў. Масівы задаюцца пералічэннем іх элементаў у круг­лых дужках. Калі масіў мнагамерны (масіў масіваў), тады пералічваюцца эле­мен­ты масіву, якія складаюцца з элементаў-скаляраў. Гэта выглядае та­кім чынам:

TYPE

dim10 : ARRAY [1..10] OF Real;

dim3х6 : ARRAY [1..3, 1..6] OF Real;

dim4х3х2 : ARRAY [1..4, 1..3, 1..2] OF Word;

CONST

D10 : dim10=

(0, 2.1, 3, 4.5, 6, 7.70, 8, 9.0, 10, 34);

{гэта адзін набор з 10 лікаў}

D3х6 : dim3х6=

((1, 1, 1, 1, 1, 1),

(2, 2, 2, 2, 2, 2),

(3, 3, 3, 3, 3, 3));

{гэта тры наборы па 6 лікаў}

D4х3х2 : dim4х3х2=

(((1,2), (11,22), (111,222)),

((3,4), (33,44), (333,444)),

((5,6), (55,66), (555,666)),

((7,8), (77,88), (777,888)));

{гэта чатыры наборы па тры масівы з 2 лікаў}

Заўвага. Пры заданні структур тыпу ARRAY OF Char, якія ба­зі­ру­юц­ца на сімвалах, можна не пералічваць сімвалы, а злучыць іх у адзін радок пат­рэб­най даўжыні:

CONST CharArray : ARRAY [1..5] OF Char='abcde';

Канстанты з тыпам «масіў»

Каб вызначыць агульны выпадак для тыпізаваных канстант, раз­гле­дзім струк­тур­ныя дыяграмы.

Канстанта-масіў:

Тыпізаваная канстанта:

Задача. Вядома, што элементы цэлалікавага масіву A[1..n] не мен­ш за –2 і не больш за 12. Падлічыце, колькі разоў сус­т­ра­ка­ец­ца ў масіве A кожны з элементаў.

Рашэнне.

PROGRAM Pr;

CONST n=10;

TYPE index=-2..12;

CONST A : ARRAY [1..n] OF index=

(0, -2, 5, 1, 0, -2, 5, 8, 1, 0);

VAR B : ARRAY [index] OF Byte;

I : index;

j : 1..n;

BEGIN

FOR i:=-2 TO 12 DO B[i]:=0;

FOR j:= 1 TO n DO Inc(B[A[j]]);

{раздрукоўка}

Writeln('элемент':10,'колькасць':20);

FOR i:=-2 TO 12 DO

IF B[i]<>0 THEN Writeln(i:10, B[i]:20);

Readln;

END.

Заданне. Падлічыць у нейкім тэксце колькасць кожнага сімвала 'a'.. 'z' і 'A'.. 'Z', не адрозніваючы малыя і вялікія літары.