Fonction ou procédure

LeGeekduDimanche -  
pijaku Messages postés 13513 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

1 réponse

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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