Exo algo chaine de caractere fonctLONGUEUR

bansan Messages postés 125 Statut Membre -  
 TuRKI med -
Bonjour,
J'ai un cours d'algo sur les fonctions et chaines de caracteres tres mal foutu (pas un exemple concret, je sais meme pas comment il faut "appeler" la fonction quand j'ecris mon algo

J'aimerais savoir si l'exercice que jai fait suite a cet enoncé si dessous est bon...
Merci de me repondre...
Merci bcp

Exercice 3 – Comparaison des Longueurs
Ecrire un algorithme dont le role est de permettre a l'utilisateur de saisir deux chaines de caractéres puis d'afficher la chaine la plus longue. Si les deux chaines sont de longueurs identiques, les deux chaines sont affichees.

Voila ce que j'ai fait...

Début
Afficher("Ecrire un mot")
Saisir(mot_1)
Afficher("Ecrire un autre mot"
Saisir (mot_2)
i<--LONGUEUR(mot_1)
j<--LONGUEUR(mot_2)
Si i<j Alors
Afficher(mot_1)
Sinon Si i>j Alors
Afficher(mot_2)
Sinon Si i=j Alors
Afficher(mot_1, mot_2)
Finsi
Fin
Configuration: Windows XP
Firefox 2.0.0.12

7 réponses

  1. ced18 Messages postés 391 Date d'inscription   Statut Membre Dernière intervention   125
     
    bonjour,

    oui ton algo est bon
    mais tu ne dois pas faire la fonction LONGUEUR ?
    0
    1. Utilisateur anonyme
       
      C'est aussi la question que je me posais...
      Je vais regarder dans mes cours, mais il me semble que non
      0
      1. Utilisateur anonyme > Utilisateur anonyme
         
        Alors dans la partie "Opérateurs et symboles" de mon cours d'Algo, moi je lis que c'est bon ^^

        " ENTIER <-- LONGUEUR (chaine) "

        Donc voilà, pour moi c'est bon ^^
        0
    2. bansan Messages postés 125 Statut Membre 1
       
      Bonjour
      Et Merci pour vos reponses...
      Je pensais justement l'avoir fait avec la Fonction LONGUEUR...
      Je ne sais pas comment on appelle la fonction LONGUEUR...
      Mon cours est vraiment a ch...

      Cependant...comment mon algo peut etre bon...si je n'ai pas mis la fonction longueur..:d:d:d:d:???
      0
      1. blux Messages postés 2067 Date d'inscription   Statut Modérateur Dernière intervention   3 456 > bansan Messages postés 125 Statut Membre
         
        Le but d'un algorithme est d'écrire un ensemble de traitements que l'on va appliquer à des données.

        C'est pourquoi la formulation importe peu : langage naturel, langage structuré (type TANT QUE... FIN TANT QUE, SI..IS...) ou autre...

        Mais lorsque l'on écrit un algorithme, il faut se demander jusqu'où on va décrire les 'primitives' d'action ainsi que les fonctions.

        Dans ce cas-là, on peut se poser la question pour la fonction 'LONGUEUR', mais on pourrait aussi se poser la question pour la fonction 'Saisir' et la fonction 'Afficher'.

        Il est quand même fréquent que l'on fasse du 'pseudo-langage' car on sait que la plupart des fonctions sont implémentées dans la grande majorité des langages de dernière génération (opérations sur les chaines, sur les nombres, fonctions statistiques, gestion des fichiers et des E/S...).

        Sinon, la fonction LONGUEUR peut se voir remplacée par 'Calculer la longueur de x', comme ça, on la transforme en 'primitive' de langage.
        0
    3. bansan Messages postés 125 Statut Membre 1
       
      Voila..
      J'ai rectifié quelques trucs mais bon..je ne sais pas si c bon pour autant...

      Début
      Afficher("Ecrire un mot")
      Saisir(mot_1)
      Afficher("Ecrire un autre mot" )
      Saisir (mot_2)
      i<--LONGUEUR(mot_1)
      j<--LONGUEUR(mot_2)
      Si i<j Alors
      Afficher(mot_2)
      Sinon Si i>j Alors
      Afficher(mot_1)
      Sinon Si i=j Alors
      Afficher(mot_1, mot_2)
      Finsi
      Fin
      0
  2. blux Messages postés 2067 Date d'inscription   Statut Modérateur Dernière intervention   3 456
     
    Salut,

    moi j'afficherais mot_2 si i<j, pas l'inverse...

    même problème ensuite.
    0
  3. ced18 Messages postés 391 Date d'inscription   Statut Membre Dernière intervention   125
     
    pardon oui effectivement il faut inversé
    puisque il faut le plus long
    j'avais pas vu
    0
  4. Utilisateur anonyme
     
    Salut,
    Si on oublie la parenthèse manquante /* Afficher("Ecrire un autre mot" */ , et l'indentation inexistante, c'est pas mal.
    Comme ils le disent, inverse " i < j" et " i > j " ^^

    Moi je n'ai pas appris avec ces mots-clés, mais c'est compréhensible^^
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ced18 Messages postés 391 Date d'inscription   Statut Membre Dernière intervention   125
     
    si tu l'appelle ta fonction
    en faisant LONGUEUR(mot_1)
    mais je parlé de la créer
    si tu l'a pas vu c'est que tu dois pas le faire a mon avis
    0
    1. fmvgld Messages postés 118 Statut Membre 9
       
      pour une question d'esthetisme tu peut egalement remplacer les condition si par une condition "cas"

      cas j>i alors

      casj<i alors

      sinon
      0
      1. bansan Messages postés 125 Statut Membre 1 > fmvgld Messages postés 118 Statut Membre
         
        Salut,
        D'aprés mon cours on utilise "cas" avec "selon"
        Or, ici
        Je ne vois pas comment faire plus esthetique
        Si je commence par selon ca ferait
        selon expression
        Cas expression 1: Bloc instruction 1
        Cas expression 2: Bloc instruction 2
        ....

        Je ne vis pas trop quoi mettre aprés "selon" dans l'exo present...
        0
  7. Utilisateur anonyme
     
    Oh, je viens de voir un truc !

    Tu n'as déclaré AUCUNE de tes variables !!
    Comment ne l'ai-je pas vu plus tôt ??!

    Va vite corriger ça ! ;)
    0
    1. bansan Messages postés 125 Statut Membre 1
       
      Voila,

      3) Comparaison de longueurs

      Variables :
      mot_1,mot_2 : chaine de caractere
      i,j : entier


      Début
      Afficher("Ecrire un mot")
      Saisir(mot_1)
      Afficher("Ecrire un autre mot" )
      Saisir (mot_2)
      i<--LONGUEUR(mot_1)
      j<--LONGUEUR(mot_2)
      Si i<j Alors
      Afficher(mot_2)
      Sinon Si i>j Alors
      Afficher(mot_1)
      Sinon Si i=j Alors
      Afficher(mot_1, mot_2)
      Finsi
      Fin
      0
      1. Utilisateur anonyme > bansan Messages postés 125 Statut Membre
         
        Mieux ^^

        Reste donc à indenter ton code...
        0
      2. bansan Messages postés 125 Statut Membre 1 > Utilisateur anonyme
         
        Indenter??
        Tu veux dire...faire des retraits pour bien distinguer les fonctions et conditions..??
        0
      3. Utilisateur anonyme > bansan Messages postés 125 Statut Membre
         
        Tout à fait
        0
      4. bansan Messages postés 125 Statut Membre 1 > Utilisateur anonyme
         
        Cela semble t'il correct??
        question subsidiaire qui n'a rin a voir: dois je ouvrir une autre question pour exposer un autre exo ou je peux rester là???

        3) Comparaison de longueurs

        Variables :
        mot_1, mot_2 : chaine de caractère
        i,j : entier


        Début
        Afficher ("Ecrire un mot")
        Saisir (mot_1)
        Afficher("Ecrire un autre mot" )
        Saisir (mot_2)
        i<--LONGUEUR(mot_1)
        j<--LONGUEUR(mot_2)
        Si i<j Alors
        Afficher(mot_2)
        Sinon Si i>j Alors
        Afficher(mot_1)
        Sinon Si i=j Alors
        Afficher(mot_1, mot_2)
        Finsi
        Fin
        0
  8. TuRKI med
     
    salut,
    Tu peux utiliser la forme `' selon sélecteur faire `'
    Tu gardes la fonction longueur et par la suite tu fais la soustraction de deux longueurs
    On a trois proposition selon un teste logique sur le résultat : négatif, nulle, positif et tu affiche le résultat
    0