[ habeg @ 05.01.2007. 15:59 ] @
Radim domaci pa mi treba mala pomoc oko pretrazivanja 2d matrica u pascal-u. Konkretno, program treba da pronalazi elemente koji se razlikuju od drugih u svojoj vrsti i koloni. Napisao sam potprogram za ucitavanje elemenata i kada sam uradio pp za obradu koju sam vec opisao upao sam u neke silne petlje i javlja mi se stack overflow error.Znaci, treba mi samo pomoc oko pretrage matrice i poredjenja elemenata.Pa ako ima neka dobra dusa...
[ savkic @ 05.01.2007. 17:47 ] @
> Radim domaci pa mi treba mala pomoc oko pretrazivanja 2d matrica u pascal-u. Konkretno, program treba da pronalazi elemente koji se razlikuju od drugih u
> svojoj vrsti i koloni.

Da li si koristio dvodimenzionalni niz za smeštaj elemenata? Napravi dve procedure, jednu za pretragu redova a drugu za kolone (mogu se i objediniti ali ti je ovako lakše). Njima se prosleđuje indeks reda ili kolone koja se pretražuje. Dalje ti treba još jedan niz ili još bolje TStringList u koji ćeš dodavati elemente s tim što pre dodavanja uradiš proveru da li već postoji i ako da, obrišeš ga. Na kraju ćeš u TStringList imati jedinstvene elemente.
[ PeraKojotSuperGenije @ 06.01.2007. 15:17 ] @
Postuj taj tvoj kod bez obzira sto ne radi, pa cemo da vidimo o cemu se radi.
[ habeg @ 06.01.2007. 16:26 ] @
Da, koristio sam taj niz. Ali da li bi mogao malo bolje da mi objasnis kako da smestam te dobijene elemente u taj novi niz (TStringList jos nismo radili). Kako da proveravam da li su ti elementi u nizu jer koliko znam 'in' ne mogu da upotrebim.
Hvala unapred
Prikacio sam nesto mada mislim da cete se smejati:)
[ _v!rus_ @ 06.01.2007. 18:46 ] @
Mislim da je problem to sto sa tom drugom matricom na steku probijes stek. Za glavnu matricu upotrebis 100x100x4 bajta = ~40kb, kada deklarises jos jednu od 40k probijes 64k limit za code+data+stack u pascalu, drugim recima smanji sa 100 na nesto manje.

Druga stvar, batali to greska: boolean, ionako nema smisla, jer dok greska = true propadne do tog glavnog while loopa, ode mast u propast. Bolje koristi Halt(0) ili napravi f-ju za unos integera, nesto kao
Code:

function GetInt(Prompt: String): Integer;
var
  V: Integer;
begin
  repeat  
    Write(Prompt);
    ReadLn(V);
    if V < 0 then
      WriteLn('Broj mora biti veci od 0.');
  until V >= 0;
end;


I sta uopste znaci "pronalazi elemente koji se razlikuju od drugih u svojoj vrsti i koloni"?

[Ovu poruku je menjao _v!rus_ dana 06.01.2007. u 20:03 GMT+1]
[ savkic @ 06.01.2007. 19:20 ] @
> Da, koristio sam taj niz. Ali da li bi mogao malo bolje da mi objasnis kako da smestam te dobijene elemente u taj novi niz
> (TStringList jos nismo radili). Kako da proveravam da li su ti elementi u nizu jer koliko znam 'in' ne mogu da upotrebim.

E pa sada dolazi do izražaja smisao domaćeg zadatka, učenje. Imaš primere u helpu, u kodu koji dolazi uz Delphi komponente, na netu, pa potraži. Ako nisi radio sa TStringList onda koristi nešto drugo, recimo dodatni (jednodimenzionalni) niz u koji ćeš upisivati stavke po istom principu.
Nešto me zanima, da li vi imate neki udžbenik ili skripte po kome radite?