műszaki dokumentáció

Gyakran, amikor a programozás egyes területeken a program kell mérni az időt a végrehajtás a kódot, míg mások egyszerűen csak nem hagyja abba a végrehajtását egy darabig. Például, ha írsz a játék, meg kell írni a kódot, amely korlátozza a sebességet a játékot. Természetesen, ha a játék nagyon tyazheloya, aztán egy ideig létezhet anélkül, hogy egy ilyen dugót. De az idő múlásával, a számítási teljesítmény a számítógépek egyre (még nem is), és játékok nélkül a sebességkorlátozó lehetetlenné válik, hogy játsszon. Vagy úgy dönt, hogy írjon egy viszonyítási alap a CPU. Ott már van egy nagyon pontos mérésére szolgáló mérőeszköz végrehajtási időt. Ilyenek például sokat. Egyszerűen azt jelenti, hogy többé - menie programot komolyan, a mérési idő szükséges. Sajnos rendszeresen úton Pascal korlátozódik Delay eljárást leírtak szerint CRT modul. De ez erősen függ a rendszer teljesítményét. Persze, akkor getTime eljárást, de ez elég nehézkes. Egy standard mérésére szolgáló eljárást az átfutási idő a kód nem jelöléseket.

Nos, nem! Nem vízforralók? Persze, nem kanna! Írja magukat. Írásakor programok következetes kódot próbálunk meg összefűzni tsykl. A kód ismétlődik a programe elviselni külön eljárások és függvények. A kód, amely nyilvánvalóan nem ispolzovat egy programban, vegye ki a modult. Így teszünk. Hozzunk létre egy Pascal TIMER.PAS fájlt, és indítsa el. Mint tudja a modul nevét és a fájl meg kell egyeznie, énekel levelet:

Ezután létre kell hozni egy front end modult. Itt álljunk, és nézd meg, amire szükségünk van. Először is, szükségünk van egy eszköz mérésére végrehajtási időt. Másodszor azt jelenti, hogy benéztél programok bizonyos időpontokban. Továbbá, ha megállás szükséges lehet kiadási idő letelt.

felület
eljárás indítása (var T: longint);
eljárás Stop (var T: longint);
eljárás Szünet (T: longint; megjelenítése: logikai);

Tehát kiadás három eljárásokat. Indítása és leállítása eljárásokat kell használni mérésére kódfuttatást időt, és felváltják Szünet késleltetés. Szórványos - arra ébred, hogy szolgálja az átviteli időt adatokat. Show - engedélyezheti vagy letilthatja a time-to-Screen. A következő része a végrehajtó. Ezt alkalmazzák a bejelentés a helyi állandók, változók és típusok. Ebben a modulban nem kell:

Mi következik a legérdekesebb. Lehet, csoda, hogyan ugyanúgy fogunk termelni idő mérése? És miért nem ispolzavat hardver időzítő? Tembolee nagyon egyszerű:

SystemTimer: longint abszolút $ 0040: $ 006C;

eljárás indítása (var T: longint);
kezdődik
T: = SystemTimer;
végén;
eljárás Stop (var T: longint);
kezdődik
T: = SystemTimer-T;
végén;

eljárás Szünet (T: longint; megjelenítése: logikai);
var Xn, Xt: longint;
kezdődik
Xt: = 0;
Xn: = SystemTimer;
Míg ((Xt-Xn) /18.2) * 1000 kezdődik
Xt: = SystemTimer;
Ha megjelenítése majd
writeln ((xt-xn) /18.2:6:4)
végén;
végén;

Nos, a régóta várt

Minden összeállításához. Csak azt, hogy ellenőrizze a munkát, nem?

Program TimerPrimer;
használja időzítő;
Var i. integer;
Egy: Real;
Time. LongInt;
kezdődik
Véletlenszerű;
Start (Time);
Az I: = 1-30.000 do
A: = Sin (sqrt (i)) * Cos (sqrt (Random (10000)));
Stop (Time);
WriteLn (lead time: ', Idő / 18,2: 6: 4);
readln;
Szünet (10000, True);
végén.

Ez a program bemutatja a képességeit modutya időzítő. Kezdetben ő veszi tsykl 1-től 30.000, ahol értékét számítja ki a. A végrehajtás e tsykla mérése a start és stop eljárásokat. Majd várakozás után nyomjuk meg az Enter szünetek 10.000 másodperc teszik eljárás Szünet carry kimenetet képernyőn.

Kapcsolódó cikkek