Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая муртазин бета.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
2 Мб
Скачать
☆

Поиск минимальных элементов в строках массивов и создание линейного массива из их произведения

Далее начинаем обработку массивов. Обработка массивов осуществляется в операторе цикла с параметром. Она заключается в сравнении минимальных элементов в строках двумерных массивов с помощью оператора сравнения if. Если условие после оператора if выполняется, то исполняется оператор после then.

Для того, чтобы прокомментировать, что будет выведен массив C, используем оператор writeln('Полученный массив С').

Поиск минимальных элементов в строках обоих массивов и создание линейного массива из произведений минимальных элементов по соответствующим строкам заданных массивов, изложенный графическим способом, реализуем в следующем фрагменте программы:

writeln('Полученный массив С');

for i:=1 to n do

begin

mina:=A[i,1];

minb:=B[i,1];

for j:=2 to m do

begin

if mina>A[i,j] then mina:=A[i,j];

if minb>B[i,j] then minb:=B[i,j];

end;

C[i]:=mina*minb;

write(C[i]:3);

end;

Как только мы вычислили новый элемент массива С выводим его на экран.

Сортировка нечетных элементов полученного массива по возрастанию

Следующий цикл реализует алгоритм сортировки нечетных элементов полученного массива по возрастанию методом обмена.

Запись for i:=1 to n-1 do означает, что элементы массива будут обрабатываться, начиная с первого до предпоследнего. Внутренний цикл просматривает элементы от i+1 до n-того элемента массива (for j:=i+1 to n do). Если все данные условия выполняются (if (odd(C[i])) and (odd(C[j])) and (C[i]>C[j])), то значения соответствующих элементов меняются местами (Значение функции odd(x) истинно, если x-нечетное число). Эти условия соединены между собой логическими операциями and – если выражения между and истинны, то и сама операция истинна. Для того, чтобы поменять их местами, используем буферную переменную l. Сначала в переменной l сохраняется значение сравниваемого элемента массива (l:=C[i]), затем элементу с этим номером присваивается значение следующего элемента (C[i]:=C[j]), после чего элементу присваивается значение буферной переменной l (C[j]:=l).

Добавим еще оператор writeln без параметров для более удобного восприятия информации с экрана.

Фрагмент программы:

for i:=1 to n-1 do

for j:=i+1 to n do

if (odd(C[i])) and (odd(C[j])) and (C[i]>C[j]) then

begin

l:=C[i];

C[i]:=C[j];

C[j]:=l;

end;

writeln;

Вывод отсортированного массива

После сортировки выводим полученный массив на экран стандартными средствами вывода, предварительно прокомментировав, что выводим его, оператором writeln('Конечный отсортированный массив'):

for i:=1 to n do write(C[i]:3);

где write(C[i]:3) – вывод элементов двумерного массива в строку с указанием количества занимаемых позиций.

Текст программы

uses crt;

Var

A,B:array[1..10,1..10] of integer;

C:array[1..10] of integer;

i,j,m,n,mina,minb,l:integer;

begin

clrscr;

randomize;

write('Введите количество строк и столбцов массива до 10 через пробел: ');

readln(n,m);

writeln('Исходный массив А');

for i:=1 to n do

begin

for j:=1 to m do

begin

A[i,j]:=random(10)+1;{Ввод массива А}

write(A[i,j]:3);

end;

writeln;

end;

writeln('Исходный массив Б');

for i:=1 to n do

begin

for j:=1 to m do

begin

B[i,j]:=random(10)+1;{Ввод массива Б}

write(B[i,j]:3);

end;

writeln;

end;

writeln('Полученный массив С');

for i:=1 to n do

begin

mina:=A[i,1];

minb:=B[i,1];

for j:=2 to m do

begin

if mina>A[i,j] then mina:=A[i,j];

if minb>B[i,j] then minb:=B[i,j];

end;

C[i]:=mina*minb;

write(C[i]:3);

end;

for i:=1 to n-1 do

for j:=i+1 to n do

if (odd(C[i])) and (odd(C[j])) and (C[i]>C[j]) then

begin

l:=C[i];

C[i]:=C[j];

C[j]:=l;

end;

writeln;

writeln('Конечный отсортированный массив');

for i:=1 to n do write(C[i]:3)

end.