Реферат: Сортировка

1.‹€Ž€’Ž€Ÿ €Ž’€ŽŽƒ€ŒŒˆŽ‚€ˆž“—…ˆŠ€ 10¤ Š‹€‘‘€ ˜ŠŽ‹› N57

€•Œ€Ž‚€‘…ƒ…Ÿ Ž ’…Œ…"‘Ž’ˆŽ‚Šˆ".

2.Ž‘’€Ž‚Š€ ‡€„€—ˆ.

   „ ­ ä ©«,ᮤ¥à¦ é¨© ç¨á« â¨¯  longint,à á¯®«®¦¥­­ë¥ ¢ ¯à®¨§¢®«ì­®¬

¯®à浪¥.’ॡã¥âáïà á¯®«®¦¨âì íâ¨ç¨á«  ¯®¢®§à áâ ­¨î,¨á¯®«ì§ãï ­¥ ¡®«¥¥

40ª¨«®¡ ©â®¯¥à â¨¢­®© ¯ ¬ï⨨ ¤¨áª®¢®£®¯à®áâà ­á⢠ ­¥¡®«¥¥ 祬 ¢ ¤¢ 

à § ¡®«ìè¥ ¨á室­®£®ä ©« .

3.€‹ƒŽˆ’Œ (¬¥â®¤à¥è¥­¨ï).

   ‘­ ç « ¨á室­ë© ä ©«à §¡¨¢ ¥âáï ­ ªã᪨ ¯® 10000 ç¨á¥«,ª ¦¤ë© ªã᮪

á®àâ¨àã¥âáï¢ ¯ ¬ï⨠¨§ ¯¨á뢠¥âáï ¢®¤¨­ ¨§ ¤¢ãå ¢à¥¬¥­­ëåä ©«®¢, ¯à¨ç¥¬

â ª,çâ® ª®«¨ç¥á⢮ªã᪮¢ ¢ íâ¨åä ©« å®â«¨ç ¥âáï ­¥ ¡®«¥¥ç¥¬ ­  1(¤ «¥¥ -

¯¥à¢®­ ç «ì­ ïá®àâ¨à®¢ª ).

   ‡ â¥¬,­¥áª®«ìª® à §¢ë¯®«­ï¥âáﮯ¥à æ¨ï"᪫¥¨¢ ­¨¥"(®¤­®¢ë¯®«­¥­¨¥

®¯¥à æ¨¨"᪫¥¨¢ ­¨¥" ¬ë¡ã¤¥¬ ­¥§ë¢ âì"è £"), â.¥ ¤¢  ¨á室­ëå

ä ©« ,¢ ª®â®àë孠室¨«¨áì®âá®àâ¨à®¢ ­­ë¥ªã᪨ ª®¯¨àãîâáï¢ ¤¢  ¤à㣨å

ä ©« ,¯à¨ í⮬ ¨§ ¤¢ãåªã᪮¢,­ å®¤ïé¨åáï ¢à §­ëå ä ©« å ¨¨¬¥îé¨å

®¤¨­ ª®¢ë¥­®¬¥à  ᮧ¤ ¥âáï ®¤¨­®âá®àâ¨à®¢ ­­ë©ªã᮪. â®âªã᮪

§ ¯¨á뢠¥âáï¢ ¯¥à¢ë© ¢ë室­®© ä ©«¥á«¨ ¨á室­ë¥ªã᪨ ¨¬¥«¨­¥ç¥â­ë¥ ­®¬¥à 

¨ ¢®¢â®à®©, ¥á«¨¨á室­ë¥ ªã᪨¨¬¥«¨ ç¥â­ë¥ ­®¬¥à .

4.‚“’…ŸŸ‘…–ˆ”ˆŠ€–ˆŸŽƒ€ŒŒ›.

   à¨­ ¯¨á ­¨¨¯à®£à ¬¬ë¨á¯®«ì§®¢ « áì á। Borland Pascal 7.0 ¨

¢áâ஥­­ë©ª®¬¯¨«ïâ®à.

   „«ïã᪮७­®£® ®¡¬¥­  ᤨ᪮¬ ¯à¨¬¥­ï«áï¡«®ª®¢ë© ¢¢®¤-¢ë¢®¤,â.¥

¨­ä®à¬ æ¨ïç¨â ¥âáï ¨§ ¯¨á뢠¥âáï楫묨 ª« áâ¥à ¬¨.„«ï ®áãé¥á⢫¥­¨ïí⮣®

ᯮᮡ ¢¢®¤ -¢ë¢®¤  ¡ë«­ ¯¨á ­ ¬®¤ã«ì(Files), ᯮ¬®éìî ª®â®à®£®¢¢®¤-¢ë¢®¤

¢­¥è­¥­¥ ®â«¨ç ¥âáï ®â®¡ëç­®£®.

   ‘奬 ¯à®£à ¬¬ë¯à¥¤¥«ì­® ¯à®áâ :á­ ç «  ¢ë¯®«­ï¥âáﯥࢮ­ ç«ì­ ï

á®àâ¨à®¢ª (¯à®æ¥¤ãà firstsort), § â¥¬ ¢ë§ë¢ ¥¬áª«¥¨¢ ­¨¥(¯à®æ¥¤ãà 

ftrans(in1, in2,out1, out2: workfile);), £¤¥ ¯ àë ä ©«®¢¢á¥ ¢à¥¬ï¬¥­ïîâáï ¨

¯®á«¥ª ¦¤®£® § ¯ã᪠¯à®æ¥¤ãàë¯à®¢¥àï¥âáïãá«®¢¨¥ ¢ë室 .

  à®æ¥¤ãà  ftrans®âªà뢠¥â ¢á¥ä ©«ë, § â¥¬¢ë¯®«­ï¥â ­¥áª®«ìª®à §

¯à®æ¥¤ãàã᫨¢  ®¤­®£®ªã᪠(onestep) ¨§ ªà뢠¥â ä ©«ë.

5.ŠŽŒŒ…’ˆŽ‚€›‰ ’…Š‘’Žƒ€ŒŒ›.

{Œ®¤ã«ìFiles.

  ‘¤¥á쯥९¨á ­ë ¢á¥¯à®æ¥¤ãàë ¨ä㭪樨 ­¥®¡å®¤¨¬ë¥¤«ï à ¡®âë áä ©« ¬¨,

à ¡®â îé¨¥á ¡«®ª ¬¨.  ¡®â á ­¨¬¨®áãé¥á⢫ï¥âáïâ ª¦¥ ª ª ¨ á

®¡ëç­ë¬¨¯à®æ¥¤ãà ¬¨ ¬®¤ã«ïSystem.}

unit Files;

interface

const typesize=4;

const bufsize =2048;

typeusing=longint;

type buffer =array[1..bufsize] of using;

type pbuffer =^buffer;

type filemode =(fread, fwrite, closed);

type tfile =record

 buf: pbuffer;

 mode: filemode;

 f: file;

 count, leng: integer;

end;

procedure fAssign(varw: tfile; name: string);

procedurefReWrite(var w: tfile);

procedurefReset(var w: tfile);

procedurefPut(var w: tfile; d: using);

procedurefGet(var w: tfile; var d: using);

procedurefClose(var w: tfile);

function fEof(varw: tfile): boolean;

implementation

procedurefAssign(var w: tfile; name: string);

begin

 Assign(w.f, name);

 w.mode:=closed;

end;

procedurefReWrite(var w: tfile);

begin

 if w.mode=closed then

 begin

  ReWrite(w.f, typesize);

  new(w.buf);

  w.count:=0;

  w.leng:=0;

  w.mode:=fwrite;

 end;

end;

procedurefReset(var w: tfile);

begin

 if w.mode=closed then

 begin

  Reset(w.f, typesize);

  new(w.buf);

  BlockRead(w.f, w.buf^, bufsize, w.leng);

  w.count:=1;

  w.mode:=fread;

 end;

end;

procedurefPut(var w: tfile; d: using);

begin

 if w.mode=fwrite then

 begin

  w.count:=w.count+1;

  w.buf^[w.count]:=d;

  if w.count=bufsize then

  begin

   BlockWrite(w.f, w.buf^, w.count);

   w.count:=0;

  end;

 end;

end;

procedurefGet(var w: tfile; var d: using);

begin

 if (w.mode=fread) then

 begin

  d:=w.buf^[w.count];

  if w.leng=w.count then

  begin

   BlockRead(w.f, w.buf^, bufsize, w.leng);

   w.count:=1;

  end else w.count:=w.count+1;

 end;

end;

procedurefClose(var w: tfile);

begin

 if w.mode=fwrite then BlockWrite(w.f, w.buf^,w.count);

 dispose(w.buf);

 w.mode:=closed;

 Close(w.f);

end;

function fEof(varw: tfile): boolean;

begin

 if (w.mode=fread) and (w.leng=0) thenfEof:=true

 else fEof:=false;

end;

begin

end.

{ª®­¥æfiles.pas}

{----------------------------------------------------------------------------}

{” ©«sort.pas — á®àâ¨à®¢ª  ¢¯ ¬ïâ¨.}

var k: integer;

functionSwapTops(no: integer): integer;

var t: longint;

begin

 if (memo^[2*no+1]>memo^[2*no]) then

 begin

  t:=memo^[no];

  memo^[no]:=memo^[2*no+1];

  memo^[2*no+1]:=t;

  SwapTops:=2*no+1;

 end else

 begin

  t:=memo^[no];

  memo^[no]:=memo^[2*no];

  memo^[2*no]:=t;

  SwapTops:=2*no;

 end;

end;

procedureSwapHalf(no: integer);

var t: longint;

begin

 if memo^[no]<memo^[2*no] then

 begin

  t:=memo^[no];

  memo^[no]:=memo^[2*no];

  memo^[2*no]:=t;

 end;

end;

function Reg(no:integer): boolean;

begin

 if (2*no)>k then Reg:=true else

 if (2*no+1)>k then

 begin

  SwapHalf(no);

  Reg:=true;

 end else

 if (memo^[2*no]<=memo^[no]) and(memo^[2*no+1]<=memo^[no]) then Reg:=true

 else Reg:=false;

end;

procedureHalfReg(no: integer);

var next:integer;

begin

 next:=no;

 while (not Reg(next)) do next:=SwapTops(next);

end;

procedureRegTree;

var i: integer;

begin

 for i:=k downto 1 do HalfReg(i);

end;

procedureSwapLeaves(l1, l2: integer);

var t: longint;

begin

 t:=memo^[l1];

 memo^[l1]:=memo^[l2];

 memo^[l2]:=t;

end;

procedureSortMemo(len: integer);

begin

 k:=len;

 RegTree;

 for k:=len-1 downto 1 do

 begin

  SwapLeaves(1, k+1);

  HalfReg(1);

 end;

end;

{ª®­¥æsort.pas}

{----------------------------------------------------------------------------}

{Žá­®¢­ ï¯®£à ¬¬ }

uses Dos,Files{®¤ª«î祭¨¥ ¬®¤ã«ï,®áãé¥á⢫ïî饣®¢¢®¤-¢ë¢®¤.};

constmemlen=10000;{ §¬¥à ¯ ¬ïâ¨,à §à¥è¥­­®© ¤«ï¨á¯®«ì§®¢ ­¨ï}

type tmemo =array[0… memlen] of longint;

type pmemo = ^tmemo;{’¨¯-㪠§ â¥«ì ­ ®á­®¢­®© ¬ áᨢ,¨á¯®«ì§ã¥¬ë©

¯à®£à ¬¬®©}

var memo: pmemo;

{$I sort.pas}{®¤ª«î祭¨¥ ä ©« ,ᮤ¥à¦ é¥£®¯à®æ¥¤ãàãá®àâ¨à®¢ª¨

¬ áᨢ §  ¢à¥¬ï n*(log n), ­¥¨á¯®«ì§ã冷¯®«­¨â¥«ì­®©¯ ¬ïâ¨(á®àâ¨à®¢ª 

¤¥à¥¢®¬).}

type workfile =record

 main{®á­®¢­®© ä ©«},

 inf{ä ©«,ᮤ¥à¦ é¨© ¤«¨­ë®âá®àâ¨à®¢ ­­ëåªã᪮¢}: tfile;

end;{tfile — ⨯, ®¯à¥¤¥«¥­­ë© ¢ unitFiles, ª®â®àë© § ¬¥­ï¥âä ©«®¢ë¥ ⨯ë}

var

 t1, t2, t3, t4,    dest, seur: workfile;

 {¢à¥¬¥­­ë¥ä ©«ë} {¢å®¤­®© ¨ ¢ë室­®© ä ©«}

{ˆ­¨æ¨ «¨§ æ¨ï}

procedure Init;

var tmp: string;

begin

 tmp:=getenv('TEMP');

 fAssign(t1.main, tmp+'~fsort-1.tmp');

 fAssign(t2.main, tmp+'~fsort-2.tmp');

 fAssign(t3.main, tmp+'~fsort-3.tmp');

 fAssign(t4.main, tmp+'~fsort-4.tmp');

 fAssign(t1.inf, tmp+'~finf-1.tmp');

 fAssign(t2.inf, tmp+'~finf-2.tmp');

 fAssign(t3.inf, tmp+'~finf-3.tmp');

 fAssign(t4.inf, tmp+'~finf-4.tmp');

 fAssign(seur.main,ParamStr(1));

 fAssign(dest.main,ParamStr(2));

end;

{¥à¢®­ ç «ì­ ïá®àâ¨à®¢ª }

procedurefirstsort(var inp, out1, out2: workfile);

var i, k:longint;

begin

 fReset(inp.main);

 fRewrite(out1.main);

 fRewrite(out2.main);

 fRewrite(out1.inf);

 fRewrite(out2.inf);

 new(memo);

 repeat

  for i:=1 to memlen do

   if fEof(inp.main) then

   begin

    i:=i-1;

    break

   end else fGet(inp.main, memo^[i]);

  k:=i;

  sortmemo(k);

  for i:=1 to k do fPut(out1.main, memo^[i]);

  fPut(out1.inf, k);

  if k=memlen then

  begin

   for i:=1 to memlen do

    if fEof(inp.main) then

    begin

     i:=i-1;

     break;

    end

    else fGet(inp.main, memo^[i]);

   k:=i;

   sortmemo(k);

   for i:=1 to k do fPut(out2.main, memo^[i]);

   fPut(out2.inf, k);

  end;

 until fEof(inp.main);

 dispose(memo);

 fClose(inp.main);

 fClose(out1.main);

 fClose(out2.main);

 fClose(out1.inf);

 fClose(out2.inf);

end;

{à®æ¥¤ãà ,ª®¯¨àãîé ï§ ¤ ­­®¥ ª®«¨ç¥á⢮í«-⮢ ¨§ ®¤­®£® ä ©«  ¢¤à㣮©.

ˆá¯®«ì§ã¥âáï¯à¨ ᫨¢ ­¨¨ ¤«ïª®¯¨à®¢ ­¨ï®á⠢襩áï ç á⨪ã᪠(¥á«¨¤à㣮©

ªã᮪¨ááïª).}

procedureCopy(var inp, out: workfile; c0: longint);

var

c, n: longint;

Done: boolean;

begin

 for c:=c0 downto 1 do

 begin

  fGet(inp.main, n);

  fPut(out.main, n);

 end;

end;

{‘«¨¢ ¥â¤¢  ®ç¥à¥¤­ëåªã᪠ ¨§ ä ©«®¢ in1 ¨ in2¨ § ¯¨á뢠¥â ¢ out.}

procedureonestep(var in1, in2, out: workfile; c01, c02: longint);

var n1, n2, c1,c2, c: longint;

Done: boolean;

begin

 Done:=false;

 c1:=c01-1;

 c2:=c02-1;

 c:=0;

 fGet(in1.main, n1);

 fGet(in2.main, n2);

 repeat

  if n1<n2 then

  begin

   fPut(out.main, n1);

   c:=c+1;

   if c1=0 then

   begin

    fPut(out.main, n2);

    c:=c+1;

    Copy(in2, out, c2);

    c:=c+c2;

    Done:=true;

   end else

   begin

    fGet(in1.main, n1);

    c1:=c1-1;

   end;

  end else

  begin

   fPut(out.main, n2);

   c:=c+1;

   if c2=0 then

   begin

    fPut(out.main, n1);

    c:=c+1;

    Copy(in1, out, c1);

    c:=c+c1;

    Done:=true;

   end else

   begin

    fGet(in2.main, n2);

    c2:=c2-1;

   end;

  end;

 until Done;

end;

{à®æ¥¤ãà ®áãé¥á⢫ï¥â ®¤¨­è £(â.¥.ª®¯¨àã¥â ä ©«ë in1 ¨in2 ¢ out1 ¨ out2,

¯à¨í⮬ ᪫¥¨¢ ïªã᪨)}

procedureftrans(var in1,in2,out1,out2: workfile);

var c1, c2, c:longint;

begin

 fReset(in1.main);

 fReset(in2.main);

 fReset(in1.inf);

 fReset(in2.inf);

 fRewrite(out1.main);

 fRewrite(out2.main);

 fRewrite(out1.inf);

 fRewrite(out2.inf);

 while (not fEof(in1.inf)) and (notfEof(in2.inf)) do

 begin

  fGet(in1.inf, c1);

  fGet(in2.inf, c2);

  onestep(in1, in2, out1, c1, c2);

  c:=c1+c2;

  fPut(out1.inf, c);

  if (not fEof(in1.inf)) and (notfEof(in2.inf)) then

  begin

   fGet(in1.inf, c1);

   fGet(in2.inf, c2);

   onestep(in1, in2, out2, c1, c2);

   c:=c1+c2;

   fPut(out2.inf, c);

  end;

 end;

 if fEof(in1.inf) xor fEof(in2.inf) then

  if fEof(in1.inf) then

  begin

   fGet(in2.inf, c2);

   Copy(in2, out2, c2);

   fPut(out2.inf, c2);

  end else

  if fEof(in2.inf) then

  begin

   fGet(in1.inf, c1);

   Copy(in1, out2, c1);

   fPut(out2.inf, c1);

  end;

 fClose(in1.main);

 fClose(in2.main);

 fClose(in1.inf);

 fClose(in2.inf);

 fClose(out1.main);

 fClose(out2.main);

 fClose(out1.inf);

 fClose(out2.inf);

end;

{Š®¯¨à®¢ ­¨¥ä ©«  f1 ¢f2.(ˆá¯®«ì§ã¥âáï¯à¨ § ¢¥à襭¨¨à ¡®âë ¤«ï

ª®¯¨à®¢ ­¨ïª®­¥ç­®£® ä ©«  ¨§¢à¥¬¥­­®©¤¨à¥ªâ®à¨¨ ¢ãª § ­­ãî).}

procedureFCopy(f1, f2: tfile);

var t: longint;

begin

 write('ª®¯¨à®¢ ­¨¥');

 fRewrite(f2);

 fReset(f1);

 while (not fEof(f1)) do

 begin

  fGet(f1, t);

  fPut(f2, t);

 end;

 fClose(f1);

 fClose(f2);

end;

{à¨­¨¬ ¥â§­ ç¥­¨¥ True, ¥á«¨ ä ©« ®âá®àâ¨à®¢ ­¨ ¡®«ìè¥ ­¥ ­ ¤®áª«¥¨¢ âì.

(“á«®¢¨¥¢ë室 )}

function Fin:boolean;

begin

 fReset(t2.main);

 fReset(t4.main);

 if fEof(t2.main) then

 begin

  Fin:=true;

  FCopy(t1.main, dest.main);

 end else

 if fEof(t4.main) then

 begin

  Fin:=true;

  FCopy(t3.main, dest.main);

 end else Fin:=false;

 fClose(t2.main);

 fClose(t4.main);

end;

begin

 writeln;

 if ParamCount<2 then

 begin

  writeln('‘«¨èª®¬ ¬ «®¯ à ¬¥â஢.');

  Exit;

 end;

 write('ˆ­¨æ¨ «¨§ æ¨ï...');

 Init;

 writeln('£®â®¢®');

 write('¥à¢®­ ç «ì­ ïá®àâ¨à®¢ª ...');

 firstsort(seur, t1, t2);

 writeln('£®â®¢®');

 ReWrite(dest.main.f);

 Close(dest.main.f);

 writeln('‘ª«¥¨¢ ­¨¥:');

 repeat

  ftrans(t1, t2, t3, t4);

  writeln('è £');

  if (not Fin) then

  begin

   ftrans(t3, t4, t1, t2);

   writeln('è £');

  end;

 until Fin;

 writeln('£®â®¢®');

end.

{----------------------------------------------------------------------------}

6.‚…˜ŸŸ ‘…–ˆ”ˆŠ€–ˆŸ.

   „«ïª®à४⭮©à ¡®âë¯à®£à ¬¬ë ­¥®¡å®¤¨¬ ª®¬¯ìîâ¥àAT286, 40K ᢮¡®¤­®©

conventional¯ ¬ïâ¨,®¯¥à æ¨®­­ ïá¨á⥬  MS-DOS 3.0 ¨«¨¡®«¥¥ ¯®§¤­ïàá¨ï.

‚®§¬®¦­ë¢¥àᨨ¯à®£à ¬¬ë,¨á¯®«ì§ãî騥¬¥­ìè¥ ¯ ¬ïâ¨,¯à®æ¥áá®àëá« ¡¥¥ 286 ¨

â.¤.à®£à ¬¬ ¨á¯®«ì§ã¥â ¬¥áâ®­  ¤¨áª¥ ¢¤¢®¥¡®«ì襥 ¨á室­®£®ä ©« (­¥

áç¨â ïïá ¬ ä ©«).

7.“ŠŽ‚Ž„‘’‚Ž Ž‹œ‡Ž‚€’…‹Ÿ.

   à¨§ ¯ã᪥¯à®£à ¬¬ë®¡ï§ â¥«ì­® ¤®«¦­ ¡ëâì ®¯à¥¤¥«¥­ ¯¥à¥¬¥­­ ï á।ë TEMP!

   ”®à¬ â§ ¯ã᪠¯à®£à ¬¬ë:

     f_sort[.exe] <¢å®¤­®©ä ©«> <¢ë室­®© ä ©«>

   à®£à ¬¬ ­¥ § ¤ ¥â ­¨ ª ª¨å¢®¯à®á®¢, çâ®á¨«ì­® ã¯à®é ¥âà ¡®âã á ­¥©.

  ¥§ã«ìâ âà ¡®âë ¬®¦­®¯®¢¥à¨âì ᯮ¬®éìî ¯à¨« £ ¥¬®©ã⨫¨âë f_check,

ᮧ¤ âìá«ãç ©­ë© ¨á室­ë©ä ©« — á ¯à®¬®éìî f_make.

  à¨ç¨­ ¬¨®è¨¡®ª ¬®£ãâá«ã¦¨âì ­¥á®®â¢¥âá⢨¥ á¨á⥬ëâॡ®¢ ­¨ï¬,

¨§«®¦¥­­ë¬¢ ¯. 6, ­¥¤®áâ â®ç­®¥¬¥áâ® ­  ¤¨áª¥,à §¬¥à(¢ ¡ ©â å)¨á室­®£®

ä ©« ­¥ ªà â¥­ 4.

   ‚ ¤ ­­®¬®âç¥â¥®¯¨á뢠¥âáïá ¬ ïí䥪⨢­ ï ¢¥àá¨ïí⮩ ¯à®£à ¬¬ë, ­®

áãé¥áâ¢ãî⢥àᨨ, ­¥¨á¯®«ì§ãî騥¢¢®¤-¢ë¢®¤ ¡«®ª ¬¨, âॡãî騥¬¥­ìè¥

à¥áãàᮢá¨á⥬ë.

8.Žˆ‘€ˆ… ’…‘’Ž‚.

  à®£à ¬¬¬ â¥áâ¨à®¢ « áì­¥®¤­®ªâ â­®, ­  ¢å®¤¥¨á¯®«ì§®¢ «¨áì, ¢®á­®¢­®¬,

ä ©«ë¨§ á«ãç ©­ëåç¨á¥« à §«¨ç­®© ¤«¨­ë.  ¢ë室¥ ¡ë«¨¯®«ã祭ë ä ©«ë ⮩¦¥

¤«¨­ë,­¥ ᮤ¥à¦ é¨¥®è¨¡®ª, â.¥. ç¨á« ¢ íâ®å ä ©« å ®ª § «¨áì¢ ¯®à浪¥

­¥áâண®£®¢®§à áâ ­¨ï.‘®¤¥à¦¨¬®¥ íâ¨å ä ©«®¢¯®«­®áâìî ᮢ¯ «® á

à §ã«ìâ â ¬¨à ¡®âë ¤à㣨å¯à®£à ¬¬á®àâ¨à®¢ª¨ ­  â¥å¦¥ ¢å®¤­ëå ä ©« å,çâ®

ᨫ쭮᭨¦ ¥â¢¥à®ïâ­®áâ줨䥪⮢¯à®£à ¬¬ë.

   à¨â¥áâ¨à®¢ ­¨¨¨á¯®«ì§®¢ «¨á쮯¥à æ¨®­­ë¥á¨á⥬ë MS-DOS 6.22,

Windows`95,ª®¬¯ìîâ¥àë PC AT 486DX4-100,486SX-25, à ¡®â î騥 á«®ª «ì­ë¬

¢¨­ç¥áâ¥à®¬,஡®ç¨¥ á⠭樨486DX-40, 386SX, à ¡®â î騥¢ á¥â¨ Novell.

¥§ã«ìâ âëâ¥áâ¨à®¢ ­¨ï(­ ä ©«¥ à §¬¥à®¬ 4M)§ ­¥á¥­ë ¢ â ¡«¨æã:

ª®¬¯ìîâ¥à   à ¡®â ¢ á¥â¨    ¢à¥¬ï à ¡®âë

486DX4-100    ­¥â       3 ¬¨­.

486SX-25      ­¥â       7 ¬¨­.

486DX-40      ¤ 

386SX         ¤ 

еще рефераты
Еще работы по программированию, базе данных