Exo algo chaine de caractere fonctLONGUEUR

Fermé
bansan Messages postés 122 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 8 mai 2011 - 7 mars 2008 à 10:46
 TuRKI med - 23 avril 2011 à 00:22
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
A voir également:

7 réponses

ced18 Messages postés 387 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 14 octobre 2010 125
7 mars 2008 à 10:48
bonjour,

oui ton algo est bon
mais tu ne dois pas faire la fonction LONGUEUR ?
0
Utilisateur anonyme
7 mars 2008 à 10:54
C'est aussi la question que je me posais...
Je vais regarder dans mes cours, mais il me semble que non
0
Utilisateur anonyme > Utilisateur anonyme
7 mars 2008 à 11:06
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
bansan Messages postés 122 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 8 mai 2011 1
7 mars 2008 à 11:01
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
blux Messages postés 26546 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 décembre 2024 3 319 > bansan Messages postés 122 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 8 mai 2011
7 mars 2008 à 11:09
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
bansan Messages postés 122 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 8 mai 2011 1
7 mars 2008 à 11:08
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
blux Messages postés 26546 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 décembre 2024 3 319
7 mars 2008 à 10:49
Salut,

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

même problème ensuite.
0
ced18 Messages postés 387 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 14 octobre 2010 125
7 mars 2008 à 10:50
pardon oui effectivement il faut inversé
puisque il faut le plus long
j'avais pas vu
0
Utilisateur anonyme
7 mars 2008 à 10:50
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ced18 Messages postés 387 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 14 octobre 2010 125
7 mars 2008 à 11:03
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
fmvgld Messages postés 117 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 30 décembre 2015 9
7 mars 2008 à 11:08
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
bansan Messages postés 122 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 8 mai 2011 1 > fmvgld Messages postés 117 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 30 décembre 2015
7 mars 2008 à 11:16
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
Utilisateur anonyme
7 mars 2008 à 11:08
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
bansan Messages postés 122 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 8 mai 2011 1
7 mars 2008 à 11:18
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
Utilisateur anonyme > bansan Messages postés 122 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 8 mai 2011
7 mars 2008 à 11:21
Mieux ^^

Reste donc à indenter ton code...
0
bansan Messages postés 122 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 8 mai 2011 1 > Utilisateur anonyme
7 mars 2008 à 11:30
Indenter??
Tu veux dire...faire des retraits pour bien distinguer les fonctions et conditions..??
0
Utilisateur anonyme > bansan Messages postés 122 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 8 mai 2011
7 mars 2008 à 11:35
Tout à fait
0
bansan Messages postés 122 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 8 mai 2011 1 > Utilisateur anonyme
7 mars 2008 à 11:42
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
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