Домашние задания: Другие предметы
Помогите срочно с задачей по Паскалю!!!!Пожалуйста
Даны две вещественные матрицы A из N строк и N столбцов и матрица В из М строк и М столцов(М,N <=15 вводятся). В той матрице ,где произведение элементов меньше,переписать первую строку в обратном порядке,а в другой - сформировать массив из максимальных элементов строк.
type
aType = array [1..15, 1..15] of Integer;
procedure InputArray(Name : Char; var Arr : aType; var Kol : Byte);
var
Row, Col : Byte;
begin
Write('Введите размер массива ', Name, ' (до 15) : '); ReadLn(Kol);
for Row := 1 to Kol do
for Col := 1 to Kol do
begin
Write(Name, '[', Row, ',', Col, '] = '); ReadLn(Arr[Row, Col]);
end;
end;
function Proizv(Arr : aType; Kol : Byte) : Real;
var
Row, Col : Byte;
P : Real;
begin
P := 1;
for Row := 1 to Kol do
for Col := 1 to Kol do
P := P * Arr[Row, Col];
Proizv := P;
end;
procedure Change(R0, C0, R1, C1 : Byte; var Arr : aType);
var
Tmp : Integer;
begin
Tmp := Arr[R0, C0];
Arr[R0, C0] := Arr[R1, C1];
Arr[R1, C1] := Tmp;
end;
procedure InvertFirstRow(var Arr : aType; Kol : Byte);
var
ColL, ColR : Byte;
begin
ColL := 1; ColR := Kol;
while ColL < ColR do
begin
Change(1, ColL, 1, ColR, Arr);
ColL := ColL + 1;
ColR := ColR - 1;
end;
end;
procedure VectorMaxRow(var Arr : aType; Kol : Byte);
var
Col, Row, Max : Byte;
begin
for Row := 1 to Kol do
begin
Max := 1;
for Col := 2 to Kol do
if Arr[Row, Col] > Arr[Row, Max] then Max := Col;
Change(Row, 1, Row, Max, Arr);
end;
end;
procedure OutArray(Name : String; Arr : aType; Kol : Byte);
var
Col, Row : Byte;
begin
WriteLn(Name);
for Row := 1 to Kol do
begin
for Col := 1 to Kol do
Write(Arr[Row, Col]:4);
WriteLn;
end;
end;
var
M, N : Byte;
A, B : aType;
begin
InputArray('A', A, M);
InputArray('B', B, N);
OutArray('Исходный массив A', A, M);
OutArray('Исходный массив B', B, N);
if Proizv(A, M) > Proizv(B, N) then
begin
VectorMaxRow(A, M);
InvertFirstRow(B, N);
end
else
begin
InvertFirstRow(A, M);
VectorMaxRow(B, N);
end;
OutArray('Результат обработки массива A', A, M);
OutArray('Результат обработки массива B', B, N);
end.
aType = array [1..15, 1..15] of Integer;
procedure InputArray(Name : Char; var Arr : aType; var Kol : Byte);
var
Row, Col : Byte;
begin
Write('Введите размер массива ', Name, ' (до 15) : '); ReadLn(Kol);
for Row := 1 to Kol do
for Col := 1 to Kol do
begin
Write(Name, '[', Row, ',', Col, '] = '); ReadLn(Arr[Row, Col]);
end;
end;
function Proizv(Arr : aType; Kol : Byte) : Real;
var
Row, Col : Byte;
P : Real;
begin
P := 1;
for Row := 1 to Kol do
for Col := 1 to Kol do
P := P * Arr[Row, Col];
Proizv := P;
end;
procedure Change(R0, C0, R1, C1 : Byte; var Arr : aType);
var
Tmp : Integer;
begin
Tmp := Arr[R0, C0];
Arr[R0, C0] := Arr[R1, C1];
Arr[R1, C1] := Tmp;
end;
procedure InvertFirstRow(var Arr : aType; Kol : Byte);
var
ColL, ColR : Byte;
begin
ColL := 1; ColR := Kol;
while ColL < ColR do
begin
Change(1, ColL, 1, ColR, Arr);
ColL := ColL + 1;
ColR := ColR - 1;
end;
end;
procedure VectorMaxRow(var Arr : aType; Kol : Byte);
var
Col, Row, Max : Byte;
begin
for Row := 1 to Kol do
begin
Max := 1;
for Col := 2 to Kol do
if Arr[Row, Col] > Arr[Row, Max] then Max := Col;
Change(Row, 1, Row, Max, Arr);
end;
end;
procedure OutArray(Name : String; Arr : aType; Kol : Byte);
var
Col, Row : Byte;
begin
WriteLn(Name);
for Row := 1 to Kol do
begin
for Col := 1 to Kol do
Write(Arr[Row, Col]:4);
WriteLn;
end;
end;
var
M, N : Byte;
A, B : aType;
begin
InputArray('A', A, M);
InputArray('B', B, N);
OutArray('Исходный массив A', A, M);
OutArray('Исходный массив B', B, N);
if Proizv(A, M) > Proizv(B, N) then
begin
VectorMaxRow(A, M);
InvertFirstRow(B, N);
end
else
begin
InvertFirstRow(A, M);
VectorMaxRow(B, N);
end;
OutArray('Результат обработки массива A', A, M);
OutArray('Результат обработки массива B', B, N);
end.
Похожие вопросы
- помогите срочно решить задачу по химии!!!!умоляю!!!!
- Помогите срочно решить задачи!
- Помогите срочно.Решите задачи по химии 9 класс.
- Помогите срочно решить задачу по физике
- Помогите СРОЧНО решить задачу!!!
- Помогите с решением задачи по математике, пожалуйста.
- СРОЧНО! Помогите решить задачу по геометрии, пожалуйста
- ПОМОГИТЕ ПОЖАЛУЙСТА СРОЧНО РЕШИТЬ ЗАДАЧУ ПО ФИЗИКЕ ЗА 8 КЛАСС ПОЖАЛУЙСТА ОЧЕНЬ СРОЧНО НА КР СИЖУ ПОЖАЛУЙСТА
- Не поможете ребенку с задачей?СРОЧНО!!!
- Помогите, срочно!))) Задача по геометрии.