Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programmirovanie (экз).doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
106.5 Кб
Скачать

Вывод массива

Чтобы отобразить(сообщить) массив на экране нужно выполнить следующее:

... const     n = 20; var     A : array[1..n] of Real; ... Writeln('Вывод эементов массива:'); for i:=1 to n do Write(A[i]:8:2); Writeln;

Поиск

Поиск в массиве осуществляется перебором его элементов при помощи цикла, для проверки результата используется алгоритм ветвления.

Поиск в массиве можно показать на примере задачи нахождения наибольшего элемента и его индекса.

Алгоритм:

  1. Выделить память для массива A(10)

  2. Присвоить элементам значения любым способом

  3. Присвоить MAX значение A(1)

  4. Присвоить INDMAX значение 1

  5. Для каждого I от 1 до 10 повторять:

  6. Если A(I)>MAX то

  7. Присвоить MAX значение A(I)

  8. Присвоить INDMAX значение I

  9. КонецЕсли

  10. КонецЦикла

Двумерные массивы

Но часто данные могут быть организованы в виде таблицы (матрицы), где расположение каждой переменной определяется номером строки и номером столбца. Например, место в зрительном зале задается указанием номера ряда и номером места в этом ряду. Такие данные удобно описать как двумерный массив. В отличие от одномерного массива каждому элементу двумерного массива соответствует пара индексов. Первый индекс - это номер строки, а второй - номер столбца, где расположен элемент массива.

Размер двумерного массива задается парой чисел: M*N, где M - число строк, а N - число столбцов в таблице.

Пусть задан двумерный массив Matr, имеющий размер 10*20. Этот массив на языке Паскаль может быть описан следующим образом:

Var   Matr : array [1..10,1..20] of integer;

тогда

  Matr[5,7] - элемент, расположенный в 5-ой строке и в 7-ом столбце.

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

Type   Digit = array [0..9] of integer;   Matrix = array [1..100, 0..9] of real; Var   m : Matrix;   d : Digit;   i : integer;

Описание типа массива задается следующим образом:

  <имя типа> = array [<сп. инд. типов>] of <тип>;

где:

<имя типа> - правильный идентификатор, <сп. инд. типов> - список из одного или нескольких индексных типов, разделенных запятыми, <тип> - любой тип Турбо Паскаля.

Формирование значений элементов массива случайным образом и с клавиатуры и вывод их на экран

Приведем пример заполнения массива случайными числами. Эта процедура должна принять в качестве входных параметров массив, количество строк и столбцов, заданные пользователем с клавиатуры в основном разделе операторов. Так как наша процедура будет воздействовать на пустой исходный массив, то его мы должны передать по ссылке. Количество строк и столбцов достаточно передать копиями по значению.

Program first;

Const n=10; Var   i, j : integer;

N:array[1..n,1..n] of integer; Begin   Randomize;   for i := 1 to n do {пробегая последовательно строки массива}     for j := 1 to n do {просмотрим каждую ее ячейку текущего столбца}       X[i, j]:= Random(50); {и запишем туда случайное число, которое сформирует компьютер в диапазоне [0..49]} End;

Рассмотрим процедуру вывода элементов массива на экран. Для того, чтобы вывести наш массив на экран в виде таблицы, поставим при переходе к новой строке  оператор writeln и применим формат вывода элементов (:5).

Program first;

Const n=10; Var   i, j : integer;

N:array[1..n,1..n] of integer; Begin   for i := 1 to n do {пробегая последовательно строки и столбцы массива}     begin       for j := 1 to n do         write(X[i, j]:5); {выведем элемент массива на экран, выделив ему 5 знакомест}       writeln; {переход на новую строку}     end; End;

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