Pokaż wyniki 1 do 2 z 2

Temat: Zadanie z Programowania ;/

  1. #1

    Domyślnie Zadanie z Programowania ;/

    mam napisany taki program :
    Uses SysUtils;DateUtils,Windows;
    Const N:=10000;
    Type TTab=array[0..N] of real;
    Procedura RandomTab(size:integer,varTab:TTab);
    Var i:integer;
    Begin
    Randomize;
    For i:=0 to size do Tab[i]:=random(1001)/1000;
    End;
    procedure ShowTab(size:integer,var Tab:TTab);
    var i:integer;
    begin
    writeln(‘zawartosc tablicy’);
    write(Tab[0]);
    for i:=1 to size do write(‘; ; Tab[i];2;3);
    writeln;
    end;
    procedure SortTab(size:integer, var Tab:TTab);
    var
    I,j:integer;
    Tmp:real;
    Begin
    For i:=0 to size do
    For j:=0 to i do
    If Tab[i]< Tab[j] then begin
    Tmp:=Tab[i];
    Tab[j]:=Tab[i]
    Tab[i]:=Tmp;
    End;
    End;
    Var Tab:TTab;begin
    Random Tab(N,Tab);
    Show Tab(N,Tab);
    {read T1}
    Sort Tab(N,Tab)
    {read T2}
    Sort Tab(N,Tab)
    {compute T2-T1};
    End.

    --------------------------------------------------------------------------
    Macierze czasu
    T:integer
    1
    T1:TDateTime;
    T2:TDateTime;
    T1:Now;{Read T1}
    T2:Now;
    T:=Milliseconds Beetwen (T2,T1);
    {compute T2-T1}
    2

    T,T1,T2:integer
    T1:=GetTickCount
    T2:=GetTickCount;
    T=T2-T1;


    i do niego następujące polecenia:
    1.znalesc inne metody mierzenia czasu,sortowania z dokładnoscią mniej niz milisekunda.
    2.napisac inne sortowania (wykorzystac inne algorytmy minimum 5-6).
    3.talbica posortowana malejaca lub rosnąco.


    No i mam tu taki program napisany ale on jest pisany chyba pod linuxa a pod windowsem nie chce działac, czy ktos mogłby go przekształcic na dzialajacy pod windowsem.

    program dupa;
    uses linux;

    const N=5000;

    type ttab=array[1..N] of integer;

    var t1,t2,td:cardinal;

    {** timer **}
    function timer:cardinal;
    var
    h,m,sec,msec,usec:word;
    rc:cardinal;
    begin
    gettime(h,m,sec,msec,usec);
    {* rc:=msec+sec*1000+m*60*1000+h*60*60*1000; *}
    rc:=(msec+sec*1000+m*60*1000+h*60*60*1000)*1000+us ec;;
    {* writeln(h,':',m,':',sec,'.',msec,' ',usec);
    writeln(rc); *}
    timer:=rc;
    end;

    {** sort **}

    procedure randomtab(var T:TTab);
    var i:integer;
    begin
    randomize;
    for i:=1 to N do T[i]:=random(N)+1;
    end;

    procedure cleartab(var T:TTab);
    var i:integer;
    begin
    for i:=1 to N do T[i]:=0;
    end;

    procedure showtab(var T:TTab);
    var i:integer;
    begin
    for i:=1 to N do write(' ',t[i]);
    writeln;
    end;

    procedure xchg(var T:TTab; k,n:integer);
    var
    tmp:integer;
    begin
    tmp:=T[n];
    t[n]:=t[k];
    t[k]:=tmp;
    end;

    procedure sorttab1(var T:TTab);
    var
    i,j:integer;
    begin
    for i:=1 to N do
    begin
    for j:=1 to i do
    begin
    if t[i]>t[j] then
    begin
    xchg(T,i,j);
    end;
    end;
    end;
    end;


    procedure sorttab2(var T:TTab);
    var
    i:integer;
    begin
    i:=1;
    while (i<N) do
    begin
    if t[i]<t[i+1] then
    begin
    xchg(T,i,i+1);
    i:=0;
    end;
    inc(i);
    end;
    end;


    procedure sorttab_linear(var r:TTab; lo,up:integer);
    var
    i, j : integer;
    tmp : integer;
    flag : boolean;
    begin
    for i:=up-1 downto lo do
    begin
    tmp := r[i];
    j := i+1;
    flag := true;
    while (j<=up) and flag do
    begin
    if tmp > r[j] then
    begin
    r[j-1] := r[j];
    j := j+1
    end
    else flag := false;
    end;

    r[j-1] := tmp;

    end;
    end;

    PROCEDURE Quicksort (VAR A : ttab; l,r: INTEGER);
    VAR
    pivot,b,i,j : INTEGER;
    BEGIN
    IF l < r THEN
    BEGIN
    pivot := A[random(r-l) + l+1]; { losowanie elementu dziel&plusmn;cego }
    i := l-1;
    j := r+1;
    REPEAT
    REPEAT i := i+1 UNTIL pivot <= A[i];
    REPEAT j := j-1 UNTIL pivot >= A[j];
    b:=A[i]; A[i]:=A[j]; A[j]:=b
    UNTIL i >= j;
    A[j]:=A[i]; A[i]:=b;
    Quicksort(A,l,i-1);
    Quicksort(A,i,r)
    END
    END;



    var
    tab,tab2,tab3,tab4:TTab;

    begin
    randomtab(tab);
    { cleartab(tab); }
    tab2:=tab;
    tab3:=tab;
    tab4:=tab;

    t1:=timer;
    sorttab_linear(tab4,1,N);
    t2:=timer;
    td:=t2-t1;
    writeln('Sort linear; czas wykonania: ',td,'msec');


    t1:=timer;
    quicksort(tab3,1,N);
    t2:=timer;
    td:=t2-t1;
    writeln('Quicksort; czas wykonania: ',td,'msec');



    t1:=timer;
    sorttab1(tab2);
    t2:=timer;
    td:=t2-t1;
    writeln('sortowanie babelkowe; czas wykonania: ',td,'msec');

    t1:=timer;
    sorttab2(tab);
    t2:=timer;
    td:=t2-t1;
    writeln('Kloss-sort; czas wykonania: ',td,'msec');


    writeln('** dla zerowej tablicy **');
    cleartab(tab);
    tab2:=tab;
    tab3:=tab;
    tab4:=tab;

    t1:=timer;
    sorttab_linear(tab4,1,N);
    t2:=timer;
    td:=t2-t1;
    writeln('Sort linear; czas wykonania: ',td,'msec');


    t1:=timer;
    quicksort(tab3,1,N);
    t2:=timer;
    td:=t2-t1;
    writeln('Quicksort; czas wykonania: ',td,'msec');



    t1:=timer;
    sorttab1(tab2);
    t2:=timer;
    td:=t2-t1;
    writeln('sortowanie babelkowe; czas wykonania: ',td,'msec');

    t1:=timer;
    sorttab2(tab);
    t2:=timer;
    td:=t2-t1;
    writeln('Kloss-sort; czas wykonania: ',td,'msec');



    end.

    --------------------------------------------------------------------------
    Timer

    program dupa;
    uses linux;

    function timer:cardinal;
    var
    h,m,sec,msec,usec:word;
    rc:cardinal;
    begin
    gettime(h,m,sec,msec,usec);
    rc:=msec+sec*1000+m*60*1000+h*60*60*1000;
    writeln(h,':',m,':',sec,'.',msec,' ',usec);
    writeln(rc);
    end;


    begin
    timer;
    end.




    POMOZE MI KTOŚ BŁAGAM?

  2. #2

    Domyślnie

    Lepiej poszukaj w googlach na forum trudno o gotowce
    Człekowstret tryska z moich ust, parszywy kraj...

    perl -e 's^^i6(!@*^+s;\*; Wo\$_\;~;.s![(_\!]!l!g+y"i\$@"Hro"+tr-6;~-ed\012-;print'
    --------------------------------------------------------------
    Most Intelligent Customers Realize Our Software Only Fools Teenagers

Podobne wątki

  1. fizyka zadanie
    By kosiarz in forum Matematyka/Liczby/Kody/Teoria Chaosu
    Odpowiedzi: 0
    Autor: 10-16-2007, 21:26
  2. Zadanie dla najlepszych ;]
    By 31337 in forum Hacking
    Odpowiedzi: 16
    Autor: 10-05-2007, 13:10
  3. Matematyka - zadanie no 1.
    By sapheal in forum Przez WAS dla WAS
    Odpowiedzi: 12
    Autor: 09-30-2007, 06:07
  4. Zadanie z informatyki. - Włamanie
    By mattius in forum Newbie - dla początkujących!
    Odpowiedzi: 4
    Autor: 09-25-2007, 17:48
  5. jezyki programowania
    By ironwall in forum Off Topic
    Odpowiedzi: 1
    Autor: 02-03-2007, 17:08

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj