with Auto ; with Gada.Text_IO ; procedure Mission9 is package Txt renames Gada.Text_IO ; -- Fonction Controler_Vitesse conforme au diagramme. 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 de test de la fonction 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 ;