Problème Visual Studio

Fermé
vincentdu27300 Messages postés 12 Date d'inscription mardi 19 août 2014 Statut Membre Dernière intervention 28 octobre 2015 - 27 oct. 2015 à 16:13
Whismeril Messages postés 19040 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 9 mai 2024 - 28 oct. 2015 à 14:40
Bien le bonjours je dois créer un programme qui est le suivant : Calulatrice Polonaise Inversé ( c'est a dire au lieux de 1 + 1 = 2 c'est 1 1 + = 2 ) étant novice dans la matière je me suis a faire dans un premier temps une calculatrice normal tous marcher bien a un détaille la fonction Puissance qui ne fonctionne pas comme prevus ...
A voir également:

5 réponses

Whismeril Messages postés 19040 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 9 mai 2024 932
27 oct. 2015 à 19:36
Bonjour,

merci de poster le code en utilisant la coloration syntaxique, explications la coloration syntaxique ici.


Merci aussi de préciser dans quel langage tu codes....
0
Whismeril Messages postés 19040 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 9 mai 2024 932
27 oct. 2015 à 20:39
Tu n'as pas bien lu les explications...
J'ai du corriger ta coloration.
0
Whismeril Messages postés 19040 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 9 mai 2024 932
27 oct. 2015 à 20:41
Tu aurais pu te contenter de poster la fonction puissance :)
0
vincentdu27300 Messages postés 12 Date d'inscription mardi 19 août 2014 Statut Membre Dernière intervention 28 octobre 2015
Modifié par Whismeril le 27/10/2015 à 20:39
Oui j'en suis désolé j'utilise le C# et voicie le code en question :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        string operateur;

        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Text += "1";

        }

        private void button2_Click(object sender, EventArgs e)
        {
            textBox1.Text += "2";
        }

        private void button3_Click(object sender, EventArgs e)
        {
            textBox1.Text += "3";
        }

        private void button4_Click(object sender, EventArgs e)
        {
            textBox1.Text += "4";
        }

        private void button8_Click(object sender, EventArgs e)
        {
            textBox1.Text += "5";
        }

        private void button7_Click(object sender, EventArgs e)
        {
            textBox1.Text += "6";
        }

        private void button6_Click(object sender, EventArgs e)
        {
            textBox1.Text += "7";
        }

        private void button5_Click(object sender, EventArgs e)
        {
            textBox1.Text += "8";
        }

        private void button16_Click(object sender, EventArgs e)
        {
            textBox1.Text += "9";
        }

        private void button13_Click(object sender, EventArgs e)
        {
            textBox1.Text += "0";
        }

        private void button_plus_Click(object sender, EventArgs e)
        {
            textBox1.Text += "+";
            operateur = "+";

        }

        private void button_moins_Click(object sender, EventArgs e)
        {
            textBox1.Text += "-";
            operateur = "-";
        }

        private void button_multiplication_Click(object sender, EventArgs e)
        {
            textBox1.Text += "*";
            operateur = "*";
        }

        private void button_divise_Click(object sender, EventArgs e)
        {
            textBox1.Text += "/";
            operateur = "/";
        }

        private void button_modulo_Click(object sender, EventArgs e)
        {
            textBox1.Text += "%";
            operateur = "%";
        }

        private void button_puissance_Click(object sender, EventArgs e)
        {
            textBox1.Text += "^";
        }

        private void button_egale_Click(object sender, EventArgs e)
        {
            if (operateur == "+")
            {
                string[] chaine = textBox1.Text.Split('+');

                textBox1.Text += Environment.NewLine + "=" + Environment.NewLine + (double.Parse(chaine[0]) + double.Parse(chaine[1])).ToString();
            }
            if (operateur == "-")
            {
                string[] chaine = textBox1.Text.Split('-');

                textBox1.Text += Environment.NewLine + "=" + Environment.NewLine + (double.Parse(chaine[0]) - double.Parse(chaine[1])).ToString();
            }
            if (operateur == "*")
            {
                string[] chaine = textBox1.Text.Split('*');

                textBox1.Text += Environment.NewLine + "=" + Environment.NewLine + (double.Parse(chaine[0]) * double.Parse(chaine[1])).ToString();
            }
            if (operateur == "/")
            {
                string[] chaine = textBox1.Text.Split('/');

                textBox1.Text += Environment.NewLine + "=" + Environment.NewLine + (double.Parse(chaine[0]) / double.Parse(chaine[1])).ToString();
            }
            if (operateur == "%")
            {
                string[] chaine = textBox1.Text.Split('%');

                textBox1.Text += Environment.NewLine + "=" + Environment.NewLine + (double.Parse(chaine[0]) % double.Parse(chaine[1])).ToString();
            }
            if (operateur == "^")
            {
                string[] chaine = textBox1.Text.Split('^');

                textBox1.Text += Environment.NewLine + "=" + Environment.NewLine + (double.Parse(chaine[0]) ^ (double.Parse(chaine[1])).ToString());
            }
        }

        private void button_effacer_Click(object sender, EventArgs e)
        {
            textBox1.Clear();
        }

    }
}
0
Whismeril Messages postés 19040 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 9 mai 2024 932
Modifié par Whismeril le 27/10/2015 à 21:06
^ n'est pas l'opérateur de puissance dans C#, pas plus que % n'est l'opérateur de pourcentage....

Pour les puissances, voir la classe Math.

Modérer m'amène à intervenir dans de nombreux posts, mais les seuls langages que je connaisses sont le C# et un peu de VB. Pour vos codes pensez à la coloration.
Réponse trouvée ->Question Résolue
0
vincentdu27300 Messages postés 12 Date d'inscription mardi 19 août 2014 Statut Membre Dernière intervention 28 octobre 2015
Modifié par Whismeril le 28/10/2015 à 14:18
J'ais simplifié un peu ma démarche mais les opérateurs ne veulent pas s'afficher
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        double value = 0;
        String opertation = "";
        bool operation_pressed = false; 

        public Form1()
        {
            InitializeComponent();
        }

        //les nombre //

        private void button1_Click(object sender, EventArgs e)
        {
            if ((textBox1.Text == "0") || (operation_pressed))
                textBox1.Clear();

            Button b = (Button)sender;
            textBox1.Text = textBox1.Text + b.Text;

        }

        //les opération//


        private void Operateur_arithemetique(object sender, EventArgs e)
        {

            Button b = (Button)sender;
            opertation = b.Text;
            value = Double.Parse(textBox1.Text);
            operation_pressed = true;
        }

        //les calcules //

        private void button_egale_Click(object sender, EventArgs e)
        {
           switch(operation)
           {
               case "+":
                   textBox1.Text = (value + Double.Parse(textBox1.Text)).ToString();
                   break;

               case "-":
                   textBox1.Text = (value - Double.Parse(textBox1.Text)).ToString();
                   break;

               case "/":
                   textBox1.Text = (value / Double.Parse(textBox1.Text)).ToString();
                   break;

               case "*":
                   textBox1.Text = (value  * Double.Parse(textBox1.Text)).ToString();
                   break;

               case "%":
                   textBox1.Text = (value % Double.Parse(textBox1.Text)).ToString();
                   break;
               default:
                 break;
           }
           operation_pressed = false; 
        }

        private void button_effacer_Click(object sender, EventArgs e)
        {
            textBox1.Text = "0";
            value = 0;
        }

        
    }
}

0
Whismeril Messages postés 19040 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 9 mai 2024 932
28 oct. 2015 à 14:19
J'ai encore corrigé ta coloration, merci de bien l'utiliser la prochaine fois.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril Messages postés 19040 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 9 mai 2024 932
28 oct. 2015 à 14:40
C'est beaucoup mieux!

Ici
            if ((textBox1.Text == "0") || (operation_pressed))
 


Les parenthèses autour de operation_pressed sont inutiles, il n'y a pas de test c'est deja un bool. Celles autour de textBox1.Text == "0", n'ont pas d'intérêt pour le code en soit, par contre ça peut paraître plus lisible.

T'as viré la puissance? Je t'ai dit de regarder la classe Math, l'as tu fait?

Évite value comme nom de variable, c'est un mot clé pour les propriétés.


Par contre, je ne comprends pas ce que tu entends par

les opérateurs ne veulent pas s'afficher


Quoiqu'il en soit, tu te sert de textBox comme de la variable pour stocker tout ton calcul. Il te faut donc ensuite traduire ce qui est écrit pour faire l'opération.

Ça n'est pas judicieux.
A mon sens, quand tu tapes un nombre, tu devrais remplir une variable numérique, quand tu tapes un opérateur, tu devrais remplir une variable dédiée, un enum par exemple.
Quand tu tapes sur égal, tu as déjà 2 nombres et un opérateur, c'est plus simple à gérer, ce sera plus simple à transformer en notation polonaise.

L'idéal est d'écrire une classe métier qui fait les calculs, les contrôles de ta form servant alors à alimenter cette classe.
0