Résolu Raccoucir les codes en C

Solutions (8)
Tags :
  • Calculatrice
  • character
  • Programmation
|
Bonjour, je voudrais connaitre comment je pourrais raccourcir le nombre de fichiers .c que j'utilise pour mes codes.

Voici une calculatrice qui permet de faire 2 sortes de calculs.

Nombres a virgule et nombre entiers avec addition,soustraction,division,multiplication qui peut avoir plus de 6 nombres.

Main.c

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "NombreDec.c"
  4. #include "NombreEnt.c"
  5.  
  6. int main()
  7. {
  8. int decient = 0;
  9. printf("Darkpirater's Calculator\n\n");
  10. printf("1. Nombres decimales\n\n");
  11. printf("2. Nombres entier\n\n");
  12. printf("3. Exit\n\n");
  13. scanf("%d", &decient);
  14. switch(decient)
  15. {
  16. case 1:
  17. NombreDec();
  18. break;
  19. case 2:
  20. NombreEnt();
  21. break;
  22. case 3:
  23. return 0;
  24. break;
  25. default:
  26. printf("Invalid Character");
  27. break;
  28. }
  29.  
  30. return 0;
  31. }


Fichier Numero 2

  1. #include "AddEnt.c"
  2. #include "SousEnt.c"
  3. #include "MultiEnt.c"
  4. #include "DiviEnt.c"
  5. void NombreEnt()
  6. {
  7. int Choix = 0;
  8. printf("\nVous avez choisi les nombres entiers\n\n");
  9. printf("\nVeuillez choisir une option.\n\n");
  10. printf("1. Addition\n");
  11. printf("2. Soustraction\n");
  12. printf("3. Multiplication\n");
  13. printf("4. Division\n");
  14. scanf("%d", &Choix);
  15. switch(Choix)
  16. {
  17. case 1:
  18. AddEnt();
  19. break;
  20. case 2:
  21. SousEnt();
  22. break;
  23. case 3:
  24. MultiEnt();
  25. break;
  26. case 4:
  27. DiviEnt();
  28. break;
  29. default:
  30. printf("Invalid Option");
  31. break;
  32. }
  33. }


Fichier numero 3

  1. #include "2AddEntNomb.c"
  2. #include "3AddEntNomb.c"
  3. #include "4AddEntNomb.c"
  4. #include "5AddEntNomb.c"
  5. #include "6AddEntNomb.c"
  6. void AddEnt()
  7. {
  8. int Nombre = 0;
  9. printf("Combien de nombres entiers as-tu dans ton operation?2x2x2x2x2x2(6nombres)\n\n");
  10. printf("2,3,4,5,6\n\n");
  11. scanf("%d", &Nombre);
  12. switch(Nombre)
  13. {
  14. case 2:
  15. 2AddEntNomb()
  16. break;
  17. case 3:
  18. 3AddEntNomb()
  19. break;
  20. case 4:
  21. 4AddEntNomb()
  22. break;
  23. case 5:
  24. 5AddEntNomb()
  25. break;
  26. case 6:
  27. 6AddEntNomb()
  28. break;
  29. default:
  30. printf("Invalid Option");
  31. break;
  32. }
  33. }


Il y a 60 fichiers .c remplis de codes qui ne sont pas terminer comme fichier 2 et 3.

Je pense que 60 fichiers pour faire une calculatrice c'est beaucoup car j'ai déjà vu un jeu complet très simple avec seulement 6 fichiers .c et 4 headers.

Merci de votre aide.
Contenus similaires
Meilleure solution
partage
, Modérateur |
Si tu considères que t'arrives mieux à trouver une erreur en ouvrant 1000 fichiers qu'en regardant plusieurs longs fichiers... Chacun son point de vue :) 

Un algorithme c'est le mode de fonctionnement de ton programme, ce à quoi tu as pensé quand tu as codé ton programme pour répondre à ta problématique.

Fais voir le code de tes 5 fonctions pour faire 2, 3, 4, 5 ou 6 calculs, il doit certainement y avoir un code commun que tu peux réutiliser, qui te permettra de n'avoir qu'une seule fonction.
  • Commenter cette solution |
Score
0
òh
òi
|
Meilleure réponse sélectionnée par darkpirater.
  • Commenter cette réponse |
Score
0
òh
òi
|
Oui je sais, le C est surement la chose qui me fais le plus enrager dans une journée.

Des fois ce que je fais marche des fois çà marche pas.

Comme mon if(choix==y) qui n'a jamais marcher j'ai essayer if(choix==1) en donnant la valeur 1 a y rien ne marche mais si je remplace le y par un 1 tout marche -.- .

Le pire c'est que j'ai réussi a faire marcher mon "y" il y a 2 semaines mais, je me rappelle plus comment.
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Enfin, du coup, tu ne fais même pas une calculette là...
(d'ailleurs, il me semble que c'est bizarre que ça fonctionne).

Ton programme ne fait rien là.
  • Commenter cette réponse |
Score
0
òh
òi
|
En jouant un peu avec mon programme, j'ai essayé d'écrire 2 + 2 pour voir si l'ordinateur comprenait.

Il a comprit donc j'ai pas besoin de faire les fonctions suivantes :

int variable00,variable01, resultat;

printf("Entrez le premier nombre");
scanf("%d", &variable00);
printf("Entrez le deuxieme nombre");
scanf("%d", &variable01);
resultat = variable00 + variable01;
printf("Réponse = %d", resultat);


J'ai simplement a écrire :

int main()
{
int amount;
printf("Combien de nombres avez-vous dans votre operation?(293+454*400 = 3nombres)\n");
scanf("%d", &amount);
if(amount>=10)
{
printf("Le maximum de nombres que vous pouvez avoir est 10.\n");
system("PAUSE");
main();
}
else if(amount==1)
{
int valeur0, choix, y;
printf("Entrez votre operation\n");
scanf("%d", &valeur0);
printf("Resultat : %d\n", valeur0);
printf("Voulez-vous faire une autre operation?Y/N\n");
scanf("%d", &choix);
if(choix==y)
{
main();
}
else
{
return 0;
}
}
}


J'ai simplement a écrire la même chose pour les 9 autres variables.

Donc, je viens de sauver au moins 600 lignes de codes avec ça.

Merci quand même.
  • Commenter cette réponse |
Score
0
òh
òi
|
N'oublie pas que tu peux passer des arguments à tes fonctions...
  • Commenter cette réponse |
Score
0
òh
òi
|
La raison pourquoi je fais 1000 fichiers c'est que avec simplement 100 lignes de code si je fais 1 erreure je vais jamais la retrouver.

Et pour l'algorithme, je ne sais meme pas ce que c'est donc, je crois que je vais acheter un livre sur le C car, siteduzero est bon pour commencer mais ensuite...
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Salut,

Tu n'es pas obligé de faire 1 fichier = 1 fonction déjà, mais plutôt regrouper les fonctions similaires dans un même fichier.
Ensuite, faire plusieurs fichiers pour entrer 2, 3, 4, 5 ou 6 nombres, c'est que t'as un mauvais algorithme, tu devrais même pas avoir de question pour savoir le nombre d'entiers dans l'opération
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS