Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab8 pas.docx
Скачиваний:
14
Добавлен:
15.03.2016
Размер:
287.35 Кб
Скачать

3.6 Определение и использование данных типа "массив"

Массивы относят к структурированным типам данных. Массив представляет собой упорядоченный выбор фиксированного количества некоторых значений (компонент массива). Всекомпоненты должны быть одного и того же типа, который называют типом компонент или базовым (для массива) типом.Массивы могут иметь более одного измерения. Количество измерений ограничивается только предельной длиной всего массива – не более 65520 байт.

Каждому используемому в программе массиву должно быть дано своё имя. Если массив объявлен, то к любому его элементу(компоненту массива) можно обратиться, указав имя массива и индекс элемента в квадратных скобках. Например: А [1]; B [3,4].

Синтаксическая диаграмма объявления массива показана на рисунке 4.

Рисунок 4 – Синтаксическая диаграмма объявления массива

Данные типа массив в языке Турбо Паскаль определяются следующими правилами:

а)

type

<имя типа данных> = Array[<список типов индексов>] of <тип данных, которые должны содержаться в массиве>;

var <список переменных> : <имя типа данных>;

б)

var

<список переменных>: Array[<список типов индексов>] of <тип данных, которые должны содержаться в массиве>;.

Массивы могут иметь вид списка (одномерный массив), матрицы (двумерный массив) и т.д. (трех-, четырех-, n-мерный); при этом должны использоваться 1, 2 и т.д. индексов.

Например:

...

type

digit = array [0..9] of char;

{ digit - новый тип данных - "одномерный массив"; 0..9 - тип индекса (диапазонный или ограниченный тип); char - тип данных, которые должны содержаться в массиве}

matrix = array [byte, byte] of real;

{ matrix - новый тип данных - "двумерный массив"; byte - тип индексов}

var

A, B : digit; {A,B - переменные типа digit}

M1, M2 : matrix; {M1,M2 - переменные типа matrix}

Cube : array[1..5, 'A'..'H', boolean] of char;

{ Cube - переменная типа "трехмерный массив" }

...

Доступ к элементам массива для присвоения значений (записи), использования в выражениях и других действиях выполняется с помощью указания индексов элементов; например:

...

readln(A[1]); {ввод с клавиатуры значения элемента 1 массива A}

A[3]:='F'; {присвоение элементу 3 массива A значения 'F'}

M1[i,j]:=M2[j,i]-5.55;{вычисление значения элемента с индексами i,j массива M1}

writeln(M1[k, n]); {вывод на экран значения элемента массива M1}

...

Ввод и вывод значений элементов массивов может выполняться с использованием оператора FOR, например:

writeln('Введите количество элементов массива (не более 10)');

readln(N);

for i:=0 to N do

begin

write(i,'-й элемент:');

readln(B[i])

end;

Для ввода, вывода иприсвоениячисловых значений двумерного массива, а также для произведения различных операций над элементами двумерного массива используются вложенные циклы,например:

...

writeln('Введите количество элементов матрицы (<= 255 х 255)');

readln(k,n);

for i:=0 to k do

for j:=0 to n do

begin

write(i,' ',j,'-й элемент: ');

readln(M1[i,j])

end;

...

writeln('Результат формирования матрицы');

for i:=0 to k do

begin

for j:=0 to n do write(M2[i,j],' '); {вывод i-й строки}

writeln

end;

...

Пример 3. Вычислить сумму положительных элементов каждой строки матрицы А(10 х 8).

Решение. Для вычисления суммы положительных элементов одной строки матрицы необходимо:

  • организовать цикл с целью перебора всех элементов строки, поэтому параметром этого цикла следует выбрать номер столбца j;

  • перед циклом нужно задать начальное значение суммы S = 0;

  • после окончания цикла результаты необходимо вывести на экран

Примечание: если эти действия повторять во внешнем цикле, изменяя индекс строки i, то будут вычислены все десять сумм.

Схема программы решения этой задачи представлена на рисунке 5. Программа на языке Паскаль имеет следующий вид:

Рисунок 4 –Схема программы к примеру 3

Текст программы может выглядеть следующим образом:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]