Algorithme Palindromique!!

Algorithme Palindromique!! - Algo - Programmation

Marsh Posté le 06-11-2005 à 03:10:06    

Voila je voulais savoir si cette algo est correct?
L'utilisateur doit saisir un mot ou une phrase, et on souhaite savoir si ce mot ou cette phrase est un palindrome,
On doit changer tout les lettres en majuscules, et supprimer tout les autres cararectere (ponctuation espace..).
 
Voila l'algo :  
 
ALGORITHLME PLAINDROME
 
 
 
 
DECLARATION DES VARIABLES
 
Variable  Type    definition
 
Chaine   Chaine de caractere  / phrase ou mot  
Tabchaine[40]             Tableau de caractere  /tableau des caractere de la variable chaine
Nbchaine               Entier    /Nombre de caractère de la variable chaine
I   Entier    /
J   Entier    /
K   Entier    /
Test   Boolean    
 
 
DEBUT
 
Afficher (« Saisir la phrase ou le mot (pas de minuscule accentuées) »)
Saisir      (Chaine)
 
NbchaineLen(chaine)
 
I1
J0
Repeter
JJ+1
 // Recuperation de chaque caractere de la variable chaine dans un tableau
 Tabchaine[I]Mid(chaine, J, 1)
//Suppression de tous caracteres autres que les majuscules et minuscules
SI Asc(Tabchaine[I]) >64 et Asc(Tabchaine[I]) <91  
OU Asc(Tabchaine[I])>96 et Asc(Tabchaine[I])<123 Alors
II+1
Fin Si
 
Jusqu'à J=Nbchaine
 
Pour K de 1 à I
 
//Convertion des minuscules en majuscules
SI Asc(Tabchaine[K])>90 Alors
Asc(Tabchaine[K]) Asc(Tabchaine[K])-32
 
Fin pour
 
K1
Repeter
//Verification
Si Tabchaine[K]=Tabchaine[I]
Alors Test=Vrai
Sinon Test=faux
Fin si
KK+1
II-1
 
Jusqu’à K=I ou K=I-1  ou Test=Faux
 
Si Test=Vrai
Alors Afficher « Bravo, ce mot ou cette phrase est un palindrome »
Sinon Afficher « Désolé, ce mot/cette phrase n’est pas un palindrome »
Fin si
 
FIN


Message édité par harlem le 06-11-2005 à 17:30:35
Reply

Marsh Posté le 06-11-2005 à 03:10:06   

Reply

Marsh Posté le 06-11-2005 à 03:12:02    

Heu, un petit probleme , je vois que les signes d'affectation n'ont pas été correctement retranscrit. :??:  donc les carrés reprsentes les signes d'affectation . ;)

Reply

Marsh Posté le 06-11-2005 à 03:27:10    

T'as fait la trace de ton algo ?


---------------
Scheme is a programmable programming language ! I heard it through the grapevine !
Reply

Marsh Posté le 06-11-2005 à 11:41:13    

La trace à la main? pas très crédible!
 
Non, en faite j'ai plus envie de le programmer en langage  visual basic pour voir si ça fonctionne.
 
pour cela je voulais savoir quelle est la syntaxe de ces fonction en visual basix??
 
-Len()
-Mid()
- et Asc()

Message cité 1 fois
Message édité par harlem le 06-11-2005 à 11:41:52
Reply

Marsh Posté le 06-11-2005 à 11:42:41    

Mais si vous pensez que ça marche, confirmez le moi please. :)

Reply

Marsh Posté le 06-11-2005 à 13:12:28    

harlem a écrit :

La trace à la main? pas très crédible!


C'est pourtant comme ça qu'on vérifie un algo quand on en est pas sûr, on le déroule à la main [:spamafote]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 06-11-2005 à 15:25:06    

Pour faire la trace j'aimerai deja savoir si les fonctions que j'ai utilisé sont bonnes, sinon je prefere le tester en vb (ou en C) , alors quelles sont les equivalents des fonctions:  
 
-Len() >>renvoie le nombre de caractères d’une chaîne  
-Mid() >>renvoie un extrait de la chaîne, commençant au caractère n1 et faisant n2 caractères de long.
- et Asc() >>renvoie le caractère correspondant à un code Ascii donné  
 
 
Voila je dois le rendre demain, et j'aimerai tout simplement verifier, la fiabilité de l'algo  :(  

Reply

Marsh Posté le 06-11-2005 à 17:27:57    

Un peu de recherche s'imposait, puisque personne n'avait la réponse (?)  :o  
j'ai l'ai transporté en vb et ça marche :  
 
Dim chaine          As String
Dim Tabchaine(40)   As String
Dim Nbchaine        As Integer
Dim I               As Integer
Dim J               As Integer
Dim k               As Integer
Dim test            As Boolean
 
'Debut du programme
 
chaine = InputBox("Saisir la phrase ou le mot (pas de minuscule accentuées)" )
Nbchaine = Len(chaine)
 
 
I = 0
J = 0
 
Do Until J = Nbchaine
J = J + 1
 
'Recuperation de chaque caractere de la variable chaine dans un tabelau
 
Tabchaine(I) = Mid(chaine, J, 1)
 
'Suppression de tous caracteres autres que les majuscules et minuscules
 
If Asc(Tabchaine(I)) > 64 And Asc(Tabchaine(I)) < 91 Or Asc(Tabchaine(I)) > 96 And Asc(Tabchaine(I)) < 123 Then
I = I + 1
End If
 
 
Loop
I = I - 1
MsgBox ("I vaut " & I)
 
 
For k = 0 To I
 
'Convertion des minuscules en majuscules
 
If Asc(Tabchaine(k)) > 90 Then
inter = Asc(Tabchaine(k)) - 32
Tabchaine(k) = Chr(inter)
 
End If
Next
 
k = 0
For k = 0 To I
MsgBox Tabchaine(k)
Next
 
 
k = 0
test = True
Do Until k = I Or k = I - 1 Or test = False
 
'Verification
 
If Tabchaine(k) = Tabchaine(I) Then
 
test = True
Else
 
test = False
End If
 
k = k + 1
I = I - 1
Loop
 
If test = True Then
MsgBox ("Brravo, ce mot(ou cette phrase) est un palindrome" )
Else
MsgBox ("Désolé, ce mot (ou cette phrase) n'est pas un palindrome" )
End If
 
End Sub
 
 :kaola:  :kaola:  :kaola:  :kaola:


Message édité par harlem le 06-11-2005 à 17:29:45
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed