Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2011, 12:22   #1
Ilovesport
 
Регистрация: 24.03.2011
Сообщений: 3
По умолчанию Процедуры. Паскаль

Здраствуйте,можете помочь исправить ошибку!

Ввести двумерный массив 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.
Ilovesport вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедуры(Паскаль)! Cas01 Помощь студентам 8 17.12.2010 14:42
Процедуры в Паскаль baizhik_street Помощь студентам 0 22.11.2010 22:43
процедуры в паскаль кусака Паскаль, Turbo Pascal, PascalABC.NET 1 09.06.2010 23:16
процедуры паскаль mono Помощь студентам 6 06.04.2009 23:55