Cómo determinar el módulo de un flotador en Ada 95
-
21-09-2019 - |
Pregunta
necesito para determinar la cantidad que queda de un ciclo de tiempo. Para hacer esto en C me gustaría utilizar HOQF. Pero en ada no puedo encontrar ninguna referencia a una función similar. Tiene que ser precisa y tiene que devolver un flotador de precisión.
Entonces, ¿cómo puedo determinar el módulo de un flotador en Ada 95?
elapsed := time_taken mod 10.348;
left := 10.348 - elapsed;
delay Duration(left);
Solución
'El resto atributo.
Elapsed, Time_Taken : Float;
...
Elapsed := Float'Remainder(Time_Taken, 10.348);
Otros consejos
No es una respuesta a su pregunta real; pero, para lograr la intención de que la pieza de código, considere el uso de retardo hasta .
Next_Time : Ada.Calendar.Time;
use type Ada.Calendar.Time;
Period : constant Duration := 10.348;
begin
...
Next_Time := Ada.Calendar.Clock;
loop
-- do stuff
Next_Time := Next_Time + Period;
delay until Next_Time;
end loop;
No sé Ada, pero asumiendo que tiene una función Floor
podría utilizar elapsed := time_taken - Floor(time_taken / 10.348) * 10.348)
.
Edit: Yo también acabo de encontrar esta discusión sobre el resto mediante el atributo para este propósito.