Partage
  • Partager sur Facebook
  • Partager sur Twitter

TP calculatrice du cours

Votre avis m'intéresse

Anonyme
    23 janvier 2007 à 15:29:42

    Bonjour à tous,

    Je viens de faire le "devoir" proposé à la fin du chapitre sur les conditions qui propose de créer une calculatrice permettant les additions, soustractions, multiplications, divisions et racines carées :-°
    J'ai donc fait ce "devoir" et j'ai fini par écrire deux programme un petit peu différents, mais qui fonctionnent tous les deux très bien ^^
    J'aimerais avoir votre avis. Personnellement, je pense que le deuxième est plus judicieux, car je n'ai pas eu à réécrire sans arrêt les mêmes instructions dans le switch. Mais bon, j'attends vos avis aiguisés. Et s'il y a des trucs qui clochent, n'hésitez pas ;)

    Merci :D

    Le premier code (celui que je pense le moins abouti)

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>

    int main(int argc, char*argv[])
    {
        long operation = 0;
        double resultat = 0, nombre = 0, nombre1 = 0, nombre2 = 0;

        printf("=== Operations ===\n\n");
        printf("1.Addition\n");
        printf("2.Soustraction\n");
        printf("3.Multiplication\n");
        printf("4.Division\n");
        printf("5.Racine carree\n\n");

        printf("Choisissez votre operation : ");
        scanf("%ld", &operation);

        switch(operation)
        {
            case 1:
            printf("\nNombre 1 : ");
            scanf("%lf", &nombre1);
            printf("\nNombre 2 : ");
            scanf("%lf", &nombre2);
            resultat = nombre1 + nombre2;
            printf("\nResultat : %lf\n\n", resultat);
            break;

            case 2:
            printf("\nNombre 1 : ");
            scanf("%lf", &nombre1);
            printf("\nNombre 2 : ");
            scanf("%lf", &nombre2);
            resultat = nombre1 - nombre2;
            printf("\nResultat : %lf\n\n", resultat);
            break;

            case 3:
            printf("\nNombre 1 : ");
            scanf("%lf", &nombre1);
            printf("\nNombre 2 : ");
            scanf("%lf", &nombre2);
            resultat = nombre1 * nombre2;
            printf("\nResultat : %lf\n\n", resultat);
            break;

            case 4:
            printf("\nNombre 1 : ");
            scanf("%lf", &nombre1);
            printf("\nNombre 2 : ");
            scanf("%lf", &nombre2);
            resultat = nombre1 / nombre2;
            printf("\nResultat : %lf\n\n", resultat);
            break;

            case 5:
            printf("\nNombre : ");
            scanf("%lf", &nombre);
            resultat = sqrt(nombre);
            printf("\nResultat : %lf\n\n", resultat);
            break;

            default:
            printf("\nPas d'operation disponible.\n\n");
            break;
        }

        system("pause");
            return 0;
    }


    Et le deuxième (que je préfère car moins répétitif)

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>

    int main(int argc, char*argv[])
    {
        long operation = 0;
        double resultat = 0, nombre = 0, nombre1 = 0, nombre2 = 0;

        printf("=== Operations ===\n\n");
        printf("1.Addition\n");
        printf("2.Soustraction\n");
        printf("3.Multiplication\n");
        printf("4.Division\n");
        printf("5.Racine carree\n\n");

        printf("Choisissez votre operation : ");
        scanf("%ld", &operation);

        if(operation >= 1 && operation < 5)//ou bien la condition suivante(operation == 1 || operation == 2 || operation == 3 || operation == 4)
        {
            printf("\nNombre 1 : ");
            scanf("%lf", &nombre1);

            printf("\nNombre 2 : ");
            scanf("%lf", &nombre2);
        }
        else if(operation == 5)
        {
            printf("\nNombre : ");
            scanf("%lf", &nombre);
        }

        switch(operation)
        {
            case 1:
            resultat = nombre1 + nombre2;
            printf("\nResultat : %lf\n\n", resultat);
            break;

            case 2:
            resultat = nombre1 - nombre2;
            printf("\nResultat : %lf\n\n", resultat);
            break;

            case 3:
            resultat = nombre1 * nombre2;
            printf("\nResultat : %lf\n\n", resultat);
            break;

            case 4:
            resultat = nombre1 / nombre2;
            printf("\nResultat : %lf\n\n", resultat);
            break;

            case 5:
            resultat = sqrt(nombre);
            printf("\nResultat : %lf\n\n", resultat);
            break;

            default:
            printf("\nPas d'operation disponible.\n\n");
            break;
        }

        system("pause");
            return 0;
    }
    • Partager sur Facebook
    • Partager sur Twitter
      23 janvier 2007 à 15:59:28

      Tes deux petits programmes sont excellents :)
      (mais le second est, il est vrai, un peu plus propre.)

      Maintenant, tu pourrais utiliser le modulo % pour que le résultat de la division soit exact. Tu pourrais aussi proposer à l'utilisateur d'éffectuer un autre calcul....

      Rien à dire de plus :p
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        23 janvier 2007 à 19:11:12

        Oui, mais le résultat de la division est exact, puisqu'il est en nombre décimal.
        Il faut aussi utiliser le modulo?
        • Partager sur Facebook
        • Partager sur Twitter

        TP calculatrice du cours

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown