Создание простейшего калькулятора с базовым функционалом - C (СИ)
Формулировка задачи:
По заданию преподавателя в универе начали писать программку калькулятора с парой действий. В ходе попытки сдать ей сию работу возникли некоторые проблемы. Калькулятор должен: складывать, вычитать, умножать, делить, возводить в квадрат и высчитывать квадратный корень.
НО
также он должен предлагать нам выбор точности числа, которое выйдет в итоге. Препод желает сама выбирать сколько знаков после запятой хочет видеть. А также после выполнения действия программа не должна закрываться, а предлагать продолжить. Я - первокурсница, программирования еще толком и не было, так что трудностей много. И да, препод ничего не говорит, помогает только тем, кто на стороне Паскаля. Кто-то может помочь с этим?#include <stdio.h> #include <stdlib.h> #include <math.h> void main() { int n; printf("1 - summa\n2 - proizvedenie\n3 - raznost\n4 - delenie\n5 - kvadratny koren\n6 - vozvedenie v stepen 2\n"); printf("vyberite neobhodimoe deystvie\n"); scanf("%d",&n); switch(n) { case 1: { float a,b,S; printf("vvedite chisla a, b\n"); scanf("%f%f",&a,&b); S = a+b; printf("%.2f",S); break; } case 2: { float a,b,P; printf("vvedite chisla a, b\n"); scanf("%f%f",&a,&b); P = a*b; printf("%.2f",P); break; } case 3: { float a,b,R; printf("vvedite chislo ymenshaemoe\n"); scanf("%f",&a); printf("vvedite chislo vuchitaemoe\n"); scanf("%f",&b); R = a-b; printf("%.2f",R); break; } case 4: { float a,b,D; printf("vvedite delimoe a\n"); scanf("%f",&a); printf("vvedite delitel b\n"); scanf("%f",&b); if (b!=0) D = a/b; else printf("nekorrektnoe chislo\n"); printf("%.2f",D); break; } case 5: { float a,Q; printf("vvedite chislo a\n"); scanf("%f",&a); if (a>0) Q = pow(a,0.5); else printf("nekorrektnoe chislo\n"); printf("%.2f",Q); break; } case 6: { float a,St; printf("vvedite chislo a\n"); scanf("%f",&a); St = pow(a,2); printf("%.2f",St); break; } } getch(); }
Решение задачи: «Создание простейшего калькулятора с базовым функционалом»
textual
Листинг программы
#include <stdio.h> #include <math.h> int main() { while(1) { float arg1, arg2; int precision = 2; /* точность */ int choice = 0; printf("1 - sum\n2 - mul\n3 - sub\n4 - div\n" "5 - sqrt\n6 - pow2\n0 - exit"); printf("vyberite neobhodimoe deystvie\n"); scanf("%d", &choice); if(choice == 0) break; printf("Choose precision: "); scanf("%d", &precision); switch(choice) { case 1: printf("vvedite chisla\n"); scanf("%f%f", &arg1, &arg2); printf("%.*f\n", precision, arg1 + arg2); break; case 2: printf("vvedite chisla\n"); scanf("%f%f", &arg1, &arg2); printf("%.*f\n", precision, arg1 * arg2); break; case 3: printf("vvedite chislo ymenshaemoe\n"); scanf("%f", &arg1); printf("vvedite chislo vuchitaemoe\n"); scanf("%f", &arg2); printf("%.*f\n", precision, arg1 - arg2); break; case 4: printf("vvedite delimoe a\n"); scanf("%f", &arg1); printf("vvedite delitel b\n"); scanf("%f", &arg2); if(arg2 == 0) { printf("nekorrektnoe chislo\n"); break; } printf("%.*f\n", precision, arg1 / arg2); break; case 5: printf("vvedite chislo a\n"); scanf("%f", &arg1); if(arg1 < 0) { printf("nekorrektnoe chislo\n"); break; } printf("%.*f\n", precision, sqrt(arg1)); break; case 6: printf("vvedite chislo a\n"); scanf("%f", &arg1); printf("%.*f\n", precision, pow(arg1, 2.0)); break; } } }
Объяснение кода листинга программы
- Ввод чисел с клавиатуры
- Вывод результатов вычислений с заданной точностью
- Использование операторов switch для выбора операции в зависимости от введенного пользователем числа
- Использование функций scanf и printf для взаимодействия с пользователем
- Проверка корректности введенных пользователем чисел (например, деление на ноль)
- Использование математических функций (sqrt, pow) для выполнения операций
- Возможность выбора точности вычислений
- Возможность выхода из программы с помощью команды
0
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д