Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de calculatrice

Sujet résolu
    26 juin 2011 à 10:30:20

    Bonjour,

    Alors je suis en train de faire une calculatrice. J'ai achevé le coté visuel du programme. J'ai beaucoup de questions a vous poser :

    1. Pour la textbox qui affiche les chiffres, y a-t-il un moyen de lui faire un design ?

    2. Pour stocker les chiffres, il me faut beaucoup de variables. Comment peut-on faire pour avoir un nombre infini de variables ou bien faire comme d'autres calculatrices, afficher juste deux chiffres puis le résultat puis on continue ?

    3. Quel font me conseillerai-vous pour une calculatrice ?

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      26 juin 2011 à 11:48:18

      1) Tout d'abord tu ne nous as pas dit quel type de projet du faisait, Silverlight, WPF, Windows Form ? Auquel cas, si tu utilise Silverlight ou WPF je te conseille de regarder les "templates" pour designer des éléments facilement et de manière puissante.
      2) Tu peux faire effectivement comme les autres calculatrices afficher deux chiffres puis le résultat et on continue, ce serait plus simple pour le moment. Après tu pourrais mettre en place un système plus complexe où tu enregistrerais tes variables dans une liste de nombres, tes opérateurs également dans une liste (d'une énumération que tu aurais créé par exemple) à chaque fois que l'utilisateur appuie sur un opérateur, et quand l'utilisateur appuie sur "=" tu as un algorithme qui replace et fait le calcul en fonction des listes de nombres & des listes d'opérateurs.
      3) C'est à toi de décider, en demandant ça sur un forum tu peux avoir tout et n'importe quoi. Essayes en plusieurs et regarde celui qui te convient le mieux.

      En espérant avoir pu t'aider ! :)
      • Partager sur Facebook
      • Partager sur Twitter
        26 juin 2011 à 21:25:46

        Je fais cela en windows form, tes conseils m'on vraiment aider j'ai pu entamé la partie programmation, mais je n'ai pas très bien compris le système complexe, tu pourrais bien me le réexpliquer s'il te plait ?

        Merci encore de tes conseils.
        • Partager sur Facebook
        • Partager sur Twitter
          26 juin 2011 à 22:52:08

          En fait la méthode plus complexe serait la suivante :
          Lors du codage du programme, tu auras créé une énumération d'opérateurs (plus, moins, fois, diviser).
          1) L'utilisateur rentre un nombre
          2) Ce nombre est affiché dans une textbox
          3) L'utilisateur appuie sur un opérateur
          4) Lorsque l'utilisateur appuie sur l'opérateur, le nombre précédent l'opérateur est ajouté dans une liste de int et l'opérateur lui même est ajouté dans une liste d'enum.
          5) L'opérateur est affiché en plus avec un += dans la textbox
          6) L'utilisateur recommence à partir de la première étape
          7) L'utilisateur appuie sur =
          8) Tu as maintenant tes listes de int qui représente tes nombres et ta liste d'opérateurs, tu sais que tu dois appliquer l'opérateur n°1 de la liste d'opérateurs aux nombres n°1 et n° 2 de ta liste de nombres. Tu calcules ensuite le résultat final dans une boucle en agençant bien chaque opérateur avec chacun de tes nombres. Tu affiches ce résultat et voilà :)

          J'espère que tu as compris le principe, personnellement je n'ai jamais essayé de faire de calculatrice mais si tu veux un système où tu ne dois pas donner automatiquement le résultat à chaque fois que l'utilisateur appuie sur un opérateur c'est comme ça que je ferai. A toi d'essayer et de me dire si tu arrives à le programmer. Bonne chance, et si tu as d'autres questions n'hésite pas !
          • Partager sur Facebook
          • Partager sur Twitter
            27 juin 2011 à 11:13:13

            Pardon, mais j'ai encore une question : Quand, par exemple, le bouton 1 est cliqué, puis le bouton 2, cela donne le nombre 12, comment faire pour que la variable valeur1 ne soit pas 3 ou quelque chose comme ça, donc juste affichée 1 et 2 pour qu'il fasse 12 et qu'on puisse utiliser ces deux nombres comme un 12 dans l’opération ? S'il te plait, pourrais-tu me mettre le code ?
            • Partager sur Facebook
            • Partager sur Twitter
              27 juin 2011 à 14:08:08

              Je ne peux pas te mettre le code parce que je code en C# et d'après ce que j'ai lu dans tes tags, toi tu codes en VB.NET. Pour ce qui est de ton problème, il faudrait que tu codes un système où, si l'utilisateur rentre par exemple 1, 2, 4 puis appuie sur "+", ta valeur1 soit égale à : dernierChiffre + avantDernierChiffre * 10 (les dizaines) + avantAvantDernierChiffre * 100 (les centaines). Je te conseille donc de faire un tableau ou une liste pour chaque nombre rentré qui sera constitué de tous ces chiffres, ensuite tu comptes combien il y a d'éléments dans le tableau et tu fais une petite boucle de ce genre :

              List<int> monNombre = new List<int>(); //Déclaration de la liste de chiffres de type Integer
              monNombre.Add(1); //On ajoute 1
              monNombre.Add(2); //On ajoute 2
              monNombre.Add(4); //On ajoute 4
              int nbreFinal = 0; //Nombre final qu'on cherchera à obtenir (on l'initialise à zéro pour l'instant)
              int i = 1 * (10 * (monNombre.Count - 1)); //Dans notre cas, i = 1 * (10 * (3 - 1)) = 100, le premier nombre de notre liste constitue bien les centaines donc on a bon.
              foreach(int chiffre in monNombre) //Boucle qui va passer en revue tout le tableau monNombre
              {
              chiffre *= i; //Ainsi si i = 10 on aura 2 * 10 = 20 on restaure donc bien le 2 à sa place (les dizaines)
              nbreFinal += chiffre; //On ajoute le chiffre au résultat final
              i /= 10; //On divise i par 10, ainsi si on était aux centaines, on passe aux dizaines ect...
              }
              //A la fin, nbreFinal vaut bien 124.
              mesNombres.Add(nbreFinal); //On ajoute à la liste des nombres sur lesquels on fera nos opérations le nombre que l'on vient de restituer.
              monNombre = new List<int>(); //On réinitialise la liste d'integer monNombre pour le prochain nombre.
              


              Voilà, je t'ai écris le code en C#, en le commentant au maximum pour que tu puisses au moins comprendre la logique en pratique. Donc à chaque fois que l'utilisateur appuie sur un chiffre tu ajoutes ce chiffre dans la liste monNombre et lorsqu'il appuie sur un opérateur, tu restitues le nombre ce nombre avec le code que je viens de te donner puis tu l'ajoutes dans la liste de nombres finale où tu feras tes opérations à la fin. Enfin tu n'oublies pas de remettre la liste monNombre à zéro pour le prochain nombre que va rentrer l'utilisateur.

              J'espère que tu as compris la logique. :) N'hésite surtout pas si tu as d'autres questions.
              • Partager sur Facebook
              • Partager sur Twitter

              Problème de calculatrice

              × 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