Bonjour, j'ai besoin d'aide pour réaliser une calculette en C. Je suis un tout jeune programmeur et le début est toujours difficile aidez moi svp.
Je dois faire la réalisation d'une calculette de 5 opérations ( addition, soustraction, multiplication, division et reste) opérant sur des données décimales stockées sous forme de chaînes de caractères (50 maximum ).
Chaque opération est réalisée par une fonction spécifique qui peut elle-même utiliser des sous-fonctions. Ces fonctions seront nommées ADD,SOUS,DIV,MUL, MOD ( modulo code % en C).
La fonction ADD sera réalisée en Assembleur et le reste en C.
Chaque zone de données est une structure DONN_DECI composée de :
- Un long NBR_OCT donnant le nombre utile d'octets de la donnée
- Un tableau de char DONN contenant la donnée en caractères décimaux.
Les arguments sont déclarés de la façon suivante dans les fonctions :
ADD(struct DONN_DECI*NBRE_1,struct DONN_DECI*NBR_2)
Le résultat est un pointeur sur une structure DONN_DECI.
Le résultat ne doit pas être une variable locale.
La fonction main doit accepter une option -c pour positionner un booléen commandant des impressions de contrôle nécessaires pour la mise au point.
Cette fonction effectue une boucle enchaînant les opérations suivantes :
Lecture du premier opérande
Lecture du code de l'opération (+ * - / %)
Lecture du deuxième opérande
Vérification des caractères de chaque opérande et du code opération
Si vérification correcte exécution et affichage du résultat
La boucle s'arrete pas Ctrl-D ou détection de la lettre q en 1ère position d'un opérande.
Il faut gérer le nombre de chiffres du résultat
Il est utile ppour faciliter les opérations ADD et SOUS d'avoir des zones de même longueur en ajoutant des "0" à gauche du plus petit (123+5 devient 123 +005)
Pour la multiplication il faut prévoir une multiplication à 1 chiffre et une addition décalée selon l'exemple (123*45=(123*4)*10+123*5
La multiplication par 10 est obtenue pas un décalage à gauche du nombre et mise d'un "0" à la fin.
La division et le modulo sont obtenus en même temps ; seul le résultat retourné change.
La division s'effectue par la suite de soustractions décalées et de comparaisons.
Merci de bien vouloir m'aider à faire ce sujet.
Si cela ne vous dérange pas me donner le programme avec des explications serait tres aimable de votre part.
Merci d'avance.
Je vous presente ici mon adresse e-mail si vous voulez bien m'envoyer le programme :
pingouf@hotmail.com