Консультация № 131417
09.04.2008, 21:21
0.00 руб.
0 2 2
Здравствуйте глубоко уважаемые и многознающие эксперты.У меня к Вам такой вопрос.Надо составить программу на Паскале для поиска минимального и максимального элементов в трёхмерном целочисленном массиве.Заранее большое СПАСИБО.

Обсуждение

Неизвестный
09.04.2008, 22:21
общий
это ответ
Здравствуйте, Плескацевич Андрей Казимирович!
А в чём, в общем-то, проблема? Работа с трёхмерным массивом происходит точно так же, как с одномерным, двумерным или сколько-угодно-мерным. Просто для доступа к элементу будет использоваться три индекса, соответственно, и для обработки массива будет использоваться три цикла. То есть Вы объявляете массив, например, так:
<code>Var a: array [1..10, 1..10, 1..10] of integer;</code>
Заполняете его как-нибудь так:
<code>
for i:=1 to n1 do {n1, n2, n3 - три размерности массива}
for j:=1 to n2 do
for h:=1 to n3 do
readln (a[i, j, h]);
</code>
И совершенно стандартным образом ищете минимальный и минимальный элементы:
<code>
min:= a[1, 1, 1];
max:= min;
for i:=1 to n1 do
for j:=1 to n2 do
for h:=1 to n3 do
begin
if (a[i, j, h] > max) then max:=a[i, j, h];
if (a[i, j, h] < min) then min:=a[i, j, h];
end;
</code>
После прохода по всем циклам, в переменных будут нужные значения.
Удачи!
Неизвестный
09.04.2008, 22:34
общий
это ответ
Здравствуйте, Плескацевич Андрей Казимирович!
Вот полный код программы.
Удачи!!!

Приложение:
program q131417;const N=5; {Размер массива a}Var a:array [1..N, 1..N, 1..N] of Integer; {Трехмерный массив a} min, max, i, j, l:integer; {max-максимальный элемент массива a} {min-минимальный элемент массива a} {j, l, i-счетчики для циклов}begin randomize; {Инициируем генератор случайных чисел для заполнения массива a} WriteLn(‘Массив:‘); {Заполняем массив a случайными числами} for i:=1 to N do for j:=1 to N do for l:=1 to N do begin a[i, j, l]:=random(50)-25; Write(a[i,j,l], ‘ ‘); end; WriteLn; min:=a[1, 1, 1]; {Начальные значения минимального и максимального элемента массива} max:=a[1, 1, 1]; for i:=1 to N do {Перебираем весь массив} for j:=1 to N do for l:=1 to N do begin if a[i, j, l]>max then {Если текущий элемент больше максималного, то max:=тек. эл.} max:=a[i, j, l] else {Иначе, если тек. эл. меньше минимального, то} if a[i, j, l]<min then min:=a[i, j, l]; {min:=тек. эл.} end; WriteLn(‘Максимальный элемент: ‘, max); {Вывод рез-тов} WriteLn(‘Минимальный элемент: ‘, min); ReadLn;end.
Форма ответа