BASES PROGRAMMATION

Discutez d'informatique ici !
FlorianM
Membre Naturel
Messages: 28
Enregistré le: 30 Jan 2017, 18:48

BASES PROGRAMMATION

par FlorianM » 06 Avr 2017, 18:12

Bonjour, je suis bloqué à un exercice relatant la procédure, la fonction en informatique :

Vous faites votre stage dans une petite bibliothèque qui désire changer le système informatique de la gestion de
ses emprunts. Un précédent stagiaire a commencé à mettre au point les classes qui se trouvent en annexe 1.
Vous disposez aussi des classes techniques de l’annexe 2. Attention les emprunts peuvent être “réservés“
donc enregistrés à l’avance : un livre peut avoir un emprunt prévu dans 2 semaines et donc être actuellement
disponible. Normalement, un emprunt ne peut pas dépasser 7 jours.

Vous allez écrire plusieurs modules pour tester les classes mises à votre disposition. Attention, à vous de deviner, à chaque fois, si le module à écrire est une procédure ou une fonction. Cependant vous pouvez écrire ces modules en algo ou dans le langage de votre choix. Mais quelle que soit votre décision, vous devez utiliser uniquement les classes données en annexe.

a. Écrire le module qui reçoit en paramètre une collection d’objets de type Livre et un titre de livre. Ce module
doit ajouter un nouveau livre dans la collection, à partir du titre passé en paramètre

b. Écrire un module qui reçoit en paramètre une collection d’objets de type Livre et qui affiche la liste des titres des livres qui ne sont actuellement pas empruntés

c. Écrire le module qui reçoit en paramètre un objet de type livre ou de type LivreEnVente et qui ajoute à ce livre un emprunt à la date du jour. Si l’ajout s’est bien passé, le module doit retourner vrai

d. Écrire le module qui reçoit en paramètre une collection d’objets de type Livre et un objet de type Date. Ce
module doit afficher tous les titres des livres pour le moment empruntés à cette date

Classes métiers
Classe Livre
privé :
leTitre : chaine
// il n'y a pas 2 livres portant le même titre
lesEmprunts: Collection <Emprunt>// non trié
public :
Livre (leTitre : chaine)
getLeTitre () : chaine// getter sur leTitre
getLesEmprunts() : Collection <Emprunt>
// getter sur lesEmprunts
emprunté () : booléen
// retourne vrai si le livre est actuellement emprunté
// (date d'emprunt antérieure à la date d'aujourd'hui
// et date de retour à null)
ajouteEmprunt (uneDate : Date) : booléen
// ajoute un emprunt pour ce livre, à la date passée
// en paramètre, à condition que le livre ne soit pas
// en cours d'emprunt
ajouteEmprunt () : booléen
// surcharge la méthode précédente : même principe excepté
// que l'emprunt démarre aujourd'hui.
Classe LivreEnVente hérite de Livre
// un livre en vente est empruntable tant qu'il n'est pas vendu
privé :
prix : réel
dateVente : Date
public :
LivreEnVente (leTitre : chaîne, prix : réel)
// valorise les propriétés privées (la date de vente
// est initialisée à null)
getPrix() : réel
ajouteEmprunt () : booléen
// redéfinit la méthode ajouteEmprunt de la classe mère en
// contrôlant aussi si le livre n'est pas déjà vendu.
Classe Emprunt
privé :
leLivre : Livre
laDateEmprunt : Date
laDateRetour : Date
public :
Emprunt (unLivre : Livre, uneDateEmprunt : Date)
// valorise les 3 propriétés privées (la date de retour
// doit être initialisée à null)
getLeLivre () : Livre
getLaDateEmprunt () : Date
getLaDateRetour () : Date

Classes techniques
Classe Collection <unType>
public :
cardinal() : entier
// renvoie le nombre d’éléments de la collection
existe(unObjet : <unType>) : booléen
// teste si un objet identique existe dans la collection
index(unObjet : <unType>) : entier
// renvoie l’index d’un objet de la collection
// le premier objet de la collection a pour index 0
extraire(unIndex : entier) : <unType>
// retourne un objet contenu dans la collection
ajouter(unObjet : <unType>)
// ajoute un objet dans la collection
enlever(unIndex : entier)
// supprime un objet de la collection
vider()
// vide le contenu de la collection
Classe Date
public :
static aujourdhui() : Date
// retourne la date d’aujourd’hui
ajoute (nbJours : entier)
// permet d’ajouter un nombre de jours à la date
avant(uneDate : Date) : booléen
// retourne vrai si la date de l’objet actuel est
// antérieure ou egale à la date passée en paramètre

Voici l'exercice en question, merci d'avance pour vos éclaircissements !



Sulaheia
Membre Relatif
Messages: 140
Enregistré le: 24 Oct 2016, 07:05

Re: BASES PROGRAMMATION

par Sulaheia » 09 Avr 2017, 08:29

Hello,

Il faut que tu apprennes à ménager le courage de ceux qui te lisent :)
Là je vois un gros pâté de texte interminable, et mon courage s'est échappé d'un coup, j'ai rien pu faire !
Dis toi que même les gros geeks (que nous sommes) qui passent du temps sur les forums ont une limite de courage, et plus tu les ménages, plus tu as de chances d'avoir de réponse.

Par exemple tu peux faire ressortir l'énoncé, mettre des trucs en gras ou en couleurs, pour que ça fasse moins peur. J'imagine que les classes qu'on voit (tu peux faire plus ressortir les différentes classes, là ça demande trop de concentration pour s'y retrouver) sont celles du stagiaire (l'annexe donc) ?
Et surtout, tu ne mets pas tes propres réflexions. Qu'est-ce que tu ne comprends pas (ou qu'est-ce que tu comprends :D) ? Est-ce que tu as un début de bout de code ? C'est super dur de répondre à un "je suis bloqué", c'est beaucoup trop général. C'est plus facile si tu es plus précis (et ça montre que tu as déjà cherché, donc c'est plus encourageant).

La première question que tu peux te poser c'est : c'est quoi la différence entre procédure et fonction ?

Bon, je sais que je t'aide pas trop, mais ça devrait relancer le sujet au moins :)
Sulaheia, impératrice des projets commencés

FlorianM
Membre Naturel
Messages: 28
Enregistré le: 30 Jan 2017, 18:48

Re: BASES PROGRAMMATION

par FlorianM » 11 Avr 2017, 09:53

Bonjour, en effet c'est une de mes difficultés de savoir la différence entre procédure et fonction. Mon problème se situe sur ce fait cela me bloque por répondre ne serait-ce à la première question...

Sulaheia
Membre Relatif
Messages: 140
Enregistré le: 24 Oct 2016, 07:05

Re: BASES PROGRAMMATION

par Sulaheia » 11 Avr 2017, 11:20

Je dirais qu'une fonction renvoie une valeur (et ne modifie pas ce qu'on a en mémoire normalement, mais cet aspect n'est pas toujours respecté) et une procédure ne renvoie pas de valeur mais modifie des choses en mémoire.
Mais tu n'as pas un cours sur le sujet ? Sinon tu demandes un coup à google (ou ton moteur de recherche préféré), sur ce genre de question il est pertinent.

Avec cette info tu sais continuer ?
Sulaheia, impératrice des projets commencés

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite