uses dos,crt; var hour_start,min_start, sec_start,hund_start, hour_stop,min_stop,sec_stop,hund_stop, hour,min,sec,hund:word; j,k:longint; {---------------------------------------------------------------------------} procedure get_time_start; begin GetTime(hour_start,min_start,sec_start,hund_start) end; {---------------------------------------------------------------------------} procedure get_time_stop; begin GetTime(hour_stop,min_stop,sec_stop,hund_stop) end; {---------------------------------------------------------------------------} procedure put_time; procedure format(hour,min,sec,hund:word); procedure print(w:word); begin if w<10 then write('0'); write(w); end; {-------------------------end print-----------------------------------------} begin print(hour);write(':'); print(min);write(':'); print(sec);write('.'); print(hund); writeln; end; {-----------------------end format------------------------------------------} procedure compute_elapsed_time; begin if hour_stop < hour_start then inc(hour_stop,24); if hour_stop > hour_start then begin Dec(hour_start); Inc(min_stop,60); end; if min_stop > min_start then begin dec(min_stop); Inc(sec_stop,60); end; if sec_stop > sec_start then begin Dec(sec_stop); Inc(hund_stop,100); end; hour:=hour_stop - hour_start; min:=min_stop - min_start; sec:=sec_stop - sec_start; hund:=hund_stop - sec_start; if hund >= 100 then begin Dec(hund,100); inc(sec); end; if sec >= 60 then begin Dec(sec,60); inc(min); end; if min >= 60 then begin Dec(min); inc(hour); end; end; {--------------------------end compute_elapsed_time-------------------------} begin write('MOMEHT OCTAHOBKu: '); format(hour_stop,min_stop,sec_stop,hund_stop); Write('MOMEHT HA4ALA PA6OTb|: '); format(hour_start,min_start,sec_start,hund_start); compute_elapsed_time; Write('3ATPA4EHHOE BPEM9|: '); format(hour,min,sec,hund); end; {-----------------------------end put_time----------------------------------} procedure PlusTypes; var m,n,p:integer; begin m:=345; n:=678; get_time_start; for j:= 1 to 1000 do for k:=1 to 1000 do p:=m + n; get_time_stop; writeln('1.000.000 C/\O}{EHuu Integer'); put_time; writeln; end; {-----------------------------PlusTypes-------------------------------------} procedure MultTypes; var m,n,p:LongInt; begin m:=34; n:=567; get_time_start; for j:=1 to 1000 do for k:= 1 to 1000 do p:= m * n; get_time_stop; Writeln('1.000.000 yMHO}{EHuu Integer'); put_time; writeln; end; {-----------------------------MultTypes-------------------------------------} procedure DivTypes; var m,n,p:Longint; begin m:=31760; n:=789; get_time_start; for j:= 1 to 10000 do for k:=1 to 10000 do p:=m div n; get_time_stop; Writeln('1.000.000 div Integer'); put_time; writeln; end; {-----------------------------DivTypes--------------------------------------} Procedure ForRepeatWhile; begin get_time_start; for j:= 1 to 10000 do for k:=1 to 10000 do begin end; Writeln('1.000.000 for'); get_time_stop; put_time; writeln; get_time_start; j:=0; repeat inc(j); k:=0; repeat inc(k); until k = 10000; until j = 10001; get_time_stop; Writeln('1.000.000 repeat'); put_time; writeln; get_time_start;j:=0; while j < 10000 do begin inc(j); k:=0; while k < 10000 do begin inc(k); end; end; get_time_stop; writeln('1.000.000 while: '); put_time; writeln; end; {----------------------------ForRepeatWhile---------------------------------} procedure IncPlus; var m:LongInt; begin get_time_start; m:=0; for j:= 1 to 20000 do for k:=1 to 20000 do inc(m); Writeln('20.000.000 inc(m)'); get_time_stop; put_time; writeln; get_time_start; m:=0; for j:= 1 to 20000 do for k:=1 to 20000 do m:=m+1; Writeln('20.000.000 m:=m+1'); get_time_stop; put_time; writeln; end; {-----------------------------End incPlus-----------------------------------} procedure show_menu; var f: boolean; answer: char; begin clrscr; f:=false; repeat writeln('Выберите действие:'); writeln ('#1: Сравнение "+"'); writeln ('#2: Сравнение "*"'); writeln ('#3: Сравнение "div"'); Writeln ('#4: Сравнение "for & repeat & while"'); Writeln ('#5: Сравнение "inc(m) & m:=m+1"'); writeln ('#6: Выход'); answer:=readkey; case answer of '1':begin clrscr; gotoXY(1,1); PlusTypes; end; '2':begin clrscr; gotoXY(1,1); MultTypes; end; '3':begin clrscr; gotoXY(1,1); DivTypes; end; '4':begin clrscr; gotoXY(1,1); ForRepeatWhile; end; '5':begin clrscr; gotoXY(1,1); IncPlus; end; '6':f:=true; end; textBackground(Black); until f end; {----------------------------end show_menu----------------------------------} begin show_menu; clrscr; end.