+++ /dev/null
-#include <stdio.h>
-#include <stdbool.h>
-
-//FIXME: Comment the code !!!
-
-void displayMenuEntry(int num, const char* option) {
- printf("%d - %s\n", num, option);
-}
-
-void displayMenu() {
- displayMenuEntry(1, "Addition");
- displayMenuEntry(2, "Soustraction");
- displayMenuEntry(3, "Multiplication");
- displayMenuEntry(4, "Division");
- displayMenuEntry(5, "Puissance");
- displayMenuEntry(6, "Quitter");
-}
-
-int promptValue(const char* invite) {
- int value = 0;
- puts(invite);
- scanf("%d", &value);
- return value;
-}
-
-int promptOperation() {
- displayMenu();
- return promptValue("Veuillez choisir une operation ?");
-}
-
-int doAddition(int val1, int val2) {
- return val1 + val2;
-}
-
-int doSubstraction(int val1, int val2) {
- return val1 - val2;
-}
-
-int doMultiplication(int val1, int val2) {
- return val1 * val2;
-}
-
-int doDivision(int val1, int val2) {
- //FIXME: Useless code path given the exit main loop condition
- if (val2 == 0) {
- printf("Division par zero !\n");
- // FIXME: I'm not very fond of this convention ...
- return 0;
- } else {
- return val1 / val2;
- }
-}
-
-int doPuissance(int base, int expo) {
- int power;
- if ( expo == 1) {
- power = base;
- } else if ( expo % 2 == 0 ) {
- power = doPuissance(base*base, expo/2);
- } else {
- power = base*doPuissance(base*base,(expo-1)/2);
- }
- return power;
-}
-
-int doOperation(int selection, int val1, int val2) {
- int op_result;
- switch (selection) {
- case 1:
- op_result = doAddition(val1, val2);
- break;
- case 2:
- op_result = doSubstraction(val1, val2);
- break;
- case 3:
- op_result = doMultiplication(val1, val2);
- break;
- case 4:
- op_result = doDivision(val1, val2);
- break;
- case 5:
- op_result = doPuissance(val1, val2);
- break;
- case 6:
- break;
- default:
- puts("Faire un choix compris entre 1 et 6");
- }
- return op_result;
-}
-
-int main() {
- int choice = promptOperation();
- int value1 = promptValue("Veuillez saisir une valeur entiere initiale ?");
- int value2 = 0, result = 0;
- bool first_loop = true;
-
- for (;;) {
- if (choice == 6) break;
- if (first_loop) {
- value2 = promptValue("Veuillez saisir une valeur entiere avec laquelle l'operation sera effectue ?");
- if (value2 == 0) break;
- result = doOperation(choice, value1, value2);
- first_loop = false;
- } else {
- value2 = promptValue("Veuillez saisir la prochaine valeur entiere avec laquelle l'operation sera effectue sur l'ancien resultat ?");
- if (value2 == 0) break;
- result = doOperation(choice, result, value2);
- }
- printf("Le resultat de l'operation choisie est %d\n\n", result);
- }
-
- return 0;
-}