function GetCPUSpeed: Double;
const
DelayTime = 500;
var
TimerHi, TimerLo: DWORD;
PriorityClass, Priority: Integer;
begin
try
PriorityClass := GetPriorityClass(GetCurrentProcess);
Priority := GetThreadPriority(GetCurrentThread);
SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread,THREAD_PRIORITY_TIME_CRITICAL);
Sleep(10);
asm
dw 310Fh // rdtsc
mov TimerLo, eax
mov TimerHi, edx
end;
Sleep(DelayTime);
asm
dw 310Fh // rdtsc
sub eax, TimerLo
sbb edx, TimerHi
mov TimerLo, eax
mov TimerHi, edx
end;
SetThreadPriority(GetCurrentThread, Priority);
SetPriorityClass(GetCurrentProcess, PriorityClass);
Result := TimerLo / (1000.0 * DelayTime);
except
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
cpuspeed: string;
begin
cpuspeed := Format('%f MHz', [GetCPUSpeed]);
edit1.text := cpuspeed;
end;
Математик функция ва процедуралар
Math модули функциялари таърифи
Тригонометрик функция ва процедуралар
ArcCos - Арккосинус
ArcCosh - Гиперболик арккосинус
ArcSin - Арксинус
ArcSinh - Гиперболик арксинус
ArcTahh - Гиперболик арктангенс
ArcTan2 – квадрантни ҳисобга олувчи Арктангенс
Cosh – Гиперболик косинус
Cotan - Котангенс
CycleToRad - циклларни радианларга ўтказиш (алмаштириш)
DegToRad - градусларни радианга ўтказиш
GradToRad – градларни радианларга ўтказиш
Hypot - катетлар узунлиги бўйича тўғри бурчакли учбурчакни гипотенузасини хисоблаш
RadToCycle - радианларни цикла ўтказиш
RadToDeg - радианларни градусларга ўтказиш
RacIToGrad - радианларни градларга ўтказиш
SinCos – бурчакнинг синуси ва косинусини ҳисоблаш.
Sinh - Гиперболик синус
Tan - Тангенс
Tanh - Гиперболик тангенс
Do'stlaringiz bilan baham: |