Se connecter

Informatique

Programmation

Sujet : TP véhicules en Python
1
HellyeahBitch
Niveau 9
17 octobre 2017 à 13:31:34

Bonjours, je suis en train de faire un TP en python pour m'initier à la programmation, pour faire plus simple je vous donne d'abord l'énoncée:

On considère les véhicules suivants: vélos, voitures et bus.
Un véhicule a:

une immatriculation (donné en paramètre du constructeur de l'objet) ou un numéro de série (pour les vélos),
un poids (donné en paramètre du constructeur de l'objet),
une vitesse maximale du véhicule (par exemple 220 km/h, donnée en paramètre du constructeur de l'objet),
une vitesse actuelle (toujours 0 à la création de l'objet),
la distance parcourue depuis le dernier départ de parcours (toujours 0 à la création de l'objet)

Les véhicules peuvent accéler et freiner.
Les véhicules à moteur (tous sauf les vélos) doivent le démarrer avant d'avancer et l'éteindre à la fin du parcours.
Ainsi, les véhicules à moteur ont également un champ indiquant l'état du moteur (allumé ou éteint).
Ces véhicules sont toujours initialisés avec le moteur éteint.

Travail demandé

Définissez les classes permettant de décrire les différents véhicules, en proposant une hierarchie de classe.
N'hésitez pas à créer des classes intermédaires pour regrouper des points communs.
Commentez précisément vos choix.
Implémentez les méthodes accelerer() et freiner():
l'accélération augmente la vitesse actuelle, qui ne doit pas dépasser la vitesse maximale du véhicule
pour simplifier, on considère le freinage immédiat
Implémenter une méthode update(delta_t), qui met à jour la distance parcourue en fonction de la vitesse actuelle. Le paramètre delta_t est le temps écoulé depuis le dernier appel, en secondes.
En bonus, définir la méthode __str__() qui retourne une chaîne contenant l'immatriculation et le type de véhicule.

J'ai crée la classe véhicule, je voulais savoir si pur les vélos et véhicule à moteur je créais ensuite deux classes différentes? Et pou l'éttribut type de véhicule dans la classe fille les véhicules à moteur je créais un attribut type_véhicule pour savoir si c'est un bus ou une voiture je fais un tuple?

Azmurael
Niveau 10
17 octobre 2017 à 15:42:55

Tu es en phase de conception. Il n'y a pas vraiment de bonne ou de mauvaise réponse (dans la limite du raisonnable), tant que le choix est motivé, ça peut marcher.

En tout cas, comme ça semble être un exercice sur l'héritage, je pense qu'il faut que tu prennes cela en compte. Ici, les bus et les voitures ont exactement les mêmes caractéristiques. À toi de faire un choix : considérer une voiture et un bus comme étant la même chose, ou créer deux classes filles pour les séparer.

Un exemple de hiérarchie :

  • Véhicule (classe mère, abstraite ?)
    • Vélo (fille de Véhicule)
    • Véhicule à moteur (fille de Véhicule)
      • Voiture (fille de véhicule à moteur)
      • Bus (fille de véhicule à moteur)

Mais cet exemple est loin d'être absolu : est ce que c'est intéressant de créer une classe intermédiaire Véhicule sans moteur ? (Pas selon l'énoncé, mais on pourrait imaginer que c'est le cas).

Grimmys
Niveau 10
18 octobre 2017 à 19:46:23

Par contre la POO (Programmation Orienté Objet) c'est un mode de pensée complètement différent de la programmation plus classique (dite impérative)... C'est pas spécialement plus compliqué, mais il n'empêche que ça semble plus logique pour un non-initié de commencer par de la programmation impérative, pour mieux comprendre les principes de base de l'algorithmique (variables, conditions, boucles, types, entrées / sorties, fonctions etc.).

La POO, techniquement, ça vient après.

Après si ce n'est pas un travail en autodidaxie, mais un TP qu'on t'a donné dans le cadre de tes études, désolé pour mon post hors-sujet... C'est juste que tu parles de " m'initier à la programmation ".... Donc ça me laisse avoir un doute (puisque que tu n'apprendras jamais en premier la POO dans le cadre d'études en informatique :hap: ).

1
Sujet : TP véhicules en Python
   Retour haut de page
Consulter la version web de cette page