Rechercher : dans
Par :

Aide : algo palindrome

Dernière réponse le 9 avr 2009 à 10:26:14 bansan, le 12 mar 2008 à 19:22:34 
 Signaler ce message aux modérateurs

Bonjour,
j'aimerais bien avoir une petite aide pour cet exo:

Exercice 12 - Chains palindromes
Ecrire un algorithme dont le role est de permettre a l'utilisateur de saisir une chaine de caractéres, puis d'indiquer si la chaine de caractéres saisie est une chaine palindrome (pouvant etre lu dans les deux sens).

Il existe au moins deux methodes pour repondre a ce probleme. donc deux algorithmes sont attendus pour cette question.

Exemples de chaines palindromes : "LAVAL", "non"


Voila ce que j'ai fait:

Afficher ("Saisir une chaine")
Saisir(une chaine)
l<-- LONGUEUR(chaine)

Pour i de 1 à l
a<--sschaine (chaine ,l,1)
....

Meilleures réponses pour « Aide : algo palindrome » dans :
Liste simplement chaînée VoirLISTES SIMPLEMENT CHAINÉES Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la liste IV. Opérations sur les listes chaînées A. Initialisation B. Insertion d'un élément dans la liste 1. Insertion...
Les piles en langage C VoirLes piles Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la pile IV. Opérations sur les piles A. Initialisation B. Insertion d'un élément dans la pile C. Ôter un élément de la pile D. Affichage...
Tri par fusion - récursivité- VoirVoici une procédure récursive qui permet de trier un tableau de n entiers en utilisant la méthode de tri par fusion : Procedure Tri_Fusion (Var t : TAB; g, d : integer); Var m, i, j, k : integer; s : TAB; Begin If d > g Then ...
Représentation des nombres entiers et réels VoirReprésentation d'un nombre dans un ordinateur On appelle représentation (ou codification) d'un nombre la façon selon laquelle il est décrit sous forme binaire. La représentation des nombres sur un ordinateur est indispensable pour que celui-ci...
Introduction à l'algorithmique VoirNotion d'algorithme La mise au point d'un programme informatique se fait en plusieurs étapes. Il s'agit de fournir la solution à un problème, la première étape consiste donc à analyser le problème, c'est-à-dire en cerner les limites et le mettre...
Le chiffrement avec RSA Voirle système RSA Le premier algorithme de chiffrement à clé publique (chiffrement asymétrique) a été développé par R.Merckle et M.Hellman en 1977. Il fut vite rendu obsolète grâce aux travaux de Shamir, Zippel et Herlestman, de célèbres...

1

greg, le 12 mar 2008 à 22:08:46

Bonsoir Bansan,

ne sachant dans quel langage tu programmes je te fais la version algorithmique.


Première méthode :

tu saisis la chaine de caractère dans la variable C1.
tu créais une nouvelle chaine de caractères C2 de même taille, dans laquelle tu copies le premier caractère de C1 en dernière position de C2, le second de C1 dans l'avant dernier de C2 ... jusqu'à la fin.
Ensuite la réponse est donc : C1 == C2 car si les chaines sont identiques c'est un palindrome cqfd.



Deuxième méthode (récursive) :
si C est de taille 1 caractère ou 0 caractère alors c'est un palindrome.
si C de taille >= 2, c'est un palindrome si ces 2 conditions sont réunies ensemble :
1. C(first) == C(last) (premier et dernier caractère de la chaine)
2. et que C(first + 1, last -1) est lui même un palindrome (toute la chaine sauf le premier et le dernier).
cqfd.


Bonne chance.
Greg.

Répondre à greg

2

bansan, le 13 mar 2008 à 00:07:35

Bonsoir et merci pour la reponse

J'utilise un pseudo langage pour faire l'algo
Et a priori dans les 2 methodes que tu donnes.., je ne vois pas trop comment le retranscrire en commande pseudo langage..
Je vais m'y mettre demain matin
Merci

Répondre à bansan

3

lami20j, le 13 mar 2008 à 07:33:20

Salut,

voici un exemple en C sans utiliser une 2ème chaîne
http://www.commentcamarche.net/forum/affich 4486563 probleme c#2

L'algo est simple

2 indices sont utiliser : i commence à 0 (début de la chaîne) et j commence à taille-1 (fin de la chaîne)
i sera incrementé et j sera decrementé jusqu'à quand i devient plus grand que j
si les caractères comparés sont égales alors la châine est un palindrom.
dès qu'une inegalité est trouvée nous sortons de la boucle => la chaîne n'est pas un palindrome


lami20j

Répondre à lami20j

4

 hichmen, le 9 avr 2009 à 10:26:14

Slt je suis hichem je suis étudiant en premiere année Math Info.
bah j'ai pensé à une réponse mais je c pas si c'est juste:
on sait q'un palindrom c'est un mot qui se lit de droite à gauche et de gauche à droite;
alors il sufit de comparer le premiere caractere avec le dernier le second avec l'avant dernier et ansi de suite;
Voici ma réponse en language algorithmique

fonction PALINDROME (E/i:entier,t:tableau de carateres):booleen;
var j,k:entier;
b:booleen;

debut
j:=0; k:=0; b:=vrai;
tant que (j+1<=i-k)et(b=vrai)
faire
si (t[j+1]=t[i-k])
alors b:=vrai;
sinon b:=faux;
sinsi;
fait;
PALINDROME:=b;
fin;

Répondre à hichmen