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 :

Algorithme donnant la plus grande valeur d'une liste


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Août 2011
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2011
    Messages : 112
    Points : 61
    Points
    61
    Par défaut Algorithme donnant la plus grande valeur d'une liste
    bonjour,
    pouvez vous me dire si mon algorithme est bon SVP? je débute et j'ai un exam bientôt .
    cet algo doit donner la valeur max d'une liste d'entiers

    merci

    pouvez aussi me dire si je peux poster mes solutions d'exos d'algo sur ce forum pour vérifier s'ils sont bons , le forum n'est peut être pas fait pour ça donc je préfére demander

    voilà ma "prose"
    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
    variables: liste1 :liste d'entiers
    			M:entier
    			X:entier
    début
    
    M:=O; //M désigne la valeur max//
    
    tant que vide(liste1) = faux faire
    	X:=premier(liste1);
    		Si X>M alors //j'étais tenté de faire directement si premier(liste1)>M  erreur?//
    		M:=X;
    		finsi
    	liste1:=reste(liste1);
    fintantque
    
    Afficher "le plus grnad entier de la liste est:";
    Afficher M;
    
    fin
    merci

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    C'est pas mal du tout, à deux petites restrictions près.

    La première: si la liste est vide, on affichera M=0
    La seconde: si la liste ne contient que des valeurs négatives, on affichera aussi M=0

    Pour éviter ce genre de problème, le plus simple est d'initialiser M avec le premier élément de la liste. Ca implique de gérer le cas d'une liste vide avant l'initialisation de M, ce qui n'est pas plus mal.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    si vide(liste1) = vrai alors
        Afficher "la liste est vide !";
    sinon
        M = premier(liste1);
        liste1:=reste(liste1);
        tantque ... .... fintantque
        Afficher M;
    finsi
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre du Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Août 2011
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2011
    Messages : 112
    Points : 61
    Points
    61
    Par défaut
    merci , tes modif sont en effet nécessaires
    j'ai deux petites questions pour l'algo:

    1) est ce que j'ai le droit dans le SI de faire si X> premier(liste1) directement c'est à dire sans placer premier(liste1) au préalable dans une variable M ?

    2) tu as écrit M=premier(liste1) et pas comme moi M:=premier(liste1) est ce que c'est parce que c'est pareil?

    merci

  4. #4
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Bonjour, je me permets de répondre pour pseudocode qui ne manquera pas de donner son avis s'il diffère du miens.
    Citation Envoyé par mathier Voir le message
    1) est ce que j'ai le droit dans le SI de faire si X> premier(liste1) directement c'est à dire sans placer premier(liste1) au préalable dans une variable M ?
    Oui c'est possible. Et sauf conditions très particulières c'est tout à fait équivalent.

    Citation Envoyé par mathier Voir le message
    2) tu as écrit M=premier(liste1) et pas comme moi M:=premier(liste1) est ce que c'est parce que c'est pareil?
    Il faut savoir qu'il n'existe pas de norme absolue en terme de pseudocode (), chaque professeur a ses propres notations. Du coup, il est parfois difficile de se comprendre sans ambiguïté aucune. Pseudocode voulait évidement signifier := (opérateur d'affectation)

    Cordialement,
    -- Yankel Scialom

  5. #5
    Membre du Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Août 2011
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2011
    Messages : 112
    Points : 61
    Points
    61
    Par défaut
    voilà j'ai modifié le pseudo code avec vos remarques, est ce bon?
    ça donne
    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
     
    debut
    si vide(liste1)=vrai alors
        afficher "la liste est vide";
    sinon
        M:=premier(liste1);
        liste1:=reste(liste1);
        tant que vide(liste1) = faux faire
            si premier(liste1)>M alors
                M:=premier(liste1);
            finsi
            liste1:=reste(liste1);
        finTQ
    finsi
    Afficher M;
    fin
    merci

Discussions similaires

  1. cherche la plus grande valeur dans une matrice
    Par thtghgh dans le forum MATLAB
    Réponses: 9
    Dernier message: 28/12/2009, 19h35
  2. VBA Colorer la plus grande valeur d'une liste
    Par Toad08 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 10/03/2008, 17h23
  3. isoler les 2 plus grandes valeurs d'une liste
    Par marlene.ln dans le forum Access
    Réponses: 3
    Dernier message: 29/01/2007, 10h22
  4. VBA_E : Selection des 5 plus grandes valeurs d'une colonne..
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/09/2006, 17h39
  5. vba-Excel-Plus grande valeur d'une colonne
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 33
    Dernier message: 08/08/2006, 10h50

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