Partage
  • Partager sur Facebook
  • Partager sur Twitter

C++ Nombre le plus petit et plus grand d'une série

    21 novembre 2017 à 15:37:44

    Bonjour. J'apprends actuellement le C++ et me prépare a attaquer la POO. Avant ca, je veux tester et réviser mes conaissances basiques, et pourquoi pas, les approfondir.

    Je suis en 3ème, on a commencé les statistiques: Moyenne, Etendue et Médiane. Je me dit que si je peux allier la prog a mes cours, ca peut ette sympa, et je me lance dans mon code

    Alors, la moyenne, c'est super simple, fait en deux deux avec une boucle for de cin du nombre de données et de leurs valeurs.

    J'en suis a l'étendue, et ca se complique. L'étendue, c'est la plus grande valeur d'une série moins la plus petite.

    Et justement, je viens ici pour demander, comment récupérer la valeur minimale et maximale d'une série de variable insérée par l'utilisateur.

    Si c'est simple, je comprendrais. Si c'est du code brut, essayez de me l'expliquer après me l'avoir donné svp.

    PS: je pense terminer ce programme, puis créer un mini jeu simple, le juste prix(avant de commencer la POO) , quelqu'un a une fonction random? si y'a une entete, quelle est-elle?

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      21 novembre 2017 à 15:41:42

      Salut,

      Tu suis quel cours c++ ?

      Ensuite, pour random, cherche, c'est intégré à C++ et très facilement trouvable, notamment sur CppReference.

      • Partager sur Facebook
      • Partager sur Twitter
        21 novembre 2017 à 18:49:59

        Salut,

        De manière générale, l'idéal est toujours de maintenir les données que l'utilisateur te fourni dans une collection quelconque, histoire de pouvoir les récupérer par la suite, et donc, de pouvoir les manipuler selon tes besoins ;)

        Un type de collection particulièrement couru (en fait, il s'agit du type de collection que l'on a tendance à utiliser "par défaut", à moins d'avoir une bonne raison d'en choisir un autre) est la classe std::vector.

        Une fois que tu as toutes tes données dans une collection, la bibliothèque standard te fourni une quantité phénoménale d'algorithmes "tout faits" qui pourraient s'avérer utiles à un moment ou à un autre.  Tous ne sont pas forcément disponibles (je pense, par exemple, à std::max_element et à std::min_element, ou, mieux encore dans ton cas à std::min_max_element, à qui ne sont apparus qu'en C++17, et que certains compilateurs peuvent donc ne pas connaitre), mais une chose est sur: si l'algorithme existe dans la bibliothèque standard, tu as largement intérêt à apprendre à l'utiliser plutôt que d'essayer d'en fournir ton implémentation personnelle ;)

        Maintenant, si tu veux vraiment te casser la tête et fournir une implémentation personnelle de ces algorithmes, le principe est simple:

        Pour trouver la valeur minimale, tu vas partir de la valeur la plus grande possible qui puisse être trouvée, par exemple, si tu travailles sur des int, sur la valeur de

        int result = std::numeric_limits<int>::max();

        (nécessite l'inclusion du fichier d'en-tête <limits> pour fonctionner).

        Ensuite, tu vas parcourir toutes tes valeurs, et, si tu en trouve une qui est plus petite que celle que tu as prise pour référence (plus petite que result),tu donne cette valeur à result.  Quand tu auras parcouru toutes les valeurs, result contiendra la valeur minimale trouvée.

        Pour trouver la valeur maximale, le principe est le même mais inversé : on commence par une valeur extrèmement basse, par exemple

        int result = std::numeric_limits<int>::min();

        et on donne à result la valeur que l'on vient de trouver à chaque fois que cette dernière est plus grande que celle de result.

        Je ne vais pas te donner de code, mais, si tu as deux sous de jugeote, tu devrais arriver à un résultat sans trop de difficulté ;)


        • Partager sur Facebook
        • Partager sur Twitter
        Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire viennent aisément.Mon nouveau livre : Coder efficacement - Bonnes pratiques et erreurs  à éviter (en C++)Avant de faire ce que tu ne pourras défaire, penses à tout ce que tu ne pourras plus faire une fois que tu l'auras fait
          22 novembre 2017 à 11:42:05

          Tu n'as qu'as garder deux variables (disons min et max). Tu initialise max à la valeur minimum (-2147483648 pour un int) et min à la valeur maximum (2147483648 pour un int) ou simplement la valeur de la première saisie. A chaque fois que l'utilisateur entre une nouvelle variable tu n'as vérifier qu'elle soit plus grande que Max ou plus petite que min. C'est c'est le cas tu remplace min ou max par la dite variable.

          Une fois que tu as toutes les valeur tu n'a qu'à afficher max - min.

          • Partager sur Facebook
          • Partager sur Twitter

          C++ Nombre le plus petit et plus grand d'une série

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown