Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

zadatak pascal (matrica)

[es] :: Pascal / Delphi / Kylix :: zadatak pascal (matrica)

[ Pregleda: 3539 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

felix90
filip vitas
beograd

Član broj: 206913
Poruke: 2
*.dynamic.sbb.rs.



Profil

icon zadatak pascal (matrica)04.12.2009. u 17:34 - pre 175 meseci
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; 
... 
 
Odgovor na temu

bojan21
Bojan Zukic
Beograd

Član broj: 101113
Poruke: 251
92.244.151.*



+6 Profil

icon Re: zadatak pascal (matrica)04.12.2009. u 20:48 - pre 175 meseci
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
 
Odgovor na temu

felix90
filip vitas
beograd

Član broj: 206913
Poruke: 2
*.dynamic.sbb.rs.



Profil

icon Re: zadatak pascal (matrica)04.12.2009. u 21:05 - pre 175 meseci
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
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: zadatak pascal (matrica)

[ Pregleda: 3539 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.