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);
¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top