IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Traiter un sujet d'algorithmie


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 62
    Points : 38
    Points
    38
    Par défaut Traiter un sujet d'algorithmie
    Bonjour à tous,

    Voilà, je me permets de poster ce message, comme une bouteille à la mer, pour solliciter votre aide.
    Je vais prochainement être soumis à un examen dans le but d'acquérir une qualification de programmeur et je travaille actuellement pour être un tant soit peu à niveau pour le jour J.
    J'ai trouvé un sujet paru au cours d'une précédente session du même examen. Par contre, impossible de mettre la main sur le corrigé qui me permettrait de travailler de manière plus efficace.

    Il est nécessaire d'avoir des connaissances en UML et de maîtriser l'écriture en "pseudo code". Je ne pars pas de 0, j'ai eu des cours à ce propos jadis à l'école.
    De même, j'ai trouvé sur Internet de très bons tutoriels:

    Pour l'UML
    www.essai.rnu.tn/UML2_par_la_pratique.pdf

    Par contre, en regardant mon sujet, je sèche...

    Quelqu'un pourrait-il m'aider, non pas en traitant tout le sujet évidemment, mais en me donnant un coup de main pour répondre seulement à la première question. Pour le reste, je saurai me débrouiller.
    En fait, en pseudo-code, je ne sais pas trop comment déclarer les objets ni la bonne manière d'accéder à ses attributs. De même, dans le sujet, pour cette première question, je ne comprends pas ce que signifie "signature fournie dans la description de la classe". J'ai beau m creuser les ménages et étudier la classe de long en large je ne capte pas.

    Par avance, vraiment, je vous remercie pour votre aide.

    Cordialement,
    Damien
    Images attachées Images attachées

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 62
    Points : 38
    Points
    38
    Par défaut Une piste
    Après quelques heures de travail, j'en suis arrivé au pseudo-code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    FONCTION connection(p_login en chaine, p_password en chaine) en entier
    	VARIABLE listeParents en TableauObjet<Parent>
    	VARIABLE listeProfesseurs en TableauObjet<Professeur>
    	VARIABLE parentCourant en Parent
    	VARIABLE professeurCourant en Professeur
    	VARIABLES tailleParent, tailleProfesseur en entier
    	VARIABLE boolOk, trouve, loginExiste en booléen
    DEBUT
    	trouve <- Faux
    	listeParents <- base.getListeParents()
    	listeProfesseurs <- base.getListeProfesseurs()
    	tailleParent <- listeParents.taille()
    	tailleProfesseur <- listeProfesseurs.taille()
    	i <- 0
    	boolOk <- Vrai
    	loginExiste <- Faux
    	TANT QUE boolOk et i < tailleParent
    		parentCourant -> listeParents.getObjet(i) 
    		SI parentCourant.login == p_login et parentCourant.password == p_password ALORS
    			boolOk <- Faux
    			trouve -> Vrai
    			SI parentCourant.password == "init" ALORS
    				RETOURNE 4
    			SINON
    				RETOURNE 1
    			FIN SI
    		SINON
    			SI parentCourant.login == p_login ALORS
    				loginExiste <- Vrai
    			FIN SI
    			i <- i + 1
    		FIN SI	
    	FIN TANT QUE
     
    	SI non trouve ALORS
    		i <- 0
    		TANT QUE boolOk et i < tailleProfesseur
    			professeurCourant -> listeProfesseurs.getObjet(i) 
    			SI professeurCourant.login == p_login et professeurCourant.password == p_password ALORS
    				boolOk <- Faux
    				trouve -> Vrai
    				SI professeurCourant.password == "init" ALORS
    					RETOURNE 4
    				SINON
    					RETOURNE 1
    				FIN SI
    			SINON
    				SI parentCourant.login == p_login ALORS
    					loginExiste <- Vrai
    				FIN SI
    				i <- i + 1
    			FIN SI	
    		FIN TANT QUE	
    	FIN SI
    	SI loginExiste ALORS
    		RETOURNE 3
    	SINON
    		RETOURNE 2
    	FIN SI
    FIN
    Qu'en pensez-vous?
    Il y a une redondance du fait des objets Parent et Professeur qui sont différents mais je ne vois pas comment y remédier.
    De même, dans le sujet on demande à la fin dans le cas d'une authentification réussie assigner à l'attribut "utilisateurConnecte" l'utilisateur qui vient de se connecter. Le problème est que moi j'ai sur les bras soit un objet Parent soit un objet Professeur qui héritent tout deux de la classe Utilisateur.

    Pourriez-vous m'aiguiller?

    Merci beaucoup!
    Damien

  3. #3
    Membre averti Avatar de cervo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 220
    Points : 388
    Points
    388
    Par défaut

    Une question ... selon ton analyse qu'est ce qui différencie le Parent du Professeur ?
    Toute chose dépend de la valeur qu'on lui attribue !

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 62
    Points : 38
    Points
    38
    Par défaut
    Salut,

    Eh bien "Parent" et "Professeur" héritent toutes deux de la classe "Utilisateur" et ont chacune des attributs propres, non?

    Damien

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 62
    Points : 38
    Points
    38
    Par défaut
    Finalement, voici le code auquel j'ai abouti pour la question 1 en finalité:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    FONCTION connection(p_login en chaine, p_password en chaine) en entier
    	VARIABLE listeParents en TableauObjet<Parent>
    	VARIABLE listeProfesseurs en TableauObjet<Professeur>
    	VARIABLE parentCourant en Parent
    	VARIABLE professeurCourant en Professeur
    	VARIABLES tailleParent, tailleProfesseur en entier
    	VARIABLE boolOk, trouve, loginExiste en booléen
    	VARIABLE maDate en date
    DEBUT
    	trouve <- Faux
    	listeParents <- base.getListeParents()
    	listeProfesseurs <- base.getListeProfesseurs()
    	tailleParent <- listeParents.taille()
    	tailleProfesseur <- listeProfesseurs.taille()
    	i <- 0
    	boolOk <- Vrai
    	loginExiste <- Faux
    	TANT QUE boolOk et i < tailleParent
    		parentCourant -> listeParents.getObjet(i) 
    		SI parentCourant.login == p_login et parentCourant.password == p_password ALORS
    			boolOk <- Faux
    			trouve -> Vrai
    			SI parentCourant.password == "init" ALORS
    				RETOURNE 4
    			SINON
    				utilisateurConnecte <- parentCourant
    				maDate <- DateUtils.creerDateJour()
    				dateDernConnexion <- DateUtils.format(maDate)
    				RETOURNE 1
    			FIN SI
    		SINON
    			SI parentCourant.login == p_login ALORS
    				loginExiste <- Vrai
    			FIN SI
    			i <- i + 1
    		FIN SI	
    	FIN TANT QUE
     
    	SI non trouve ALORS
    		i <- 0
    		TANT QUE boolOk et i < tailleProfesseur
    			professeurCourant -> listeProfesseurs.getObjet(i) 
    			SI professeurCourant.login == p_login et professeurCourant.password == p_password ALORS
    				boolOk <- Faux
    				trouve -> Vrai
    				SI professeurCourant.password == "init" ALORS
    					RETOURNE 4
    				SINON
    					utilisateurConnecte <- professeurCourant
    					maDate <- DateUtils.creerDateJour()
    					dateDernConnexion <- DateUtils.format(maDate)
    					RETOURNE 1
    				FIN SI
    			SINON
    				SI parentCourant.login == p_login ALORS
    					loginExiste <- Vrai
    				FIN SI
    				i <- i + 1
    			FIN SI	
    		FIN TANT QUE	
    	FIN SI
    	SI loginExiste ALORS
    		RETOURNE 3
    	SINON
    		RETOURNE 2
    	FIN SI
    FIN
    Maintenant, j'en suis arrivé à la question 2a qui consiste à décrire la méthode permettant de récupérer la liste de notes pour un élève donné, une matière donnée et un trimestre donné. J'en arrive donc à l'épnieux problème de la traduction des liens UML entre classe en pseudo-code.

    Comment faire pour traduire en pseudo-code une relation d'agrégation? une relation de composition? une simple relation d'association?
    Existe-t-il un tutoriel qui traite de ce sujet?

    Merci par avance pour votre aide,
    Damien

  6. #6
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 538
    Points : 262
    Points
    262
    Par défaut
    C'est beaucoup trop lourd pour du pseudo-code. J'ai rien lu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ENTIER connection(login, password)
        Variable local : CodeRetour.
    DEBUT
        si       (PremièreConnection) alors CodeRetour := 4;
        sinon si (LoginIntrouvable  ) alors CodeRetour := 2;
        sinon si (MauvaisPassword   ) alors CodeRetour := 3;
        sinon 
            CodeRetour := 1;
            // Assigner l'utilisateur à l'attribut de la classe ...
            // Mettre à jour la date
        fsi
        Retourner CodeRetour;
    FIN

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 62
    Points : 38
    Points
    38
    Par défaut
    Bonsoir,

    D'accord mais à quel endroit on vérifie que la personne qui s'authentifie se trouve bien dans la base? Ça n’apparaît pas dans le pseudo-code que tu proposes? J'ai raté quelque chose?
    Merci en tous cas pour le retour!

    Damien

Discussions similaires

  1. [Débat] Expériences au sujet de .NET
    Par DevX dans le forum Débats sur le développement - Le Best Of
    Réponses: 46
    Dernier message: 25/05/2014, 11h16
  2. sujet ou projet à traiter
    Par titos dans le forum Oracle
    Réponses: 1
    Dernier message: 25/03/2008, 18h01
  3. Au sujet des mots de passe
    Par FranT dans le forum Langage
    Réponses: 6
    Dernier message: 17/09/2002, 22h16
  4. [DB2] Au sujet de...
    Par Eric Denné dans le forum DB2
    Réponses: 2
    Dernier message: 16/09/2002, 19h21
  5. Au sujet des constantes
    Par FranT dans le forum Langage
    Réponses: 8
    Dernier message: 09/08/2002, 11h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo