IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Exercice d'algo - demande d'aide


Sujet :

C#

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Exercice d'algo - demande d'aide
    Bonjour, je commence le C#, j'essaye de faire un exercice, de base c'était de l'algo. Ce programme est censé demander 20 nombre successivement pour donner le nombre le plus grand et la position à la quelle il a était saisi , le hic c'est que ça n'en demande que 10 et la position donner est mauvaise, quelqu'un peut donc me corrigé s'vous plait?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    int N, i, PG, IPG;                                    //Déclaration des variables
     
    IPG = PG = 0;     
    for (i = 1; i <= 20; i++)                       //Boucle de 1 à 20
    {
      Console.Write("Entrez un nombre: ");   //Affichage
      N = Int32.Parse(Console.ReadLine());  //Lecture
      if (i == 1 || N > PG)                        //Si
      {
        PG = N;
        IPG = i;
      }
      i++;
    }
    Console.WriteLine("Le nombre le plus grand était: " + PG);       //Le nombre le plus grand
    Console.WriteLine("Il a été saisi en position numéro: " + IPG);  //Sa position

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut
    Tu incrément 2 fois ton index i.

    Le 3ème paramètre du For est l'opération qui est faite automatiquement à la fin de la boucle. Ici, tu y met i++, donc ton index i sera automatiquement incrémenté à la fin de la boucle. Tu n'as donc pas besoin de rajouter l'incrémentation à l'intérieur de ta boucle.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par sevyc64 Voir le message
    Tu incrément 2 fois ton index i.

    Le 3ème paramètre du For est l'opération qui est faite automatiquement à la fin de la boucle. Ici, tu y met i++, donc ton index i sera automatiquement incrémenté à la fin de la boucle. Tu n'as donc pas besoin de rajouter l'incrémentation à l'intérieur de ta boucle.

    Effectivement tu as totalement raison, merci pour ta rapidité! C'est autre chose que Ope..C..

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Pendant que j'y suis, j'vais être chiant mais comment faire pour demander à l'utilisateur si il veut commencé le programme si choix==oui (que ça soit en majuscule ou en minuscule) est bien le programme commence, si choix==non le programme ne s’exécute pas est se ferme et une commande de fin, si l'utilisateur souhaite réessayer le programme se recommence depuis le début.

  5. #5
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut
    Console.ReadLine pour lire le choix de l'utilisateur,
    Un bloc If..Then pour traiter le choix, style If non then exit (ou return, je sais plus à force de mélanger les langages)

    Ensuite pour traiter minuscule ou majuscule, l'astuce est de passer la réponse de l'utilisateur, quel qu'elle soit, soit tout en minuscule avec ToLower sur la string, soit tout en majuscule avec ToUpper. Comme ça tu n'as ensuite qu'à traiter un seule cas, en minuscule, ou en majuscule suivant la conversion que tu as fait juste avant.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par sevyc64 Voir le message
    Console.ReadLine pour lire le choix de l'utilisateur,
    Un bloc If..Then pour traiter le choix, style If non then exit (ou return, je sais plus à force de mélanger les langages)

    Ensuite pour traiter minuscule ou majuscule, l'astuce est de passer la réponse de l'utilisateur, quel qu'elle soit, soit tout en minuscule avec ToLower sur la string, soit tout en majuscule avec ToUpper. Comme ça tu n'as ensuite qu'à traiter un seule cas, en minuscule, ou en majuscule suivant la conversion que tu as fait juste avant.

    J'ai pas trop réussis l'astuce du To.Upper et To.Lower, mais c'était "Environment.Exit(0);", Merci man.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
     
    namespace ConsoleApplication10
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("Bienvenue veut-tu commencer ce programme <oui> ou <non>");
                string choix, str_Recommencer;
                choix = Console.ReadLine();
     
     
                do //Début de la boucle de recommencement
                {
     
                    if (choix == "non" || choix == "Non" || choix == "NON")
     
                {
                    Environment.Exit(0);
                }
                else
                {
     
                }
     
     
     
                int u, i, PG, IPG; //Déclaration des variables
                string N;
     
                IPG = PG = 0;
                Console.WriteLine("Veuillez saisir 20 nombres succèsivement : ");
     
                for (i = 1; i <= 20; i++) //Boucle de 1 à 20
                {
     
                    Console.Write("Saisie: ");
                    N =Console.ReadLine(); //Lecture
                    int.TryParse(N, out u);
                    if (i == 1 || u > PG) //Si
                    {
                        PG = u;
                        IPG = i;
                    }
     
                }
                Console.WriteLine("Le nombre le plus grand était: " + PG);
                Console.WriteLine("Il a été saisi en position numéro: " + IPG);
                Console.ReadKey();
     
                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
            }
        }
    }

  7. #7
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    un truc qui va bien t'aider dans ton apprentissage et même après, c'est la doc MSDN Voilà la fiche de String.ToUpper().

    Avec une recherche du type "Classe.Methode MSDN" dans google tu devrais presque toujours l'avoir en premier résultat
    (ce qui n'est pas nécessairement vrai avec qwant).
    Plus je connais de langages, plus j'aime le C.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut
    Bonjour,

    Sur le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (choix == "non" || choix == "Non" || choix == "NON")
    {
       Environment.Exit(0);
    }
    else
    {
     
    }
    le else n'est pas nécessaire car vide.
    si je saisie nOn cela ne fonctionne pas, d'ou l'astuce de sevyc64
    j'irais même plus loin, si ton utilisateur est trèèèès courtois et saisie "non monsieur" (comment ça je chipote?)


    Voici ton code adapté pour géré les majuscules/minuscules ET la saisie de mot superflus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (choix.ToUpper().Contains("NON"))
    {
       Environment.Exit(0);
    }
    si je saisie "nOn monsieur!"
    le ToUpper() donne "NON MONSIEUR!"
    le Contains recherche "NON" et renvoi True (j'ai trouvé une correspondance)


    et je confirme, msdn for ever

  9. #9
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut
    Citation Envoyé par TheBlackReverand Voir le message
    Voici ton code adapté pour géré les majuscules/minuscules ET la saisie de mot superflus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (choix.ToUpper().Contains("NON"))
    {
       Environment.Exit(0);
    }
    si je saisie "nOn monsieur!"
    le ToUpper() donne "NON MONSIEUR!"
    le Contains recherche "NON" et renvoi True (j'ai trouvé une correspondance)


    et je confirme, msdn for ever
    De même que si tu saisie Canon-ball ou Dénonciation ou ... (je te fais grâce de tout le dico)
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut
    oui ok j’avoue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    choix.ToUpper().Split(',', ' ', '.', '!', ......).Contains("NON")
    comment ça je tue des mouches avec un bazooka?

Discussions similaires

  1. Aide moi pour cet exercice
    Par yassin123441 dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 16/12/2009, 06h42
  2. besoin d'aide dans un petit exercice
    Par midoutn dans le forum PowerAMC
    Réponses: 0
    Dernier message: 28/11/2009, 19h40
  3. Petit exercice. Besoin d'aide
    Par DBA_OCP dans le forum C
    Réponses: 12
    Dernier message: 21/03/2008, 04h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo