Fonction ou procédure

LeGeekduDimanche -  
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'ai fais un programme pour savoir si un mot était un palindrome en format console par contre je ne vois pas comment faire une fonction ou une procédure ...
Voici mon programme :

   Sub Main()

        Dim nom As String
        Dim palindrome As Boolean
        Dim nombretour As Integer


        Console.WriteLine("Entrer un nom pour savoir si c'est un palindrome ou     non :  ")
        nom = Console.ReadLine()

        If nom.Length Mod 2 <> 0 Then
            nombretour = CInt((nom.Length - 1) / 2)
        Else
            nombretour = CInt(nom.Length / 2)
        End If

        For i As Integer = 0 To nombretour - 1 Step 1

            Dim lettreA As String = nom.Substring(i, 1)
            Dim lettreB As String = nom.Substring(nom.Length - 1 - i, 1)

            If lettreA = lettreB Then
                palindrome = True
            Else
                palindrome = False
                Exit For
            End If

        Next

        If palindrome Then
            Console.WriteLine(nom & " est un palindrome")
        Else
            Console.WriteLine(nom & " n'est pas un palindrome")
        End If

        Console.ReadLine()

    End Sub
A voir également:

1 réponse

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour

Tu as la fonction StrReverse, qui peut t'aider

tiré de l'aide VBA
Description
Renvoie une chaîne contenant des caractères dont l'ordre a été inversé par rapport à une chaîne donnée.
Syntaxe
StrReverse(expression)

L'argument expression est la chaîne dont l'ordre des caractères est à inverser. Si l'argument expression est une chaîne de longueur nulle (""), alors la fonction renvoie une chaîne de longueur nulle. Si l'argument expression est Null, une erreur se produit.

normalement ensuite une comparaison et hop!
Michel
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Salut Michel,

En complément de ta réponse, il y a également la division entière pour remplacer :
If nom.Length Mod 2 <> 0 Then
    nombretour = CInt((nom.Length - 1) / 2)
Else
    nombretour = CInt(nom.Length / 2)
End If

En une seule ligne :
nombretour = nom.Length \ 2
0