Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборник заданий по T-Pascal.doc
Скачиваний:
64
Добавлен:
18.03.2015
Размер:
3.03 Mб
Скачать

4.7 Поиск минимального (максимального) элемента массива

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

Пример:

program minel:

const

granica=10;

var

a: array[1..granica] of integer; (массив целых)

min: integer; (номер минимального элемента массива)

i: integer; (номер элемента, сравниваемого с минимальным)

begin

min:=1;(пусть первый элемент минимальный)

for i:=1 to granica do

if a[i]<a[min] then min:=i;

writeln (‘минимальный элемент массива:’, min);

writeln(‘номер элемента:’, min);

readln;

end.

4.8 Многомерные массивы

Исходные данные для решения многих задач удобно представляются в табличной форме.

Например, результат производственной деятельности сборочных заводов некоторой фирмы можно представить в виде следующей таблицы.

Продукт1

Продукт2

Продукт3

Завод1

Завод2

Завод3

Колонки и строки таблицы, как правило, содержат однородную информацию, если использовать терминологию Turbo Pascal – данные одинакового типа. Поэтому в программе для хранения и обработки табличных данных можно использовать совокупность одномерных массивов. Так приведенная выше таблица может быть представлена как совокупность одномерных массивов следующим образом:

Zavod1: array[1..3] of integer;

Zavod2: array[1..3] of integer;

Zavod3: array[1..3] of integer;

Каждый из приведенных массивов может хранить информацию о количестве продукции, выпущенной одним заводом.

Помимо совокупности одномерных массивов, таблица может быть представлена как двумерный массив.

В общем виде описание двумерного массива выглядит так:

Имя:array[нижняя граница индекса1..верхняя граница индекса1, нижняя граница индекса2..верхняя граница индекса2] of тип.

Приведенная выше таблица может быть представлена в виде двумерного массива так:

product: array[1..3,1..3] of integer;

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

Значение элементов двумерных массивов выводят на экран и вводят с клавиатуры, как правило, по строкам, то есть сначала все элементы первой строки, затем второй и так далее. Это удобно выполнять при помощи вложенных инструкций for. Следующий фрагмент программы выводит на экран значения элементов массива по строкам:

for i:=1 to n do

begin

for j:=1 to m do

write(a[I,j]);

writeln;

readln;

end;

Каждый раз, когда внутренний цикл завершается, внешний цикл увеличивает i на единицу, и внутренний цикл выполняется вновь.

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