with Auto ;
with Gada.Text_IO ;
procedure Mission9 is
package Txt renames Gada.Text_IO ;
function Controler_Vitesse (Limite : Float ; Securite : Integer) return Integer is
Depassements : Integer := 0 ;
begin
Auto.Fixer_Destination (Long => 1.45, Lat => 43.54) ;
Auto.Regler_Mode (Prudent => False) ;
while not Auto.Arrivee loop
if Auto.Vitesse > Limite then
Depassements := Depassements + 1 ;
if Depassements >= Securite then
Auto.Regler_Mode (Prudent => True) ;
end if ;
end if ;
Auto.Attend_Ms ;
end loop ;
return Depassements ;
end Controler_Vitesse ;
procedure Tester_Controler_Vitesse (Seuil_Vitesse : Float ; Seuil_Securite : Integer) is
begin
Txt.Put_Line("Seuil Vitesse = " & Float'Image(Seuil_Vitesse) & " km/h") ;
Txt.Put_Line("Seuil Sécurité = " & Integer'Image(Seuil_Securite) & " dépassements.") ;
Txt.Put_Line("Nombre de dépassements = " & Integer'Image(Controler_Vitesse(Limite => Seuil_Vitesse, Securite => Seuil_Securite))) ;
Txt.New_Line ;
end Tester_Controler_Vitesse ;
begin
Tester_Controler_Vitesse (55.0, 5) ;
Tester_Controler_Vitesse (56.0, 4) ;
Tester_Controler_Vitesse (57.0, 1) ;
end Mission9 ;