Консультация № 179096
14.06.2010, 21:55
45.00 руб.
0 2 1
Уважаемые эксперты, помогите решить задачу по сортировке массивомс подробным разъяснением, пожалуйста.

"Массивы А и В содержат по 10 чисел. Упорядочить массив А по возрастанию, а массив В по убыванию и найти произведение минимального элемента массива А на максимальный элемент массива В."

Обсуждение

Неизвестный
14.06.2010, 22:11
общий
Xenta:
Гугл знает

Неизвестный
14.06.2010, 23:09
общий
это ответ
Здравствуйте, Xenta.
В приложении возможный вариант решения задачи.

Приложение:
{
Массивы А и В содержат по 10 чисел.
Упорядочить массив А по возрастанию, а массив В по убыванию и найти
произведение минимального элемента массива А на максимальный элемент
массива В.
}
Uses
Crt;
Const
maxi = 10; {Максимальный индекс массива}
Type
TAr = Array[1..maxi] of Byte;
Var
A, B: TAr; {Массивы}
i, j: Byte; {счетчики}

procedure Exchange(i1, i2: Byte; var Ar: TAr); {Процедура тройного попарного обмена}
var
tmp: Byte;
begin
tmp := Ar[i1];
Ar[i1] := Ar[i2];
Ar[i2] := tmp;
end;

procedure PrintArray(prefix: String; Ar: TAr); {Процедура печати массива}
begin
Writeln(prefix);
for i:=1 to maxi do begin
Write(Ar[i]:4);
end;
Writeln;
end;

begin
ClrScr; {Очистка экрана}
Randomize; {Инициализация генератора псевдослучайных чисел}
for i:=1 to maxi do begin {Заполнение массивов исходными данными}
A[i] := Random(20); {случайными}
B[i] := Random(20); {числами}
end;
printArray('A:', A); {Вызов процедур вывода массивов на экран}
printArray('B:', B);

for i:=1 to maxi-1 do begin {Упорядочивание массивов}
for j:=i+1 to maxi do begin
if A[i] > A[j] then begin {когда элемент массива с меньшим индексом будет БОЛЬШЕ элемента массива с большим индексом}
Exchange(i, j, A); {сделать перестановку элементов}
end;
if B[i] < B[j] then begin {когда элемент массива с меньшим индексом будет МЕНЬШЕ элемента массива с большим индексом}
Exchange(i, j, B); {сделать перестановку элементов}
end;
end;
end;
PrintArray('Sorted array A:', A); {Вывод на экран отсортированных массивов}
PrintArray('Sorted array B:', B);

{После произведенных сортировок}
{Первый элемент массива А - минимальный}
{Первый элемент массива В - максимальный}
Writeln('Result: ', A[1], ' * ', B[1], ' = ', A[1]*B[1]); {Результат умножения}
Writeln;
Write('Done. Press any key...'); {Уведомление об успешном завершении работы}
readkey; {Ожидание нажатия клавиши}
end.
Форма ответа