A voir également:
- Calculatrice en Win32 Console Application
- Application mobile - Guide
- Application calculatrice - Télécharger - Calcul & Conversion
- Desinstaller application windows - Guide
- Application gps sans internet - Guide
- Calculatrice gratuit - Télécharger - Calcul & Conversion
5 réponses
je pense avoir trouvé un algo. je vous donnerai le code si ça intéresse certains, et si je trouve ;)
tarek_dotzero
Messages postés
817
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
12 avril 2022
122
13 nov. 2007 à 14:39
13 nov. 2007 à 14:39
Slt,
S'il n'y a pas de multiplication de de division: tout est simple:
fait la lecture lettre à lettre: s'il s'agit d'un chiffre ajoute le au dernier nombre.
Sinon: effetue l'operation enregistrée, et sauvegarde le resultat, sauvegarde l'opération à effectuer la prochaine fois.
repete cela jusqu'à l'entree de '=' : tu effectue l'opération enregistrée et tu sort de la boucle.
S'il n'y a pas de multiplication de de division: tout est simple:
fait la lecture lettre à lettre: s'il s'agit d'un chiffre ajoute le au dernier nombre.
Sinon: effetue l'operation enregistrée, et sauvegarde le resultat, sauvegarde l'opération à effectuer la prochaine fois.
repete cela jusqu'à l'entree de '=' : tu effectue l'opération enregistrée et tu sort de la boucle.
tarek_dotzero, merci, mais je crois que c'est assez difficile ce que tu me dis, ou trop simple en fait...
s'il vous plait, aidez-moi... je n'y arrive vraiment pas :(
voila mon code pour l'instant, et c'est pas glorieux...
#include<string>
#include<iostream>
#include<vector>
#include<math.h>
using namespace std;
int main(void)
{
string entry;
vector<int>opera;
opera.clear();
cout<<"write the operation"<<endl;
getline(cin,entry,'=');
for(int i=0;i<=entry.size()-1;i++)
{
//cout<<entry.at(i);
opera.push_back(entry.at(i));
}
for(int j=0;j<entry.size();j++)
{
if(opera.at(j)==49)
{
opera.at(j)=1;
}
else if(opera.at(j)==50)
{
opera.at(j)=2;
}
else if(opera.at(j)==51)
{
opera.at(j)=3;
}
else if(opera.at(j)==52)
{
opera.at(j)=4;
}
else if(opera.at(j)==53)
{
opera.at(j)=5;
}
else if(opera.at(j)==54)
{
opera.at(j)=6;
}
else if(opera.at(j)==55)
{
opera.at(j)=7;
}
else if(opera.at(j)==56)
{
opera.at(j)=8;
}
else if(opera.at(j)==57)
{
opera.at(j)=9;
}
else if(opera.at(j)==48)
{
opera.at(j)=0;
}
cout<<opera.at(j);
//+ -> code ascii 43
//- -> code ascii 45
}
cout<<endl;
int var=0;
for(int t=0;t<opera.size();t++)
{
/*if(opera.at(t)!=43 && opera.at(t)!=45)
{
cout<<opera.at(t);
}*/
do
{
var=(var+opera.at(t)*10);
t++;
}while(opera.at(t)!=43);
}
cout<<"var: "<<var;
return 0;
}
voila mon code pour l'instant, et c'est pas glorieux...
#include<string>
#include<iostream>
#include<vector>
#include<math.h>
using namespace std;
int main(void)
{
string entry;
vector<int>opera;
opera.clear();
cout<<"write the operation"<<endl;
getline(cin,entry,'=');
for(int i=0;i<=entry.size()-1;i++)
{
//cout<<entry.at(i);
opera.push_back(entry.at(i));
}
for(int j=0;j<entry.size();j++)
{
if(opera.at(j)==49)
{
opera.at(j)=1;
}
else if(opera.at(j)==50)
{
opera.at(j)=2;
}
else if(opera.at(j)==51)
{
opera.at(j)=3;
}
else if(opera.at(j)==52)
{
opera.at(j)=4;
}
else if(opera.at(j)==53)
{
opera.at(j)=5;
}
else if(opera.at(j)==54)
{
opera.at(j)=6;
}
else if(opera.at(j)==55)
{
opera.at(j)=7;
}
else if(opera.at(j)==56)
{
opera.at(j)=8;
}
else if(opera.at(j)==57)
{
opera.at(j)=9;
}
else if(opera.at(j)==48)
{
opera.at(j)=0;
}
cout<<opera.at(j);
//+ -> code ascii 43
//- -> code ascii 45
}
cout<<endl;
int var=0;
for(int t=0;t<opera.size();t++)
{
/*if(opera.at(t)!=43 && opera.at(t)!=45)
{
cout<<opera.at(t);
}*/
do
{
var=(var+opera.at(t)*10);
t++;
}while(opera.at(t)!=43);
}
cout<<"var: "<<var;
return 0;
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai enfin réussi
voila le code, pour ceux que ça intéresse.
Merci quand même à tous!
voila le code, pour ceux que ça intéresse.
Merci quand même à tous!
//weekly 9 //this program implement a small calculator that can add and subtract real values //we use the vectors, and obviously the strings #include<string> #include<iostream> #include<vector> using namespace std; int main(void) { string entry; vector<int>opera; vector<int>opera2; int var=0; int var2=0; //opera.clear(); cout<<"write the operation"<<endl; getline(cin,entry,'='); for(int i=0;i<=entry.size()-1;i++) { opera.push_back(entry.at(i)); opera.at(i)=opera.at(i)-48; if(entry.at(i)!='+' && entry.at(i)!='-' && i!=0) { var=(opera.at(i-1))*10; var2=opera.at(i); opera.at(i)=var+var2; } else { if(entry.at(i)=='+' || entry.at(i)=='-') { opera2.push_back(opera.at(i-1)); opera2.push_back(opera.at(i)); opera.at(i)=0; } } } for(int t=1;t<opera2.size()-2;t++) { if(opera2.at(t)==-5) opera.at(0)=opera2.at(t-1)+opera2.at(t+1); if(opera2.at(t)==-3) opera.at(0)=opera2.at(t-1)-opera2.at(t+1); opera2.at(t)=opera.at(0); } cout<<"result: "<<opera.at(0)<<endl; return 0; }