TsiG 1
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-50%
Le deal à ne pas rater :
WiMiUS S27 – Mini projecteur portable rotatif à 270° Full HD 9000 ...
69.99 € 139.99 €
Voir le deal

calculette

4 participants

Aller en bas

calculette Empty calculette

Message  kenpachi Mer 12 Déc - 22:43

bon bah jpense avoir fé un ptit truc pas mal par contre on peu mettre ke 1 seul signe opératoire donc ca peu etre amélioré lol
et en fait jvien de voir ke javé pas du tou pensé o nombre a virgule lol
voila le code:

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

namespace calculette
{
class Program
{
static void Main(string[] args)
{
string s;
int i, j = 0, k = 0;
int l;
string[] Signe = new string[50];
Decimal[] T = new Decimal[50];
Console.WriteLine("saisir une opération ou appuyé sur *:");
s = Console.ReadLine();
while (s != "*")
{
l = s.Length;
for (i = 0; i <= l - 1; i++)
{
if (!(char.IsNumber(s, i)))
{
Signe[i] = s.Substring(i, 1);
j = i;
T[k] = Convert.ToInt32(s.Substring(0, i));
k++;
}
}

T[k] = Convert.ToInt32(s.Substring(j + 1, (s.Length - j) - 1));
if (Signe[j] == "*")
Console.WriteLine(T[0] * T[1]);
if (Signe[j] == "+")
Console.WriteLine(T[0] + T[1]);
if (Signe[j] == "-")
Console.WriteLine(T[0] - T[1]);
if (Signe[j] == "/")
Console.WriteLine(T[0] / T[1]);

Console.WriteLine("saisir une opération ou appuyé sur *:");
s = Console.ReadLine();
Initialiser(T,Signe);
i = j = k = l = 0;
}
}

static void Initialiser(Decimal[] T,string[] S)
{
for (int i = 0; i <= T.Length - 1; i++)
T[i] = 0;

for (int i = 0; i <= S.Length - 1; i++)
S[i] = "";
}
}
}
kenpachi
kenpachi

Messages : 27
Date d'inscription : 01/12/2007

Feuille de personnage
Niveau: 1
Expérience:
calculette Left_bar_bleue23/100calculette Empty_bar_bleue  (23/100)

Revenir en haut Aller en bas

calculette Empty Re: calculette

Message  Phreno Jeu 13 Déc - 1:14

Voici la mienne elle gére .......
une seule chose a faire, rentrer la ligne de calcul et apuyer sur entrer
Code:
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    //Merci a Ashura pour l'idée des tableau :p

    class Program
    {
        static long Conversion(string calcul)
        {
            // nb  concaténe les caracteres decimaux
            // n[]  stock les concatenation de nb
            // ni  index de n[]
            // op[] stock les opérateurs
            // no  index de op[]
            // ..... exemple ligne de calcul rentrée : 12 + 3 * 5
            // ..... n[0]=12    n[1]=3      n[2]=5
            // ..... op[0]="+"  op[1] = "*"         
           
            string      nb  = "";
            long[]      n  = new long[calcul.Length];
            int        ni  = 0;
            string[]    op  = new string[calcul.Length];
            int        no  = 0;
           

            // On test tous les caractere de la chaine pour determiner leurs natures
            // IsNumber sert a savoir si un charactere est un nombre ou non.
            // ..... exemple : IsNumber(ChaineATester,Index)
            // si c'est un nombre on le stock dans nb jusqu'a l'arrivé du prochain opérateur
            // Quand on tombe sur l'opérateur sa signifie la fin du nombre en cour alors on concatene, on converti,
            // ..et on stock dans n[]
            // Sinon on regarde quel est l'opérateur (+-*/)
            // Et on fait l'opération qui convient
            // ni++ pour passer a la case suivante du tableau n[]
            // no++ pour la meme raison avec op[]
            // On reinitialise nb a chaque fois pouvoir concatener le nombre suivant
            // ..... Index  0  1  2  3
            // ..... n[]    12  3  5
            // ..... op[]  +  *

            for (int i = 0; i < calcul.Length; i++)
            {
                if (char.IsNumber(calcul, i))
                {
                    nb += calcul.Substring(i, 1);
                }
                else if (calcul.Substring(i, 1) == "+" || calcul.Substring(i, 1) == "-" || calcul.Substring(i, 1) == "/" || calcul.Substring(i, 1)=="*")
                {
                    n[ni] = Convert.ToInt64(nb);
                    nb = "";
                    ni++;
                    op[no] = calcul.Substring(i, 1);
                    no++;
                }
            }
            n[ni] += Convert.ToInt64(nb);
            // ..... Index  0  1  2  3
            // ..... n[]    12  3  5
            // ..... op[]  +  *
            // ..... 1ere etape 3*5
            // ..... 2eme etape 12+(3*5)
            // On garde la priorité des opérations en traitant d'abord les multiplications et les divisions
            // On crée result pour stocker le resultat
            long result=0;

            for (int i = 0; i < ni; i++)
            {
                if (op[i] == "*")
                    result += n[i] * n[i + 1];
                else if (op[i] == "/")
                    result += n[i] / n[i + 1];
                else continue;
            }
            for (int i = 0; i < ni; i++)
            {
                if (op[i] == "+")
                    result += n[i + 1];
                else if (op[i] == "-")
                    result -= n[i + 1];
                else continue;
            }


                return result;
        }

        static void Main(string[] args)
        {
            string calcul;
            calcul = Console.ReadLine();

            Console.WriteLine(Conversion(calcul));
           
            Console.ReadLine();

        }
    }
}



Dernière édition par le Jeu 13 Déc - 1:36, édité 1 fois
Phreno
Phreno

Messages : 123
Date d'inscription : 29/11/2007
Age : 37

Feuille de personnage
Niveau: 2
Expérience:
calculette Left_bar_bleue23/200calculette Empty_bar_bleue  (23/200)

Revenir en haut Aller en bas

calculette Empty Re: calculette

Message  Phreno Jeu 13 Déc - 1:36

simple precision (je viens de m'en rendre compte Crying or Very sad ),
elle ne prend pas en compte les nombres a virgule (satané long), mais je pense qu'il suffit de remplacer tous les long par des double et ensuite elle ne gere pas plusieurs multiplication a la suite. du style 2*3*4 ( ou sont les beta testeur quand on en a besoin !!!!!)
Phreno
Phreno

Messages : 123
Date d'inscription : 29/11/2007
Age : 37

Feuille de personnage
Niveau: 2
Expérience:
calculette Left_bar_bleue23/200calculette Empty_bar_bleue  (23/200)

Revenir en haut Aller en bas

calculette Empty Re: calculette

Message  kenpachi Jeu 13 Déc - 1:38

mdr ouai c lé mm pb ke moi lé virgule il aime pas lol.et plusieur opération il y arive pas non plus
fo dotre gens pour aider Very Happy
kenpachi
kenpachi

Messages : 27
Date d'inscription : 01/12/2007

Feuille de personnage
Niveau: 1
Expérience:
calculette Left_bar_bleue23/100calculette Empty_bar_bleue  (23/100)

Revenir en haut Aller en bas

calculette Empty Re: calculette

Message  Phreno Jeu 13 Déc - 1:41

il doit bien y avoir un moyen
soit une histoire de classe, alors tout traiter séparément dans des fonctions ....
Phreno
Phreno

Messages : 123
Date d'inscription : 29/11/2007
Age : 37

Feuille de personnage
Niveau: 2
Expérience:
calculette Left_bar_bleue23/200calculette Empty_bar_bleue  (23/200)

Revenir en haut Aller en bas

calculette Empty Re: calculette

Message  kenpachi Jeu 13 Déc - 9:22

bon alors pour lé virgules c réglé ya plus de pb Laughing
voici le nouvo code yavé juste un ptit truc a rajouté apré le if(!(isnumber()))
code:

Code:
using System;
using System.Collections.Generic;
using System.Text;

namespace calculette
{
    class Program
    {
        static void Main(string[] args)
        {
            string s;
            int i, j = 0, k = 0;
            int l;
            string[] Signe = new string[50];
            Decimal[] T = new Decimal[50];
            Console.WriteLine("saisir une opération ou appuyé sur *:");
            s = Console.ReadLine();
            while (s != "*")
            {
                l = s.Length;
                for (i = 0; i <= l - 1; i++)
                {
                    if (!(char.IsNumber(s, i)) && s.Substring(i,1)!=",")
                    {
                        Signe[i] = s.Substring(i, 1);
                        j = i;
                        T[k] = Convert.ToDecimal(s.Substring(0, i));
                        k++;
                    }
                }

                T[k] = Convert.ToDecimal(s.Substring(j + 1, (s.Length - j) - 1));
                if (Signe[j] == "*")
                    Console.WriteLine(T[0] * T[1]);
                if (Signe[j] == "+")
                    Console.WriteLine(T[0] + T[1]);
                if (Signe[j] == "-")
                    Console.WriteLine(T[0] - T[1]);
                if (Signe[j] == "/")
                    Console.WriteLine(T[0] / T[1]);

                Console.WriteLine("saisir une opération ou appuyé sur *:");
                s = Console.ReadLine();
                Initialiser(T, Signe);
                i = j = k = l = 0;
            }
        }

        static void Initialiser(Decimal[] T, string[] S)
        {
            for (int i = 0; i <= T.Length - 1; i++)
                T[i] = 0;

            for (int i = 0; i <= S.Length - 1; i++)
                S[i] = "";
        }
    }
}
kenpachi
kenpachi

Messages : 27
Date d'inscription : 01/12/2007

Feuille de personnage
Niveau: 1
Expérience:
calculette Left_bar_bleue23/100calculette Empty_bar_bleue  (23/100)

Revenir en haut Aller en bas

calculette Empty Re: calculette

Message  b2c78 Jeu 13 Déc - 11:43

bravo mes féliciatation les mec on voit les pro du c#
b2c78
b2c78

Messages : 272
Date d'inscription : 30/11/2007
Age : 36
Localisation : Vernouillet (78)

Feuille de personnage
Niveau: 2
Expérience:
calculette Left_bar_bleue172/200calculette Empty_bar_bleue  (172/200)

http://myspace.com/bmcmetal

Revenir en haut Aller en bas

calculette Empty Re: calculette

Message  kenpachi Jeu 13 Déc - 19:56

lol c gentil mé lé pro y zoré réussi a faire dé opération avec plusieur signe opératoire lol
kenpachi
kenpachi

Messages : 27
Date d'inscription : 01/12/2007

Feuille de personnage
Niveau: 1
Expérience:
calculette Left_bar_bleue23/100calculette Empty_bar_bleue  (23/100)

Revenir en haut Aller en bas

calculette Empty Re: calculette

Message  Ashura Ven 14 Déc - 4:48

On se sent bête en lisant, ou en retard xD
Ashura
Ashura

Messages : 150
Date d'inscription : 30/11/2007
Localisation : Sanctuary

Feuille de personnage
Niveau: 2
Expérience:
calculette Left_bar_bleue46/200calculette Empty_bar_bleue  (46/200)

Revenir en haut Aller en bas

calculette Empty Re: calculette

Message  kenpachi Ven 14 Déc - 9:22

tu te sens bete en lisant koi ashura ???
kenpachi
kenpachi

Messages : 27
Date d'inscription : 01/12/2007

Feuille de personnage
Niveau: 1
Expérience:
calculette Left_bar_bleue23/100calculette Empty_bar_bleue  (23/100)

Revenir en haut Aller en bas

calculette Empty Re: calculette

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser