[ felix90 @ 04.12.2009. 17:34 ] @
dakle treba da napravim potprogram koji:
u svakoj vrsti pronalazi i ispisuje element koji ima najveću apsolutnu vrednost odstupanja od najmanjeg elementa cele matrice

-ucitam red matrice, ubacim elemente, nadjem njen minimum i tu stanem

ako neko ima neku ideju, ja gresim i ne znam kako da prevazidjem problem
Code:
...
procedure obrada(b:matrica; n,min:integer);
var
  i, max, odstupanje:integer;
begin
  ostupanje:=0;
  max:=b[1,1];
  for i:=1 to n do;
    for j:=1 to n do
      if abs(b[i,j])>b[1,1]
        then
          begin
            max:=abs(b[i,j]);
            odstupanje:=max-min;
            write(max,odstupanje);
          end;

end; 
... 
[ bojan21 @ 04.12.2009. 20:48 ] @
Pretpostavljam da je rec o matrici N*N.
Metodi prosledjujes preko parametara matricu (zasto ne kao var?), njenu velicinu (n) i minimalni element matrice (sto znaci da si ga prethodno pronasao).
Dalje, nedostaje ti definicija j promenljive.
Promenljiva odstupanje ti uopste ne treba, posto se samo trazi ispis elemenata sa najvecim odstupanjem, a ne i koliko to iznosi. Posto se trazi taj element za svaki red (a ne za celu matricu) ovaj deo ti ne treba:
Code:

max:=b[1,1];


posle ulaska u prvi FOR ciklus treba da postavis trenutni maksimum (tj element za koga je maksimalno apsolutno odstupanje), a kako jos nisi procitao nijedan element, pretpostavis da je maksimalan prvi u vrsti:
Code:

max:=b[i,1];


Zbog toga, sledeca petlja ide od 2 do n (nije potrebno opet da proveravas prvi element). A uslov if ti je isto pogresan - ti u njemu poredis apsolutnu vrednosti elementa kojeg trenutno citas sa apsolutnom vrednoscu elementa b[1, 1] (a to nije ni priblizno ono sto se trazi). Ti treba da poredis dosadasnju najvecu apsolutnu razliku sa trenutnom, i ako je veca onda menjas element za koji je ona najveca (to jest max). Ovako nesto:
Code:

 if abs(max - min) < abs(b[i, j] - min)
  then max:= b[i,j];


Jos nista ne treba da ispisujes. Ovo je samo potencijalni maksimum, ne mozes da znas da negde u toj vrsti neces imati jos vece odstupanje. Tek kad zavrsis sa ispitivanjem cele vrste mozes da pozoves ispis (u prvoj FOR petlji, ispod druge).
I nemoj da te mrzi da analiziras ono sto si napisao, verujem da bi nasao ove greske lako da si to uradio.

Pozdrav
[ felix90 @ 04.12.2009. 21:05 ] @
ovo sam stavio kao primer mog razmisljanja. da, vidim da sam napravio par gresaka u ovom kodu i trazim od vas nacin da resim, zato sto ja imam u glavi sta se trazi i sta treba da se odradi ali stanem kod for petlje i ostalo propada. hvala, pozz