Глава 7. СТРУКТУРИРОВАННЫЕ ТИПЫ ДАННЫХ
7.1. Масссивы
Под структурой данных типа массив понимают совокупность индексированных упорядоченных однотипных элементов, имеющих общее имя. Массивы используются для хранения однородной по составу информации: элементов таблиц, коэффициентов уравнений, матриц. Элементами массива могут быть данные различных типов, включая структурированные. каждый элемент массива однозначно определяется именем массива и индексом(номером этого элемента в массиве) или индексами, если массив многомерный.
Количество индексных позиций определяет размерность массива (одномерный, двумерный и т.д.). Индексы элементов массива должны принадлежать порядковому типу.
К типовым операциям с массивами относятся:
q ввод массива
q вывод массива
qпреобразование массива
q сортировка массива
qпоиск в массиве
7.1.1. Одномерный массив
Имя: аггау [нижний индекс .. верхний индекс] of Тип;
где Имя - имя переменной-массива;
аггау - ключевое слово, обозначающее, что переменная является
масcивом.
нижний_индекс и верхний_индекс - целые числа, определяющие диапазон изменения индексов (номеров) элементов массива и, неявно, количество
элементов (размер) массива;
Тип - тип элементов массива.
Объявление массива осуществляется одним из следующих способов:
a) в разделе описания переменных
var
a : array [1..5] of byte;
b : array [1..3] of integer;
z : array [‘d’..’g’] of char;
name : array[1..30] of string[25];
б) с помощью типизированной переменной
type
mar =array[1..5] of byte;
var
a:mar;
При описании массивов в программе удобно использовать именованные константы как значения верхних границ индексов массива.
Именованная константа объявляется в разделе описания констант, который располагают перед разделом объявления переменных. Начинается раздел объявления констант словом const.
const
n=5; {Число книг}
S=25;{Длина наименования книги}
var
b : array [1..n ] of integer;
temp: array[1..s] of string[25];
Каждая отдельная величина массива называется элементом. Тип элементов может быть любым, принятым в языке Pascal, кроме файлового типа.
Тип элементов называется базовым типом. Вся совокупность элементов определяется одним именем. Для обозначения отдельных элементов массива используется конструкция, называемая переменной с индексом или с индексами: a[5] s[k+1] b[3,5]
Чтобы использовать элемент массива, нужно указать имя массива и индекс элемента. Первый индекс обычно соответствует номеру строки таблицы второй - номеру колонки.
В качестве индекса может быть использовано выражение. Тип индексов может быть только целым, интервальным или перечисляемым b. Индексы интервального типа, для которого базовым является целый тип, могут принимать отрицательные, нулевое и положительные значения.
Ввод массива. Под вводом массива понимается ввод значений элементов массива. Для ввода или вывода массива в список ввода или вывода помещается переменная с индексом, а операторы ввода или вывода выполняются в цикле.
Чтобы пользователь программы знал, ввода какого элемента массива ожидает программа, следует организовать вывод подсказок перед вводом очередного элемента массива. В подсказке обычно указывают индекс элемента массива. 1
1) Ввод элементов одномерного массива с помощью клавиатуры:
for i:=1 to n do
read(a[i]);
2) Ввод элементов одномерного массива с помощью типизированных констант.
Ввод элементов массива с помощью констант называется еще инициализацией массива.
а) сonst
A1 : array [1..6] of integer = (-5,8,5,0,7,-8);
A2 : array [ 1..3] of char = (‘a’,’b’,’c’);
б) type
Dim10= array[1..10] of Real;
const
raM10: Dim10 = ( 0, 2.1, 4, 5.65, 6.1, 6.7, 7.2, 8, 8.7, 9.3 );
3) Ввод элементов одномерного массива с помощью датчика случайных чисел
randomize;
for i:=1 to 10 do
begin
a[i]:=random (20);
end;
В этом случае значениями элементов массива a[i] будут произвольные значения от 0 до 19 .Для того чтобы получились дробные числа нужно в функции random опустить параметр.
write (‘Вывод элементов одномерного массива ’);
for i:=1 to 10 do
begin
writeln (i,’ ’,a[i]);
end;
Пример 7.1. Вычисление суммы 10 – и элементов массива.
Program Prog7_1;
var
a:array[1..10] of real;
i:integer;
c:real;
begin
c:=0;
writeln('Вычислить сумму элементов массива');
writeln('Введите 10 элементов массива');
for i:=1 to 10 do
begin
write(i, элемент=);
readln(a[i]);
c:=c+a[i];
end;
writeln('Сумма элементов массива',c);
writeln('Для окончания работы нажмите Eenter);
readln;
end.
Пример 7.2. Вывод на экран номера и названия предметов учебного плана, хранящихся в массиве Pred
Program prog7_2;
uses winCrt;
var
Pred:аггау[1..5] of string[20];
i: integer;
begin
Pred[1] = 'Информатика';
Pred[2] = 'Управление качеством';
Pred[3] = 'Менеджмент';
Pred[4] = 'Экология';
Pred[5] = 'Английский язык';
for i:=1 to 5 do
Writeln( i:2, pred[i]);
end.
Пример 7.3. Присваивание значений элементов одного массива другому.
Одномерные массивы могут присваивать свое значение целиком, если их типы эквивалентны:
program prog7_3;
uses WinCrt;
var
a,b:array[1..7] of real;
i:byte;
begin
write (“ввод массива”)
for i:=1 to 7 do
begin
read(a[i]);
b:=a;
end;
for i:=1 to 7 do
write(b[i]);
end.
{Пример 7.4. Программа ввода символов с использованием функции EOLN.
Встроенная функция EOLN (End Of LiNe) проверяет есть ли введенные символы, и если есть, то возвращает true, если последний необработанный
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.