Другие языки программирования и технологии
Помогите решить задачу через процедуры PASCAL
Ввести двумерный массив Anxm,вывести его. Возвести в квадрат все строки,расположенные между строкой содержащей максимум матрицы,и строкой,содержащей минимум этой матрицы. Нужно решить через Процедуры в Паскале Помогите пожалуйста!
{
Ввести двумерный массив Anxm,вывести его.
Возвести в квадрат все строки, расположенные между строкой содержащей максимум
матрицы, и строкой, содержащей минимум этой матрицы.
Нужно решить через Процедуры в Паскале
}
program project1;
type TMatrix = array of array of Double;
var
A: TMatrix;
m, n: Integer;
{Ввести двумерный массив Anxm}
procedure EnterMatrix();
var
j, k: Integer;
begin
Write('Enter m: '); Readln(m);
Write('Enter n: '); Readln(n);
SetLength(A, m, n);
for j := 0 to m - 1 do
for k := 0 to n - 1 do
begin
Write('Enter A [', j + 1, ', ', k + 1, '] : ');
Readln(A[j, k]);
end;
Writeln();
end;
{Вывести его}
procedure PrintMatrix();
var
j, k: Integer;
begin
for j := 0 to m - 1 do
for k := 0 to n - 1 do
begin
if k = n - 1 then
Writeln(A[j, k]:3:3)
else
Write(A[j, k]:3:3, #9);
end;
Writeln();
end;
{Возвести в квадрат все строки, расположенные между строкой содержащей максимум
матрицы, и строкой, содержащей минимум этой матрицы. }
procedure SqrRow();
var
min, max: Double;
min_row, max_row, j, k: Integer;
begin
min_row := 0;
max_row := 0;
min := A[0, 0];
max := A[0, 0];
for j := 0 to m - 1 do
for k := 0 to n - 1 do
begin
if A[j, k] > max then
begin
max := A[j, k];
max_row := j;
end;
if A[j, k] < min then
begin
min := A[j, k];
min_row := j;
end;
end;
Writeln('max matrix row = ', max_row + 1, #9, 'min matrix row = ', min_row + 1);
Writeln('max matrix elm = ', max:3:3, #9, 'min matrix elm = ', min:3:3);
if (min_row < max_row) and (max_row - min_row > 1) then
for j := min_row + 1 to max_row - 1 do
for k := 0 to n - 1 do
A[j, k] := A[j, k] * A[j, k];
if (min_row > max_row) and (min_row - max_row > 1) then
for j := min_row - 1 downto max_row + 1 do
for k := 0 to n - 1 do
A[j, k] := A[j, k] * A[j, k];
Writeln();
PrintMatrix();
WriteLn();
end;
begin
EnterMatrix();
PrintMatrix();
SqrRow();
A := nil;
Write('Stop. Press Enter for exit...');
Readln();
end.
Ха-ха. Вот я олень. Только допёр, что строка максимум и строка минимум определяется суммой элементов в них. Процедуру SqrRow() нужно переделать. ;-)
Ввести двумерный массив Anxm,вывести его.
Возвести в квадрат все строки, расположенные между строкой содержащей максимум
матрицы, и строкой, содержащей минимум этой матрицы.
Нужно решить через Процедуры в Паскале
}
program project1;
type TMatrix = array of array of Double;
var
A: TMatrix;
m, n: Integer;
{Ввести двумерный массив Anxm}
procedure EnterMatrix();
var
j, k: Integer;
begin
Write('Enter m: '); Readln(m);
Write('Enter n: '); Readln(n);
SetLength(A, m, n);
for j := 0 to m - 1 do
for k := 0 to n - 1 do
begin
Write('Enter A [', j + 1, ', ', k + 1, '] : ');
Readln(A[j, k]);
end;
Writeln();
end;
{Вывести его}
procedure PrintMatrix();
var
j, k: Integer;
begin
for j := 0 to m - 1 do
for k := 0 to n - 1 do
begin
if k = n - 1 then
Writeln(A[j, k]:3:3)
else
Write(A[j, k]:3:3, #9);
end;
Writeln();
end;
{Возвести в квадрат все строки, расположенные между строкой содержащей максимум
матрицы, и строкой, содержащей минимум этой матрицы. }
procedure SqrRow();
var
min, max: Double;
min_row, max_row, j, k: Integer;
begin
min_row := 0;
max_row := 0;
min := A[0, 0];
max := A[0, 0];
for j := 0 to m - 1 do
for k := 0 to n - 1 do
begin
if A[j, k] > max then
begin
max := A[j, k];
max_row := j;
end;
if A[j, k] < min then
begin
min := A[j, k];
min_row := j;
end;
end;
Writeln('max matrix row = ', max_row + 1, #9, 'min matrix row = ', min_row + 1);
Writeln('max matrix elm = ', max:3:3, #9, 'min matrix elm = ', min:3:3);
if (min_row < max_row) and (max_row - min_row > 1) then
for j := min_row + 1 to max_row - 1 do
for k := 0 to n - 1 do
A[j, k] := A[j, k] * A[j, k];
if (min_row > max_row) and (min_row - max_row > 1) then
for j := min_row - 1 downto max_row + 1 do
for k := 0 to n - 1 do
A[j, k] := A[j, k] * A[j, k];
Writeln();
PrintMatrix();
WriteLn();
end;
begin
EnterMatrix();
PrintMatrix();
SqrRow();
A := nil;
Write('Stop. Press Enter for exit...');
Readln();
end.
Ха-ха. Вот я олень. Только допёр, что строка максимум и строка минимум определяется суммой элементов в них. Процедуру SqrRow() нужно переделать. ;-)
чем помочь? пиши в агент или icq 452371863
Похожие вопросы
- Помогите решить задачу по Turbo Pascal пожалуста
- Помогите решить задачу на языке Pascal
- Пожалуйста помогите решить задачу Pascal
- Помогите решить задачи Pascal
- Помогите решить задачу в Pascal!
- Помогите решить задачу Pascal
- Помогите решить задачи на Pascal...
- Помогите решить задачу на Pascal!)
- Помогите решить задачу по информатике 9 класс. Pascal ABC
- Помогите решить задачу на Pascal 2- масив