Pour ce déplacer en ligne droite afin d'être certain de revenir il faut naviguer en mer à la bousole et au compas.
Tout un algoritme se met alors en place pour rien.
Imaginons que le niveau de l'eau soit perpendiculaire à l'horison et j'ai pieds ; Je n'ai alors rien à mettre en place ; Je laisse la machine en panne.
Cependant. Si je concidère que l'horizon et le niveau de l'eau sont parallèles, je suis obligé de naviguer quel que soit le niveau de l'eau.
Ansi, sur les plan de la vie, tout peut être parallèle.
C'est alors la gouvernance qui érige un équipage.
Pour réaliser mon programme, je peux logiquemant, raisonnablemant, consciencieusemant, hasardeusemant, libremant, sagemmant, gouverner selon ma tempérence à l'épreuve de l'échec de mon retour.
L'élaboration de chaque plan ce construit en fabriquant des moments pour chaque action et à des verbes pour accomplir.
Admettons deux moments supplémentaire pour accomplir la manoeuvre, "l'ouïe" et "la vue", pour prendre le vent de doite ou affrontter le tangage, auxquel il est concevable d'ajoindre le lacet éventuel, ou prendre appuie sur la machine pour baleiller le pont, ou prendre le large en cas d'échec, ou aborder ; Le sabordage étant à écarter.
-- Navigation_Package.ads
-- Spécification de la bibliothèque de navigation
package Navigation_Package is
-- Types de données définissant les directions et les moments
type Direction is (Tribore, Babord);
type Moment is (Chaos, Machine, Programme, Resultat, Manuel, Commande, Abandon);
-- Procédure pour initialiser la navigation
procedure Initialiser_Navigation (Navire : in out Integer; Direction : in Direction);
-- Procédure pour manipuler la voile
procedure Manipuler_Voile (Navire : in out Integer; Action : in Boolean); -- Action : True pour lever, False pour baisser
-- Procédure pour ajuster la barre
procedure Ajuster_Barre (Navire : in out Integer; Direction : in Direction);
-- Procédure pour jeter l'ancre
procedure Jeter_Ancre (Navire : in out Integer);
-- Fonction pour évaluer le moment actuel
function Evaluer_Moment (Navire : in Integer) return Moment;
-- Procédure pour amarrer le navire
procedure Amarrer (Navire : in out Integer);
-- Procédure pour passer à un autre moment
procedure Changer_Moment (Navire : in out Integer; Nouveau_Moment : in Moment);
-- Fonction pour vérifier si l’abandon est nécessaire
function Abandon_Necessaire (Navire : in Integer) return Boolean;
-- Procédure de sortie ou d'abandon de la mission
procedure Abandonner (Navire : in out Integer);
end Navigation_Package;