From 8dc104ed91a69285df4016eff806e227dac099c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=BE=D0=BB=D0=B8=D0=BD=D0=B0=20=D0=A5=D1=80=D0=BE?= =?UTF-8?q?=D0=BC=D0=BE=D0=B2=D0=B0?= Date: Thu, 25 May 2023 13:48:56 +0000 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B8=D1=82=D1=8C=20'c?= =?UTF-8?q?alc.c'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- calc.c | 188 --------------------------------------------------------- 1 file changed, 188 deletions(-) delete mode 100644 calc.c diff --git a/calc.c b/calc.c deleted file mode 100644 index 2620da6..0000000 --- a/calc.c +++ /dev/null @@ -1,188 +0,0 @@ -#include - -#include - -enum calculator_state { - NUMBER_FIRST, - NUMBER_SECOND, - RESULT -}; - -enum calculator_op { - NO_OP, - ADD, - SUB, - DIV, - MUL -}; -struct calculator { - // 1 число - int num1; - // 2 число - int num2; - // 3 операция - enum calculator_op operation; - // 4 результат - int result; - // 5 состояние атомата - enum calculator_state state; -}; - -int main() { - struct calculator calc; - calc.state = NUMBER_FIRST; - calc.operation = NO_OP; - calc.num1 = 0; - calc.num2 = 0; - calc.result = 0; - - int input; - while (1) { - scanf("%d", & input); - switch (calc.state) { - case NUMBER_FIRST: - switch (input) { - case 0: - calc.num1 = (calc.num1 * 10) + 7; - break; - case 1: - calc.num1 = (calc.num1 * 10) + 8; - break; - case 2: - calc.num1 = (calc.num1 * 10) + 9; - break; - case 3: - calc.operation = DIV; - calc.state = NUMBER_SECOND; - break; - case 4: - calc.num1 = (calc.num1 * 10) + 4; - break; - case 5: - calc.num1 = (calc.num1 * 10) + 5; - break; - case 6: - calc.num1 = (calc.num1 * 10) + 6; - break; - case 7: - calc.operation = MUL; - calc.state = NUMBER_SECOND; - break; - case 8: - calc.num1 = (calc.num1 * 10) + 1; - break; - case 9: - calc.num1 = (calc.num1 * 10) + 2; - case 10: - calc.num1 = (calc.num1 * 10) + 3; - break; - case 11: - calc.operation = SUB; - calc.state = NUMBER_SECOND; - break; - case 12: - calc.num1 = 0; - break; - case 13: - calc.state = NUMBER_FIRST; - calc.operation = NO_OP; - calc.num1 = 0; - calc.num2 = 0; - calc.result = 0; - break; - case 14: - break; - case 15: - calc.operation = ADD; - calc.state = NUMBER_SECOND; - break; - } - break; - printf("%d %d %d %d %d", calc.num1, calc.num2, calc.result, calc.operation, calc.state); - - case NUMBER_SECOND: - switch (input) { - case 0: - calc.num2 = (calc.num2 * 10) + 7; - break; - case 1: - calc.num2 = (calc.num2 * 10) + 8; - break; - case 2: - calc.num2 = (calc.num2 * 10) + 9; - break; - case 3: - - break; - case 4: - calc.num2 = (calc.num2 * 10) + 4; - break; - case 5: - calc.num2 = (calc.num2 * 10) + 5; - break; - case 6: - calc.num2 = (calc.num2 * 10) + 6; - break; - case 7: - break; - case 8: - calc.num2 = (calc.num2 * 10) + 1; - break; - case 9: - calc.num2 = (calc.num2 * 10) + 2; - case 10: - calc.num2 = (calc.num2 * 10) + 3; - break; - case 11: - break; - case 12: - calc.num2 = 0; - break; - case 13: - calc.state = NUMBER_FIRST; - calc.operation = NO_OP; - calc.num1 = 0; - calc.num2 = 0; - calc.result = 0; - break; - case 14: - switch (calc.operation) { - case ADD: - calc.result = calc.num1 + calc.num2; - calc.state = RESULT; - break; - case SUB: - calc.result = calc.num1 - calc.num2; - break; - case MUL: - calc.result = calc.num1 * calc.num2; - break; - case DIV: - calc.result = calc.num1 / calc.num2; - break; - return calc.result; - } - break; - break; - case 15: - break; - } - printf("%d %d %d %d %d", calc.num1, calc.num2, calc.result, calc.operation, calc.state); - break; - - case RESULT: - switch (input) { - case 14: - calc.state = NUMBER_FIRST; - calc.operation = NO_OP; - calc.num1 = 0; - calc.num2 = 0; - calc.result = 0; - break; - } - break; - printf("%d %d %d %d %d", calc.num1, calc.num2, calc.result, calc.operation, calc.state); - } - } - return 0; -}