opět pascal
Moderátor: Rudi
Re: opět pascal
presunuto
Perlicka na bednu... programy ktere tisknu samy svuj zdrojak... (zadne nacitani zdrojaku ze souboru)
http://www.nyx.net/~gthompso/self_pasc.txt
http://www.nyx.net/~gthompso/self_pasc.txt
Čas na hrdinské činy nastane zítra...
-
- Moderátor
- Příspěvky: 2146
- Registrován: 15 dub 2004 13:41
- Bydliště: !!!
- Kontaktovat uživatele:
Kurňa, to je už vyšší dívčí. To mi celkem připomíná sebemodifikující a sebe kontrolujícíc kód ve strojáku Z80. Když byl ve smyčce vykonáván kód v určitém místě paměti, vždy dělal něco jiného. Byl to trik, který mohl pěkně zamotat hlavu tzv. Snapshotu, kdy se po stisku tlačítka nemaskovatelného přerušení měla uložit celá paměť vč. stavu registrů. Obvykle se to používalo na ukládání her na disketu apod. V sebemodifikující smyčce se už většinou nepodařilo takový snapshot znovu spustit.ddt píše:Perlicka na bednu... programy ktere tisknu samy svuj zdrojak... (zadne nacitani zdrojaku ze souboru)
http://www.nyx.net/~gthompso/self_pasc.txt
Jinak já jsem ten stroják moc nedával a to nejlepší, co jsem napsal, byl ovladač k primitivnímu A/D převodníku. Perličkou je, že to bylo pro automotive využití - ZX Spectrum (resp. Didaktik Kompakt) pak bylo centrum stolice na testování tlumičů - jak na autě, demontovaných.
|\/| /\ '|' | '/. ~ < | \/ | < ~ \/ | |< <> |\|
To jsou hustokódy a to jsem si na vejšce myslel, kdovíjak ten Pascal neovládám... Ale tohle
BTW, dodnes občas Pascal používám. Jeden kolega (absolvent VUT) nedá dopustit na Javu, já ji sice rok dělal, ale nějakej jednoúčelovej kludge dřív spáchám v Pascalu. Je to sice OT, ale jak jste na tom vy?
Jinak bublání jsme dělali takhle
A klasika je
A netlemte se, my jsem nehráli na efektivitu ani dýlku kódu, ju?
BTW, dodnes občas Pascal používám. Jeden kolega (absolvent VUT) nedá dopustit na Javu, já ji sice rok dělal, ale nějakej jednoúčelovej kludge dřív spáchám v Pascalu. Je to sice OT, ale jak jste na tom vy?
Jinak bublání jsme dělali takhle
Kód: Vybrat vše
unit Se05U;
interface
const MaxVek = 20000; {velikost vektoru}
type Vektor = array[1..MaxVek] of Real; {pracovní typ}
procedure VybNej(N:Integer;var V:Vektor); {třídění výběr největšího}
procedure Bubl(N:Integer;var V:Vektor); {třídění probubláváním}
implementation
procedure VybNej(N:Integer;var V:Vektor);
{třídění vektoru V o počtu prvků N<=MaxVek od nejmenšího do největšího}
var i,j:Integer; x:Real;
begin
for i:=N downto 2 do
begin
x:=V[i]; {označ poslední největší}
for j:=1 to i-1 do
if V[j]>x then
begin
x:=V[j]; V[j]:=V[i]; V[i]:=x; {nový největší}
end;
end;
end; {procedury VybNej}
procedure Bubl(N:Integer;var V:Vektor);
{třídění vektoru V o počtu prvků N<=MaxVek od nejmenšího do největšího}
var i,nk:Integer; x:Real; f:Boolean;
begin
nk:=N-1; {aktuální délka vektoru}
repeat
f:=False; {příznak přehození}
for i:=1 to nk do
if V[i]>V[i+1] then
begin
x:=V[i]; V[i]:=V[i+1]; V[i+1]:=x;
f:=True;
end;
nk:=nk-1;
until NOT f;
end; {procedury Bubl}
end.
Kód: Vybrat vše
unit trideniun; {pretrideni puvodniho vektoru}
{projet radu cisel, najit max, hodit na konec,
projet zbytek bez posledniho, najit max, hodit na konec, atd.}
interface
const MaxVek = 2000; {max. velikost vektoru - pro vetsi trva dlouho}
type Vektor = array[1..MaxVek] of Real; {vlastni typ - nelze jen array}
procedure VybNej(N:Integer;var V:Vektor); {var - volani odkazem}
procedure Bubl(N:Integer;var V:Vektor);
implementation
procedure VybNej(N:Integer;var V:Vektor);
{třídění V velikosti N<=MaxVek od nejmenšího}
var i,j:Integer; x:Real;
begin
for i:=N downto 2 do {do 2 protoze ve druhem cyklu je i-1}
begin x:=V[i]; {označ poslední největší}
for j:=1 to i-1 do
if V[j]>x then
begin {nový největší}
x:=V[j]; V[j]:=V[i]; V[i]:=x;
end;
end;
end; {procedury VybNej}
procedure Bubl(N:Integer;var V:Vektor);
{třídění V velikosti N<=MaxVek od nejmenšího }
var i,nk:Integer; x:Real; f:Boolean; {typ Boolean - hodnota A / N}
begin nk:=N-1; {aktuální délka vektoru}
repeat
f:=False; {příznak přehození}
for i:=1 to nk do
if V[i]>V[i+1] then
begin f:=True;
x:=V[i]; V[i]:=V[i+1]; V[i+1]:=x;
end;
nk:=nk-1;
Mazda3 2.0i 150PS/6000ot. & 187Nm/4500 ot.
Re: opět pascal
Ježiši, buď jsou tädy všichni křáplí do palice, nebo já su momentálně zaostalej
EXPRESNÍ PŘEPRAVA KUSOVÝCH ZÁSILEK NA TRASE BRNO - PRAHA - BRNO TÝŽ DEN OD PODÁNÍ - INFO: 608 771 206
Re: opět pascal
Já měl Packal 2 roky a už z něj vím úplný hov*no
EXPRESNÍ PŘEPRAVA KUSOVÝCH ZÁSILEK NA TRASE BRNO - PRAHA - BRNO TÝŽ DEN OD PODÁNÍ - INFO: 608 771 206