annale info
Une personne désire voyager de Lyon à Paris le prochain 25 mai et se renseigne pour cela sur les trains Lyon-Paris.
Un Train est représenté par une liste de 5 éléments T [Vd, Hd, Va, Ha, prix) où Vd et Va représentent respectivement la ville de départ et la ville d’arrivée. Hd et Ha représentent respectivement l’heure de départ et l’heure d’arrivée. Prix correspond au prix d’un billet.
Nous supposons que les horaires correspondent à des heures pleines (les trains partent/arrivent à 6h, 10h, 22h…). Par exemple, un train Lyon-Paris partant à 7h et arrivant à 10h avec un billet à 68 € sera représenté par la liste :
[« Lyon », 7, « Pars », 10, 68]
Donner toutes les réponses en Maple.
Partie 1 : aller de Lyon à Paris
Dans cette partie nous considérons que le voyageur se renseigne sur l’aller, càd les trains partant de Lyon et arrivant à Paris.
1.1. Définir une fonction Durée prenant comme paramètre un train T qui retourne la durée du trajet en heures.
Durée :=proc(T) Local d ; ces 2 trucs remplaçables par RETURN(T[4]-T[2]) ; d :=T[4]-T[2] ; RETURN(d) ; ou d ;
End ;
Attention, si on écrit restart ça risque d’empêche de faire appel au programme par la suite.
STUDENT > L:=[……] Print (“la durée du trajet est”, Durée(L));
1.2. Le voyageur pense arriver à la gare Part-Dieu à une certaine heure h (un nombre entier). Définir une fonction Possible qui prend comme paramètres le train T et l’heure h et retourne true s’il est possible de prendre le train T en arrivant à la gare à l’heure h, et false si le train est déjà parti.
Possible :=proc(T,h) RETURN (evalb(h L :=[ … ] ; h :=readstat(« à quelle heure pensez-vous arriver ? ») ; x :=Possible(L,h) ; if x then print(« il peut partir ») ; else print(« … ») ; fi ;
Rmq : contraire de ‘if x’, ‘if notX’
On considère maintenant la liste LP de tous les trains Lyon-Paris pour la journée du voyage. Les