begin process at 2012 05 29 19:06:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Maths & Algorithmes

 > 

pbs avec une calculatrice


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pbs avec une calculatrice

jeudi 17 octobre 2002 à 11:26:59 | pbs avec une calculatrice

Nonobis

slt tous !
Le premier qui m'aidea sera le bienvenu ...

(1er post ici ...)

Voial, le prob est dans le code d'une calculatrice en c que je susi en train de faire ... c'est une calculatrice de base qui prend les arguments en ligne de commande (la fonction atoi est uen refairte maison - ordre du prof oblige ...).

Le compilateur vc++ 6.0 m'annonce trouver aucune erreur dans le code, pourtant quand j'execute le prog dans une fenetre ms-dos (syntax : calculatrice 2 + 5 ), m'annonce que le prog a rencontré une erreur grave et donc il plante

si quelqu'un pouvait m'aider à résoudre ce probleme ... merci d'avance !

voici le code complet pour le moment :

// programme de calculatrice en mode ligne de commande
#include <stdio.h>
#include <stdlib.h>

// Déclaration des prototypes

int plus(int signed op1,int signed op2);
int moins(int signed op1,int signed op2);
int multi(int signed op1,int signed op2);
int divi(int signed op1,int signed op2);
int carre(int signed op1);
int expo(int signed op1,int signed op2);
int signed atoi2(char s[]);

int main(int argc,char *argv[])
{
// Déclaration des variables
int signed op1,op2;
int res;

// Transforme les arguments caracteres en chiffres
op1=atoi2(argv[2]);
op2=atoi2(argv[4]);

// Appelle de la fonction
if (argv[3]="+")
{
// fonction plus
res=plus(op1,op2);
}
if (argv[3]="-")
{
// Fonction moins
res=moins(op1,op2);
}
if (argv[3]="*")
{
// Fonction multiplication
res=multi(op1,op2);
}
if (argv[3]="/")
{
// Fonction Division
res=divi(op1,op2);
}
if ((argv[3]="c") || (argv[3]="C"))
{
// Fonction op1²
res=carre(op1);
}
if ((argv[3]="e") || (argv[3]="E"))
{
// Fonction exposant
res=expo(op1,op2);
}

// affiche le resultat
printf("Resultat = %u \n",res);

// marque une pause systeme
system("PAUSE");
return 0;
}


int signed atoi2(char *s)
{
// convertit une chaine de caractere
// en un entier
int signed n=0;

while ((*s>='0') && (*s<='9'))
{
n = 10*n + (*s-'0');
s++;
}
return n;
}

int plus(int signed op1,int signed op2)
{
// fait une addition des 2 paramaetres
return op1+op2;
}

int moins(int signed op1,int signed op2)
{
// fait une soustraction des 2 paramaetres
return op1-op2;
}

int multi(int signed op1,int signed op2)
{
// fait une multiplication des 2 paramaetres
return op1*op2;
}

int divi(int signed op1,int signed op2)
{
// fait une division des 2 paramaetres
return op1/op2;
}

int carre(int signed op1)
{
// calcule le carre d'op1
return (op1*op1);
}
int expo(int signed op1,int signed op2)
{
// calcul op1^op2
int n=0,res=1;
// calcul
while (op2>=1)
{
res=res=res+op1*op1;
op2--;
}
// retourne la valeur
return res;
}

à bientot et merci pour la reponse

Nonobis
jeudi 17 octobre 2002 à 12:09:02 | Re : pbs avec une calculatrice

jcecchi

Salut,

Avant toute chose, il faut verifier le nombre d'arguments passés par la ligne de commande.

if(argc != 4)
{
//Affichage erreur et mode d'emploi
}

Ensuite tu te trompres pour les indices de argv.
Par exemple calculatrice 2 + 5 :
argv[0] : chemin de l'application.
argv[1] : 2.
argv[2] : +.
argv[3] : 5.

Un autre truc, dans tes if, la syntaxe n'est pas x=y mais x==y.

Voila pour un debut.

-------------------------------
Réponse au message :
-------------------------------

slt tous !
Le premier qui m'aidea sera le bienvenu ...

(1er post ici ...)

Voial, le prob est dans le code d'une calculatrice en c que je susi en train de faire ... c'est une calculatrice de base qui prend les arguments en ligne de commande (la fonction atoi est uen refairte maison - ordre du prof oblige ...).

Le compilateur vc++ 6.0 m'annonce trouver aucune erreur dans le code, pourtant quand j'execute le prog dans une fenetre ms-dos (syntax : calculatrice 2 + 5 ), m'annonce que le prog a rencontré une erreur grave et donc il plante

si quelqu'un pouvait m'aider à résoudre ce probleme ... merci d'avance !

voici le code complet pour le moment :

// programme de calculatrice en mode ligne de commande
#include <stdio.h>
#include <stdlib.h>

// Déclaration des prototypes

int plus(int signed op1,int signed op2);
int moins(int signed op1,int signed op2);
int multi(int signed op1,int signed op2);
int divi(int signed op1,int signed op2);
int carre(int signed op1);
int expo(int signed op1,int signed op2);
int signed atoi2(char s[]);

int main(int argc,char *argv[])
{
// Déclaration des variables
int signed op1,op2;
int res;

// Transforme les arguments caracteres en chiffres
op1=atoi2(argv[2]);
op2=atoi2(argv[4]);

// Appelle de la fonction
if (argv[3]="+")
{
// fonction plus
res=plus(op1,op2);
}
if (argv[3]="-")
{
// Fonction moins
res=moins(op1,op2);
}
if (argv[3]="*")
{
// Fonction multiplication
res=multi(op1,op2);
}
if (argv[3]="/")
{
// Fonction Division
res=divi(op1,op2);
}
if ((argv[3]="c") || (argv[3]="C"))
{
// Fonction op1²
res=carre(op1);
}
if ((argv[3]="e") || (argv[3]="E"))
{
// Fonction exposant
res=expo(op1,op2);
}

// affiche le resultat
printf("Resultat = %u \n",res);

// marque une pause systeme
system("PAUSE");
return 0;
}


int signed atoi2(char *s)
{
// convertit une chaine de caractere
// en un entier
int signed n=0;

while ((*s>='0') && (*s<='9'))
{
n = 10*n + (*s-'0');
s++;
}
return n;
}

int plus(int signed op1,int signed op2)
{
// fait une addition des 2 paramaetres
return op1+op2;
}

int moins(int signed op1,int signed op2)
{
// fait une soustraction des 2 paramaetres
return op1-op2;
}

int multi(int signed op1,int signed op2)
{
// fait une multiplication des 2 paramaetres
return op1*op2;
}

int divi(int signed op1,int signed op2)
{
// fait une division des 2 paramaetres
return op1/op2;
}

int carre(int signed op1)
{
// calcule le carre d'op1
return (op1*op1);
}
int expo(int signed op1,int signed op2)
{
// calcul op1^op2
int n=0,res=1;
// calcul
while (op2>=1)
{
res=res=res+op1*op1;
op2--;
}
// retourne la valeur
return res;
}

à bientot et merci pour la reponse

Nonobis
jeudi 17 octobre 2002 à 12:40:07 | merci !

Nonobis

Merci jcecchi

grace à toi je peut debugger le programe s'execute maintenant ...

j'ai envie de me tirer des baffes vu mes erreurs (== ....)

sur ce

ciao
Nonobis


Cette discussion est classée dans : int, res, op1, signed, op2


Répondre à ce message

Sujets en rapport avec ce message

steganographie C [ par trypon ] Bonjour je programme sous ggcc (LINUX) et j'ai un petit pb avec mon programme j'arrive a mettre un texte dans l'image mais pas à faire le contrairela Format de données [ par leskritiques ] Voici le programme que je veux modofier :#include "chaine.h"#include "entreeSortie.h"#include "chaine.cpp"#include "entreeSortie.cpp"int pgcd (const i Modification d'un crytage d'hostname sur unrealircd3.2.7 [ par Loveurs ] Bonsoir,J'aimerai savoir si quelqu'un serrai comment modifier le crytage d'host de unreal de façon à faire crytage.wanadoo.fr pour les ip résolues, es Erreur de définition de pointeurs [ par HellYodan ] Bonjour,j'ai codé ce code mais à chaque fois que je compile il me met qu'il y a une erreur de définition de pointeurs. Mais je ne vois pas comment rég Probleme de passage d'argument [ par dr971 ] Bonjour , j'ai un petit prob (plutot un gros)En fait j'ai une class A et une class BclassA{   public :        void setResistance(int);         //mutat Erreurs algo [ par Coincoinisback ] Bonjour, j'ai un petit problème avec un algorithme, je dois trouver les erreurs pour les corriger mais après plusieurs reprises mon algorithme ne marc Problème avec memcpy et int [ par mickmick57 ] Bonjour, Je m'adresse à vous, car j'ai un problème avec la fonction memcpy et les entiers sur unix. On retrouve un bon nombre de foi le détail de la Quel intérêt d'utiliser (un)signed short int en C++ ? [ par Pilotwings ] Bonjour, je voulais savoir à quoi consiste d'utiliser unsigned short int ( entier court non signé) et signed short int (entier court signé) ? Par exem programme en c++ dannant une erreur declaration terminated incorrectly [ par desco182 ] VEUILLEZ M'AIDER SVP!!!!!!!!!!#include#include//prototypesint sominterval(int x ,int y);<br Problème : Liste en Memoire partagée [ par 6miK ] Bonjour à tous et joyeux noel Voici mon probleme: j'ai une liste chainée qui servira à contenir des entiers qui seront le nom des fichiers à imprimer


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales