Консультация № 159307
01.02.2009, 10:58
0.00 руб.
0 3 1
Дана действительная матрица, сформировать одномерный массив, умножить элементы на максимальный, сортировать по возрастанию.

Обсуждение

Неизвестный
01.02.2009, 11:21
общий
Каковы правила формирования одномерного массива из матрицы? Или надо тупо все элементы туда поместить?
Неизвестный
01.02.2009, 11:26
общий
да по моему тупо все туда поместить, умножить на максимальный и отсортировать по возрастанию
Неизвестный
01.02.2009, 12:02
общий
это ответ
Здравствуйте, Иванов Виктор Олегович!
Приложение с комментариями. Тестировалось в TP 7.

Приложение:
program Pascal_159307;
{ Размерности матрицы }
const
N=8;
M=5;
var
Matrix:array[1..N,1..M]of Real;
Arr:array[1..N*M]of Real;
Max,tmp:Real;
i,j:integer;
begin
Randomize;
{ Формируем матрицу и выводим ее на экран }
WriteLn('Matrix:');
for i := 1 to N do begin
for j := 1 to M do begin
Matrix[i,j]:=Random*50-25;
Write(Matrix[i,j]:7:3,' ');
end;
WriteLn;
end;
{ Формируем массив и сразу ищем максимальный }
Max:=Matrix[1,1];
for i := 1 to N do
for j := 1 to M do begin
Arr[(i-1)*M+j]:=Matrix[i,j];
if Matrix[i,j]>Max then Max:=Matrix[i,j];
end;
{ Умножаем }
for i := 1 to N*M do
Arr[i]:=Arr[i]*Max;
{ Сортировка }
for i := 1 to N*M do
for j := 1 to N*M-i do
if Arr[j]>Arr[j+1] then begin
tmp:=Arr[j];
Arr[j]:=Arr[j+1];
Arr[j+1]:=tmp;
end;
{ Выводим полученный масссив }
WriteLn('Result array:');
for i := 1 to N*M do
Write(Arr[i]:9:3,' ');
ReadLn;
end.
Форма ответа