Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[C#] Palindrome or not ?
Auteur Message
Répondre en citant
Message [C#] Palindrome or not ? 
Bonjour,

Je vous présente un autre programme en C# console qui sert à savoir si un mot ou une phrase entrée est un palindrome ou non. La version exécutable est disponible ici : http://dl.dropbox.com/u/10762003/Palindrome.exe

Code source :
Code:

/******************************************************************************
 DESCRIPTION : Ce programme sert a savoir si un mot ou une phrase entrée est un palindrome ou pas.
 Auteur : Sablier94
 Version : 1.1
******************************************************************************/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Palindrome
{
    class Program
    {
        static void Main(string[] args)
        {
            //Déclaration des variables //
            const int NBLETTRES = 30; //A changer pour changer le nombre de lettres entrées maximum
            int i, int_NbCaracteres, int_PalindromeOk;
            char chr_Char;
            char[] tab_chr_Caracteres = new char[NBLETTRES]; //Déclaration du tableau
            string str_Recommencer; //Pour recommencer

            Console.Title = "Palindrome Finder par Sablier94"; //On change le titre de la console

            // Programme Principal//
            do //Début de la boucle de recommencement
            {
                Console.Clear(); //On efface l'écran
                for (i = 0; i < NBLETTRES; i++) //On remplace chaque valeur du tableau par un espace
                    tab_chr_Caracteres[i] = ' ';
                Console.ForegroundColor = ConsoleColor.White; //On change la couleur d'écriture
                Console.Write("\t\t\tPalindrome Finder\n"); //On affiche un titre
                Console.Write("\t\t\t=================\n\n"); //On souligne le titre
                Console.ForegroundColor = ConsoleColor.Cyan; //On change la couleur d'écriture
                Console.Write("Votre mot/phrase est-il/elle un palindrome ?\n\n"); //On affiche une question
                Console.Write("Entrez le mot ou la phrase à analyser : "); //On demande à entrer le palindrome à analyser
                Console.ForegroundColor = ConsoleColor.Magenta; //On change la couleur d'écriture

                i = 0; //On initialise le nombre de lettre du mot
                do //Boucle pour lire les lettres entrées
                {

                    chr_Char = Convert.ToChar(Console.ReadKey().KeyChar); //On lit la valeur du caractère et la place dans une variable temporaire
                    if (chr_Char != ' ' && chr_Char != 39 && i < NBLETTRES && chr_Char != 13) //Si l'tilisateur n'a pas entré un enter, un espace ou un '
                    {
                        tab_chr_Caracteres[i] = chr_Char; //On place la variable temporaire du caractère dans le tableau
                        i++; //On incémente le nombre de lettre du mot
                    }
                    if (i > NBLETTRES - 1 || chr_Char == 13) //Si l'utilisateur a dépassé le nombre de caractères autorisé
                        break; //On sort de la boucle
                }
                while (true); //On continue la boucle infiniment et on peut y sortir seulement par le break

                int_NbCaracteres = i; //On sauvegarde le nombre de caracteres du mot
                int_PalindromeOk = 0; //On définit que le pinladrome est ok

                for (i = 0; i < int_NbCaracteres; i++)
                    if (tab_chr_Caracteres[i] == tab_chr_Caracteres[(int_NbCaracteres - 1) - i]) //On regarde si les cases symétriques sont pareilles
                        int_PalindromeOk++; //On incrémente le nombre de lettres ok
                if (int_PalindromeOk == int_NbCaracteres) //Si il y a le même nombre de lettres ok que de lettres du mot alors c'est un palindrome
                {
                    Console.ForegroundColor = ConsoleColor.Green; //On change la couleur d'écriture
                    Console.Write("\n\nC'est un palindrome !"); //On affiche que ce n'est pas un palindrome
                }
                else //Sinon, ce n'est pas un palindrome
                {
                    Console.ForegroundColor = ConsoleColor.Red; //On change la couleur d'écriture
                    Console.Write("\n\nCe n'est pas un palindrome !"); //On affiche que ce n'est pas un palindrome
                }
                Console.ForegroundColor = ConsoleColor.White; //On change la couleur d'écriture
                Console.Write("\n\nVoulez-vous recommencer ? (o / n) :"); //On demande à l'utilisateur si il veut recommencer le programme
                str_Recommencer = Console.ReadLine(); //On lit la reponse de l'utilisateur
            }
            while (str_Recommencer == "oui" || str_Recommencer == "o");
            //Si l'utilisateur répond oui, on recommence le programme
        }
    }
}






______________________________________________________
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [C#] Palindrome or not ? 
Interessant, j'aime bien la syntaxe de ce lamgage c'est beau et claor
par contre j'ai quelques questions :

c'est quoi un palindrome?
J'ai entendu dire qu'il fallait apprendre le C pour pouvoir apprendre le C#, c'est vrai?



Répondre en citant
Message [C#] Palindrome or not ? 
Bonsoir Smile
Guerrion24 a écrit:
Interessant, j'aime bien la syntaxe de ce lamgage c'est beau et claor
par contre j'ai quelques questions :

c'est quoi un palindrome?


C'est un mot qui s'écrit de la même façon à l'endroit comme à l'envers
Exemple : le verbe rêver (si on ne prend pas l'accent en compte Wink)
Guerrion24 a écrit:

J'ai entendu dire qu'il fallait apprendre le C pour pouvoir apprendre le C#, c'est vrai?


Absolument pas Smile

Bonne soirée !



Dernière édition par Alendra le Mar 3 Mai 2011 - 04:44; édité 1 fois

______________________________________________________
Répondre en citant
Message [C#] Palindrome or not ? 
Cool alors ça m'intéresse.



Répondre en citant
Message [C#] Palindrome or not ? 
Hello,

Oui j'aime bien ce langage en mode console car il est très rapide et il y a beaucoup de fonctions donc mieux que le batch.

Exemples de palindromes : "mon nom" et "un roc lamina l'animal cornu".

A noter que mon programme ne prend pas en compte les espaces et appostrophes. (J'ai pas encore ajouter les accents)

A+




______________________________________________________
Répondre en citant
Message [C#] Palindrome or not ? 
Guerrion24 a écrit:
J'ai entendu dire qu'il fallait apprendre le C pour pouvoir apprendre le C#, c'est vrai?

Absolument pas, on nous apprend au lycée (BTS) directement le C#, sans avoir aucune base auparavant, c'est tout à fait possible. Smile

Sympa petit programme sinon! Okay




______________________________________________________

UT2004: shunky - #soaclan
Répondre en citant
Message [C#] Palindrome or not ? 
hello !

pas mal graphiquement mais je trouve que le code est un peut long, car il s'agit d'une tache simple...

aussi j'ai un vieux doute sur la procédure que tu utiliise : prendre les caractères un par un et les placer dans le tableau, alors qu'une chaine de carectère est un tableau directement... apres, je sais pas si le c# est assez bas niveau pour le considérer les chaines comme ds tableaux... aussi, pourquoi initialiser le tableau ?? tu n'en a que faire il suffit de rajouter apres ta chaine le caratère NULL (code 0) non? et quand tu le rencontre la chaine est finie et c'est tout Mr. Green

tiens, pour la peine, une source en C, la flemme de traduire Very Happy

Code:
int main()
{
    char chaine[256]="\0", isPallindrome=1, *crLf=NULL; //déclararion des variables
    int longueur=0, miLong=0, i=0;
    fgets(chaine, 256, stdin); // récupération de la chaine entée au clavier
    crLf=strchr(chaine, '\n'); // on supprime le retour de chariot
    if (crLf!=NULL) *crLf='\0';
    longueur=strlen(chaine); // on calcule la longueur de la chaine
    longueur--; 
    miLong=longueur/2;
    while (i<miLong && isPallindrome) //boucle de traitement
    {
        if (chaine[i]!=chaine[longueur-i]) isPallindrome=0;
        i++;
    }
    /* affichage des messages */
    if (isPallindrome) printf("\n\"%s\" est un pallindrome", chaine);
    else printf("\n\"%s\" n'est pas un pallindrome", chaine);
}





______________________________________________________
--
> Que pensez vous de l'ajout du repertoire point dans $PATH ?
Ma version de troll 18.0.32 beta 3 vient de me faire un core dump.
-+- SE in Guide du Linuxien Pervers : Bien développer son troll -+-

[Dos9]
Visiter le site web du posteur Skype
Message [C#] Palindrome or not ? 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch