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


Автор: Sergas 27.11.2008, 16:52
Код

program laba6;
type
matrica=array [1..5, 1..5] of real;
var
a: matrica;
i, j: integer;
max: real;
nmax: integer;
procedure max1 (a:matrica; var rmax:real; var n:integer);
begin
for j:=1 to 4 do
rmax:=a[j,1];
n:=1;
  for i:=1 to 4 do
    if a[j,i]>rmax then
   begin
    rmax:= a[j,i];
    n:=i;
   end
end;

begin
for j:=1 to 4 do
 for i:=1 to 4 do
   begin
    write ('a(',j,',',i,')=');
    readln (a[j,i])
   end;
 
max1 (a, max, nmax);
for i:=1 to 4 do
 begin
    for j:=1 to 4 do
      write(a[i,j]:1:0, ' ');
      writeln ('   max=', max:1:0, ' n=', nmax);
 end;
end.

незнаю как заставить её сделать так чтобы она, в каждой строчке матрицы искала максимальный элемент и его номер естественно с помощью процедуры smile 
заранее спасибо и буду благодарен за любую помощь)))

Автор: volvo877 27.11.2008, 17:25
Цитата(Sergas @  27.11.2008,  15:52 Найти цитируемый пост)
как заставить её сделать так чтобы она, в каждой строчке матрицы искала максимальный элемент и его номер
Например, так:
Код
program laba6;
type
matrica=array [1..5, 1..5] of real;
var
a: matrica;
i, j: integer;
max: real;
nmax: integer;

procedure max1 (a:matrica; row: integer; var rmax:real; var n:integer);
begin
  n := 1;
  for j := 2 to 5 do
    if a[row, j] > a[row, n] then n := j;

  rmax := a[row, n];
end;

begin
  for j:=1 to 5 do
    for i:=1 to 5 do begin
      write ('a(',j,',',i,')=');
      readln (a[j,i])
    end;

  for i:=1 to 5 do begin
    max1(a, i, max, nmax); { <--- вот он, вызов процедуры }
    for j:=1 to 5 do
      write(a[i,j]:1:0, ' ');
    writeln ('   max=', max:1:0, ' n=', nmax);
  end;
end.

Автор: Sergas 28.11.2008, 09:12
Ооо, спсб, щас буду разбираться))

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