Fonction ou procédure

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

1 réponse

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    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
    1. Modérateur
      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