Création d'un fonction sous algobox

Résolu/Fermé
Mika - 18 avril 2020 à 14:19
 Mika - 18 avril 2020 à 20:20
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

yg_be Messages postés 21504 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 juin 2023 1 344
18 avril 2020 à 15:13
bonjour, as-tu une question?
0
Bonjour,

Oui, c'est la raison de ma venue ici ... J'ai demandé a ce qu'on puisse m'aider :)
0
yg_be Messages postés 21504 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 juin 2023 1 344 > Mika
18 avril 2020 à 15:51
le code que tu présentes ne fonctionne pas? qu'observes-tu?
0
Mika > yg_be Messages postés 21504 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 juin 2023
18 avril 2020 à 15:55
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 ?
0
yg_be Messages postés 21504 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 juin 2023 1 344 > Mika
18 avril 2020 à 17:27
peut-être
resultat PREND_LA_VALEUR PurgeSimple(rep1,rep2)
0
Mika > yg_be Messages postés 21504 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 juin 2023
18 avril 2020 à 17:42
J'avais essayé mais j'ai une erreur a la ligne 14 au niveau du "FIN POUR"
0
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
0
yg_be Messages postés 21504 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 juin 2023 1 344
18 avril 2020 à 19:02
qu'as-tu testé? qu'affiche-t'il?
0
Mika > yg_be Messages postés 21504 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 juin 2023
18 avril 2020 à 19:09
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 ?
0
yg_be Messages postés 21504 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 juin 2023 1 344 > Mika
18 avril 2020 à 19:36
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.
0
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...
0
C'est bon ! Le afficher "sortie" était mal placé ! ouf !
0

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

Posez votre question
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
0