Création d'un fonction sous algobox [Résolu]

Signaler
-
 Mika -
Bonjour,

Je cherche à mettre en place un algorithme permettant d'écrire une fonction qui purge une chaîne d'un caractère, la chaîne comme le caractère étant passés en argument.
Si le caractère spécifié ne fait pas partie de la chaîne, celle-ci devra être retournée intacte.
Par exemple :

Purge("Bonjour","o") renverra "Bnjur"
Purge("J'ai horreur des espaces"," ") renverra "J'aihorreurdesespaces"
Purge("Moi, je m'en fous", "y") renverra "Moi, je m'en fous"

Si qqun pouvait m'aider assez rapidement svp :)

Voici mon code :

FONCTIONS_UTILISEES
FONCTION PurgeSimple(a,b)
VARIABLES_FONCTION
Sortie EST_DU_TYPE CHAINE
i EST_DU_TYPE NOMBRE
DEBUT_FONCTION
Sortie PREND_LA_VALEUR " "
POUR i ALLANT_DE 1 A a.length
DEBUT_POUR
SI (a.substr(i,1)!=b) ALORS
DEBUT_SI
Sortie PREND_LA_VALEUR Sortie & a.substr(i,1)
FIN_SI
FIN_POUR
RENVOYER Sortie
FIN_FONCTION
VARIABLES
rep1 EST_DU_TYPE CHAINE
rep2 EST_DU_TYPE CHAINE
DEBUT_ALGORITHME
LIRE rep1
LIRE rep2
FIN_ALGORITHME



Configuration: Windows / Firefox 75.0

5 réponses

Messages postés
12654
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 octobre 2020
702
bonjour, as-tu une question?
Bonjour,

Oui, c'est la raison de ma venue ici ... J'ai demandé a ce qu'on puisse m'aider :)
Messages postés
12654
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 octobre 2020
702 > Mika
le code que tu présentes ne fonctionne pas? qu'observes-tu?
>
Messages postés
12654
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 octobre 2020

Il tourne cependant il ne me renvoie rien ... je ne maitrise pas les fonctions, du coup je sais qu'il faut l'appeler pour "l'utiliser" néanmoins je ne sais pas comment :/
Je devrais avoir pour résultat : "Bnjur" si pour rep1 je choisis "bonjour" et rep2 "o"

As tu une idée ?
Messages postés
12654
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 octobre 2020
702 > Mika
peut-être
resultat PREND_LA_VALEUR PurgeSimple(rep1,rep2)
>
Messages postés
12654
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 octobre 2020

J'avais essayé mais j'ai une erreur a la ligne 14 au niveau du "FIN POUR"
Du coup j'ai laissé la notion de "fonction" de coté et j'ai tapé ce code qui tourne mieux, néanmoins qui n'affiche pas correctement le résultat (voir au dessus dans l'énoncé) attendu :

FONCTIONS_UTILISEES
VARIABLES
i EST_DU_TYPE NOMBRE
a EST_DU_TYPE CHAINE
b EST_DU_TYPE CHAINE
sortie EST_DU_TYPE CHAINE
DEBUT_ALGORITHME
sortie PREND_LA_VALEUR " "
AFFICHER* "Saisir votre mot ou votre phrase : "
LIRE a
AFFICHER* "Saisir le caractère à supprimer : "
LIRE b
POUR i ALLANT_DE 1 A a.length+1
DEBUT_POUR
SI (a.substr(i,1) != b) ALORS
DEBUT_SI
sortie PREND_LA_VALEUR sortie && a.substr(i,1)
FIN_SI
AFFICHER sortie
FIN_POUR
FIN_ALGORITHME
Messages postés
12654
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 octobre 2020
702
qu'as-tu testé? qu'affiche-t'il?
>
Messages postés
12654
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 octobre 2020

Le code ci dessus !
Cela supprime bien le caractere choisi par l'utilisateur, mais rajoute une lettre a la place du caractere supprimé.

As tu essayé sur algobox ou tu le fais de tete ?
Messages postés
12654
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 octobre 2020
702 > Mika
avec quelles données as-tu essayé et qu'as-tu obtenu?
quelle lettre est rajoutée?

je n'essaie pas moi-même, ce n'est pas utile pour t'aider à te poser les bonnes questions et à trouver toi-même les solutions. c'est toi qui veux apprendre et progresser, pas moi.
Je suis d'accord et merci de vouloir me faire progresser, simplement j'ai l'impression que tu n'as pas la réponse ..
Du coup, lorsque je lance l'algo pour cette expression :
"coucou ca va" et que je demande de retirer le caractere " ", j'obtiens :
coucouucaava

Je remarque donc que l'algo ajoute la dernière lettre du mot "coucou" et "ca".

C'est valable également sur "coucou ca va toi" j'obtiens "coucouucaavaatoi".

Sur un mot, par exemple "bonjour" j'obtiens "boojour" en supprimant le "n".

Conclusion : le caractere supprimé est remplacé par le caractère qui est à sa gauche.

J'ai beau chercher, je ne trouve pas comment régler cela. J'ai pensé à ajouter une condition "sinon" puisque je n'en ai pas, cependant je n'ai pas trouvé quoi mettre...
C'est bon ! Le afficher "sortie" était mal placé ! ouf !
Si qqun a un jour besoin, voici le code :

FONCTIONS_UTILISEES
VARIABLES
i EST_DU_TYPE NOMBRE
a EST_DU_TYPE CHAINE
b EST_DU_TYPE CHAINE
sortie EST_DU_TYPE CHAINE
DEBUT_ALGORITHME
AFFICHER* "Saisir votre mot ou votre phrase : "
LIRE a
AFFICHER* "Saisir le caractère à supprimer : "
LIRE b
sortie PREND_LA_VALEUR " "
POUR i ALLANT_DE 0 A a.length
DEBUT_POUR
SI (a.substr(i,1) != b) ALORS
DEBUT_SI
sortie PREND_LA_VALEUR sortie && a.substr(i,1)
AFFICHER sortie
FIN_SI
FIN_POUR
FIN_ALGORITHME