Сообщение от maestrodan
var
R:real;
s:string
begin
s:=integerToString(trunc(R))+','+integerToString(t runc(frac(R)*1000));
end;
|
Не совсем хорошо. Ибо trunc округляет.
Поэутому из числа 17.85 получиться "18,8500".
Правильнее:
s:=integerToString(trunc(R-frac(R)))+','+integerToString(trunc(frac(R)*1000)) ;
А начет определение частоты:
program speed_o_meter;
var
timer1,timer2,i:integer;
a:real;
begin
timer1:=GetRelativeTimeMs;
for i:=1 to 50000 do
a:=sin (i);
timer2:=GetRelativeTimeMs;
timer1:=timer2-timer1;
drawtext ('Время: '+integertostring(timer1)+' миллисек.',0,0);
repaint;
delay (1000);
end.
Число указывает за сколько миллисекунд высчиталось 50000 вычислений синуса. Незнаю сколько тактов занимает вычисление синуса, поэтому частоту в герцах не вычислю.