Fonction ou procédure

Fermé
LeGeekduDimanche - Modifié par pijaku le 5/03/2015 à 08:35
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 5 mars 2015 à 09:28
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 312
Modifié par michel_m le 5/03/2015 à 09:13
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 754
5 mars 2015 à 09:28
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