Treba mi pomoc oko Delphi-ja....
Prikazujem rezultate 1 do 19 od 19

Tema: Treba mi pomoc oko Delphi-ja....

  1. #1
    zenski abraksas
    Guest

    Podrazumevano Treba mi pomoc oko Delphi-ja....

    Cao...Ja sam Jovana...Zanima me da li neko moze da mi pomogne da resim sledeci zadatak...Inace ,cetvrta sam godina jedne Bg gimnazije....
    "Napraviti Delphi projekat koji omogucava brz unos mape u kojoj celije string grida u kojima se nalazi tacka predstavljaju kopno a blanko znak more.Potom klik na bilo koje polje treba da izracuna povrsinu kopna na kojoj se celija nalazi.Povrsina predstavlja broj tacaka vezanih u cetiri pravca(Ne dijagonalno)"



  2. #2
    Primećen član
    Učlanjen
    04.03.2004.
    Lokacija
    UK
    Poruke
    558
    Reputaciona moć
    56

    Podrazumevano

    Opisno : (uz ogradu da ne mogu da ti napishem kood, tanak sam ja sa Delphiem)

    - Crtanje po gridu je jednostavna stvar - pogledaj TDrawGrid i help za ovu komponentu.

    - Ispitivanje povrshine - Rekurzija ti ne gine, odnosno stari, dobri fill-algorithm
    U osnovi, kada utvrdish da pochetno polje pripada "kopnu", onda u rekurzivnoj funkciji proveravash redom gore,dole,levo,desno i za svako polje, ako je kopno, ponovo pozivash rekurziju (naravno, u rekurziji sabirash povrshinu)

  3. #3
    Primećen član RiSK (avatar)
    Učlanjen
    19.01.2004.
    Pol
    muški
    Poruke
    678
    Reputaciona moć
    57

    Podrazumevano

    Rekurzija za to ti je prilicno laka i s' obzirom da nece mnogo opteretiti heap, stvarno se ne isplati pisati glomazni iteraktivni kod za ovaj problem.

    recimo da imas deklaraciju

    const maxn=100; //ili koliko ti je vec potrebno
    var karta: array[1..maxn, 1..maxn] of Boolean;
    var maxX, maxY: integer; //koliko ima redova tj. kolona

    {ovde dodje kod koji u karta[i,j] upisuje true ako je odgovarajuce polje string grida zemlja a false ako nije}

    procedure obidji(x, y: integer;var count: integer);
    begin
    inc(count);
    karta[x,y]:=false;

    if (x>1)and(karta[x-1,y]) then obidji(x-1, y, count);
    if (x<maxX)and(karta[x+1,y]) then obidji(x-1, y, count);
    if (y>1)and(karta[x,y-1]) then obidji(x, y-1, count);
    if (y<maxY)and(karta[x,y+1]) then obidji(x-1, y, count);
    end;

    BTW: Ovo sam ti napisao prilicno na brzaka -- moguce je da ne radi. Jos jedna stvar - nisam radio direkto sa TStringGrid jer bi duze pisai - ti mozes da radis direktno sa nijm ako ti je lakse.

    Primeti da ako ispitujes jednu koordinatu na nekoj povrsini ne mozes da ispitujes drugu na istoj povrsini dok ponovo ne ucitas iz grida u matricu, jer procedura "brise kopno" da ne bi duplirala neka polja. Bolju stvar mozes da uradis ako koristis maticu tipa integer umesto Boolean. Recimo 0 za more, 1 za kopno 2 za obidjeno kopno. Menjas 1 u 2 dok obilazis, a kada se vratis sa obidjenog polja vratis 2 u 1.

    Dakle, moze i brze i bolje, ali sam se kasno setio ovoga sa integerom...

    Probaj da li radi. Ako nesto nije kako treba, javi da ispravimo.....

    A u kojoj se to gimnaziji radi Delphi? Da se slucajno ne spremas za takmicenje?

  4. #4
    Primećen član
    Učlanjen
    04.03.2004.
    Lokacija
    UK
    Poruke
    558
    Reputaciona moć
    56

    Podrazumevano

    Ispravka : TStringGrid, ne TDrawGrid, nisam pazhljivo chitao

    Inache, ako je ovo za neko takmichenje, ili, jednostavno, ako je mapa veeelika, a brzina bitna, rekurzija i nije najbolja ideja.
    Chisto informativno, pogledaj kako radi A* (A Star) algoritam koji je kao stvoren za ovakve probleme, a ne koristi rekurziju i ubedljivo je najbrzhi.

    Hint : ako se nakanish pa prouchish A*, za zamenu fill-algoritma se heuristika izbacuje iz A* algoritma.

    PS
    Savladash to, i vec si na pola puta do Pathfinder-a, odnosno reshenja problema najkraceg/najoptimalnijeg puta u grafu

    OK, I'll shut up now

  5. #5
    Primećen član
    Učlanjen
    15.02.2004.
    Lokacija
    Nis-New York
    Poruke
    572
    Reputaciona moć
    56

    Podrazumevano

    sto bre zbunjujes ljude grafovima to je skolski primer, na takmicenjima su dosta tezi zadaci, tako da brzina nije impreativ, a i kako da bude kad se unosi preko string grida -> treba ti dva sata za veci test primer ne kaze se iz datoteke. elem, evo koda:
    napravi StringGrid1

    i u eventu OnSelectCell za njega upisi

    ShowMessage(IntToStr(P(StringGrid1, ARow, ACol));

    prethodno definisi funkciju P na sledeci nacin:

    function P(var Grid: TStringGrid; i, j: Integer): Integer;
    begin
    Result := 1;
    if (i < Grid.RowCount) and (Grid.Cells[j, i + 1] = '.') then
    Result := Result + P (Grid, i + 1, j);
    if (i > 0) and (Grid.Cells[j, i - 1] = '.') then
    Result := Result + P (Grid, i - 1, j)
    if (j < Grid.ColCount) and (Grid.Cells[j + 1,] = '.') then
    Result := Result + P (Grid, i, j + 1);
    if (j < 0) and (Grid.Cells[j - 1, i] = '.') then
    Result := Result + P (Grid, i, j - 1);
    end;

    uzgred, ovo kucam iz glave, tako da mozda (i verovatno) nece da prodje iz prve, ali eto ti ideje, pa je doradi ali ako radi, trebalo bi da ti izadje message box u kome pise povrsina kad pritisnes na neku celiju u StringGridu.

    pozdravi

  6. #6
    Primećen član
    Učlanjen
    04.03.2004.
    Lokacija
    UK
    Poruke
    558
    Reputaciona moć
    56

    Podrazumevano

    Rekurzija za to ti je prilicno laka i s' obzirom da nece mnogo opteretiti heap
    RiSK, da l' da te prozivamo malo za ovo gore, shto dezinformishesh mlade nade?
    Aj' necemo sad, drugi put..

  7. #7
    Primećen član RiSK (avatar)
    Učlanjen
    19.01.2004.
    Pol
    muški
    Poruke
    678
    Reputaciona moć
    57

    Podrazumevano

    Citat Original postavio Lord British
    Rekurzija za to ti je prilicno laka i s' obzirom da nece mnogo opteretiti heap
    RiSK, da l' da te prozivamo malo za ovo gore, shto dezinformishesh mlade nade?
    Aj' necemo sad, drugi put..
    Dobro, de, stack nije heap. Vidis da sam stvar pisao za minut...

    Zeznuo sam se i u proceduri count mora da bude globalna promenjljiva promenljiva, i da se pre poziva ionicijalizuje na nulu. Ono sigurno nece da radi ops:

    A, sto mislis da rekurzija nije dovoljno dobra? Sasvim ce OK da odradi pos'o...

  8. #8
    zenski abraksas
    Guest

    Podrazumevano

    E ljudi,hvala vam,ali ja ne idem ni na kakvo takmicenje......Inace,u "sv.Savi"(gimnaziji) sam,i profesor nam je zadao da napravimo ovaj projekat..ali,nazalost,ipak ce morati da se da neki kes za privatnog profesora....hvala...

  9. #9
    Primećen član
    Učlanjen
    15.02.2004.
    Lokacija
    Nis-New York
    Poruke
    572
    Reputaciona moć
    56

    Podrazumevano

    mora da te interesuje da bi naucila nesto. moze to da se uradi, ako nista drugo, ja mogu za 5 min da napravim programce, al ako hoces stvarno da naucis mora da se interesujes, da sednes i da se igras u delphiju malo, pa ces pohvatati kako ide

  10. #10
    zenski abraksas
    Guest

    Podrazumevano

    Mozda je steta,ali,mene nazalost nesto bas i ne interesuje programiranje i verovatno nikad ne bi ni cula za taj delphi i za taj "programcic" da nam nije profesor zadao....

  11. #11
    Primećen član
    Učlanjen
    04.03.2004.
    Lokacija
    UK
    Poruke
    558
    Reputaciona moć
    56

    Podrazumevano

    Buahahahaahha, samo napred mala, kazhi mu

  12. #12
    Primećen član
    Učlanjen
    15.02.2004.
    Lokacija
    Nis-New York
    Poruke
    572
    Reputaciona moć
    56

    Podrazumevano

    ok
    onda u tom slucaju evo ti link
    www.stoem-software.co.yu/Mapa.zip
    nije me mrzelo da otipkam to, ionako sam zavrsio sa svojim poslom za danas
    trebalo bi da zodovoljava potrebe, samo sta ces ako te prof. pita sta znaci sve ono?? nema mnogo, ni 50 linija koda, ali opet...
    i nemoj da se pipas oko delphi, ako te ne zanima nemoj ni da ga startujes, sta ce ti to u zivotu.

    pozdravi

  13. #13
    zenski abraksas
    Guest

    Podrazumevano

    E pa da,profesor ce me pitati kako sam uradila "ono"....Ma,to je u sredu....Valjda cu nesto smisliti do tada ....Hvala....

  14. #14
    Primećen član
    Učlanjen
    15.02.2004.
    Lokacija
    Nis-New York
    Poruke
    572
    Reputaciona moć
    56

    Podrazumevano

    jel radi to kod tebe?
    valjda medju vama ima neko ko zna bar malo delphi/pascal pa tumacite tu

  15. #15
    Guest

    Podrazumevano

    Ja sa mojim skromnim znanjem kompjutera jedino sto sam uspela da uradim jeste da otvorim ono sto si poslao i da vidim tamo tabelu ops: ....Odakle ti uopste to znas?Mislim,kako si naucio?...

  16. #16
    Primećen član
    Učlanjen
    04.03.2004.
    Lokacija
    UK
    Poruke
    558
    Reputaciona moć
    56

    Podrazumevano

    Here we go again...

  17. #17
    zenski abraksas
    Guest

    Podrazumevano

    pa dobro,nemam ja nameru da vas smaram,ali,bas me zanima sta vas je toliko zainteresovalo u vezi programiranja...

  18. #18
    Primećen član
    Učlanjen
    15.02.2004.
    Lokacija
    Nis-New York
    Poruke
    572
    Reputaciona moć
    56

    Podrazumevano

    lele, ti nisi ni umela da isprobas ono sto treba da predas. pa svaka ti cast.
    klikni na neko polje tabele i unesi tacku svugde gde hoces kopno. kad zavrsis klikni na dugme za kraj unosa. posle klikni na neko polje opet i on ce da ti pokaze dal je voda il kopno i koju povrsinu zauzima. a bre na srpski sam napisao tamo uputstva...il bese kineski

    a za ovo drugo - glupo ti je pitanje, to je isto kao kad se neko zainteresuje da bude zubar, djubrar, bem li ga ja sta drugo. programiranje je jedna vrlo konkretna stvar (kao i ja), nema tu mlacenja prazne slame, sve ti je binarne prirode - radi...il ne radi i jednostavno, treba da se rodis s tim.
    ko sto reko, begaj sto dalje od delphi neces se leba najesti od programiranja

  19. #19
    Primećen član
    Učlanjen
    04.03.2004.
    Lokacija
    UK
    Poruke
    558
    Reputaciona moć
    56

    Podrazumevano

    Ma ne smarash, mislio sam da je po ko zna koji put neki padobranac upao na foru "kako bre... s'poshtovanjem - Gost"
    Uloguj se sledeci put

    Inache, ne verujem da je ikog zainteresovalo samo programiranje. To ti je doooosadna nauka ako nishta interesantno na ekranu nema za videti.
    Eto, ja sam krenuo josh od starih Komodora (ti se verovatno nisi ni rodila u to vreme) jer me je zanimalo kako se oni brodici u igricama crtaju po ekranu. Malo po malo... i eto sada znam

Slične teme

  1. Pomoc Delphi
    Autor Nemanja666 u forumu Programiranje
    Odgovora: 1
    Poslednja poruka: 13.06.2006., 14:59
  2. Pomoc za Delphi
    Autor SrdjanNS u forumu Programiranje
    Odgovora: 3
    Poslednja poruka: 10.09.2004., 19:58
  3. Treba mi pomoc oko Delphi-ja....
    Autor tragam.... u forumu Programiranje
    Odgovora: 1
    Poslednja poruka: 12.06.2004., 19:22
  4. Treba mi pomoc oko Delphi-ja....
    Autor tragam.... u forumu Programiranje
    Odgovora: 9
    Poslednja poruka: 27.05.2004., 03:30
  5. Pomoc oko delphi-a
    Autor UnDerGr0unD^SeCuRitY u forumu Programiranje
    Odgovora: 77
    Poslednja poruka: 20.03.2004., 20:48

Pravila za slanje poruka

  • Ne možete kreirati novu temu
  • Ne možete poslati odgovor
  • Ne možete dodati priloge
  • Ne možete prepraviti svoju poruku
  •