PCPROG.6

25 Sep 1995 - 24 Dec 1999

Topics

  1. algoritmi (449)
  2. baze.podataka (309)
  3. ms.dos (17)
  4. windows (294)
  5. asembler (553)
  6. basic (458)
  7. jezici (42)
  8. pascal (1297)
  9. cccc (522)
  10. cpp (299)
  11. clipper (601)
  12. fox (70)
  13. cavo (14)
  14. delphi (1130)
  15. java (100)
  16. razno (776)
  17. unknown (127)

Messages - pascal

pascal.409 supers, -> #398, postmast
>> Ima li neko gotov algoritam za konverziju rimskih brojeva u >> decimalne brojeve ? Ili bar za proveru (tj. da li je broj ispravan Imam u jednoj knjizi nekoliko takvih gotovih programa, pisanih u Spectrumovom Basicu :) Ako ti to nije problem, podseti me naknadno da ti prekucam, sada zbilja nemam vremena...
pascal.410 zeljkoj, -> #404, iznogud
> Jedno malo pitanjce: ti, recimo, ne voliš da pišeš 'option > explicit' na početku programa. I negde u programu umesto > MikaPeraLaza napišeš MkaPeraLaza (dakle, pogrešno ime > promenljive). BASIC shvati da hoćeš da koristiš novu > promenljivu, i dodeli joj 0 (default). Rezultat: ti se ubiješ > tražeći grešku u programu (program ti ne računa dobro). Da, znam da se ovakve greške teško otklanjaju, ali malo pažnje pri pisanju imena promenljivih rešava problem. :) > Možda ipak ima razloga za eksplicitnu deklaraciju? Na kraju > krajeva, u svoj novijoj literaturi za BASIC (tj. njegovog > vizuelnog burazera) se programeri usmeravaju da zaborave > atavizam zvan 'nedeklarisanje promenljivih'... Pa dobro... nravno da je lakše kad kompajler upozorava na pogrešno napisano (nedeklarisano) ime promenljive.
pascal.411 kuki, -> #407, vitez.koja
># => Ovo je najbrže rešenje koje znam :) > I koliko vidim netačno za n=1 :) Kako netačno? Pa vratiće true (zar ne)?
pascal.412 dvesic, -> #407, vitez.koja
>># => Ovo je najbrže rešenje koje znam :) >> >> I koliko vidim netačno za n=1 :) Kako bre netačno ? Jedino sad da se svađamo oko toga jeste li 1 prost ili ne :)
pascal.413 visnja, -> #400, postmast
> Pa moze i sa magnetnom iglom :))) Dabome, pa namagnetises glavu drajva i unistis klijentu stotinak disketa i sam drajv pa onda on tebi razbije glavu... :))))
pascal.414 mastermind, -> #412, dvesic
ă─> Kako bre netačno ? Jedino sad da se svađamo oko toga jeste li ă─> 1 prost ili ne :) jedinica nije ni prost ni složen broj.prost broj se definiše kao broj koji ima samo 2 delioca , jedinicu i samog sebe, a složen ima još delioca. a jedinica nema dva delioca. MasterMind
pascal.415 postmast,
From: igor.grahek@panon.ns.ac.yu (Igor Grahek) Subject: Re: Delphi Date: Sun, 3 Dec 1995 10:43:00 GMT N> From: "Nebojsa Lazic" <nlazic@sezam.UUCP> N> ali Delphi moze i mnogo vise, nevezano za baze. Najtacnije bi bilo reci N> da je to zapravo Borland Pascal 8.0 + BDE + gomila klasa za rad sa svim N> i svacim (pocev od INI datoteka, pa do pisanja client/server aplikacija Osim klasa za serijsku komunikaciju :( Sto je uostalom Borlandov obicaj. I.G.or --- ■ SPEED 1.30 #256 ■ Dok se saberem ja se oduzmem
pascal.416 postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic) Subject: Re: pascal Date: Mon, 27 Nov 1995 17:06:00 GMT --> dr.urbano@sezam DR> Dakle moze li se nesto sakriti u bad sector originalne diskete i kasnije DR> koristiti ? Znas sta je zgodno za zastitu? Formatiras jednu traku viska i tu upises podatke: Ako disketa ima 80 traka ti formatiras 81. i u upises nesto sto ces koristiti. Ovo prezivljava i stari dobri COPYIIPC; svojevremeno sam se pucao svojom genijalnoscu... :)) Samo imas jedan problem -- ovo vise nije pouzdana zastita, jer sad dosta ljudi zna za to. ;)
pascal.417 postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic) Subject: Re: pascal Date: Mon, 27 Nov 1995 17:09:00 GMT --> "Vladimir Maric" <vitez.koja@sezam.UUCP> VI> Logicki izrazi tipa "X in ['a'..'z']" su (mnogo?) sporiji nego VI> pesacko ispitivanje "if X>='a' and X<='z'", ali nema ni to veze. I 'x>y and r<i' je logicki izraz. I nije mnooogo brzi, ali je necitak.
pascal.418 postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic) Subject: Re: swap Date: Mon, 27 Nov 1995 17:15:00 GMT --> broker@setnet.co.yu (Predrag Supurovic) PS> Ima li neko kakav fin unit za swap u DOS shell? Ako ti treba malo memorije sasvim fino resenje je da uradis BlockWrite po redu sve dinamicki alocirane promenljive i da ih sa free oslobodis. Inverzna operacija ide nakon shella. Cirka 20-30 linija koda.
pascal.419 postmast,
From: nemesis@styx.bc.co.yu (NEMESIS) Subject: RE: PASCAL Date: Sun, 03 Dec 95 17:38:00 +0100 Ne>> UZMESH I IZBUSIS DISKETU BUSILICOM NA NEKOM MESTU ! ---> Istim su se zanimali Sezamovci pre par godina i shvatili su da busilica ---> nije potrebna - dovoljno je samo malo bocnuti iglom, ako ne zelite ---> MNOOOOOGO losih sektora :). Sad sam se setio .. :)) mada NEPOSTOJI IDELNA ZASTITA :)) ---> ... XjhgwaduiwueoqimnBDDDDKJSBMN! <--Tag created on Pentium Posle 6 sati ppogadjanja ;)) ┌────────────────────────────────────────────────────────────────────Ě │/\■/\ .:NemesiS:. /\■/\ S.T.Y.X BBS /\■/\ ║ │ / > NEMESIS@STYX.BC.CO.YU >:[­] / \ 011\444-95-22 - 22-06 < \ ║ ď════════════════════════════════════════════════════════════════════╝ ... /\ S.T.Y.X BBS /\ 011\444-95-22 /\ 22-06 /\ * ■ >:[­] NemesiS ■
pascal.420 postmast,
From: mladen.adamovic@blbbs.elf.bl.ac.yu (MLADEN ADAMOVIC) Subject: Re: Zadatak Date: Mon, 04 Dec 95 08:28:00 -1 -+=+- Dusan Lacarac rece : -+=+- DL> NAPISATI FUNKCIJU PROST KOJA VRACA LOGICKU UREDNOST TROU AKO JE BROJ DL> PROST ODNOSNO FOLS AKO JE BROJ SLOZEN!!! Evo ovako, napamet pa se ti posle... snalazi da ispravis eventualne greske (ne programiram u pascalu, no ovde ti je bitan algoritam ;>). funktion prost ( broj : integer) : boolean; var i : integer; begin prost:=TRUE; for i:=1 to sqrt(broj)+1 do if broj mod i = 0 then prost:=FALSE; end; ... Isla dva coveka i naidju na drugog.Znaci isli su prvi i treci. ___ Blue Wave/QWK v2.12
pascal.421 postmast,
From: nick@setnet.co.yu (Nikola Sivacki) Subject: arrow <-> char Date: Sun, 03 Dec 1995 21:51:01 Zna li neka dobra dusa da mi kaze kako je moguce koristiti strelice ili recimo, f. tastere, uz readkey? ASCII strelice na dole je #00 #80, ali tako nesto ne pali! Ne moze da se koristi kao karakter...:( --== NCK ==-- /SBHS/VBC/ * ■ NICKRead ■ * Guns don't kill people, it's the bullets. Guns get them goi * Origin: <-=SCORPION=-> * Bgd * 011-699-784 * 22-07 * SetNet: (38:103/136)
pascal.422 postmast,
From: Miroslav.Minovic%f133.n103.z38@setnet.setnet.co.yu (Miroslav Minovic) Subject: Re: delphi knjiga Date: Sun, 03 Dec 1995 11:50:00 KA> izdanju CIP-a izassla knjiga za Delphi. Molio bih KA> one koje znaju da mi kazzu koliko kossta ova knjiga Knjigu sam na sajmu platio 50 din,a cena je verovatno nesto veca ako je kupis u knjizari. Inace imas je u CET biblioteci : CET Computer Shop Skadarska 45,Beograd tel./fax : 343 - 043 KA> Ako neko vecc ima ovu knjigu voleo bih da ccujem i komentar KA> u ovoj ili nekoj drugoj odgovarajuccoj konferenciji. Inace knjiga je dobra kao uvod,ali je potpuno normalno da se u jednoj knjizici ne moze opisati ceo Delphi tako da i dalje >>Akrobat rider<< sa .pdf fajlovima koji se dobijaju uz Delphi ostaje najbolja knjiga(ako znas engleski). Pozdrav,Mindza. ... All I need is a Wave and a board to surf it on. * Origin: SETNet * BBS Politika, Bgd * +381 11 3229148 * 0-24 (38:103/133)
pascal.423 jablan, -> #409, supers
>>> Ima li neko gotov algoritam za konverziju rimskih brojeva u >>> decimalne brojeve ? Ili bar za proveru (tj. da li je broj >>> ispravan Hm, ja imam ignore na postmaster, al videh ovu poruku, pa rekoh da pomognem:). Evo, u turbo paskalu. Valjda radi. {Roman->Decimal numbers conversion} {Mladen Jablanovic, 7. Nov 1995.} {$S-} program Roman; function GetValue(C:char):integer; begin case C of 'M':GetValue:=1000; 'D':GetValue:=500; 'C':GetValue:=100; 'L':GetValue:=50; 'X':GetValue:=10; 'V':GetValue:=5; 'I':GetValue:=1; end; end; function Convert(Rom:String):integer; var K,i,Pos:integer; begin if Length(Rom)=0 then Convert:=0 else if Length(Rom)=1 then Convert:=GetValue(Rom[1]) else begin K:=1; for i:=0 to Length(Rom) do IF GetValue(Rom[i])>K then begin K:=GetValue(Rom[i]); Pos:=i; end; Convert:=GetValue(Rom[Pos])- Convert(Copy(Rom,1,Pos-1))+ Convert(Copy(Rom,Pos+1,Length(Rom)-Pos)); end; end; begin WriteLn(Convert(ParamStr(1))); end.
pascal.424 dpredovic, -> #335, iznogud
> :: Opet, u Delphiju šabloni nisu niti potrebni. Sve klase imaju zajednički > :: koren, pa se sve svodi na običan type-cast. > > A šta ako tvoj objekat treba da bude, recimo, generički kontejner za > sve ostale vrste objekata, pa i onih koji nisu izvorno Delfijevi? Hoće > li i onda da pali type-cast? Jesi li ti nekad koristio šablone? > Ne, ne - _svi_ objekti u Delphi-ju _moraju_ da imaju zajednički koren. Postoji generička klasa TObject, i ako se ne navede klasa roditelj, podrazumeva se ona. Inače, šablone sam oduvek mrzeo. Oni su vrlo očit primer rešavanja problema nastalih u dizajnu jezika metodom grube sile. > :: BTW, misliš da će standardizacija C++ da pomogne silnim OWL programerima > :: kada Borland pukne? > > A kakve veze ima standardizacija jezika za programiranjem pod > Windows-ima? Ako nekom tu treba standard, onda neka uzme MFC - bar tri > kompajlera (BTW, sva tri prave bolji kod od Borlandovog) podržava MFC. Hteo sam da kažem da ako Borland ode pod led, ja sa svojim Delphi programima neću imati ništa više problema od prosečnog OWL programera. OWL ovde uzimam ne kao primer win programiranja, nego kao primer _komplikovanih_ iliti ne- trivijalnih programa. Jes da je C++ standardizovan kao jezik, ali što se tiče biblioteka... Kuku lele... A tek biblioteke klasa... Kuku lele ** 2... > Standardizacija će da pomogne kod prenošenja programa sa platforme na > platformu, i sa kompajlera na kompajler - džaba meni što (recimo) Nešto ne primećujem da se to i dešava u realnom svetu. Ljudima obično kosa osedi portujući GNU<->MSC ili Borland<->Watcom. Da ne govorimo da ni dva UNIX-a nisu sors kompatibilna, a kamoli DOS<->UNIX ili MAC<->VMS.
pascal.425 dpredovic, -> #339, oper
>>> Exceptions i RTTI postoje i u pascalu. Doduše ne zove se BP8 >>> nego Delphi, ali to ne bi trebalo da ima veze. > > Exceptions & RTTI ne postoje u pascalu, već u Delphi-ju. Ni > jedan drugi kompajler ih ne podržava. Kod c++ kompajlera, > stvar je sasvim drugačija. Mada, sve ovo i nema veze, ako u Eh, sad... I paket BC4.5 može da se zove Mika, pa će jezik opet da bude C++. Delphi jeste ime paketa, ali jezik je Object Pascal. >>> Opet, u Delphiju šabloni nisu niti potrebni. Sve klase imaju >>> zajednički koren, pa se sve svodi na običan type-cast. > void main(void) > š > Erej<int> niz_intova(5); > Erej<char*> niz_stringova(10); > ć > > žini mi se da ovo, ipak, nije moguće? Postoji generički TList, koji drži Items pointere. Postoji i TStringList. Ovo je bio blaži način da se kaže da ne može ;) Ne može, ali u najvećem broju slučajeva i ne treba. Ono što je najčešće potrebno i moguće je isto to, ali sa klasama. U stvari ne mogu da se setim da mi je ikada bila potre- bna lista klot integera. Lista stringova ajde de, ali lista integera?
pascal.426 dpredovic, -> #342, maksa
>>> Exceptions i RTTI postoje i u pascalu. >>> Doduše ne zove se BP8 nego Delphi, > > Koliko sam shvatio iz Borlandove reklamne kampanje, ("VB Killer", > tako beše?) Delphi je pandan Visual Basic-u, a po onome što čitam vidim > da su i po performansama (kompajliranje i izvršavanje) tu negde. Upravu si 50%. Što se tiče kompajliranja tu su negde, a što se tiče izvrša- vanja ni blizu... Ne znam koje si to testove gledao? > Mogu da se napišu C++ klase sa izuzecima, šablonima i RTTI-jem > za bilo kakvu konkretnu (inžinjersku, naučnu, knjigovodstvenu ... ) > primenu, koje će da rade pod DOS-om (uz malo zezanja i kompromisa i > pod nekim Unix-om) i da se po potrebi presade u Windows ili na Mac-a, > ali *ne može* da se napravi Paskal ekvivalent koji obezbeđuje sve te > lepe nove konstrukcije, a da trči pod oba (ili sva tri) okruženja. Na Mogu da se urade C++ klase sa RTTI, pod uslovom da ciljni kompajler nije MSC, koji je ujedno jedini na DOS platformi za kojeg se pouzdano zna da neće da pukne. ;) Što potvrđuje prednost implementacije nad standardom. ;) >>> Opet, u Delphiju šabloni nisu niti potrebni. Sve klase imaju >>> zajednički koren, pa se sve svodi na običan type-cast. > > Ovako od ove jedne rečenice se ne čini da je to mehanizam koji > potpuno zamenjuje šablone. Ako bi bio voljan da to malo razjasniš? Dobro, dobro... Već sam priznao da to nije _baš_ to... :) Ali... Ne verujem da firma koja ume da ugradi template mehanizam u C++ (onako kako je to zamislio tamo neki šveđanin) ne ume to da uradi u jeziku koji može da krpi kako kod hoće. Object Pascal je Pascal sa C++-like extenzijama. Sve je tu: private, protected, public, konstruktori, destruktori, etc., etc. ... Prosto - Borland je od C++ pokupio sve što mu se dopadalo i "prepisao" to u pascal. Ono što im se nije dopalo, i što guši i u samom C++u nisu preneli. >>> kod definicije jezika, koliko je C++ trebalo godina da dobije >>> sve te lepe stvari sa početka poruke? > > Mnogo manje (duplo) nego Wirth-ovom Paskalu. ;) Da ga je razvijao samo jedan čovek (kao C++) ihaaaj, gde bi bio... >>> BTW, misliš da će standardizacija C++ da pomogne silnim OWL >>> programerima kada Borland pukne? > > OWL programerima najbolje može da pomogne munjevito šaltanje na MFC, > što bi im garantovalo lep život na trenutno tri kompajlera. Ako neko > paranoično (ovo nije ništa loše, nemirna su vremena) ne veruje ni u Kao i Delphi programerima. Ali teško da bi im to garantovalo lep život ;)
pascal.427 vitez.koja, -> #411, kuki
#=>> I koliko vidim netačno za n=1 :) #=> Kako netačno? Pa vratiće true (zar ne)? Pa kažem netačno :) Dakle, jedan nije prost broj. sk ps. A nisu ni negativni brojevi, ali nema veze :)
pascal.428 iznogud, -> #424, dpredovic
:: Ne, ne - _svi_ objekti u Delphi-ju _moraju_ da imaju zajednički koren. :: Postoji generička klasa TObject, i ako se ne navede klasa roditelj, :: podrazumeva se ona. žekaj? žak i osnovni tipovi, recimo integer? U, ala su ga napravili, svaka im čast. I kako se pomoću te fantomske klase TObject izbegava upotreba šablona? Pomoću type-casta? Pa u čemu je onda razlika u odnosu na ono što pomenuh, tj. da se u C/C++ isto može postići pokazivačima na void i takođe type-castom? Koliko ja vidim, čak ni jedinstvena bazna klasa ti ne može dati neke stvari koje ti šabloni daju - npr. da kontejner zna sam da dinamički alocira prostor potreban za smeštanje objekta. :: Inače, šablone sam oduvek mrzeo. Oni su vrlo očit primer rešavanja :: problema nastalih u dizajnu jezika metodom grube sile. Imaš pravo da ih mrziš, ali ostatak konstatacije je malo... napamet. Meni lično su šabloni pomogli da rešim stvari za koje sam ranije morao da potežem pretprocesor. Ne vidim šta je tu glupo, i kako bi se drugačije uradilo. :: Hteo sam da kažem da ako Borland ode pod led, ja sa svojim Delphi :: programima neću imati ništa više problema od prosečnog OWL programera. I OWL programer i ti imate isti problem: vezani ste za Borland. Ostatak sveta koristi MFC. Što se biblioteka za C++ tiče, ANSI/ISO standard je propisao kako izgledaju sve standardne biblioteke klasa - kao što na svakom C kompajeru možeš da napišeš '#include <stdio.h>', tako ćeš za neko vreme (čim se standard primi) moći da upotrebljavaš standardne klase za stringove, matrice ili kontejnere na bilo kom C++ kompajleru. U tome je prednost standardizovanih jezika. PS Raspitaj se malo: postoje biblioteke za razvijanje aplikacija koje će raditi pod Win, X Win i Mac sistemima. Napišeš kod, i prekompajliraš.Možeš jednom da pogađaš u kom su jeziku pravljene.
pascal.429 iznogud, -> #425, dpredovic
:: Postoji generički TList, koji drži Items pointere. Postoji i :: TStringList. Ovo je bio blaži način da se kaže da ne može ;) Ne može, :: ali u najvećem broju slučajeva i ne treba. Ovako se sve može dokazati, samo kažeš 'to što nema i ne treba mi' ;) U praksi je vrlo često potrebna lista integera koja može da raste prema potrebi. Probaj da elegantno rešiš sledeći problem: treba napraviti sortiranu listu, a instance te liste ćeš kasnije koristiti za smeštanje stringova, integera, objekte klase koje ćeš napisati za dve godine, kao i instance same liste (uslov za sortiranje će biti broj objekata u kontejneru). Ako je moguće, takav kontejner bi mi trebao i na Unix-u, kao i na OS/2 i WinNT za razne procesore (dakle, treba da radi na GNU C++, MSVC i BC++). Ili se ni ovo nikada ne javlja u praksi? ;)
pascal.430 iznogud, -> #426, dpredovic
:: Mogu da se urade C++ klase sa RTTI, pod uslovom da ciljni kompajler nije :: MSC, koji je ujedno jedini na DOS platformi za kojeg se pouzdano zna da :: neće da pukne. ;) Što potvrđuje prednost implementacije nad standardom. :: ;) MSVC 2.1 podržava RTTI. BTW, odakle ti informacija da 'samo MSC neće da pukne'? Ljudi se žale na, recimo, brzinu koda optimizovanog BC++, ali vrlo retko na njegovu pouzdanost. O Watcomu neću ni da pričam, nešto ne vidim da OS/2 ili Auto CAD 'pucaju'.
pascal.431 oper, -> #425, dpredovic
>> > Exceptions & RTTI ne postoje u pascalu, već u Delphi-ju. Ni >> > jedan drugi kompajler ih ne podržava. Kod c++ kompajlera, >> > stvar je sasvim drugačija. Mada, sve ovo i nema veze, ako u >> >> Eh, sad... I paket BC4.5 može da se zove Mika, pa će jezik opet da >> bude C++. Delphi jeste ime paketa, ali jezik je Object Pascal. To sam i ja rekao. Ako (što reče Maksa) pukne Borland, ja ću da pređem na majkrosoftov ili vatkomov ili xyzov kompajler i imaću i RTTI i šablone i sve. A koliko firmi pravi kompajlere za Object Pascal? >> Postoji generički TList, koji drži Items pointere. Postoji i >> TStringList. Ovo je bio blaži način da se kaže da ne može ;) Ne >> može, ali u najvećem broju slučajeva i ne treba. Ja volim da je tu. 'leba ne jede ;) Imao sam priliku da probam Delphi ovih dana. Pošto se bakćem sa nekim paradox tabelama (koristio sam Paradox Engine uz BC) odlučio sam da pokušam da neke delove paketa uradim u Delphiju. Uradio sam ih i cijenim da bi mi za isti posao u kombinaciji C + OWL + Paradox Engine trebalo tri puta više vremena. A sa paskalom se nisam družio par godina. Samo, to su ipak prosti poslovi i mali program. Već pri tom broju, problem je da se snalaziš u svim onim prozorima. Koliko Borlandovom C++ u nedostaju vizuelni alati, toliko Delphiju nedostaju mehanizmi za rad sa većim projektima.
pascal.432 ognjen, -> #414, mastermind
)-> a jedinica nema dva delioca. Jedinica ima dva delioca: Jedinicu i samu sebe. Ekvivalentno kao što neke kvadratne imaju dva, _ista_, ali i dalje dva, rešenja.
pascal.433 mastermind, -> #432, ognjen
ă─> Jedinica ima dva delioca: Jedinicu i samu sebe. Ekvivalentno ă─> kao što neke kvadratne imaju dva, _ista_, ali i dalje dva, ă─> rešenja. Treba da ima 2 različita delioca.... uostalom, pitaj profesora analize, on će ti objasniti to bolje. MasterMind
pascal.434 mmitrovic, -> #364, djelovic
::::: Netačno. Stringovi terminisani nulom su realizovani sasvim standardnim ::::: Pascal konstrukcijama. PString nije ništa drugo do ^char. Mala ispravka, da ne bude zabune: null-terminated stringovi su tipa PChar=^Char, a PString je ^String što predstavlja standardni Paskal string.
pascal.435 mmitrovic, -> #265, jablan
::::: Hm, kao što sam rekao, trudio sam se da poštujem ISO Pascal (mada ::::: nisam u potpunosti uspeo), tako da nisam želeo da koristim ove ::::: nestandardne hibridne ekstenzije. Da budemo precizni, i nisi uspeo. Tvoj program se zasniva na tome da je buff tipa String. Standardni paskal nema taj tip već mora da se koristi buff: PACKED ARRAY [1..???] of CHAR; Samim tim otpada upotreba Length funkcije (koja je takođe hibridna kvazi-funkcija. Kvazi je zato što se Length(buff) ne prevodi kao poziv već kao ord(buff[0]) ). Morao bi da izmišljaš mehanizam za prepoznavanje dužine stringa (ili da simuliraš C ili borland paskal sistem stringova). ::::: E, ja mislim na standarni paskal, jer Borland paskal ne liči više na ::::: paskal, i smatram da nije dostojan da nosi to ime. Standardan paskal, ::::: inače, nije za drugo, sem za edukativne svrhe, jer šta će ti paskal ::::: bez raznih 'uses-a' i sličnih poštapalica? Ako Borland Paskal nije paskal, šta je onda? Sve programe koji rade na Turbo Paskalu 3.0 (zadnja verzija koja je kompletno "standardna") prevodi i BP7.0. žak i one koji koriste Turtle graphics ;) Niko tebe ne bije po ušima da koristiš Uses i slične "poštapalice", ali se time lišavaš mnogih prednosti. BTW, packed array of char postoji i na BP7.0. Ako ćemo tim putem, onda ni današnji bejzici nisu bejzici (fuj, pr.aut.), C++ nije C, FORTRAN 90 nije FORTRAN. Po tome, mi bismo svi trebali da pišemo programe u COBOL-u (ne mogu da verujem da ovo još predaju na FON-u, zajebali ljude i uvalili im ovaj šit umesto C++-a :))), jerbo on još "živi" u originalnoj formi. Zastarele stvari se i zovu zastarele zato što postoje bolje i novije. ::::: Lično mislim da je paskal idealan za učenje programiranja, a da ::::: kasnije, kada se dobro ispeče zanat, treba preći na neki moćniji ::::: jezik, tj. C ili Modulu-2. To je definitivno tačno. Mnogo ljudi se lako zapetlja u svoj ego i kažu sebi: "Ja sve mogu da držim u glavi" i onda krenu sa programiranjem od C-a. Ne kažem da je to loš put (uzeti C), ali je loš izbor uz prethodno tvrđenje. Onda krenu sa pisanjem do bola prljavih programa, jer su oni zaboga hakeri, pa posle ni oni sami ne znaju šta su napisali. Sem par ljudi koje sam imao čast da upoznam i koji stvarno sve drže u glavi, ostali samo prave sebi probleme. Jedan moj ortak je počeo sa C-om i ništa mu nije radilo kako treba, pa sam mu predložio da privremeno pređe na paskal. Mesec dana je huktao kako stalno mora da kuca one glupe rezervisane reči, ali su kroz par meseci, kada se vratio na C, svi njegovi programi počeli da rade. A i bilo ih je moguće pročitati. Sa druge strane, teško mogu da se složim da je "standardni" paskal idealan za učenje programiranja. Nedostatak gomile potrebnih tipova i komandi samo otežava rad i predstavlja probleme pri prelasku na novije alatke. Po meni učenje bi trebalo početi od TP5.0 (neverovatno, al još ga čuvam na 4 prašnjave 5.25"DD disete :)) pošto je dovoljno komforan da ti ne presedne rad, a dovoljno striktan da te natera da naučiš da programiraš čisto. Lakše je pretvoriti (sad pričam o C-u): a = 120; b = pow10(a/16); a++; c = ln(a+6*b) a = c-b; u a=(c=ln((a++)+6*(b=pow10((a=120)/16)))-b; nego obratno, zar ne? ;) ::::: neko voli ovo...':). I ja, kao i ti, više volim paskal, ali ću i ja ::::: verovatno preći na C(++), zato što se u poslednje vreme prave moćniji ::::: kompajleri i neke stvari se mnogo brže završe. Ja sam pre mesec dana prešao da ozbiljno radim na C++ i počeo od verzije 4.02 (prva verzija C++ u kojoj nisam morao da se maltretiram oko održavanja projekta). Sam jezik je boza, ali je OWL noćna mora u odnosu na BP-ov OWL (kako su mi neki C++ ljudi obasnili, postoji velika razlika i između ovog OWL-a i onog iz C++3.1). Trebalo mi je mesec dana da iskopam ko tu šta pije a ko plaća. Da ne pominjem do koje je mere iskomplikovano strimovanje objekata (koje je u BP-u bilo boza). Ni dan danas ne znam kako da u C++ kreiram objekat sa diska (prethodno snimljenog preko stream-a). Da ne pominjem event-response tabele i misterije tipa "kako on dodjavola zna koji metod da pozove?!?" :) Dakle, neke stvari se brže završe (manje koda se ukucava za neke stvari zbog proširene sintakse C jezika), ali su neke stvari iskomplikovane bez potrebe). Najviše me nervira što ne moga da kreiram instancu pure-virtual klase čak iako znam da pure-virtualne metode ne bivaju pozivane. Nego moram da nasleđujem i ostavljam prazne funkcije.
pascal.436 mmitrovic, -> #399, postmast
::::: Bilo nekad. Od verzije 7.0 optimizovan je rad sa setovima. Samo ako je skup neprekidan (npr. X in [1..5]). Kad se radi o uniji više "podskupova" (npr X in [1..5,8..13]) višestruki if je brži.
pascal.437 nbatocanin, -> #424, dpredovic
>> Standardizacija će da pomogne kod prenošenja programa sa >> platforme na platformu, i sa kompajlera na kompajler - > džaba meni što (recimo) > > Nešto ne primećujem da se to i dešava u realnom svetu. > Ljudima obično kosa osedi portujući GNU<->MSC ili > Borland<->Watcom. Samo da potvrdim ovo. Mada se dosta govori o multiplatformskim kompajlerima i portabilnosti jezika, veoma malo toga se zaista i koristi. Šta mi vredi što je jezik isti i za DOS i za Win, kad moram potpuno da menjam filozofiju programa i korisničkog interfejsa.
pascal.438 dpredovic, -> #428, iznogud
> :: Inače, šablone sam oduvek mrzeo. Oni su vrlo očit primer rešavanja > :: problema nastalih u dizajnu jezika metodom grube sile. > > Imaš pravo da ih mrziš, ali ostatak konstatacije je malo... napamet. Hoćeš nećeš, tako je. Šabloni su posledica toga da C++ nema zajednički koren klase, i da su svi tipovi nisu baš ravnopravni pa int i nije baš isto što i MojInt. Prvo je ladno moglo da se reši na način kako je to rešeno u Delphiju, a drugo je posledica toga da je C++ nastao kao C pretprocesor. BTW, kada se standard za klase primi, da li će da se menja i MFC? Ako hoće, šta će da se radi sa silnim matorim programima i svim silnim string/kontejner klasama? QQ... Ko će to da prepiše... ;)
pascal.439 dpredovic, -> #430, iznogud
> :: Mogu da se urade C++ klase sa RTTI, pod uslovom da ciljni kompajler nije > :: MSC, koji je ujedno jedini na DOS platformi za kojeg se pouzdano zna da > :: neće da pukne. ;) Što potvrđuje prednost implementacije nad standardom. > :: ;) > > MSVC 2.1 podržava RTTI. > VC 2.1? Za to verovatno treba NT sa 64 mega rama i pojede jedno pola mega diska? > BTW, odakle ti informacija da 'samo MSC neće da pukne'? Ljudi se žale > na, recimo, brzinu koda optimizovanog BC++, ali vrlo retko na njegovu > pouzdanost. Mislio sam na finansijsko pucanje, a što se tiče pouzdanosti Borlanda... Bolje da ne pričamo o tome...
pascal.440 dpredovic, -> #429, iznogud
> Probaj da elegantno rešiš sledeći problem: treba napraviti sortiranu > listu, a instance te liste ćeš kasnije koristiti za smeštanje > stringova, integera, objekte klase koje ćeš napisati za dve godine, > kao i instance same liste (uslov za sortiranje će biti broj objekata u > kontejneru). > > Ako je moguće, takav kontejner bi mi trebao i na Unix-u, kao i na OS/2 > i WinNT za razne procesore (dakle, treba da radi na GNU C++, MSVC i > BC++). > > Ili se ni ovo nikada ne javlja u praksi? ;) Elegantno rešenje tog problema je: uzmi C++ i delji. Problem je u tome što je taj problem toliko apstraktan da za _mene_ njegovo rešavanje nije od nikakvog interesa. Ne znam nikoga kome mogu da prodam ono što radim a kome je bitno portovanje na Unix ili Mac ili OS/2. Uostalom ljudi koji kupuju moje programe radiće pod onim OS-om pod kojim ja kažem da treba da rade - da znam neki lep alat za OS/2 radili bi pod njim, a pošto ne znam - radiće pod Win31/Win95, a programi će da budu u Delphiju/ WatcomSQL/Oracle 7. Da ne dužimo: ako su šabloni i Borlandova nepredvidiva budućnost jedina prednost C++ nad Delphijem, onda taj C++ i nije baš nešto naročito ;)
pascal.441 dpredovic, -> #431, oper
> To sam i ja rekao. Ako (što reče Maksa) pukne Borland, ja ću > da pređem na majkrosoftov ili vatkomov ili xyzov kompajler i > imaću i RTTI i šablone i sve. A koliko firmi pravi kompajlere > za Object Pascal? Tjah... Kada pukne Borland ja ću još neko vreme da prodajem Delphiće, a onda ću da gledam šta ću... Verovatno PowerBuilder ili SQLWindows, možda čak i VB4. Sve će da zavisi od Win95 verzija alata.
pascal.442 spantic, -> #439, dpredovic
> VC 2.1? Za to verovatno treba NT sa 64 mega rama i pojede jedno pola mega > diska? Radi odlično i pod Windows 95 sa 16 MB (radilo je i sa 8 MB, ali i sam W95 štuca sa istom količinom memorije). Zauzima u punoj instalaciji oko 100 MB na disku.
pascal.443 .sima, -> #420, postmast
RE: Prost broj ║║ funktion prost ( broj : integer) : boolean; ║║ var i : integer; ║║ begin ║║ prost:=TRUE; ║║ for i:=1 to sqrt(broj)+1 do ║║ if broj mod i = 0 then prost:=FALSE; ║║ end; Ovo je sporo, jer nepotrebno ispituje za parne i svake treće neparne brojeve. Ispitivanje treba da bude za 2 i 3 pa onda za 5,7,11,13,17... To se dobija tako što se postavi korak:=2, pa se od 5 proba i dodaje korak. Korak se u svakoj iteraciji izračunava sa korak:=6-korak. Mislim da je neko već dao ranije ovo rešenje. Pored ovog postoje i razni drugi algoritmi.
pascal.444 iznogud, -> #438, dpredovic
:: BTW, kada se standard za klase primi, da li će da se menja i MFC? Ako :: hoće, šta će da se radi sa silnim matorim programima i svim silnim :: string/kontejner klasama? QQ... Ko će to da prepiše... ;) To je cena standardizacije. Verovatno će se uraditi ono što je uradio i Borland sa svojim kontejnerskim klasama kada su se pojavili šabloni: napravili su BIDS, koji može da emulira staru biblioteku, a ostavili su i staru bibilioteku, radi kompatibilnosti, uz preporuku da je više niko ne koristi. Isto se desilo i kada je promovisan ANSI C, a većina programa je radila na K&R C-u... BTW, ja bih voleo da MS malo više poradi na MFC-u, i da ga uklopi u nove standarde jezika. Kod OWL-a mi se svidela robustnost: čak i na Win 3.1, program je vrlo retko pucao 'namrtvo'. Obično bi se javljao neki izuzetak, kulturno me obaveštavajući da sam uradio nešto nedozvoljeno. Poslednji MFC koji sam gledao (MSVC 1.5) nije to imao.
pascal.445 iznogud, -> #439, dpredovic
:: VC 2.1? Za to verovatno treba NT sa 64 mega rama i pojede jedno pola :: mega diska? Oh, da... Prvo nema, pa ako nema onda mi i ne treba, a ako mi treba onda je glupo, a ako nije glupo onda je mnogo zahtevno... 486DX4 + 16MB RAM košta negde oko 2500 - 3000 DEM... Ne mislim da je to mnogo za mašinu od koje se živi. Uopšte, problem sa programiranjem kod nas je mišljenje da to svako može da radi, i da kompajler mora da radi na _svakoj_ mašini. Pogledaj CAD-ovce - kada se poslednji put neko požalio što AutoCAD neće da radi kako treba bez 32 Mb memorije? Ljudi su shvatili šta znači izreka 'plati pa klati', što programerima izgleda nije jasno. Ili su to 'programeri'? Sebe smatram hobistom, tj. nekim ko ne živi od programiranja. Kada budem rešio da živim od programiranja, kupiću kompajler koji mi treba, pogledati šta na kutiji piše, koja je mašina za njega potrebna, i kupiti tu mašinu - ta šta je 3000 DEM ako ću da je isplatim već od prvog programa, zar ne? ;)
pascal.446 iznogud, -> #440, dpredovic
:: Da ne dužimo: ako su šabloni i Borlandova nepredvidiva budućnost jedina :: prednost C++ nad Delphijem, onda taj C++ i nije baš nešto naročito ;) K'o što sam ja rekao, a ti zaboravio, C++ je standardizovan jezik. To tebi, očigledno, ne znači mnogo, a meni znači (razlika u ukusima). Između ostalog i zbog toga što je to standardni jezik za programiranje pod Win / OS/2 / Unix-om, tako da je sva literatura pisana za C/C++. Ja, eto, volim da isprobavam razne stvari, pa se osećam nelagodno kad mi je na kompjuteru OS za koji nemam kompajler ;) Što se tiče Delphi vs C++, tu je malo neukusno raspravljati, pošto je Delphi C++ nakarikan na pascal sintaksu, onako kako to Borland vidi. U toj situaciji ja se ipak odlučujem za C++, pošto mi se više sviđa osnova jezika - C je jezik koji je pisao programer za programere, dok je pascal jezik koji je pisao profesor za svoje učenike... Clear?
pascal.447 jablan, -> #437, nbatocanin
> koristi. Šta mi vredi što je jezik isti i za DOS i za Win, kad > moram potpuno da menjam filozofiju programa i korisničkog > interfejsa. Encapsulation, my dear Watson...
pascal.448 djelovic, -> #424, dpredovic
> Inače, šablone sam oduvek mrzeo. Oni su vrlo očit primer rešavanja problema > nastalih u dizajnu jezika metodom grube sile. Zašto? Jedini problem sa šablonima jesto to što prave po jednu konkretnu klasu za svaki tip podataka za koji se koriste, ali ne vidim kako pobeći od toga sa čvrsto tipiziranim jezikom? Alternativa tome su stalni cast-ovi, koji bi sa programerskog gledišta bili užasni. > Jes da je C++ standardizovan kao jezik, ali što se tiče > biblioteka... Kuku lele... A tek biblioteke klasa... Kuku lele ** 2... ANSI standard za C++ koji se upravo završava ima sasvim standardizovanu biblioteku klasa za razne poslove. A što se tiče biblioteka za korisnički interfejs, pa tu se samo treba odvojiti od nekog proizvođača: ZINC, XVT++ i drugi nude portabilnost na Motif, Mac-a, text mod, VMS i tako dalje, a čak i sam MFC je prenet na Alfu i na Mac.
pascal.449 djelovic, -> #444, iznogud
> BTW, ja bih voleo da MS malo više poradi na MFC-u, i da ga uklopi u > nove standarde jezika. Kod OWL-a mi se svidela robustnost: čak i na Win > 3.1, program je vrlo retko pucao 'namrtvo'. Obično bi se javljao neki > izuzetak, kulturno me obaveštavajući da sam uradio nešto nedozvoljeno. > Poslednji MFC koji sam gledao (MSVC 1.5) nije to imao. Smile :), verzija 2.1 ima ceo "rad" sa izuzecima.
pascal.450 nbatocanin, -> #447, jablan
> Encapsulation, my dear Watson... Da je tako jednostavno, imali bi Windowse na svakom sokoćalu počev od Spektruma 16K do IBM 3090 ;> Ajde, probe radi: neka se javi neko ko je uradio ozbiljan C program na jednom OS i _direktno_ ga prebacio na drugi, a da program nije ekvivalentan sa nalaženje maksimuma od 100 brojeva.
pascal.451 ikordic, -> #445, iznogud
RE: => 486DX4 + 16MB RAM košta negde oko 2500 - 3000 DEM... Ne mislim da je => to mnogo za mašinu od koje se živi. Van teme, al' košta mnogo manje :)
pascal.452 icile,
Da li neko zna na koji nacin mogu da uskladim brzinu izvrsavanja nekog programa, nezavisno od masine na kojoj se izvrsava? Trebalo bi da on moze da se pokrene na masini 286-586, sa Herkules odn. EGA, VGA kartama - sve kombinacije moguce. Da li je neko to vec radio, ili bar zna princip po kom bi to moglo da se uradi?
pascal.453 iznogud, -> #450, nbatocanin
:: Ajde, probe radi: neka se javi neko ko je uradio ozbiljan C program :: na jednom OS i _direktno_ ga prebacio na drugi, a da program nije :: ekvivalentan sa nalaženje maksimuma od 100 brojeva. Pod portabilnošću ja obično podrazumevam nešto drugo... Vizuelni jezici jesu lepa stvar (mnogo ih volim ;) ), ali ako radiš nešto zaista važno, onda ćeš 'engine' toga uraditi odvojeno od interfejsa (naravno, u granicama mogućnosti - jednostavno nije moguće sve uraditi nezavisno od interfejsa). Portabilnost u tom slučaju znači ponovno pisanje interfejsa, ali... Bar se taj interfejs piše na istom jeziku, ako je C/C++ u pitanju, 'engine' ti ostaje isti, što nije slučaj kada se cela stvar pisala na nekom nestandardnom jeziku. Bilo koji objektni jezik je kao stvoren za ovakav način pisanja programa.
pascal.454 iznogud, -> #451, ikordic
:: Van teme, al' košta mnogo manje :) Naravno, al' dopustimo sebi, pošto smo profesionalci, suuper monitor, suuper disk i suuper još dosta toga ;)
pascal.455 pedjak, -> #452, icile
> Da li neko zna na koji nacin mogu da uskladim brzinu izvrsavanja > nekog programa, nezavisno od masine na kojoj se izvrsava? Trebalo bi > da on Rešenje postoji, potrebno je samo pri pravljenju potrebnih pauza konsultovati sistemski časovnik. Ukoliko radiš pod DOS-om, postoji mogućnost da se izbegne stalno pozivanje funkcije koja vraća tačno vreme. Na adresi 0000:046Ch se nalazi stanje brojača (četiri bajta), koji se uvećava pri svakom pozivaju tajmer interapta (08h). Pri prelasku na novi dan dolazi do njegovog resetovaja. S obzirom da se int 08h poziva 18.2 puta u sekundi, minimalno vreme koje se može izmeriti na ovaj način je 1/18.2 s. Dalje povećanje rezolucije se može ostvariti reprogramiranjem timer kontrolera, terajući ga da poziva int 08h više puta, nego što je uobičajeno (što ti ne bih savetovao, ukoliko stvarno ne znaš šta radiš). Ovaj princip, po kome se ostvaruje nezavisnost od takta procesora je iskorišćen u ZBTet-u (jednako brzo/sporo se izvršava na svim mašinama :) pedja
pascal.456 jablan, -> #450, nbatocanin
>> Encapsulation, my dear Watson... > Da je tako jednostavno, imali bi Windowse na svakom sokoćalu > počev od Spektruma 16K do IBM 3090 ;> Da, da je 16K bilo 16M i da je radio na 66 MHz. Konkretno, mislio sam na programe, ne na OS. > Ajde, probe radi: neka se javi neko ko je uradio ozbiljan C > program na jednom OS i _direktno_ ga prebacio na drugi, a da > program nije ekvivalentan sa nalaženje maksimuma od 100 > brojeva. Pod prenosivošću se ne podrazumeva to da ti jednostavno _preneseš_ program, iskompajliraš ga i radi (sem u konkretnom slučaju maksimuma:), nego da izmeniš one stvari koje su karakteristične za platformu (OS), a ovo ostalo ne diraš. Znači, u pravu si za korisnički interfejs, ipak ne možeš od Win-a i Dos-a očekivati da ti progutaju taj deo programa, ali ono jezgro, zapravo baš ono za šta program i služi ostaje kako je bilo. Kod standardizovanih jezika tipa c, c++, modula-2, ovo funkcioniše, pod uslovom da poštuješ principe modularnog programiranja. Ali ako radiš u nekom VBasic-u, ili BPascal-u, ograničen si ne samo na konkretan OS, već i na konkretan kompajler. E, sad, u zavisnosti od toga da li praviš neki program kome je 90% šminka i korisnički interfejs, a 10% ono šta ustvari radi, ili obrnuto, imaš proporcionalno tome i da menjaš program pri prenosu na drugu platformu i/ili drugi kompajler. poz, jablan.
pascal.457 nbatocanin, -> #453, iznogud
> Ajde, probe radi: neka se javi neko ko je uradio > ozbiljan C program na jednom OS i _direktno_ ga > prebacio na drugi, a da program nije ekvivalentan sa > nalaženje maksimuma od 100 brojeva. > > Pod portabilnošću ja obično podrazumevam nešto drugo... > Vizuelni jezici jesu lepa stvar (mnogo ih volim ;) ), ali > ako radiš nešto zaista važno, onda ćeš 'engine' toga > uraditi odvojeno od interfejsa (naravno, u granicama > mogućnosti - jednostavno nije moguće sve uraditi nezavisno > od interfejsa). ... i tako se manje ili više približiti nekom od proizvoda koji interfejs imaju "u sebi". Primera radi, Fox (bi trebalo) da radi na svim platformama bez ikakvih izmena. Poenta nije u tome da na svim OS isto radi IF naredba - to je najlakša stvar na svetu. Problem je sa neophodnim OS-zavisnim funkcijama.
pascal.458 mminovic,
Hi! Zna li neko kako da ugasim kursor u tekstualnom režimu? Unapred hvala,Miroslav.
pascal.459 nlazic, -> #458, mminovic
>> Zna li neko kako da ugasim kursor u tekstualnom režimu? Ovo bi trebalo da obavi posao: procedure HideCursor; assembler; asm MOV ax,$0100 MOV cx,$2607 INT $10 end; procedure ShowCursor; assembler; asm MOV ax,$0100 MOV cx,$0506 INT $10 end;
pascal.460 ognjen, -> #458, mminovic
)-> Zna li neko kako da ugasim kursor u tekstualnom rezimu? Probaj preko asm procedure sa pozivom int 10h.
pascal.461 boko,
e kako da napravim program koji ce da radi u protected modu, u TP 7 ?
pascal.462 nlazic, -> #461, boko
>> e kako da napravim program koji ce da radi u protected >> modu, u TP 7 ? U TP 7 nikako. Trebaće ti BP7, tamo izabereš Target DOS Protected Mode, lupiš F9 i to je.
pascal.463 boko, -> #462, nlazic
BO■>U TP 7 nikako. Trebace ti BP7, tamo izaberes Target DOS :(( Jel ovo sigurno ?
pascal.464 nlazic, -> #463, boko
>> BO■>U TP 7 nikako. Trebace ti BP7, tamo izaberes Target DOS >> Jel ovo sigurno ? 100%. Ali, ne vidim u čemu je problem. TP7 i BP7 se isporučuju u istom paketu, tako da samo treba da pređeš sa turbo.exe na bp.exe. Postoji, doduše i samostalan paket Turbo Pascal 7.0, pa ako imaš tu kombinaciju, menjaj je.
pascal.465 boko, -> #464, nlazic
BO■>doduse i samostalan paket Turbo Pascal 7.0, pa ako imas tu kombinaciju, BO■>menjaj je. :) ehhh...
pascal.466 boko,
E vidi prog : Uses Dsp,Crt; var a : integer; samplef : file; sample : array [0..64000] of Byte; p : pointer; begin assign(samplef,'dork.wav'); reset(samplef,1); BlockRead(samplef,sample,FileSize(samplef),a); ResetDSP(2); SpeakerOn; Playback(@sample,FileSize(samplef),8000); end. radi kako treba iz onog Turbo.exe i iz Tpx.exe, ali kad ga compiliram, kvrchi bez veze ? u cemu je faZon ?
pascal.467 mc.kuzma, -> #466, boko
> Uses Dsp,Crt; > var > a : integer; > samplef : file; > sample : array [0..64000] of Byte; > p : pointer; >begin > assign(samplef,'dork.wav'); > reset(samplef,1); > BlockRead(samplef,sample,FileSize(samplef),a); > ResetDSP(2); > SpeakerOn; > Playback(@sample,FileSize(samplef),8000); >end. Posalji unit dsp pa da vidim da li je mozda tu greska? BTW. Na cemu ovo pustas?
pascal.468 hercog,
Hitno, strahovito hitno mi je p koja na izlazu daje sve kombinacijease. Znači na ulazu imam N i K, a na izlazu dobijem matricu koja po redovima sadrži kombinacije Primer: N = 4 K = 3 Matrica 1 2 3 1 2 4 1 3 4 2 3 4 Pri čemu ovo 1, 2, 3 i 4 koji se dobijaju na izlazu predstavljaju redni broj elementa u početnom nizu elemenata iz koga se prave ko- mbinacije. Sale
pascal.469 dvesic, -> #468, hercog
> Znači na ulazu imam N i K, a na izlazu dobijem > matricu koja po redovima sadrži kombinacije Prelistaj po prvim ( < 20, mislim) brojevima Računara, tamo je bio vrlo simpatičan program za kombinacije, varijacije i sličnu boraniju :)
pascal.470 boko, -> #467, mc.kuzma
BO■>BTW. Na cemu ovo pustas? Pushtam na SB 2.0 compatible muzi... Delimicno sam provalio u cemu je fazon, ali ne sasvim... Shema je da ti kazesh Play Sample (kako vec beshe) on on to sve sredi i pushta preko DMA... e sam stavio da se program odmah posle toga zavrshi, tj program se zavrshava pre samplea, i zbog toga je kvrcao (valjda je dealocirao stack, pa se izgubila adresa ?), pa sam onda stavio da ceka (delay) dok se sample ne zavrshi, pa je to radilo, ali ne sve vreme, tj sample malo ide, pa posle jedno 4-5 sec pocne da krchi bez veze... nemam pojma, evo ti DSP.PAS pa ti vidi.. dsp.pas
pascal.471 imangovski,
Kako da inicijalizujem neki od svga modova u pascalu? Kada inicijalizujem,kako da nacrtam tacku?
pascal.472 boko, -> #471, imangovski
BO■>Kako da inicijalizujem neki od svga modova u pascalu? BO■>Kada inicijalizujem,kako da nacrtam tacku? Pa imash u dos\program (ili kako se vec zvashe :) direktorijumu unite za svga.. (prebacivanje u 640x480 800x600 1024x768 i sve ostale modove ;), kao i sve standardne graph.tpu procedure, samo prilagodjene za ove modove drawpoly, line, bar, putpixel...)
pascal.473 boko, -> #471, imangovski
e sad sam pogledao... nema :) cek sa cu poshaljem neke, pa ti vidi :) svga.zip
pascal.474 dzakic,
os2\*.* ------------------ speedos2.zip 1221k ű Novi 32-bitni Paskal kompajler (BP7 komp., demo) U direktorijumu je demo verzija, bez samostalnog asemblera, command line kompajlera i on-line helpa. I pored toga, nije teško snaći se jer su se autori potrudili da IDE i sama sintaksa budu jako slični ili identični Borlandovom Turbo Paskalu. Na prvi pogled, ceo paket deluje jako ozbiljno, kompletno i pouzdano. Ima stvari koje, u poređenju sa BP, nisu implementirane prvenstveno iz razloga što pod os/2 nemaju smisla a u nekim stvarima polako vuče na C, kao što se iz citata vidi. Sve razlike su lepo dokumentovane, ali sam primetio još neke nedostatke. O njima drugom prilikom. Autori najavljuju dalji razvoj paketa i implementiranje stvari koje još nisu završene. Demo verzija pravi exe koji na žalost radi 24 sata a nakon toga vas ljubazno zamoli da program kupite :). Evo šta piše u doc-u: --- SpeedPascal/2 is a Borland Pascal 7.0 compatible compiler and an integrated development environment (IDE) with a host of features designed to ease the task of writing OS/2 Presentation Manager(TM) programs. From the IDE, you can access the power of the SpeedPascal/2 tools: A PM-based MDI editor An integrated debugger A 32-bit OS/2 compiler An OS/2 Assembler A Resource Editor and Compiler An Inline Assembler Context sensitive help ** SOME NEW THINGS OF SPEED-PASCAL/2 1) SPEED-PASCAL/2 has an additional data type called CSTRING. This is a C-like string which has no length byte but additionaly a terminating #0 character. You can easily assign CSTRINGs to STRINGs and STRINGs to CSTRINGs, the Compiler will convert the types for you ! Also you can pass a STRING to a procedure that expects a CSTRING. 2) When calling OS/2 API functions you can pass a NIL parameter to a function that expects a variable parameter or a CSTRING. Sometimes there's a significant need to do this. The whole OS/2 API is based upon the C language and expects C data types. To make life easier SPEED-PASCAL/2 supports some of the C features including NULL parameters for functions expecting variable parameters. 3) There's an additional keyword called MACRO. MACROS are directly inserted into the code and can be much faster than calling a procedure or function. This feature comes from the C language 4) String substitution with #DEFINE like in the c language. The syntax is {$#DEFINE identifier=somewhat} where identifier must match the rules of identifiers and cannot be a reserved word and somewhat is the string which is the substitution of identifier in the text. (see documentation) 5) One line comments initiated by // (like in the C language) 6) The global data segment is limited to 512K. This is since SPEED-PASCAL/2 doesn't distingish yet between initialized and uninitialized data. That means ALL data is initialized and therefore written to the applications EXE. It is strongly recommended to use dynamic heap memory when there's a need for large memory pools.
pascal.475 ognjen,
Hi! Moze li neko da mi da jedan kratak primer kako da uz pomoc turbovision-a, napravim neke proste menije, dodelim im funkcijeske (ili alt) tastere i povezem ih sa odredjenim procedurama. Gladao sam one primere iz "Kompletan vodic", ali, em ne rade, em nista ne shvatam.
pascal.476 ognjen, -> #475, ognjen
)-> Moze li neko da mi da jedan kratak primer kako da uz pomoc )-> turbovision-a, napravim neke proste menije, dodelim im )-> funkcijeske (ili alt) tastere i povezem ih sa odredjenim )-> procedurama. Svi ste mi lupili ignore ili niko ne zna da radi sa TVom? :)
pascal.477 dvesic, -> #476, ognjen
> Svi ste mi lupili ignore ili niko ne zna da radi sa TVom? :) Tebe baš mrzi da pogledaš primere ? ;) Ajde sad gledaj : program Primer; uses Objects, Drivers, Views, Menus, Dialogs, App; { potrebni unit-i } const cmFileOpen = 100; { Ovo su konstante koje ce povezati } cmFileClose = 101; { menije i procedure } { Iz postojece TApplication klase kreiras tvoju klasu, koja ce se } { malo drugacije ponasati. Metode koje menjas su sigurno : } { HandleEvent - kontrola poruka po sistemu } { InitMenuBar - inicijalizacija i kreiranje menija } { InitStatusLine -inicijalizacija i kreiranje menija } { Naravno, ako ta aplikacija nesto radi :) dodas tvoje funkcije i } { procedure. } type TMyApp = object(TApplication) procedure HandleEvent(var Event: TEvent); virtual; procedure InitMenuBar; virtual; procedure InitStatusLine; virtual; procedure OtvoriFajl; procedure ZatvoriFajl; end; { TMyApp } procedure TMyApp.HandleEvent(var Event: TEvent); begin TApplication.HandleEvent(Event); { Glavna petlja koja obradjuje } if Event.What = evCommand then { poruke koje stizu } begin { Generalno je to obican CASE } case Event.Command of cmFileOpen: OtvoriFajl; cmFileClose: ZatvoriFajl; else Exit; end; ClearEvent(Event); end; end; procedure TMyApp.InitMenuBar; { Funkcija za meni } var R: TRect; begin GetExtent(R); { Velicina aktivnog prozora } R.B.Y := R.A.Y + 1; { Pozicija meni linije } MenuBar := New(PMenuBar, Init(R, NewMenu( NewSubMenu('~F~ile', hcNoContext, NewMenu( NewItem('~O~pen', 'F3', kbF3, cmFileOpen, hcNoContext, NewItem('~C~lose','F4', kbF4, cmFileClose, hcNoContext, NewLine( NewItem('E~x~it', 'Alt-X', kbAltX, cmQuit, hcNoContext, nil) )))),nil)))) end; procedure TMyApp.InitStatusLine; var R: TRect; begin GetExtent(R); R.A.Y := R.B.Y - 1; StatusLine := New(PStatusLine, Init(R, NewStatusDef(0, $FFFF, NewStatusKey('', kbF10, cmMenu, NewStatusKey('~Alt-X~ Exit', kbAltX, cmQuit, NewStatusKey('~F3~ Open', kbF3, cmFileOpen, NewStatusKey('~F4~ Close', kbF4, cmFileClose, nil)))), nil) )); end; procedure TMyApp.OtvoriFajl; var R: TRect; D: PDialog; C: Word; begin { Kreiraj dijalog } R.Assign(10,10,60,17); D := New(PDialog, Init(R,'Prozor sa porukom')); { Insertuj najobicniji tekst } R.Assign(15, 5, 50, 6); D^.Insert(New(PStaticText, Init(R, 'Primer teksta :)'))); { Prikazi dijalog } C := DeskTop^.ExecView(D); end; procedure TMyApp.ZatvoriFajl; begin end; var MyApp: TMyApp; begin MyApp.Init; MyApp.Run; MyApp.Done; end.
pascal.478 hercog,
Mozda ce nekome zatrebati {Ovaj program predstavlja preradu programa iz Racunara 27 na pascal} {Mozda ce nekome zatrebati za generisanje kombinacija bez ponavljanja} {pocevsi od 1 klase do klase navedene pod K} program Kominacije; uses Crt; var petlja,ponavljaj:boolean; i,j,k,n:integer; izlaz:array [1..100] of integer; el:array [1..100] of char; minimum:longint; procedure proc; var l:integer; duzina:longint; begin for l:=1 to k do write(el[izlaz[l]]); end; begin petlja:=true; n:=20; {broj elemenata} k:=20; {klasa} for i:=1 to n do {generisanje elemenata} begin el[i]:=chr(i+ord('A')-1); end; While petlja do begin proc; i:=k; ponavljaj:=false; if i>=1 then ponavljaj:=true; while ponavljaj do begin if izlaz[i]<>n-k+i then begin izlaz[i]:=izlaz[i]+1; if i=k then ponavljaj:=false else begin for j:=i+1 to k do izlaz[j]:=izlaz[j-1]+1; ponavljaj:=false end end else begin i:=i-1; if i<1 then begin petlja:=false; ponavljaj:=false; end end end end end.
pascal.479 ognjen,
Ocete da budete korisni? :) Pravio sam jednu igricu koja ima jednostavne komande (levo, desno, pucaj), a kontrolu tastature sam uradio preko READKEY i KEYPRESSED. Problem je sto je tako kretanje presporo, a i nije kontinuirano (posle prvog znaka sledi kratka pauza). Onda sam se odlucio za logicnije resenje. Citanje preko porta. U petlji se izmedju ostalog ponavlja key:=port[$60] a onda analiza tastera, i Boolean promenjljive LEFTkey, RIGHTkey, SHOOTkey dobijaju odgovarajuce vrdnosti. Medjutim sad je problem bio prevelika brzina. I na najkraci dodir tastera kursor (tj. gun) je tri puta skrolovao po ekranu. Kontrala je nemoguca. Najjednostavnije resenje bilo je ubaciti delay (50) posle svakog pomeranja, ali: postoji vise problema: 1. Ako se taster otpusti za tih 50 ms, program nece registrovati promenu na portu, pa ce kurstor nastaviti kretanje (pucanje) kao da drzimo dati taster. 2. Gubljenje rada u realnom vremenu za ˝50ms. Ovo drugo i nije previse bitno. Treba dakle napraviti neki delay koji ce biti nezavistan od promena na portu (svaka promena ce se registrovati) i koji nece koristiti pascalov delay, da ne bi kvario realno vreme. Da li neko zna kako to?
pascal.480 dzakic, -> #479, ognjen
Napravi 'interrupt' proceduru koja čita port tastature i ispituje da li je u pitanju neki od tastera koji tebe zanimaju. Dakle, registruješ pritisak i puštanje svakog od tastera tako što setuješ odnosno resetuješ odgovarajuće flagove 'leftpressed', 'rightpressed' i 'firepressed'. Na kraju procedure treba signalizirati interapt kontroleru da je interapt obrađen jednim port[$20]:=$20; Onda 'instaliraj' svoj interapt sa var oldintvect:pointer; getinctvect(9,oldint9) setintvect(9,@myint9) Iz programa testiraj stanje promenljivih left/right/firepressed, a i delay će nesmetano raditi (kasnije delay možeš korisno upotrebiti za proračun putanje neprijatelja i sl.). Jedini je problem što testiranjem promenljivih dobijaš _TRENUTNO_ stanje tastera, tako da se može desiti da taster bude pritisnut i otpušten između tvoja dva testiranja (za vreme delay) i tvoj program to neće registrovati. Ako je delay dovoljno kratak, ovo ne bi trebalo da predstavlja problem. Ne zaboravi da po izlasku iz programa vratiš originalni int vektor sa setintvect(9,oldint9) Ako bude problema, tu sam :) Pozdrav, Zak
pascal.481 dj.vlada,
Otvorena je grupa "TP", ko želi da uđe neka mi pošalje molbu mailom...
pascal.482 ognjen, -> #480, dzakic
)-> se moze desiti da taster bude pritisnut i otpusten izmedu )-> tvoja dva testiranja (za vreme delay) i tvoj program to nece )-> registrovati. Kako nece registrovati, ako sam preuzeo interapt? Nije valjda da delay blokira izvrsavanje interapata?
pascal.483 dzakic, -> #482, ognjen
> Kako nece registrovati, ako sam preuzeo interapt? Nije valjda > da delay blokira izvrsavanje interapata? Mislio sam na sledeću situaciju: 1. Testirao si flegove, ništa nije pritisnuto. 2. Program je krenuo u delay(xx); 3. Igrač stiska recimo taster u levo. 4. Izvršava se interapt rutina, setuje se fleg stisnuto je levo. 5. Delay, ukoliko je dug, se i dalje izvršava. 6. Igrač otpušta taster. 7. Interapt rutina resetuje fleg stisnuto je levo. 8. Završava se delay. 9. Tvoj program testira fleg - ništa nije stisnuto, iako je taster bio pritisnut pa otpušten za vreme delay-a. Ovo se naravno da rešiti, ali objašnjenje nije postojalo u mojoj poruci, u pitanju je bila samo ideja. Nadam se da si problem rešio i da ćemo uskoro videti igricu :) Pozdrav, Zak
pascal.484 dj.vlada,
Otvorena je grupa "TP", ko želi da uđe neka mi pošalje molbu mailom...
pascal.485 zeljkoj, -> #484, dj.vlada
> Otvorena je grupa "TP", ko želi da uđe neka mi pošalje molbu > mailom... A što kad postoji ova tema? :) Svi koji programiraju u TP je verovatno prate.
pascal.486 dj.vlada, -> #485, zeljkoj
HeHe>> Otvorena je grupa "TP", ko želi da uđe neka mi pošalje molbu HeHe>> mailom... HeHe> A što kad postoji ova tema? :) HeHe> Svi koji programiraju u TP je verovatno prate. Pa eto lepo... Ovde imaju i neka pravila...u grupi nema...
pascal.487 destructor,
Kada iz Pascal-a zelim da izvrsim neki program sa strane, to nije problem koristeci 'Exec',medjutim kako da "nateram" program koji ja pisem da unosi parametre koje taj program trazi,tj. da ih ne ceka sa tastature.Npr:Ako Exec-ujem 'Del *.*' da moj program sam odgovori sa 'Y' na pitanje "Da li ste sigurni...."
pascal.488 janko, -> #487, destructor
> Kada iz Pascal-a zelim da izvrsim neki program sa strane, to > nije problem koristeci 'Exec',medjutim kako da "nateram" program > koji ja pisem da unosi parametre koje taj program trazi,tj. da > ih ne ceka sa tastature.Npr:Ako Exec-ujem 'Del *.*' da moj > program sam odgovori sa 'Y' na pitanje "Da li ste sigurni...." Da li se varam ili se ponavlja priča koja se već jednom dogadila u ovoj konferenciji. Javio se dečko koji je hteo da napravi maligni virus, očigledno bez puno znanja, a kada su ga pitali da li to stvarno hoće da uradi rekao je prvo "ma samo pitam teorijski" ali se brzo zaključilo da je upravo to hteo? Kakav program pišeš pa ti treba y na del *.* ?
pascal.489 dvesic, -> #487, destructor
> koji ja pisem da unosi parametre koje taj program trazi,tj. da > ih ne ceka sa tastature.Npr:Ako Exec-ujem 'Del *.*' da moj > program sam odgovori sa 'Y' na pitanje "Da li ste sigurni...." Možda redirekcija ? (nisam probao, samo ideja): Exec("ECHO Y|DEL *.*") Ovo na komandnoj liniji radi. Probaj pa javi.
pascal.491 destructor, -> #488, janko
>..ali se ispostavilo da je uravo to hteo.. Virusima se ne bavim..(dok jos ponesto ne naucim ;))), a ako si reply napiso zbog mod USERNAME-a nemoj se uzbudjivati..to je iz drugog razloga. Sto se tice programa radio sam sledece: Program treba da obrise navedeni direktorijum,kao i sve njegove poddirektorijume. To sam uspeo da uradim tako sto sam ulazio u sve direktorijume,trazio file po file, a zatim ga brisao.Medjutim ova druga ideja mi izgleda lepse, ali ne mogu da je realizujem. Znaci:Meni ovo treba prakticno, a NE teorijski!! CU
pascal.492 janko, -> #491, destructor
> Sto se tice programa radio sam sledece: > Program treba da obrise navedeni direktorijum,kao i sve > njegove poddirektorijume. > To sam uspeo da uradim tako sto sam > ulazio u sve direktorijume,trazio file po file, a zatim ga > brisao.Medjutim ova druga ideja mi izgleda lepse, ali ne mogu da > je realizujem. Nisi napisao šta radi ceo tvoj program. I dalje me nisi uverio da ti nije cilj da nekome upropastiš disk? Ako me uveriš, vrlo ću ti rado pomoći. Vidim da su ti već dali jedan recept... inače, za brisanje direktorijuma sa podrirektorijumima u DOS-u postoji naredba DELTREE.
pascal.493 rdejan, -> #487, destructor
>> ih ne ceka sa tastature.Npr:Ako Exec-ujem 'Del *.*' da moj >> program sam odgovori sa 'Y' na pitanje "Da li ste sigurni...." Šta fali tupavoj i sporoj kombinaciji FindFirst i Erase (pa čak i ne tako sporoj, pogotovo u odnosu na swap, koji ti želiš da uradiš)? Otkucaj FindFirst, stisni Ctrl-F1 (ako je Borlandov Pascal, a verujem da jeste) i sve će ti se kasti... Pozdrav, Dejan
pascal.494 ognjen, -> #487, destructor
)-> ih ne ceka sa tastature.Npr:Ako Exec-ujem 'Del *.*' da moj )-> program sam odgovori sa 'Y' na pitanje "Da li ste )-> sigurni...." Jedno od neelegantnih resenja je da napravis datoteku, na primer yes.dat: ----- y [CR][LF] ----- I da kad execujes, uradis redirekciju iz fajla. del *.* <yes.dat Postoji, naravno, mnogo elegantnije resenje za brisanje svih fajlova, sa FindFirst i FindNext. O:)
pascal.495 destructor, -> #492, janko
>..i dalje nisi uspeo da me ubedis .. E to vec nije moja greska, a sto se tice  ubedjivanja nemam nameru da ti se pravdam.Inace DELTREE znam da postoji,ali ga ja nemam, jer koristim 5.0.
pascal.496 destructor,
Pozdrav momcima koji su mi dali predloge za 'del *.*'. Sada imam jedno drugo pitanje. Recimo ako obradjujem maticu na neki nacin,i ta procedura kojom to radim je rekurzivna,da li je moguce nekako da sredim da se velicina matrice menja,tj. ako mi na sledecem stepenu obrade treba manja matrica,da ne rezervisem celu matricu kao u prethodnom pa da koristim samo odredjeni deo , vec da rezervisem matricu tacno one velicine koja mi u tom trenutku treba. Npr: ... ... matr:Array[1..p,1..p] Of ... ... pascal nece da prihvati ukoliko p nije definisano kao konstanta.Pitanje:Moze li se ovo zaobici(tako da p moza da bude i promenjiva)? p.s.Na dam se da i ovo neki nece proglasiti destruktivnim.;)) Pozdrav!
pascal.497 mastermind,
oko simuliranja pritisaka... postoji interrupt koji to radi ( int 16h , f-ju ne znam napamet ) a možeš i direktno da gađaš kbd buffer. oko toga prelistaj staru konfu pcprog, teme algoritmi i asm. za brisanje ti je mnogo bolji findfirst/findnext sistem. potraži u helpu to, i biće ti mnoogo jasnije. MasterMind
pascal.499 janko, -> #496, destructor
> Recimo ako obradjujem maticu na neki nacin,i ta procedura > kojom to radim je rekurzivna, da li je moguce nekako da sredim da > se velicina matrice menja,tj. ako mi na sledecem stepenu obrade > treba manja matrica,da ne rezervisem celu matricu kao u > prethodnom pa da koristim samo odredjeni deo , vec da rezervisem > matricu tacno one velicine koja mi u tom trenutku treba. > Npr: > ... > ... > matr:Array[1..p,1..p] Of ... > ... > pascal nece da prihvati ukoliko p nije definisano kao > konstanta.Pitanje:Moze li se ovo zaobici(tako da p moza da bude > i promenjiva)? Koliko se ja razumem u Paskal, ne može, dimenzije niza su konstante, jer to je pricnip rada kompajlera. Kakav je to algoritam? Obično se problemi sa matricama rešavaju bez pravljenja novih matrica u svakom pozivu, jer je većina problema sa matricama prvi put rešavana u Fortranu, koji nema ni rekurzije. ;) Ako ti je problem ozbiljan, vredi se pomučiti i ili primenjivati neke nestandardne metode, ili da promeniš jezik, platformu ili kompajler. Recimo: Delfi 2 može da radi sa svom memorijom koja je Windowsu na raspolaganju, što je uvek više od 640 K... C++ omogućava dinamičku alokaciju proizvoljno velikog niza (pa zato i matrice). itd... >p.s.Nadam se da i ovo neki nece proglasiti destruktivnim.;)) >Pozdrav! Neće! Go ahead! :)
pascal.500 dvesic, -> #496, destructor
> pascal nece da prihvati ukoliko p nije definisano kao > konstanta.Pitanje:Moze li se ovo zaobici(tako da p moza da bude > i promenjiva)? Ne, ne može. Možeš da primeniš rešenje sa pokazivačima. Alociraš onoliko memorije koliko ti stvarno treba prilikom svakog rekurzivnog ulaska u proceduru; ovo dosta komplikuje baratanje sa elemntima matrice, ali se da izvesti.
pascal.501 destructor, -> #499, janko
 >Kakav ti je to algoritam?Vecina problema sa matricama... Pa pokusavao sam da napisem program koji resava sisteme linearnih jednacina Gausovim algoritmom(dosta je neefikasan, ali za sade nemam bolji), za proizvoljan broj jednacina,pa sam matricu koristio za skladistenje koeficijenata. Medjutim pocetnu matricu ne smem da menjam, jer na osnovu rezultata prethodne matrice izracunavam sledecu promenjivu.   Ipak tnx, da bar znam da se ne mucim oko onoga. p.s.Mozda ovo upotrebim da nekom sredim disk!;))
pascal.502 dvesic, -> #501, destructor
> linearnih jednacina Gausovim algoritmom(dosta je neefikasan, > Medjutim pocetnu matricu ne smem da menjam, jer na osnovu > rezultata prethodne matrice izracunavam sledecu promenjivu. Što praktično znači da ti ovde rekurzija i ne treba, već samo dimenzionisanje dve matrice; jedna čuva koeficijente prethodnog koraka a druga novonastajuće :)
pascal.503 ognjen,
HELP! Jedna ortakinja iz odeljenja pise seminarski, igra kartama - Makao (jos se zove i Mau-Mau), ali smo danas naisli na problem koji nam se cini neresiv. Naime, u datoteci SEMINARI nalazi se spil karata, datoteka je file of slog2, gde je slog2=record u kome se cuvaju podaci o svakoj karti. Prilikom raznih operacija sa spilom karata (secenje, mesanje) radili smo razne akrobacije sa SEEK i TRUNCATE, i sve izgleda ok, medjuim, kad se prodje secenje, treba da se izbaci zadnja karta sa spila sa: seek (f, filesize(f)-1); truncate(f); Kompajliranje vraca sve okay, ali kad se startuje, na truncate se zaglavi, tako da mu samo reset (soft) moze pomoci. Problem *nije* u truncate, bilo koja procedura koja radi sa fajlom F (probano i CLOSE) zaglavljuje racunar. Posto se radi o veoma hitnoj stvari, molim vas da pogledate ceo program (ako nemate ideju iz ove poruke, sta bi mogla da bude greska), jer smo ja i ona proveli oko 3 sata trazeci gresku, i nismo mogli da ukapiramo u cemu je stvar. 10x. problem.zip
pascal.504 galimpic, -> #503, ognjen
> Posto se radi o veoma hitnoj stvari, molim vas da pogledate > ceo program (ako nemate ideju iz ove poruke, sta bi mogla da > bude greska), jer smo ja i ona proveli oko 3 sata trazeci > gresku, i nismo mogli da ukapiramo u cemu je stvar. Ukratko: zaboravio si da inicijalizuješ pointer tal. Naširoko: (za druge koje zanima, verujem da ćeš se ti lupiti u čelo i sa onim gore) Problem u programu nije rad sa fajlovima, već sa pointerima. Stavio sam brakpoint malo ranije i video da pri dodeli tal^:=... vrednosti pointera tal je NIL. Nisam gledao, možda to radiš i sa još nekim pointerima. Kada deklarišeš pointer varijablu, kreira se samo ona u memoriji (tj. mesto za čuvanje neke adrese), a NE i ono na šta ona pokazuje. Kompajler se neće buniti kada pokušaš da dodeliš vrednost onome na šta pointer pokazuje, ali to je gađanje po memoriji sa nepredvidljivim rezultatima, jer pointer nije inicijalizovan. Moraš da komandom new alociraš mesto za ono na šta pointer pokazuje, uz automatsko dodeljivanje te adrese pointeru: type x=integer; var p:^x; begin new(p); p^:=10; dispose(p); end. Ako ne želiš da pointer pokazuje na posebnu promenljivu, već na neku od postojećih, prebaci ADRESU već alocirane i postojeće promenljive pointeru, pa će opet sve lepo da radi za tu svrhu: p:=@x Tvoj program nije radio zbog gađanja po memoriji upotrebom neinicijalizovanih pointera, a trenutak zaglavljivanja onda može biti bilo kad.
pascal.505 ognjen, -> #504, galimpic
)-> Tvoj program nije radio zbog gadanja po memoriji upotrebom )-> neinicijalizovanih pointera, a trenutak zaglavljivanja onda )-> moze biti bilo kad. Znaci cela stvar je u tome da je na nekom mestu zaboravljeno NEW(tal)? Uh, ko bi se toga setio. :) Jos samo jedno pitanje: koju vrednost ima pointer kada je postavljen na NIL, tj. da li ce upis na taj pointer rezultirati prijavom kompajlera da nije u redu, run-time greske, ili ce opet sve biti u redu, samo ce se zaglaviti u nekom levom trenutku?
pascal.506 galimpic, -> #505, ognjen
> Jos samo jedno pitanje: koju vrednost ima pointer kada je > postavljen na NIL, tj. da li ce upis na taj pointer rezultirati > prijavom kompajlera da nije u redu, run-time greske, ili ce opet > sve biti u redu, samo ce se zaglaviti u nekom levom trenutku? Kada je postavljen na NIL trebalo bi da ima vrednost 0, bar u C-u. Za Pascal nisam siguran, ali kao sto vidis ne prijavljuje gresku nego brlja. Mozda ima neki svic kojim se ovakve greske proveravaju i prijavljuju pri izvrsavanju? Neka se javi neko ko zna.
pascal.507 npmiki,
Potreban mi je izvorni kod za rad sa modemom. U vezi toga sledi pitanje : dali je moguce napraviti program koji ce kada se startuje dati mogucnost onome koji pozove modemom drugi kompjuter , da pristupa svim fajlovima na disku ? Vrlo potrebno . Please help !!
pascal.508 nenad, -> #507, npmiki
> pitanje : dali je moguce napraviti program koji ce kada se > startuje dati mogucnost onome koji pozove modemom drugi > kompjuter , da pristupa svim fajlovima na disku ? Preporučujem ti da pogledaš program DoorAway (\dos\bbs\drwy222.zip), on omogućava da svaki program radi preko modema i možda je zadovoljavajuće rešenje za tvoj problem. Za početak, treba da ga konfigurišeš da poziva command.com, a u svom komunikacionom programu (na računaru sa koga zoveš) da aktiviraš tzv. doorway mod kako se pritisci na tastere ne bi prevodili po aktivoj terminal emulaciji već "direktno" slali remote računaru.
pascal.509 ivko, -> #507, npmiki
Pod jedan: takav program nije tesko napraviti, trebas samo da znas da radis sa komunikacionim portovima u programskom jeziku u kom radis takav program, treba da procitas neki USER'S MANUAL od modema da vidis koje su standardne komande modema i nacin njegovog rada i trece da nabavis izvorni kod nekog transfer protokola (video sam negde u datotekama na Sezam-u izvorni kod za ZMODEM). Inace program ne bi trebalo da bude tehnicki slozen (osim ako neces da pravis srpski Telemate). Pod dva: zavisi koji nivo pristupa tvom disku zelis da ima protivnicki modem. Da moze da lista ceo disk, da kopira, premesta po njemu, da kopira fajlove na tvoj disk, sa tvog diska na njegov (uopste ono sto mozes postici i sa COMMAND.COM programom tj.da napravis modifikovani COMMAND.COM) ne bi trebalo da bude problema ali ako hoces da sa tvog modema startujes program na daljinskom kompjuteru i da se on izvrsava na njemu a da se ono sto se izvrsava vidi na tvom ekranu, malo teze (citaj nemoguce) iz 5*10^3 razloga a najveci je mala brzina prenosa podataka modemom. A i pored toga, postoji dosta drugih ogranicenja rezultovanih organizacijom DOS-a i Windows-a. Ali ako budes radio komunikacioni program mogu ti pomoci. Kontaktiraj me na e-mail. Pozdrav!
pascal.510 dpredovic, -> #507, npmiki
> pitanje : dali je moguce napraviti program koji ce kada se > startuje dati mogucnost onome koji pozove modemom drugi > kompjuter , da pristupa svim fajlovima na disku ? Sasvim moguće, ali je pitanje zašto bi to radio kad već postoji.