nu mám to takhle rozhozený pom. unity.. pascal jsou prej základy, máme to prvním rokem, ale nenajde se moc lidí co to chápe. max ti co opakují
Kód: Vybrat vše
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils,
DateUtils,
Unit1 in 'Unit1.pas';
var p,pv,pb:Vektor;
i,poc,x1,x2,x3:Integer;
c1,c2,c3,dt1,dt2:TDateTime; {strukturovany system casu?}
Ro,Me,De,Ho,Mi,Se,ms:Word;
begin
poc:=MaxVek;
randomize; {nahodna cisla}
for I := 1 to poc do p[i]:=random(+-1000); {tim by se to melo naplnit +-1000}
pv:=p; pb:=p; {kopie vektoru}
Now(c1);
DecodeDateTime(c1,Ro,Me,De,Ho,Mi,Se,ms);
writeln(Ro,' ',De,'.',Me,'.',Ho,':',Mi,':',Se,'.',ms);
VybNej(poc,pv);
Now(c2); {ziskej aktualni cas}
Bubl(poc,pb);
Now(c3); {ziskej aktualni cas}
dt1:=c2-c1; dt2:=c3-c2;
DecodeDateTime(dt1,Ro,Me,De,Ho,Mi,Se,ms);
writeln('Doba provadeni Bubl je: ',ms,'msec.');
DecodeDateTime(dt2,Ro,Me,De,Ho,Mi,Se,ms);
writeln('Doba provadeni VybNej je: ',ms,'msec.');
readln;
end.
Kód: Vybrat vše
unit Unit1;
interface
const MaxVek = 20000; {max velikost vektoru}
type Vektor = array[1..MaxVek] of Real; {typ}
procedure VybNej (N:Integer; var V:Vektor);
procedure Bubl (N:Integer; var V:Vektor);
implementation
procedure VybNej (N:Integer; var V:Vektor); {trideni V velikosti N<=MaxVek od nejmensiho}
var i,j:Integer;
x:Real;
begin
for I := N downto 2 do
begin
x:=V[i];
for j:=1 to i-1 do
if V[j]>x then
begin
x:=V[j];
V[j]:=V[i];
V[i]:=x;
end;
end;
end;
procedure Bubl (N:Integer; var V:Vektor);
var i,nk:Integer;
x:Real;
f:Boolean;
begin
nk:=N-1; {aktualni delka 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;
until NOT f;
end;
end.
--- Doplnění předchozího příspěvku (30 Dub 2011 00:46) ---
a když tohle spustím, sekne se mi to hned u Now(c1); což by mělo dle návodu získat aktuální čas :(