- •Двумерные массивы. Наибольший и наименьший элементы. Матрицы, строк, столбцов
- •1. Двумерные массивы
- •2. Ввод и вывод элементов двумерных массивов
- •Первый способ
- •Второй способ
- •Третий и четвертый способы
- •Алгоритм
- •Программа
- •Задание 1
- •Программа
- •Программа
- •Алгоритм
- •Программа
- •Задание 2
- •Программа
- •Программа
Программа
Program Problem4;
const
n = 5; m = 6;
type
s = array[1..m] of integer;
t = array[1..n] of s;
u = array[1..n*m] of integer;
var
a : t; b : u;
i : integer;
{----------------------------------------------------------------------------------------}
Procedure create_two(n, m : integer; var a : t);
var
i, j : integer;
begin
writeln('Заданный двумерный массив целых чисел');
randomize;
for i := 1 to n do
begin
for j := 1 to m do
begin
a[i, j] := random(201) - 100;
write(a[i, j]:6, ' ')
end;
writeln
end
end;
{----------------------------------------------------------------------------------------}
Procedure sprain(n, m : integer; a : t; var b : u);
var
k, i, j : integer;
begin
k := 0;
for i := 1 to n do
for j := 1 to m do
begin
k := k + 1;
b[k] := a[i, j]
end
end;
{----------------------------------------------------------------------------------------}
begin
create_two(n, m, a);
sprain(n, m, a, b);
writeln('Одномерный массив, полученный из двумерного');
for i := 1 to n*m do write(b[i], ' '); writeln
end.
Пример
5.
Сформировать матрицу размерности
из случайных чисел от 1 до 100. Расположить
их в порядке возрастания по следующей
схеме (см. рис. 54):
Рис. 54
Алгоритм
Эта задача является логическим продолжением задачи примера 4. В самом деле, чтобы расположить элементы массива по такой схеме и выполнить условие задачи - упорядочить элементы в порядке возрастания, надо:
1) "растянуть" матрицу в одномерный массив;
2) упорядочить полученный массив в порядке возрастания;
3) "выбрать" из полученного одномерного массива столбцы с расположением элементов по предложенной схеме.
Первый пункт этого алгоритма выполнить нетрудно, основываясь на предыдущем примере.
Упорядочить полученный одномерный массив можно с помощью процедуры быстрой сортировки.
Третий пункт является для нас новым. Чтобы выполнить его, надо заметить следующую закономерность. Если столбец двумерного массива имеет нечетный номер, т. е. 1-й, 3-й, 5-й и т.д., тогда элементы располагаются в порядке возрастания от 1-го элемента столбца до n-го - "сверху вниз".
Если номера столбцов четные, т. е. 2-й, 4-й, 6-й и т. д., тогда элементы располагаются от n-го до 1-го - "снизу вверх".
Теперь можно составить схему программы.
Схема программы
Program Problem5;
Описание массивов и переменных.
Процедура быстрой сортировки.
begin
Создание двумерного массива с помощью функции случайных чисел и одновременное "растягивание" в одномерный массив, а также вывод полученной матрицы на экран.
Вызов процедуры быстрой сортировки и сортировка одномерного массива в порядке возрастания.
v := 1; - счетчик столбцов матрицы, получаемой из отсортированного одномерного массива;
k := 0; - счетчик элементов одномерного массива;
repeat
if v mod 2 <> 0 then
for i := 1 to n do
begin
k := k + 1;
a[i, v] := b[k]
end
else
for i := n downto 1 do
begin
k := k + 1;
a[i, v] := b[k]
end;
v := v + 1
until v = m + 1;
Вывод массива на экран.
end.
