[ Passwd @ 08.04.2005. 21:58 ] @
Kako napisat program koji ce u zadanoj rijeci prebrojati koliko ima npr. slova "a"? |
[ Passwd @ 08.04.2005. 21:58 ] @
[ peromalosutra @ 08.04.2005. 22:07 ] @
Najlakse ti je da u glavnom programu upotrijebis sledeci kod
Program broj_znakova; uses crt; var znak:char; br:integer; begin while <>'.' do begin znak :=readkey; if znak='a' then br:=br+1; end; writeln ('U unesenom tekstu je bilo ',br,' znakova a.'); end. Program ce prestati da ucitava nove znakove kad uneses tacku. Ako trebas da prebrojis vise znakova umjesto IF koristi CASE znak OF. Slican zadatak je vec bio samo je trebalo zamjeniti znakove sa kobinaciom brojeva i znakova, pa pogledaj i tu, iako ti je ovo gore gotov program. [ Passwd @ 08.04.2005. 22:09 ] @
@peromalosutra
ti si covjek od pomoci..:) [ peromalosutra @ 08.04.2005. 22:10 ] @
mala ispravka: while znak<>'.' a stavio sam i write da se vidi sta si unjeo.
Program broj_znakova; uses crt; var znak:char; br:integer; begin while znak<>'.' do begin znak :=readkey; write (znak); if znak='a' then br:=br+1; end; writeln ('U unesenom tekstu je bilo ',br,' znakova a.'); end. Ovo ti je gotov program, provjerio sam ga i radi. [ Srki_82 @ 08.04.2005. 22:29 ] @
To bi izgledalo otprilike ovako
Code: function BrojZnakova(AChar: Char; AStr: String): Integer; var I: Integer; begin Result := 0; I := 1; while PosEx(AChar, AStr, I) <> 0 do begin Inc(Result); I := PosEx(AChar, AStr, I) + 1; end; end; Jeste da je iz glave, ali valjda je bez greske ![]() [Ovu poruku je menjao Srki_82 dana 09.04.2005. u 00:14 GMT+1] [ Passwd @ 08.04.2005. 22:36 ] @
Hvala decki,trudim se da sto vise naucim al imam neki osjecaj da pascal "propada",tako da je sve ovo uzaludno,nadam se da nisam u pravu??
[ Srki_82 @ 08.04.2005. 22:46 ] @
Ehhh... ako mislis na DOS pascal onda on propada, ali ne zbog PASCAL-a nego zbog DOS-a... nema ga vise nigde
![]() ![]() [ peromalosutra @ 08.04.2005. 22:52 ] @
Kao sto znas ja nisam neki programer, u stvari relativno sam nov u tim vodama, pa mozes li komentarisati moje rjesenje passwd-ovog problema i u cemu je prednost tvog. Inace tvoj kod mi je dosta cudan i nisam se ranije sretao sa nekim naredbama, pa ako ti nije tesko mozes li da ga objasnis, siguran sam da bi i
passwd-u to odgovaralo. [ Srki_82 @ 08.04.2005. 23:13 ] @
Ovako... tvoj program radi super ako zelis da proveravas koliko puta je korisnik ukucao neko slovo ili znak... a sta ako treba da se proveri koliko je slova 'a' bilo u nekom strnigu koji se ucitava iz fajla? To tvoj program ne moze da uradi, zar ne?
![]() Procedura koju sam napisao je vrlo jednostavna... koristi funkciju PosEx (nisam bas siguran da je ima u Pascal-u... ima je u Delphi-u) koja vraca redni broj podstring-a u string-u pocevsi sa proverom od odredjenog mesta. Funkcija Pos (postoji i u Pascal-u i u Delphi-u) radi isto sto i PosEx samo sto uvek pocinje od pocetka. Code: function BrojZnakova(AChar: Char; AStr: String): Integer; var I: Integer; begin Result := 0; // Rezultat funkcije je 0 I := 1; // Pocinjemo da trazimo od prvog karaktera while PosEx(AChar, AStr, I) <> 0 do // Ako je PosEx <> 0 nasli smo trazeni karakter begin Inc(Result); // Povecavamo rezultat za jedan jer smo pronasli jedan trazeni karakter I := PosEx(AChar, AStr, I) + 1; // Sledeci put trazimo od mesta za 1 veceg od mesta na kojem smo ovog puta nasli trazeni karakter end; end; To je cela mudrost. Ako u Pascal-u ne postoji PosEx funkcija ovo se moze uraditi i sa obicnom Pos funkcijom Code: function BrojZnakova(AChar: Char; AStr: String): Integer; begin Result := 0; // Rezultat funkcije je 0 while Pos(AChar, AStr) <> 0 do // Ako je Pos <> 0 nasli smo trazeni karakter begin Inc(Result); // Povecavamo rezultat za jedan jer smo pronasli jedan trazeni karakter Delete(AStr, Pos(AChar, AStr), 1); // Brisemo karakter koji smo nasli da ga ne pronadjemo dva puta end; end; Ovako se radi sa Pos komandom... string koji prosledimo funkciji nece biti promenjen jer je AStr ustvari kopija string-a koji dodeljujemo funkciji. Nadam se da je sad sve jasno ![]() [ peromalosutra @ 08.04.2005. 23:26 ] @
Sad mi je dosta jasnije. Ima li smisla da pocnem da aktivno ucim delphi, buduci da je on nastao od paskala i smatram da cu daleko brze da ga naucim od, na primjer, c++. Cuo sam da je c++ za programere obavezan, medjutim je sam samo radio u paskalu i to malo, pa kada sam gledao par programa (jednostavnijih!) napisanih u c++-u uopste nisam mogao da se snadjem. I u cemu je razlika izmedju c++ i c#? Nadam se da nisam skrenuo sa teme, a ako i jesam necu se ljutiti ako ostanem bez odgovora. :)
[ Srki_82 @ 08.04.2005. 23:31 ] @
Da li je obavezan ili ne... ne znam, ali ja ga ipak znam
![]() [ Toyo @ 08.04.2005. 23:55 ] @
Ma za sada ti je dobar i TP, kasnije predji na Delphi. Kada to savladas, prelaz na C++ ce ti biti puuuno laksi. Ja ne vidim potrebu za takve prelaze, posto ti Delphi nudi sve skoro isto kao C++, samo se sintaksa razlikuje (i jos ponesto).
Nego, poradi ti jos malo na tehnici programiranja. Znaci takve trivijalne zadatke kao ovaj gore, ili zadaci tipa obrni string, sortiraj niz mora da savladas u potpunosti, da bi kasnije mogao da pises neke slozenije programe. Sta hocu da ti kazem: Ne mozes da potrcis, ako ne znas ni kako da podignes nogu, i ako celo svoje razmisljanje usmeravas na tako trivijalne stvari. To jednostavno mora da se zna. Pisem tu neki j...ni program i kad se iznerviram virnem pomalo na forum da se opustim. Imas volje za ucenjem i samo tako nastavi. Nemoj da se stidis da trazis pomoc, jos se niko nije rodio a da je sve znao. [ Passwd @ 09.04.2005. 13:52 ] @
Da slazem se,u delphi-ju su napravljene sljedece stvari koje cesto koristim:
-tetris revolution -spybot s&d..... A kad opet pogledamo u c/c++ : -norton antivirus -sami windowsi -adaware -svi vieweri (ppt,word,pdf...)...... Al uzasno me smeta kad se stalno netko sprda s pascalom-kao da je on djecji program, a ne vidim razloga da je losiji od c/c++. Idem sad na c/c++ forum da vidim njihove probleme, a imam je jedno glupo pitanje za njih. Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|