Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Матрицы, нахождение максимального элемента.


Автор: whitey 21.12.2008, 22:04
В матрице 4*3 поменяь местами 1-ю и последнюю строку. Вывести на экран обе матрицы и строку в которой рапололжен максимальный элемент. 
Код
 PROGRAM MATR;
USES CRT;
CONST N=3; M=4;
VAR i, j, c, k:INTEGER; S,MAX: REAL;
VAR  A: ARRAY[1..N, 1..M] OF REAL;             
B: ARRAY[ 1..N, 1..M] OF REAL;
BEGIN
CLRSCR;
FOR i:=1 TO N DO
FOR j:=1 TO M DO
BEGIN
WRITE(' введите значенние',i,'- й строки ',j,'- го столбца.');
READLN(A[i,j]);
END;
FOR i:=1 TO N DO
FOR j:=1 TO M DO
B[i,j]:=A[i,j];
FOR j:=1 TO M DO
begin
B[n,j]:=A[1,j];
B[1,j]:=A[n,j];
end;

MAX:=a[1,1];
for i:=1 to n do
for j:=1 to m do
begin
if a[i,j]>MAX
then MAX:=a[i,j];
if MAX=a[i,j]
then
begin
k:=i;
c:=j;
end;
end;
writeln('первая матрица');
for i:=1 to n do
begin
writeln;
for j:=1 to m do
write (A[i,j],' ');
END;
writeln;
writeln('вторая матрица');
for i:=1 to n do
begin
writeln;
for j:=1 to m do
write (B[i,j],' ');
end;
writeln;
writeln('Max элемент ', max);
writeln('Строка, в которой расположен макс. элемент');
FOR j:=1 TO m DO
write (a[k,j],'  ');
end.

Помогите сделать ее с помощью процедур или функций. Спасибо

Автор: Metalex 22.12.2008, 00:41
Зачем тебе процедуры или функции? Если несколько строк менять - другое дело.. А так - только программу замусоривать.

Автор: TRS743 22.12.2008, 12:15
PROGRAM MATR;
USES CRT;
CONST n=3; m=4;
VAR i, j, c, k:INTEGER;
    S,MAX: REAL;
    A: ARRAY[1..N, 1..M] OF REAL;
    B: ARRAY[ 1..N, 1..M] OF REAL;
BEGIN
  FOR i:=1 TO N DO
  FOR j:=1 TO M DO
  BEGIN
    CLRSCR; //--------------------
    WRITE(' введите значенние ',i,'- й строки ',j,'- го столбца: ');//-------
    READLN(A[i,j]);
  END;
  clrscr;//------------------
  FOR i:=1 TO N DO
   FOR j:=1 TO M DO
    B[i,j]:=A[i,j];
  FOR j:=1 TO M DO
  begin
    B[n,j]:=A[1,j];
    B[1,j]:=A[n,j];
  end;

  MAX:=a[1,1];
  k:=1;    //----------------
  c:=1;   //-----------------
  for i:=1 to n do
  for j:=1 to m do
  begin                    //-------------------
    if a[i,j]>=MAX  then  //--------------------
    begin                //---------------
     MAX:=a[i,j];        //----------------
     k:=i;               //-------------
    end;                //---------------------
  end;                  //-------------
  writeln('первая матрица:');
  for i:=1 to n do
  begin
    writeln;
    for j:=1 to m do
    write (A[i,j]:4:2,' '); //----------------
  END;
  writeln;
  writeln;//----------------
  writeln('вторая матрица:');
  for i:=1 to n do
  begin
    writeln;
    for j:=1 to m do
    write (B[i,j]:4:2,' ');//-----------------
  end;
  writeln;
  writeln;//---------------
  writeln('Max элемент ', MAX:4:2);
  writeln;//--------------
  writeln('Строка, в которой расположен макс. элемент: ',k); //----------
  FOR j:=1 TO m DO
  write (a[k,j]:4:2,'  ');
  readkey;//---------------------
end.

немного исправил ошибки и оформление(см. чёрточки в комментариях). Если по первоначальному коду был бы максимальным элемент 1-1, то было-бы весело.

Автор: navi 22.12.2008, 16:04
TRS743
*для кода есть специалные блоки!!! так удобнее!!! не заметил? smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)