CALCULATRICE AVEC DU C PUR

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 22 juin 2003 à 18:25
cs_Grenouille540 Messages postés 4 Date d'inscription dimanche 9 mai 2010 Statut Membre Dernière intervention 18 juin 2010 - 18 juin 2010 à 08:14
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/10973-calculatrice-avec-du-c-pur

cs_Grenouille540 Messages postés 4 Date d'inscription dimanche 9 mai 2010 Statut Membre Dernière intervention 18 juin 2010
18 juin 2010 à 08:14
Bonjour Moi je suis sur C++ Builder 5 je suis une débutante et là j'aurais besoin de vos lumières s'il vous plait je suis bloquée au niveau de la mise en place des opérations

Voici mon programme ---->

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Cacul.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Bp_Click(TObject *Sender)// Déclaration des boutons
{
char c;
if(dynamic_cast<TButton*>(Sender)==Bp_0)c='0';
if(dynamic_cast<TButton*>(Sender)==Bp_1)c='1';
if(dynamic_cast<TButton*>(Sender)==Bp_2)c='2';
if(dynamic_cast<TButton*>(Sender)==Bp_3)c='3';
if(dynamic_cast<TButton*>(Sender)==Bp_4)c='4';
if(dynamic_cast<TButton*>(Sender)==Bp_5)c='5';
if(dynamic_cast<TButton*>(Sender)==Bp_6)c='6';
if(dynamic_cast<TButton*>(Sender)==Bp_7)c='7';
if(dynamic_cast<TButton*>(Sender)==Bp_8)c='8';
if(dynamic_cast<TButton*>(Sender)==Bp_9)c='9';
if(dynamic_cast<TButton*>(Sender)==Bp_point)c=',';
ajout(c);
}
//---------------------------------------------------------------------------
void TForm1::ajout(char lettre)// Déclaration pour la virgule
{
if(max_caract<=20)
{
if(max_caract==0 && lettre!=',')
{
Edit->Text=' ';
}
if(!drap_virg ||(drap_virg && lettre!=','))
{
Edit->Text=Edit->Text+lettre;
max_caract++;
}
if(lettre==',')
{
drap_virg=true;
}
}
}

//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
max_caract=0;
drap_virg=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Bp_opClick(TObject *Sender)//Déclaration des boutons opé
{
char operation;
if(dynamic_cast<TButton*>(Sender)==Bp_moin)operation='-';
if(dynamic_cast<TButton*>(Sender)==Bp_plus)operation='+';
if(dynamic_cast<TButton*>(Sender)==Bp_multi)operation='x';
if(dynamic_cast<TButton*>(Sender)==Bp_divise)operation='/';
if(dynamic_cast<TButton*>(Sender)==Bp_egale)operation='=';
calcul(operation);
}
//---------------------------------------------------------------------------
void TForm1::calcul(char op)
{
switch(op)
{
case'+':Edit->Text="Plus";break;
case'-':Edit->Text="Moins";break;
case'x':Edit->Text="Multiplier";break;
case'/':Edit->Text="Diviser";break;
}
}
//--------------------------------------------------------------------------
moussaldo93 Messages postés 1 Date d'inscription lundi 12 décembre 2005 Statut Membre Dernière intervention 30 décembre 2005
30 déc. 2005 à 02:19
je confirme ,ya moins d'erreurs...traite l'erreur,pour les deux oprateur....pas mal le programme
cs_badrbadr Messages postés 475 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 3 novembre 2008 1
23 juin 2003 à 19:57
la nouvelle version est arrivé.
moins d'erreurs
cs_badrbadr Messages postés 475 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 3 novembre 2008 1
23 juin 2003 à 19:39
ben il enleve les 2 caractere. [pas vraiment] c est juste des details qu<on peut modifié en quelques secondes dans les fonctions d'intelligence.
Exusez-moi, j'ai pas essayer toute les exceptions
une mise a jour et en preparation
cs_HotSpot Messages postés 51 Date d'inscription vendredi 7 février 2003 Statut Membre Dernière intervention 28 octobre 2004
23 juin 2003 à 13:45
wai effectivement g trouvé la meme erreurs : 4*/9 = 4*9 et 4/*9 = 4/9 ...
Tcho Bon courage
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
23 juin 2003 à 08:15
Heu ...
Pourquoi 5/*9 vaut 5/9
Et 5*/9 vaut 5*9
, on est cense avoir des des erreurs !
cs_badrbadr Messages postés 475 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 3 novembre 2008 1
22 juin 2003 à 23:31
formulength est la longueur maximale de la formule
c est vrai que ca manque de commentaires.
je m'excuse
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
22 juin 2003 à 23:20
13 c'est le code ascii du retoru chariot
cs_Xs Messages postés 368 Date d'inscription mercredi 14 novembre 2001 Statut Membre Dernière intervention 1 septembre 2008
22 juin 2003 à 23:06
euh tu pourrais commenter ta source ??

Non parce que ca m'a l'air extra mais y'a plein de trucs que je piges pas : pkoi formulenght = 80 et pas 90 ? De plus, pkoi tu fais le test
if(Formule[lecteur]==13)

pour faire un break ? et pourquoi 13 ?
Autant de questions auxquelles j'aimerai reponse...

mùerci
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
22 juin 2003 à 21:55
ah arnotic tu confirme ce que je pensais tout bas, j'ai pas osé le dire pour éviter la bourde, mais c'est bien ce qu'il me semblait.
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
22 juin 2003 à 20:53
DevC++ utilise GCC le compilateur Linux... ! ! !

donc ca marche........
cs_badrbadr Messages postés 475 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 3 novembre 2008 1
22 juin 2003 à 20:03
oui, je pense que vc++ et builder ne dispose pas de la meme conio.h
en passant, est-ce que gcc est un compilateur abordable(interressant) sous linux mandrake.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
22 juin 2003 à 19:59
Un bel exemple de portabilité :-)
Faudrait tester avec un compilo Linux.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
22 juin 2003 à 19:58
Je viens de tester avec Borland C++ Builder 6.0 et c'est sans problème, ça compile direct.
Y a juste un avertissement:

[C++ Avertissement] conio.h(181): W8058 Impossible de créer l'en-tête pré-compilé : code dans l'en-tête

L'explication par BCB:
Ce message s'affiche si l'avertissement "Prototypes required" est activé et que vous appelez une fonction sans fournir de prototype au préalable.

Mais c un problème par rapport à conio.h apparemment. la compil' est ok.
cs_badrbadr Messages postés 475 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 3 novembre 2008 1
22 juin 2003 à 19:55
bonne nouvelle, mais je ne pense qu'il fonctionne bien avec B.BuilderC++ sans modification.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
22 juin 2003 à 19:46
la compilation est ok avec DevC++ 4.9.6 ;-)
cs_badrbadr Messages postés 475 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 3 novembre 2008 1
22 juin 2003 à 19:43
je ne peux rien promettre.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 juin 2003 à 19:41
Fais donc sans mfc, ce ne sera que mieux.
cs_badrbadr Messages postés 475 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 3 novembre 2008 1
22 juin 2003 à 19:31
je suis entrain d'etudier MFC [je commence]. c'est une bonne idée de le mettre en mode graphique
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 juin 2003 à 18:25
Si tu nous le mettais en mode graphique pour la prochaine version ?
Rejoignez-nous