pascal.636kriss,
-> #628, vlador˙˙ Da. :) Još kad bi radilo u Windowsu... :( Stvarno, zašto bre
˙˙ ovo ne radi u Windowsu? Inače, nisam čitao boot nego sam preko
˙˙ funkcije $69 int $21 čitao volume label. Sors sam ostavio u
˙˙ PC.PROG:windows.233. Isti taj sors kroz DOS radi (???).
Nemam pojma o čemu se radi, ali evo programa koji radi (u DOS-u), pa
probaj da ga doradiš/ispraviš prema svojim potrebama:
mov ah,1ah ; Set DTA, da bacimo DTA na kraj fajla
mov dx,offset kraj
int 21h
mov ah,4eh ; find first
mov dx,offset filetype
mov cx,8 ; osmi bit je volume label
int 21h
mov ah,4ch ; terminate
int 21h
filetype:
db "*.*",00
kraj:
Ovo dakle _radi_ i pronalazi volume label bez obzira u kom je dir-u
pokrenuto. Volume label ti se nalazi u (novoj) DTA, na adresi
kraj+01eh - tvoje je da ga samo pokupiš. Za win veruj ne znam, ne
gajim to na disku.
pascal.637ognjen,
-> #625, sslavko)-> Znam da se to desava zbog prekoracenja integer-a, ali mi je
)-> opet malo priglupo da Borland nije vodio racuna o ovome. Ili
)-> mozda jeste ali ja ne znam.
Pa i nije tako glupo. Da bi se zapamtio jedan integer potrebno
je (cini mi se) 16 bitova. Ti definises i: integer; i on
rezervise 16 bitova za ti I. Posle samo toliko mozes da koristis,
tj. posle prekoracenja 111..111 (16 puta) dolazi 000..000, sto je
-32767, i tu nema pomoci. Ako zelis da radis sa vecim brojevima
izaberi longint, a ako ti se radi sa bas velikim, radi sa REAL.
pascal.638sslavko,
-> #637, ognjen>> je (cini mi se) 16 bitova. Ti definises i: integer; i on
>> rezervise 16 bitova za ti I. Posle samo toliko mozes da koristis,
Jeste ali ni sledeći program ne radi:
var i:integer;
j:longint;
begin
i:=6;
j:=10
writeln(i*3600+j);
end.
...na primer. Iako se za ispis gura i longint writeln opet
brlja.
pascal.639vlador,
-> #633, andrejt> Glupi Windows ;)) Zar on ne preuzima neke interapte ? Nemam veze sa winom
> ali mozda preuzme 21 pa onda 21,69h ne radi kako je ocekivano ?
Stvarno, možda... Kako da saznam šta je Windows uradio sa interaptima?
pascal.640andrejt,
-> #639, vlador__> Stvarno, mozda... Kako da saznam sta je Windows uradio sa interaptima?
Zavisi kako ih preuzima ... Ako ih preuzima preko int 21,25
onda je jednostavno : samo preuzmes int 21h i cekas da ti se u ah pojavi
25h a u AL npr. 8,9 ili koji vec interapt oces da vidis i onda procitas
DS:DX - pointer na novi int. E sad ako samo upise u memoriju na mesto
int vectora ono sto mu treba onda nemam pojma.
pascal.641janko,
-> #638, sslavko>>> je (cini mi se) 16 bitova. Ti definises i:
>>> integer; i on rezervise 16 bitova za ti I. Posle samo
> toliko mozes da koristis,
>
> Jeste ali ni sledeći program ne radi:
>
> var i:integer;
> j:longint;
>
> begin
> i:=6;
> j:=10
> writeln(i*3600+j);
> end.
Zbog prekoračenja međurezultata. Probaj
var i : integer;
var j : integer; (* ovo je dovoljno za ovu upotrebu *)
...
writeln( longint(i)*3600 + j ) i sve je OK.
Takođe probaj da nađeš negde neki tekst o implicitnim konverzijama,
napravio si stratešku grešku, koju ne bi da si znao tu priču.
pascal.642postmast,
From: Nikola.Sivacki@f125.n103.z38.setgate.setnet.co.yu (Nikola Sivacki)
Subject: Re: Boje
Date: Sun, 06 Nov 1994 16:43:00
SM> Nadam se da sam, iako ne kao za prethodno pitanje, bar malo
SM> pomogao.
Jesi! Hvala ti mnogo! :)))))
... Sreca.To je...NO CARRIER
* Origin: SetNet:Birostroj BBS,NON-STOP,14400bps,011/609945 (38:103/125)
pascal.643postmast,
From: Vladimir.Bonc@f101.n101.z38.setgate.setnet.co.yu (Vladimir Bonc)
Subject: Konverzija tipova
Date: Tue, 08 Nov 1994 06:44:11
Sta ovde ne valja:
...
var
dd, mm, gg: integer;
datum : longint;
...
begin
datum := dd + mm*100 + gg*10000
...
Moj kolega je skoro koristio slicnu konstrukciju u TP i, umesto
ocekivanog rezultata, dobio je rezultat tipa integer, iako je datum
deklarisao kao longint.
U uputstvu za Kickpascal koji sam ranije koristio za Amigu,
upozoravaju na ovakvu situaciju
Program IntToLong;
Var
a,b: integer;
begin
a:=26731; b:=20000;
write(a+2*b);
end.
i predlazu resenje: write(a+2*long(b)), znaci, prisiljavanje
kompajlera da racuna u opsegu longint.
Kako se ovo izvodi u TP a da se varijable dd, mm i gg ne deklarisu
kao long?
* Origin: Oreska BBS, UZICE = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.644sslavko,
-> #643, postmast>> Sta ovde ne valja:
Isto što i u mom primeru od pre par dana :)))
>> Kako se ovo izvodi u TP a da se varijable dd, mm i gg ne deklarisu
>> kao long?
Evo Janko je to objasnio u 7.641. Znači Longint(b);
pascal.645evlad,
-> #643, postmast>> begin
>> datum := dd + mm*100 + gg*10000
>>
>> Kako se ovo izvodi u TP a da se varijable dd, mm i gg ne deklarisu
>> kao long?
datum := LongInt(dd) + LongInt(mm)*100 + LongInt(gg)*10000;
pascal.646uobradovic,
-> #640, andrejt::> Zavisi kako ih preuzima ... Ako ih preuzima preko int 21,25
::> onda je jednostavno : samo preuzmes int 21h i cekas da ti se
::> u ah pojavi 25h a u AL npr. 8,9 ili koji vec interapt oces da
::> vidis i onda procitas DS:DX - pointer na novi int. E sad ako
::> samo upise u memoriju na mesto int vectora ono sto mu treba
::> onda nemam pojma.
E,a kako ja da naučim sve ovo.Mislim kada da koristim DS kada
DX,zašto nije AL nego AX ......
Uroš
P.S. Ovo sam lupao jer neznam ništa o tome.Probao sam da učim
iz Brian-ove knjige ali ne ide.
pascal.647szeman,
-> #625, sslavko>> Znam da se to dešava zbog prekoračenja integer-a, ali mi je
>> opet malo priglupo da Borland nije vodio računa o ovome. Ili
>> možda jeste ali ja ne znam.
Integer * integer = integer i tu nema pomoći, osim ako se ne promeni
tip varijable ili ne napiše konstanta u real obliku, kao 4000.0.
pascal.648pedjak,
-> #638, sslavko> Jeste ali ni sledeći program ne radi:
> writeln(i*3600+j);
> ...na primer. Iako se za ispis gura i longint writeln opet
> brlja.
Zato što TP smatra da je rezultat neke računske operacije istog
tipa kao i prvi operand, ukoliko ti eksplicitno ne tražiš
drugačije. Prilično glupo, ali šta je tu je :) To se može rešiti
sa:
writeln(longint(i)*3600+j);
pascal.649vukov,
Pitanje za poznavaoce Turbo Pascala:
Da li je moguce iz programa usmeriti stampanje na port LPT2, uz potpuno
ocuvanje udobnosti rada sa LST datotekom iz Borlandovog PRINTER Unit-a?
Zahvaljujem unapred na svim sugestijama.
pascal.650vlador,
-> #640, andrejt> 25h a u AL npr. 8,9 ili koji vec interapt oces da vidis i onda procitas
Ok, probaću. I šta da radim ako je preuzeo int?
pascal.651uobradovic,
U Pascalu neće da mi radi sledeći program.
{$M 2000,0,0}
Uses Dos;
begin
exec('ime fajla','');
end;
Imam 2 Mb Ram-a.Neznam kako da deklarišem direktivu i oslobodim
stek jer treba da startujem neke programe,naprimer TM.
Uroš
pascal.652dares,
-> #651, uobradovicVL> U Pascalu neće da mi radi sledeći program.
VL>
VL> š$M 2000,0,0ć
VL> Uses Dos;
VL> begin
VL> exec('ime fajla','');
VL> end;
VL>
VL> Imam 2 Mb Ram-a.Neznam kako da deklarišem direktivu i oslobodim
VL> stek jer treba da startujem neke programe,naprimer TM.
VL>
Probaj ovako:
š$M 2000,0,0ć
Uses Dos;
begin
SwapVectors;
exec('Ime_fajla','');
MMM SwapVectors;
end.
pascal.653pedjak,
-> #649, vukov> Da li je moguce iz programa usmeriti stampanje na port LPT2, uz
> potpuno ocuvanje udobnosti rada sa LST datotekom iz Borlandovog
> PRINTER Unit-a?
Naravno, potrebno je sledeće:
var
lst:text;
Assign(lst,'lpt2');
Reset(lst);
Ostatak koda ne moraš da menjaš.
pascal.654pedjak,
-> #651, uobradovic> exec('ime fajla','');
Ime fajla mora biti sa kompletnom putanjom i ekstenzijom, na primer
c:/pera/mika/laza.exe
pascal.655andrejt,
-> #646, uobradovic__> E,a kako ja da naucim sve ovo.Mislim kada da koristim DS kada
__> DX,zasto nije AL nego AX ......
Imas cini mi se i na sezamu neki spisak intova od 4 mb ;))
Koristio sam HelpPC 2.01 - moze da se skine i sa sezama kolko mi se cini.
(Nije veliki - oko 800k texta)
__> P.S. Ovo sam lupao jer neznam nista o tome.Probao sam da ucim
__> iz Brian-ove knjige ali ne ide.
Kako ne ide ? Sta ti ne ide ?
(Jel' mislimo na istog Briana ? ;))
pascal.656andrejt,
-> #650, vlador__> Ok, probacu. I sta da radim ako je preuzeo int?
Ne znam dal' bi ovo radilo - ne koristim win ali mogo bi
da probas da napravis jos jedan int21 (mislim da ga preuzmes jos jednom)
i da kao adresu neke globalne prom. tipa procedure stavis ono sto
dobijes kao adresu winovog int handlera i onda u novom intu
proveris ono sto ti treba pa ako je funkcija za menjanje voluma
(jel se o ovome bese radilo ?) ti pozoves onaj prvi - dosov int21
a ako to nije ta funkcija onda samo pozivas winov int21.
pascal.657vlador,
-> #649, vukov> Da li je moguce iz programa usmeriti stampanje na port LPT2, uz potpuno
Evo potpunog kratkog sorsa printer.tpu-a. Možeš promeniti šta ti se
ne sviđa. :)
--- Cut here ---
{*******************************************************}
{ }
{ Turbo Pascal Runtime Library }
{ Printer Interface Unit }
{ }
{ Copyright (C) 1988,92 Borland International }
{ }
{*******************************************************}
unit Printer;
{$I-,S-}
interface
var
Lst: Text;
implementation
procedure LstBinaryMode;
inline(
$8B/$1E/Lst/ { MOV BX,Lst.Handle }
$B8/$00/$44/ { MOV AX,4400H }
$CD/$21/ { INT 21H }
$80/$CA/$20/ { OR DL,20H }
$B6/$00/ { MOV DH,0 }
$B8/$01/$44/ { MOV AX,4401H }
$CD/$21); { INT 21H }
begin
Assign(Lst,'LPT1');
Rewrite(Lst);
LstBinaryMode;
end.
--- Cut here ---
pascal.658omega,
-> #651, uobradovicŢ U Pascalu nece da mi radi sledeci program.
A da pogledas poruke od pre jedno mesec dana?
pascal.659evlad,
-> #651, uobradovic>> š$M 2000,0,0ć
>> Uses Dos;
>> begin
>> exec('ime fajla','');
>> end;
begin
exec ...
WriteLn (OutPut,'Dos greška: ',DosError);
ReadLn; (* ovo čeka enter, da bi na miru pročitao poruku *)
end
Pokušaj da očitaš DOSERROR variablu, da vidiš šta ti je dos prijavio
(šta ga boli doktore ?) ... E onda probaš swapvect, puno ime datoteke,
povećaš, kompajlersku direktivu $M na 8000 ili 16000 etc ...
Prijatno ...
pascal.660superhik,
-> #652, dares=:> MMM SwapVectors;
^^^
Jel treba i ovo ;) ili je samo loša veza!?
pascal.661janko,
-> #649, vukov> Da li je moguce iz programa usmeriti stampanje na port
> LPT2, uz potpuno ocuvanje udobnosti rada sa LST datotekom
> iz Borlandovog PRINTER Unit-a?
Da. Odgovor je prost -- ne koristi taj junit, otvori svoju datoteku lst2
i gotovo.
pascal.662janko,
-> #651, uobradovic> U Pascalu neće da mi radi sledeći program.
>
> {$M 2000,0,0}
> Uses Dos;
> begin
> exec('ime fajla','');
> end;
>
> Imam 2 Mb Ram-a.Neznam kako da deklarišem direktivu i
> oslobodim stek jer treba da startujem neke
> programe,naprimer TM.
Stek si već rešio, ono što ti nije uspelo je da ti program nađe fajl --
nisi naveo punu adresu programa.
Neispravno:
exec("TM");
exec("\kumun\TM");
ispravno:
exec("\komun\TM.exe");
Sa TM-om (ako je reč o komunikacionom programu, a ne Nortonovom Time
Mark) ima šanse da ti ni ispravna varijanta ne uspe, jer TM je mnogo
alav za memorijom (bar ova verzija koju ja koristim).
pascal.663superhik,
-> #659, evlad=:> (šta ga boli doktore ?) ... E onda probaš swapvect, puno ime
=:> datoteke, $$$$$$$$
Zašta uopšte služi naredba SwapVectors ?
pascal.664evlad,
-> #663, superhik>> Zašta uopšte služi naredba SwapVectors ?
The following variables are all of the type pointer, and save the original
values of interrupt vectors that Turbo Pascal changes. Their names are of
the form SaveIntXX, where XX is the interrupt number in hex:
SaveInt00,SaveInt02,SaveInt1B,SaveInt23,SaveInt24,SaveInt34,SaveInt35,
SaveInt36,SaveInt37,SaveInt38,SaveInt39,SaveInt3A,SaveInt3B,SaveInt3C,
SaveInt3D,SaveInt3E,SaveInt3F,SaveInt75: pointer;
Sve ove interrupt vektore paskal preusmerava. Naredba SwapVector ih postavlja
na originalnu vrednost.
pascal.665postmast,
From: Bosko.Rafajlovic@f125.n103.z38.setgate.setnet.co.yu (Bosko Rafajlovic)
Subject: tri-door
Date: Sat, 12 Nov 1994 12:09:00
> Ja sam pravio neke door-ove i mogu ti reci da je TPU --
> mrak!
> Very easy za upotrebu, jasna imena func. i proc. koje
> skoro sve rade
> za tebe, tako da se pisanje svodi na nesto
> komplikovanije pisanje
> programa za DOS, jer ti TPU proc. i func. same obavljaju
> prakticno
> zezanje sa modemom.
:)) Da li si mozda provalio kako moze da se izabere (naravno iz TPU-a) ANSI,
ASCII ili AVATRRAT grafika - ja sam napravio neki door - ali samo podrzav
ANSI grafiku, tj. moze on da radi i sa ASCII-em i AVATAR-om ali nece sve da se
ispise na ekranu kao sto bi to ANSI uradio :(
Pozdrav Bole...
p.s. raf bbs / tel. 011/724-073 svakog dana od 22-06 h
* Origin: SetNet:Birostroj BBS,NON-STOP,14400bps,011/609945 (38:103/125)
pascal.666postmast,
From: Zoran.Rilak@f125.n103.z38.setgate.setnet.co.yu (Zoran Rilak)
Subject: (R) PITANJE
Date: Sat, 12 Nov 1994 20:55:00
[ Citat iz poruke (autor: Aleksandar Sasa Nikolic) na temu PITANJE : ]
ASN> ... Naravno za merenje vremena se za one koji
ASN> ne znaju koristi INT 08 koji kuca 18,2 puta po sekundi dakle...
Moj ti je savet da taj INT ostavis na miru; on je potreban hardveru.
Umesto njega koristi INT 1CH, on se poziva iz INT 8H (dakle svakih 55 ms) i
originalno sadrzi pointer na IRET. Ovo ti je "cistiji" nacin da uradis istu
stvar. Sa druge strane, ako ti je potrebno MNOGO preciznije merenje vremena
mozes to izvesti pomocu INT 15H, funkcije 83H/86H. Prva se zove "Event
Wait" a koristi se ovako: u AL upises vrednost podfunkcije (0 - postavljanje,
1 - brisanje intervala). Ako ti je AL = 0, onda u ES:BX upises seg:ofs bajta
u memoriji koji ce signalizirati kraj intervala u milisekundama, koga
postavljas u LONGWORD CX DX (CX je visi WORD). Kada sve to tako postavis
(ne zaboravi AH = 83H!), izvrsi INT 15H i tada se kontrola vraca tvom
programu. Na njemu je da s vremena na vreme proveri da li je bajtu na adresi
ES:BX setovan bit 7; ako jeste, period CX DX je istekao.
Funkcija 86H se koristi isto kao i 83H, samo ne postavljas ES:BX niti AL;
po isteku CX DX kontrola se vraca tvom programu. Interapti se ne izvrsavaju
dok interval ne istekne. Kako bilo da bilo, imaj u vidu da ove funkcije nisu
dostupne na svim racunarima (ima ih na AT i +). Ako funkcije ne postoje,
nakon INT 15H bice setovan CF.
... Who made you God to say: "I will disconnect you!" (obrada Metalike)
* Origin: SetNet:Birostroj BBS,NON-STOP,14400bps,011/609945 (38:103/125)
pascal.667vukov,
-> #653, pedjak
> Da li je moguce iz programa usmeriti stampanje na port LPT2, uz
>> Naravno, potrebno je sledeće:
>> var lst:text;
>> Assign(lst,'lpt2');
>> Reset(lst);
Zahvaljujem na poruci. Isprobano i fino radi, uz jednu malu korekciju:
naime, datoteku LST treba otvoriti za upis, tj. potrebno je staviti
Rewrite(lst) umesto Reset(lst).
Pozdrav
Vukov
pascal.668zarkos,
U Turbo Pascalu 6.0 sam uradio rezidentni program koji
skuplja podatke sa serijskog porta. Program koristi nedokumentovane
DOS funkcije, i to lepo funkcionise do momenta pokretanja Windows-a.
Naime Windows proradi lepo, ali moj rezidentni program nestaje, tj.
nema ga vise. Potrebno je naravno da programcic zivi i pre i posle
pokretanja Windows-a. Ako neko ima resenje... Pomagajte!!!
P.S. Znam da nije bas neki opsiran opis, ali mozda je neko imao neki
slican problem.
Zarkos
pascal.669andrejt,
-> #668, zarkos__> P.S. Znam da nije bas neki opsiran opis, ali mozda je neko imao neki
__> slican problem.
Imao je neko ovakve probleme - samo ne znam da li su nedokumentovane
funkcije bile u pitanju - ja sam dao "objasnjenje" da win preuzima
intove i onda ne moze da se normalno radi samo njima - mada verovatno
nije samo to u pitanju. Dakle pogledaj malo unazad poruke iz ove teme
i pitaj coveka kako je to resio - verovatno jeste posto se posle nije
javljao vise.
pascal.670inikolic,
Imam jedan problem vezan za TriDoor, napravio sam jedan door ali kad ga
startujem pri vezi i ako veza pukne , racunar se zablokira. Da li je problem u
meni(nesto sam izostavio i sta) ili je problem u TriDoor-u. Unapred zahvalan...
Igor
pascal.671zeljkoj,
-> #542, inferno> U pravu si... Nisam znao za procedure dok nisam procitao
> bas2pas... :)
I funkcije i procedure postoje u BASIC-u!
pascal.672pedjak,
-> #670, inikolic> Imam jedan problem vezan za TriDoor, napravio sam jedan door ali kad
> ga startujem pri vezi i ako veza pukne , racunar se zablokira. Da li
> je problem u meni(nesto sam izostavio i sta) ili je problem u
> TriDoor-u. Unapred zahvalan...
Da li kontrolišeš iz svog doora da je došlo do prekida veze..? Ako
ne, onda bi trebalo da kontrolišeš i shodno tome postupiš, recimo
vratiš kontrolu BBS aplikaciji.
pascal.673vlador,
-> #669, andrejt> i pitaj coveka kako je to resio - verovatno jeste posto se posle nije
> javljao vise.
Nije. ;) Rekao sam da ću probati kad budem imao vremena... A ovih danas
nisam imao vremena. :)
pascal.674frant,
-> #662, janko> Sa TM-om (ako je reč o komunikacionom programu, a ne Nortonovom Time
> Mark) ima šanse da ti ni ispravna varijanta ne uspe, jer TM je mnogo
> alav za memorijom (bar ova verzija koju ja koristim).
Radiće sa Telemate-om 4.12 sigurno, probao sam.
Frant
pascal.675dzakic,
-> #657, vlador> Evo potpunog kratkog sorsa printer.tpu-a. Možeš promeniti šta ti se
Odakle ti ovo? Imaš li sors i ostalih tpu-ova?
pascal.676inikolic,
-> #672, pedjakZanima me kako da kontrolisem prekid veze u TriDoor-u ako je to moguce, jer
mislim da on to sam radi. Kod druga u C-u kada pukne veza ispadne se iz dora
automatski, kao recimo da u pascalu kazete HALT. Ali kod mene nece, jednostavno
kada pukne program on stane i mogu samo da resetujem racunar. Neverujem da je
problem u TriDoor- posto sam ga skinuo sa SEZAM-a. Verovatno sam ja nesto
izostavio, ali pitanje je STA???
IGOR
pascal.677andrejt,
-> #676, inikolic__> jer mislim da on to sam radi. Kod druga u C-u kada pukne veza ispadne se
__> iz dora automatski, kao recimo da u pascalu kazete HALT. Ali kod mene
Sta je tu automatski kod HALT ?
__> nece, jednostavno kada pukne program on stane i mogu samo da resetujem
Pukne program ?
__> racunar. Neverujem da je problem u TriDoor- posto sam ga skinuo sa
__> SEZAM-a. Verovatno sam ja nesto izostavio, ali pitanje je STA???
Kako mi to da znamo - mislim dal' si ti nesto izostavio - sta si uopste
stavio ?
P.S. Jel' si probao sa funkcijom offline (vraca boolean) ?
pascal.678uobradovic,
-> #655, andrejt::> Kako ne ide ? Sta ti ne ide ?
::> (Jel' mislimo na istog Briana ? ;))
Mislim na Stephena O'Briena i knjigu 'Turbo Pascal 6.0 - Kompletan
vodič'
Uroš
pascal.679uobradovic,
-> #658, omega::> A da pogledas poruke od pre jedno mesec dana?
Nemam ja toliko vremena.
pascal.680andrejt,
-> #678, uobradovic__> Mislim na Stephena O'Briena i knjigu 'Turbo Pascal 6.0 - Kompletan
__> vodic'
E, pa ne znam sta moze da ti ne ide sa tom knjigom ? Stvarno ima dosta
stvari vrlo lepo objasnjenih. Dakle ponavljam pitanje : Ti rece da ti
nesto ne ide - sta ti nije islo - konkretno ?
pascal.681vlador,
-> #675, dzakic> Odakle ti ovo? Imaš li sors i ostalih tpu-ova?
Imam. To je deo Run Time Library-ja za BP 7.0.
pascal.682omega,
-> #679, uobradovicŢ::> A da pogledas poruke od pre jedno mesec dana?
Ţ
Ţ Nemam ja toliko vremena.
E pa nemam ni ja. Ako ti treba resenje - gledaj.
pascal.683duzle,
Da li neko ima paskal source (ako nema, moze i samo algoritam) sledecih
metoda za resavanje sistema linearnih jednacina:
- Direktni metodi:
1)Gauss
2)Cholasky
3)metod glavnih elemenata
4)Banachiewisz (metod kvadratnih korena)
- Iterativni metodi:
1)Jakobi
2)Leibman (Gauss-Seidel)
Jos ako neko ima isto i za dobijanje inverzne matrice (preferably Gausovim
metodom).... ;). Pogadjate da mi je ovo potrebno za ispit is numericke
matematike sa programiranjem (tako se u Skopju zove predmet) :)
pascal.684d.stamen,
-> #683, duzle> Da li neko ima paskal source (ako nema, moze i samo algoritam)
> sledecih metoda za resavanje sistema linearnih jednacina:
>
> - Direktni metodi:
> 1)Gauss
Prilazem source u Fortranu, lako ces ga promeniti...
Matrica A su koeficijenti uz clanove, a u nizu X su resenja.
Resava se sistem n*n, ali lako se da pretvoriti u n*m.
subroutine GAUS(A,X,n)
real pom,mx,A(300,301),X(300)
integer I,J,K,L
do 10 K=1,(n-1)
mx=abs(A(K,K))
L=K
do 20 I=(K+1),n
if (mx.lt.abs(A(I,K))) then
mx=A(I,K)
L=I
end if
20 continue
if (L.ne.K) then
do 30 J=1,(n+1)
pom=A(K,J)
A(K,J)=A(L,J)
A(L,J)=pom
30 continue
endif
do 40 I=(K+1),n
do 40 J=(K+1),(n+1)
A(I,J)=A(I,J)-A(I,K)*A(K,J)/A(K,K)
40 continue
10 continue
X(n)=A(n,(n+1))/A(n,n)
I=n-1
50 continue
if (I.eq.0) then
goto 70
end if
X(I)=A(I,(n+1))
do 60 K=(I+1),n
X(I)=X(I)-A(I,K)*X(K)
60 continue
X(I)=X(I)/A(I,I)
I=I-1
goto 50
70 end
pascal.685duzle,
-> #684, d.stamen>**>> 1)Gauss
>**>
>**> Prilazem source u Fortranu, lako ces ga promeniti...
>**> Matrica A su koeficijenti uz clanove, a u nizu X su resenja.
>**> Resava se sistem n*n, ali lako se da pretvoriti u n*m.
Hvala.
Ognen
P.S. Da li su bas sve knjige i svi programi koji nesto rade sa ovim
metodama vezani za Fortran (do sada mi je kroz ruke proslo jedno 15-tak
knjiga iz numericke i svi primeri su u ovom jeziku) ? Problem je u tome sto
bih sam seo i napisao ovo ali, nema se vremena (zato sam i zamolio da mi
neko sa sezama da gotov source). Anyway, thanx a lot.
pascal.686duzle,
Malopre sam naleteo na datoteku PROBOTS.ZIP (ne znam odakle mi je, mozda
je i sa Sezama pa je u ovoj poruci ne saljem). U njoj se nalazi P-code
pascal kompajler. Svrha programa je borba medju robotima koji su napisani u
paskalu. Roboti imaju svoj motorni pogon, svoje oruzje, radare itd. koje
koriste na bojnom polju. E, sad, da li ima zainteresovanih da se organizuje
takmicenje borbe medju robotima (svako ko je zainteresovan napise svojeg
robota - pravila za pisanje su jednostavna, neke vec predefinisane
procedure postoje, mainly za skeniranje bojista, pucanje, pomeranje,
dobijanje koordinata robota, ocitavanje momentalne stete itd.) ? Cisto da
vidimo ko najbolje poznaje paskal (i ko je najbolji strateg, a bogami i
programer ;)).
pascal.687uobradovic,
-> #680, andrejt::> stvari vrlo lepo objasnjenih. Dakle ponavljam pitanje : Ti
::> rece da ti nesto ne ide - sta ti nije islo - konkretno ?
Za sad nema ništa tako mnogo konkretno.Jednostavno nerazumem.
Na primer xoću da napravim sat neznam koje registre da koristim
i kako.Ili da na primer izlistam direktorijum u dve kolone.....
Uroš
P.S. Hvala na pomoći
pascal.688uobradovic,
-> #681, vlador::>> Odakle ti ovo? Imaš li sors i ostalih tpu¤ša?
::> ćmaÁŚ$TĚ$je deo Run Time Library-j! sa BP 7.0.
Može li neko da mi kaže o čemu se radi jer se nisam javljao oko
7 dana na Sezam a pad mi je bio ogroman da bi uspeo da ga skinem.
pascal.690andrejt,
-> #687, uobradovic__> Za sad nema nista tako mnogo konkretno.Jednostavno nerazumem.
__> Na primer xocu da napravim sat neznam koje registre da koristim
Najbolje je da pogledas malo unazad u ovu temu jer se pre raspravljalo
o merenju vremena - a mene mrzi da sad pisem. (Ako ti bas toliko nije
jasno pitaj me na mail sta ti treba - kad ti nesto konkretno bude trebalo -
- pa cu da ti kazem).
__> i kako.Ili da na primer izlistam direktorijum u dve kolone.....
Imas primer za 'dir' bas u o'brianovoj knjizi ako se ne varam.
(Pogledaj u helpu za findfirst,findnext itd.)
pascal.691inesic,
-> #686, duzle> Malopre sam naleteo na datoteku PROBOTS.ZIP (ne znam odakle mi
> je, mozda je i sa Sezama pa je u ovoj poruci ne saljem). U njoj
> se nalazi P-code
Buuuu, shmrtz. Oćemo PROBOTS.zip
pascal.692uobradovic,
-> #686, duzle::> Malopre sam naleteo na datoteku PROBOTS.ZIP (ne znam odakle
::> mi je, mozda je i sa Sezama pa je u ovoj poruci ne saljem). U
::> njoj se nalazi P-code
A jel možeš ti da pošalješ to pa da kasnije vidimo ko to može
a ko nemože da nastavi sa takmičenjem.Možda u tom programu ima
korisnog sora.
pascal.693uobradovic,
-> #686, duzle::> Malopre sam naleteo na datoteku PROBOTS.ZIP (ne znam odakle
::> mi je, mozda je i sa Sezama pa je u ovoj poruci ne saljem). U
::> njoj se nalazi P-code
A jel možeš ti da pošalješ to pa da kasnije vidimo ko to može
a ko nemože da nastavi sa takmičenjem.Možda u tom programu ima
korisnog sora.
pascal.694postmast,
From: Bosko.Rafajlovic@f125.n103.z38.setgate.setnet.co.yu (Bosko Rafajlovic)
Subject: Re: pascal
Date: Sat, 19 Nov 1994 14:33:00
-=> Quoting "Igor Nikolic" to All <=-
"N> From: "Igor Nikolic" <inikolic@sezam.UUCP>
"N> Newsgroups: yu.prog.pascal
"N> Organization: SEZAM Beograd, 011 648-422
"N> Imam jedan problem vezan za TriDoor, napravio sam jedan door ali kad
"N> ga startujem pri vezi i ako veza pukne , racunar se zablokira. Da li
"N> je problem u meni(nesto sam izostavio i sta) ili je problem u
"N> TriDoor-u. Unapred zahvalan...
I meni se to dogadja isto ... :(( Kada napravis door u TRIDOOR-u da li
ti je orijentisan samo za ANSI grafiku (osim ako koristis naredbe TD_naredba)
Ja nisam primetio nikakvu razliku izmedju naredbe TD_CLRSCR i ANSI_CLRSCR ?!
Da li si provalio kako moze da se ocita AVATAR skrin iz tridoor-a ? Ja nisam :(
Pozdrav Bole...
p.s. pozovi RAF BBS / tel. 011/724-073 svakog dana od 22-06 h
Ja sam SySop... :))
... My hard disk is full! Maybe I'll try this message section thing.
* Origin: SetNet:Birostroj BBS,NON-STOP,14400bps,011/609945 (38:103/125)
pascal.695postmast,
From: Bosko.Rafajlovic@f125.n103.z38.setgate.setnet.co.yu (Bosko Rafajlovic)
Subject: Re: pascal
Date: Sat, 19 Nov 1994 14:37:01
-=> Quoting "Igor Nikolic" to All <=-
"N> From: "Igor Nikolic" <inikolic@sezam.UUCP>
"N> Newsgroups: yu.prog.pascal
"N> Organization: SEZAM Beograd, 011 648-422
"N> Zanima me kako da kontrolisem prekid veze u TriDoor-u ako je to
"N> moguce, jer mislim da on to sam radi. Kod druga u C-u kada pukne veza
"N> ispadne se iz dora automatski, kao recimo da u pascalu kazete HALT.
"N> Ali kod mene nece, jednostavno kada pukne program on stane i mogu samo
"N> da resetujem racunar. Neverujem da je problem u TriDoor- posto sam ga
"N> skinuo sa SEZAM-a. Verovatno sam ja nesto izostavio, ali pitanje je
"N> STA??? IGOR
Najbolje bi bilo da sacekamo verziju 4.0 (ili koje vec ide...) pa da onda
vidimo kako ce se desavati ! I meni se to dogadja...Kakve door-ove pravis
u tridoor-u ? i koji TP koristis ?
Mozda je u ovoj verziji taj problem neostvarljiv ili je neki bug... :((
Pozdrav Bole...
... ebius tagline. This is a moebius tagline. This is a mo ...
* Origin: SetNet:Birostroj BBS,NON-STOP,14400bps,011/609945 (38:103/125)
pascal.696postmast,
From: bear@setnet.co.yu (Attila Csipa)
Subject: Modula 2
Date: Thu, 17 Nov 1994 20:35:22
Bas sam pre neki dan pregledavao ponudu prodavca softvera iz Madjarke i vidim sledece:
Borland:
Borland xxx vx.xx
Turbo xxx vx.xx
Symantec:
Modula 2 v9.1
E sad, dal' neko zna kakva je to Modulica ? Cudi me da je dosad prosla neopazeno (kod relativno poznatog izdavaca), a ima i relativno veliki broj verzije (cak 9.1). So, ako neko zna nesto...
Bear@setnet.co.yu
* Origin: Prometheus BBS - The Northern Frontier - SETNET (38:111/107)
pascal.697mdave,
-> #696, postmastSubject: Re: Modula 2
MD> From: bear@setnet.co.yu (Attila Csipa)
MD> Symantec:
MD> Modula 2 v9.1
Pošteno da ti kažem, nikad čuo. Inače, ne znam koliko si
upoznat ali modulaši uveliko prelaze na Modula-3. :)
SRC DEC je "proizvođač", a aminovano je od strane Wirth-a.
pascal.698vlador,
-> #686, duzle> Malopre sam naleteo na datoteku PROBOTS.ZIP (ne znam odakle mi je, mozda
> je i sa Sezama pa je u ovoj poruci ne saljem). U njoj se nalazi P-code
Šalji! :)
pascal.699duzle,
-> #692, uobradovic>**> A jel možeš ti da pošalješ to pa da kasnije vidimo ko to
>**> može a ko nemože da nastavi sa takmičenjem.Možda u tom
>**> programu ima korisnog sora.
Source (ako si na to mislio sa onim "sora" :)) kod kompajlera nije dat u
arhivi, ali postoji uputsvo i primeri jedno 20-tak robota.Evo je i
arhiva. :)
probots.arjpascal.700andrejt,
Jel' ima neko neki primer TSRa koji preuzima INT 21h ?
P.S.
Moze i na mail.
pascal.701inesic,
-> #699, duzle> Source (ako si na to mislio sa onim "sora" :)) kod kompajlera
> nije dat u arhivi, ali postoji uputsvo i primeri jedno 20-tak
> robota.Evo je i arhiva. :)
Skinuo arhivu. Pročitao .doc i probao nekoliko robota sa target.
Mislim da je jako zanimljivo. Pokušaću ovih dana na poslu da
nađem vremena pa da i ja napravim nekog robota. Interesantna
igra, čak bih rekao dobra za početnike koji uče paskal. Ako ima
još zainteresovanih nek se jave, a ako nema, da ne opterećujem
conf eventualno napravljenim robotima. Ili da se otvori grupa?
pascal.702sslavko,
-> #699, duzlePrilično interesantna igra. Nije toliko u pitanju poznavanje
programiranja koliko algoritmika. Ja sam napravio nekoliko
varijanti i zainteresovan sam za razmenu i okršaj sa ostalima.
P.S. Ajde neka neko pobedi GORO-a. ja ne uspevam nikako.
Naravno direktno kopiranje datih robota ne dolazi u obzir.
pascal.703ognjen,
Moze li se nekako upisati neki znak u donji desni ugao ekrana
a da isti ne 'odskroluje' za jedan red?
pascal.704andrejt,
-> #703, ognjen__> Moze li se nekako upisati neki znak u donji desni ugao ekrana
__> a da isti ne 'odskroluje' za jedan red?
Nisam siguran nasta mislis ali probaj :
Var VM : Array[1..4000] Of Byte Absolute $B000:$8000;
Ch : Char;
Begin
Read(Ch);
VM[3999] := Ord(Ch);
VM[4000] := 15;
End.
P.S.
Posto upisuje direktno u video memoriju nece 'odskrolovati'.
P.P.S.
Za vise o ovome me pitaj na mail.
pascal.705sslavko,
Apropo onih robota. Evo mog remek-dela pa ko voli nek izvoli.
Pobedite me u većini slučajeva pa da ga dorađujem. Naravno, ne
Još nešto. Ako vas nervira čekanje pri startovanju probots.exe
onda ga izeditujte, nadjite niz: 36 8B 57 04 i zamenite ga sa:
BA 00 00 90. Ovo izbacuje čekanje ali ostavlja uvodnu poruku.
(da se ne ogrešim baš mnogo).
killer.prpascal.706sslavko,
-> #700, andrejtEvo ti kako sam ja rešio presretanje int $21. Ako se radi o
upisu u fajl onda postavljam pointer strp na string koji se
upisuje, a u strplen upisujem veličinu stringa. Ovo zato što
on posle upisa poništi veličinu stringa pa je potrebno
sačuvati je. Naravno meni je trebalo ovako, a ti vidi.
var strp:žstring;
strplen:byte;
old21:procedure;
š$F+ć
procedure new21;interrupt;
label dalje;
begin
asm
pop bp
pop es
pop d
pop di
pop si
pop dx
pop cx
pop bx
pop ax
push word ptr old21+2
push word ptr old21
pushf
cmp ah,$40
jne dalje
push d
pop word ptr strp+2
sub dl,1
mov word ptr strp,dx
add dl,1
mov strplen,cl
dalje:popf
mov ds,d
retf
end;
end;
š$F-ć
pascal.707inesic,
-> #703, ognjen> Moze li se nekako upisati neki znak u donji desni ugao ekrana
> a da isti ne 'odskroluje' za jedan red?
Ja koristim procedure writeStr i sriteChr iz unita win koji je
priložen uz TP5.5 (nisam prešao na noviju verziju jer mi je pri
kompajliranju demoa iz TP6.00 prijavljivao not inaf memori: imam
XT sa 640k). Ove priložene procedure rade ispis direkto u
memoriju, nešto su brže, i nema tih neželjenih efekata. Ja uvek
pazim da formatiram ispis, tj. string mi nikad nije duži nego što
bi smeo da bude, pa ne znam šta se dešava kad na poziciji 79,25
ispišeš string dug 10 karaktera, ali vredi probati. Jedina
nezgoda je ta što pre ispisa moraš broj da konvertuješ u string.
U tu svrhu sam napravio proceduru koja od broja pravi string sa
željenim brojem decimala, umeće zareze (ili tačke) na svaka tri
mesta (odvaja klase) opciono. Napraviš sebi jednom takvu uslužnu
proceduru i prebrineš brigu za sva vremena.
pascal.708inferno,
-> #705, sslavkoŮ│ Apropo onih robota. Evo mog remek-dela pa ko voli nek izvoli.
Ů│ Pobedite me u većini slučajeva pa da ga dorađujem. Naravno, ne
ja se stvarno izvinjavam (nisam pratio raspravu od pocetka),
pa ako mogu znati o kakvim je robotima rec? :))
pascal.709duzle,
-> #701, inesic>**> robota. Interesantna igra, čak bih rekao dobra za
>**> početnike koji uče paskal. Ako ima još zainteresovanih nek
>**> se jave, a ako nema, da ne opterećujem conf eventualno
>**> napravljenim robotima. Ili da se otvori grupa?
Ja mislim da se otvori grupa.
pascal.710duzle,
-> #704, andrejt>**> P.S.
>**> Posto upisuje direktno u video memoriju nece 'odskrolovati'.
>**> P.P.S.
>**> Za vise o ovome me pitaj na mail.
Nece ni ako koristis Int 10h, funkcija 09h (write char at cursor). Normalno
pre toga treba da se postavis na zeljenu poziciju.
pascal.711andrejt,
-> #706, sslavko__> Evo ti kako sam ja resio presretanje int $21. Ako se radi o
__>
__> procedure new21;interrupt;
...
__> pop bp
__> pop es
__> pop d <-
__> pop di
__> pop si
__> pop dx
__> pop cx
__> pop bx
__> pop ax
...
__> push d <-
...
Sta je ovo 'd' ?
pascal.712sslavko,
-> #711, andrejt>> ...
>> __> pop d <-
>> ...
>> __> push d <-
>> ...
>>
>> Sta je ovo 'd' ?
Ops, sorry. Na to sam zaboravio.
var d:word;
promenljiva u kojoj čuvam DS registar. Ako DS napuniš
originalnom vrednošću onda gubiš sve svoje promenljive, a
potrebno je ponekad u INT proslediti i originalnu vrednost
DS-a. Zato sam to tako uradio. Ako neko ima bolje rešenje neka
kaže.
pascal.713dares,
Roboti su stvarno prava stvar. Ima li neko možda neko
source onog kompajlera, da borbu prebacimo u grafički mod?
Time bi beorba bila i vizuelno mnogo interesantnija.
Zna li neko po kom principu glavni program (PROBOTS) prebacuje
kontrolu sa jednog na drugi robot? Da li se jedno vreme
kontroliše jedan pa se onda isti vremenski interval kontroliše
drugi, ili je to rešeno nekako drugačije?
A mogli bi da osnujemo i tu grupu.
pascal.714sslavko,
-> #713, dares>> kontrolu sa jednog na drugi robot? Da li se jedno vreme
>> kontroliše jedan pa se onda isti vremenski interval kontroliše
>> drugi, ili je to rešeno nekako drugačije?
E to i mene interesuje. ako je u pitanju isti vremenski
interval onda to u mnogome menja potrebnu strategiju, a ako je
u pitanju protok cele petlje jednog pa onda drugog to je onda
prava stvar. U prvom slučaju bi manji algoritam bio bolji, a u
drugom veličina nema veze, svi su podjednaki.
pascal.715postmast,
From: Sloba.Markovic@f115.n103.z38.setgate.setnet.co.yu (Sloba Markovic)
Subject: pascal
Date: Fri, 25 Nov 1994 00:52:04
Origin.SUBJ: pascal
Origin.FROM: "Ognen Duzlevski"
Origin.TO: All
"D> Malopre sam naleteo na datoteku PROBOTS.ZIP (ne znam odakle mi je,
"D> mozda je i sa Sezama pa je u ovoj poruci ne saljem). U njoj se nalazi
"D> P-code pascal kompajler. Svrha programa je borba medju robotima koji su
"D> ko je zainteresovan napise svojeg robota - pravila za pisanje su
JA SAM! Koliki je program i gde da ga nadjem!
MAGIC FLASH!
... Nasao sam devojku, ali ona tvrdi da nije ni bila izgubljena :)))
* Origin: Atlantis BBS 22-05 tel. 3225-548 ■Belgrade■ (38:103/115)
pascal.716djelovic,
-> #713, dares> A mogli bi da osnujemo i tu grupu.
Nema razloga za skrivanje u grupama, ukoliko je stvar toliko zanimljiva
koliko kazete, verujem da ce zanimati i siru publiku. Zar nije cilj svake igre
da ima sto vise zainteresovanih za nju?
pascal.717sslavko,
-> #714, sslavkoLupam, lupam. Ponekad mnogo, ponekad malo manje. MORA da
koristi isti (ili sličan) vremenski interval inače bi bilo
moguće napraviti robota od par hiljada linija koje su sve:
cannon(dir,scan(dir,5));dir:=dir+20;
i uništiti drugog robota u jednom ili dva prolaza. Direktna
posledica ovoga je da treba imati jedan scan..cannon na svakih
desetak redova koda. (Potrebno je neko vreme da se top napuni)
pascal.718inesic,
-> #708, inferno> ja se stvarno izvinjavam (nisam pratio raspravu od pocetka),
> pa ako mogu znati o kakvim je robotima rec? :))
Skini fajl uz poruku 7.699
pascal.719inesic,
-> #702, sslavko> P.S. Ajde neka neko pobedi GORO-a. ja ne uspevam nikako.
> Naravno direktno kopiranje datih robota ne dolazi u obzir.
Probaj goro vs. abasiri. Ja sam probao nekoliko puta i abasiri je
uvek pobeđivao. Šteta na njemu je bila između 65 i 89.
pascal.720duzle,
-> #713, dares>**> Roboti su stvarno prava stvar. Ima li neko možda neko
>**> source onog kompajlera, da borbu prebacimo u grafički mod?
>**> Time bi beorba bila i vizuelno mnogo interesantnija.
Konacno sam se setio odakle je ova arhiva (InForma BBS u Skopju - imaju
prikaceno jedno 3-4 CD-a). Pogledacu, mozda se i nadje nesto.
>**> Zna li neko po kom principu glavni program (PROBOTS)
>**> prebacuje kontrolu sa jednog na drugi robot? Da li se jedno
>**> vreme kontroliše jedan pa se onda isti vremenski interval
>**> kontroliše drugi, ili je to rešeno nekako drugačije?
Nisam mnogo razmisljao o ovome. Ako nekoga interesuje kako da simulira
multi-tasking u paskalu, evo jedna arhiva iz knjige Turbo Pascal 6.0 -
Techniques & Utilities (Neil Rubenking). Princip je jednostavan - svi znaju
da konstante koje su deklarisane kao const ime:tip = nesto unutar
procedure/funkcije zadrzavaju svoju tekucu vrednost i po izlasku iz
procedure/funkcije. E, sad takva procedura se deli na vise delova koji
zavise od vrednosti jedne takve konstante. Onda se dve takve procedure
pozivaju naizmenicno. Ko nije shvatio - evo mu source :)
>**> A mogli bi da osnujemo i tu grupu.
Moze, moze...
multitsk.zippascal.721duzle,
Malopre sam pregledao neke prasnjave diskete ;) i naleteh na Pascal
Newsletter (autori su isti kao i za Windows Programmers Journal). Ima jedno
6 zipova. Da li ih vec ima na Sezamu, ili da ih saljem ?
Ogi
P.S. neko je pitao kako da ulinkuje slike i slicno u .EXE. U nekom od
brojeva Pascal Newsletter-a ima bas ovo :).
pascal.722jkpbvk,
-> #721, duzle>< P.S. neko je pitao kako da ulinkuje slike i slicno u .EXE. U nekom od
>< brojeva Pascal Newsletter-a ima bas ovo :).
Ako neces sve da saljes , vidi da posaljes samo taj .
P.S. Ja sam bio taj koji je pitao :))
pascal.723postmast,
From: dragisha@hobbiton.CO.YU (Dragisa Duric)
Subject: Re: Modula 2
Date: Fri, 25 Nov 1994 07:20:36 GMT
-> Symantec:
-> Modula 2 v9.1
->
-> E sad, dal' neko zna kakva je to Modulica ? Cudi me da je dosad prosla
-> neopaze o (kod relativno poznatog izdavaca), a ima i rel
Koliko sam üuo, Symantec je kupio Logitech. Znaüi, to je Logitech
Modula-2, a 9.1... pa moderno je praviti skokove u verzijama da se, k'o
fol, stigne konjkurencija.
Mene zanima neäto viäe o toj Moduli, äta sve moée (32bitna, Windows
prog...) kao i njena cijena... Ajde please raspitaj se malo.
--
[Cure for postal strikes: mail them their strike pay.]
pascal.724postmast,
From: dragisha@hobbiton.CO.YU (Dragisa Duric)
Subject: Re: pascal
Date: Fri, 25 Nov 1994 07:36:47 GMT
-> MD> Symantec:
-> MD> Modula 2 v9.1
->
-> Posteno da ti kazem, nikad cuo. Inace, ne znam koliko si
-> upoznat ali modulasi uveliko prelaze na Modula-3. :)
Hehe, uveliko = ?... Glede Module-3, to radi i na 386icama, postoje dva
porta, jedan ima üak i Threads. Ovaj bez Threads (zbog ograniüenja GO32
extendera) imam i moée se dobije.
[i bi noć, i drugi dan...]
He, sada imam i drugu verziju, to je pet disketa, podrzava Threads, XMS
only i ima interno mapiranje 32char imena fajlova preko FATa. Viäe ću
napisati kad stignem to da instaliram i probam. Ovo je portovana verzija
3.1 (aktuelna M3 je 3.3, ali to su minor razlike, niäta suätinski) a ona
prva je 2.11 verzija SRC M3.
--
[I wanna see 'em explode in every zip code!]
pascal.725postmast,
From: dragisha@hobbiton.CO.YU (Dragisa Duric)
Subject: Re: File Find Algoritam...
Date: Fri, 25 Nov 1994 07:36:59 GMT
-> SSta mislite koji je algoritam za File Find najefikasniji??
Onaj kod SSTa :)
-> Ja koristim rekurzivni (onaj tipiccno sskolski algoritam), ali kada na
-> disku ima veeeeeliki broj direktorijuma, program mi puca radi stack over
-> flow (iako sam stavio pomoccu $M max za STACK..)
Ima logike da pukne na stkovf samo ako imas jako duboku strukturu ili
gresku u strukturi koja stvara privid beskonacnog stabla, desi se to DOSu
ponekad. Jako duboka struktura, plus previse lokalnih varijabli u toj
proceduri (koje se alociraju na steku) ce da ubije program. Mislim da bi
trebalo da ti pomogne smanjivanje broja tih varijabli.
-> Isto, dali je neko od vas imao visse iskustva pri radu sa FAT -ovima, i
-> ako da, dali je voljan da napisse nessto visse o tome...
mjova je (cini mi se) pravio fajlfinder koji je isao direktno na disk, i
dao je sors uz njega.
--
[An optimist is a guy without much experience]
pascal.726postmast,
From: bole@mrsys1.MR-Net.co.yu (Bosko Radivojevic)
Subject: Recordi
Date: Thu, 24 Nov 1994 17:44:24 GMT
Hay!
Eto ovih dana sam nesto pravio u Turbo Pascalu 6.0 (da se zna:)
E i trebali mi recordi.. Zam ja (mislim ja:) te recorde nije to tesko..
imas seek imas typove i sve je ok! ... ALi ne bi ni bilo ove poruke da
to nije bas tako:) I pocne da me zeza.. zeza.. pa rastura:) Pa evo vam
otprilike skracena verzija mog programa (nesto bezveze) ...:
i recimo ima 4 rekorda on prodje 4 puta i ispise tacno ali prodje i 5-ti
put i kaze na read (uf, user) DISK READ ERROR i to u svim kombinacijamA:)
Tako posto ovde ima jaaako dobrih programera.. POMOZ'TE! :)
program proba_Za_rekord;
Type juzer = Record
ime: String;
End;
Var user: juzer;
uf : File Of juzer;
i,a: Integer;
b : String;
Begin
Assign (uf, 'users1.dat');
{$I-}
Reset (uf);
if ioresult <> 0 then rewrite (uf);
{$I+}
ReadLn(a);
Seek (uf, a);
ReadLn (b);
user.ime := b;
Write (uf, user);
Close (uf);
Reset (uf);
WriteLn (FileSize (uf) );
For i := 0 To FileSize (uf) Do
Begin
Seek (uf, i);
Read (uf, user);
WriteLn (user. ime);
ReadLn;
End;
End.
--
Pozdravlja vas,
Bole@Mrsys1.MR-Net.co.yu
pascal.727sslavko,
Evo ga šampion!! Predlažem da se roboti nazovu po korisničkim
imenima onih koji ih prave, pa da se tako takmičimo. Evo ga
moj SSLAVKO!!! Ajde ko će da ga pobedi.
Moramo da napravimo i propozicije. Recimo da se igra 20 ili 50
partija.
procedure SSlavko;
var r,dir,head,range:integer;
procedure go(d,s:integer);
begin
if loc_x<200 then head:=0;
if loc_x>800 then head:=180;
if loc_y<200 then head:=90;
if loc_y>800 then head:=270;
drive(d,s);
end;
begin
dir:=0;
head:=0;
r:=0;
repeat
range:=scan(dir,10);
while range=0 do
begin
range:=scan(dir,10);
if range>40 then cannon(dir,range) else
begin
dir:=dir+170;
r:=0;
end;
go(head,100);
end;
dir:=dir-5;
range:=scan(dir,5);
if range=0 then
begin
dir:=dir+10;
range:=scan(dir,5);
end;
if range>40 then
begin
r:=trunc((r-range)/2);
cannon(dir,range-r);
r:=range;
end;
head:=dir;
go(head,40);
until dead or winner;
end;
pascal.728sslavko,
-> #719, inesic>> Probaj goro vs. abasiri.
Probao sam i tačno je da abasiri uglavnom pobeđuje. Dobar je i patrol.
Moj sslavko :)) gubi od gorooa sa 70-80% (u proseku). A goro ima izuzetno
jednostavan algoritam. Najvažnije je napraviti algoritam koji će dovoljno
brzo i dovoljno precizno skenirati okoliknu i nalaziti neprijatelja.
pascal.729sslavko,
-> #726, postmast>> For i := 0 To FileSize (uf) Do
i ti ide od 0 do FileSize(uf), odnosno jedan put više nego što ih stvarno
ima. Daj mu "To FileSize(uf)-1".
pascal.730postmast,
From: bebek@setnet.co.yu (Zeljko Stevanovic)
Subject: pascal
Date: Sun, 27 Nov 1994 09:03:00
To: "Ivica Nesic" <inesic@sezam.UUCP>
> Source (ako si na to mislio sa onim "sora" :)) kod kompajlera
> nije dat u arhivi, ali postoji uputsvo i primeri jedno 20-tak
> robota.Evo je i arhiva. :)
"N>
"N> Skinuo arhivu. Procitao .doc i probao nekoliko robota sa target.
"N> Mislim da je jako zanimljivo. Pokusacu ovih dana na poslu da
"N> nadem vremena pa da i ja napravim nekog robota. Interesantna
"N> igra, cak bih rekao dobra za pocetnike koji uce paskal. Ako ima
Interesuje me ta igra ili vec sta je ??
... Ali mama, pa tamo su svi dorovi registrovani...
* Origin: Venik BBS * Smed. Palanka * +381 26 34808 SetNet: (38:103/126)
pascal.731postmast,
From: bebek@setnet.co.yu (Zeljko Stevanovic)
Subject: pascal
Date: Sun, 27 Nov 1994 09:07:01
To: "Slavko Snjegota" <sslavko@sezam.UUCP>
"S> sacuvati je. Naravno meni je trebalo ovako, a ti vidi.
"S> procedure new21;interrupt;
"S> label dalje;
"S> begin
"S> asm
"S> pop bp
"S> pop es
"S> pop d
"S> pop di
"S> pop si
"S> pop dx
"S> pop cx
"S> pop bx
"S> pop ax
Sta radi ova ASM naredba nikako da shvatim...
"S> push word ptr old21+2
"S> push word ptr old21
Takodjer i ova ..
"S> pushf
... IBM-PC - Imbecil Bussines Machine - Permanently Craches
* Origin: Venik BBS * Smed. Palanka * +381 26 34808 SetNet: (38:103/126)
pascal.732postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: pascal
Date: Sun, 27 Nov 1994 12:45:00
> Moze li se nekako upisati neki znak u donji desni ugao
>ekrana a da isti ne 'odskroluje' za jedan red?
Da li ga ispisujes sa WriteLn() ili sa Write()? Ako koristis prvu
funkciju onda je zameni drugom i resices problem.
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.733postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: Recordi
Date: Sat, 26 Nov 1994 13:06:00
>i recimo ima 4 rekorda on prodje 4 puta i ispise tacno ali
>prodje i 5-ti
>put i kaze na read (uf, user) DISK READ ERROR i to u svim
>kombinacijamA:)
> For i := 0 To FileSize (uf) Do
Klasicna greska. FileSize() vraca broj slogova u datoteci,
a ti pocinjes da brojis od nule, sto znaci da se petlja vrti
za jedan krug vise nego sto treba.
Pocni da brojis od 1.
Ja vise volim da citam podatke u WHILE NOT EOF(uf) petlji.
Tako sigurno izbegavam disk error a sigurno cu da procitam
sve podatke.
Broker
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.734postmast,
From: nenadr@sunset.fon.bg.ac.yu (Nenad Radosavljevic)
Subject: Re: pascal
Date: Tue, 29 Nov 94 20:13:58 GMT
In article <786090458.AA09777@setgate.setnet.co.yu>
broker@setnet.co.yu writes:
>
>> Moze li se nekako upisati neki znak u donji desni ugao
>>ekrana a da isti ne 'odskroluje' za jedan red?
>
>Da li ga ispisujes sa WriteLn() ili sa Write()? Ako koristis prvu
>funkciju onda je zameni drugom i resices problem.
>
Malko teze u ovom slucaju. Naime pascal-ove naredbe za pristup
CRT-u writeln() i write(), prepoznaju kada se nesto upisuje u poslednji
karakter na ekranu (donji desni ugao) i automatski scroll-uju ekran za
jedan red vise (obe naredbe). Jedno od mogucih resenja je da prestanes
da koristis write i writeln, da sa od nekud preuzmes arhivu TPFAST, sa
asemblerski pisanim rutinama za pristup video memoriji kod SVIH do sada
poznatih tipova kartica. Rutine cak podrzavaju i video pages (kao kod
Norton Commander-a - vise screen-ova koji se preklapaju momentalno) i
pravljenje windows-a a imas i gomilu drugih korisnih rutina (za
stringove, matematicke f-je itd. itd.). I sto je (barem meni) najlepse
cela arhiva je srazmerno mala a u sebi sadrzi i source-ove svega sto je
napisano).
Pozdrav,
--
=======================================================================
Nenad Radosavljevic E-mail: nenadr@sunset.fon.bg.ac.yu
=======================================================================
pascal.735vlador,
-> #719, inesic> Probaj goro vs. abasiri. Ja sam probao nekoliko puta i abasiri je
Ja nisam našao robota koji može u većini slučajeva da pobedi abasirija,
mada nisam sve isprobao.
pascal.736uobradovic,
-> #727, sslavko::> if loc_x<200 then head:=0; \
::> if loc_x>800 then head:=180; \ --- šta ovo znači
::> if loc_y<200 then head:=90; /
::> if loc_y>800 then head:=270; /
::> drive(d,s); /
.
.
::> dir:=0;
::> head:=0;
::> r:=0;
.
.
::> range:=scan(dir,10); \
::> while range=0 do \
::> begin \
::> range:=scan(dir,10); \
::> if range>40 then cannon(dir,range) else \ --- šta ovo znači
::> begin /
::> dir:=dir+170; /
::> r:=0; /
.
.
::> end;
::> dir:=dir-5; \
::> range:=scan(dir,5); \
::> if range=0 then \
::> begin \
::> dir:=dir+10; \--- šta i ovo znači
::> range:=scan(dir,5); /
::> end; /
::> if range>40 then /
.
.
::> r:=trunc((r-range)/2); \
::> cannon(dir,range-r); \
::> r:=range; \
::> end; \----- šta ovo znači
::> head:=dir; /
::> go(head,40); /
::> until dead or winner; /
::> end; /
Može li neko da mi objasni kako se pravi procedura za P-ROBOTS.
Šta je CANNON,SCAN,DIR,LOC_X,LOC_Y,RANGE,HEAD....
Hoću i ja da ga napravim ali moram da znam sta je sta.OK.
Hvala Uroš
P.S. Izvinite na velikom replyu.