#include <stdio.h>
#include <stdlib.h>
#include "extra.h"
#include <locale.h>
int main() {
setlocale(LC_CTYPE, "ukr");
char reset = 'n';
int choice;
double a, b, result;
do {
printf("=== КАЛЬКУЛЯТОР ===\n");
printf("Оберiть операцiю:\n");
printf("1. Додавання (a + b)\n");
printf("2. Вiднiмання (a - b)\n");
printf("3. Множення (a * b)\n");
printf("4. Дiлення (a / b)\n");
printf("5. Косинус(x) [градуси]\n");
printf("6. Кубiчний корiнь(x)\n");
printf("7. Операцiя 1/x\n");
printf("8. Вихiд\n");
printf("Ваш вибiр: ");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("Введiть два числа (a b): ");
scanf("%lf %lf", &a, &b);
result = a + b;
printf("Результат: %.6lf\n", result);
break;
case 2:
printf("Введiть два числа (a b): ");
scanf("%lf %lf", &a, &b);
result = a - b;
printf("Результат: %.6lf\n", result);
break;
case 3:
printf("Введiть два числа (a b): ");
scanf("%lf %lf", &a, &b);
result = a * b;
printf("Результат: %.6lf\n", result);
break;
case 4:
printf("Введiть два числа (a b): ");
scanf("%lf %lf", &a, &b);
if (b == 0) {
printf("Помилка: дiлення на нуль!\n");
}
else {
result = a / b;
printf("Результат: %.6lf\n", result);
}
break;
case 5:
printf("Введiть x (в градусах): ");
scanf("%lf", &a);
result = cosine_deg(a);
printf("cos(%.2lf°) = %.6lf\n", a, result);
break;
case 6:
printf("Введiть x: ");
scanf("%lf", &a);
result = cube_root(a);
printf("Кубiчний корiнь з %.2lf = %.6lf\n", a, result);
break;
case 7:
printf("Введiть x: ");
scanf("%lf", &a);
result = reciprocal(a);
printf("1 / %.6lf = %.6lf\n", a, result);
break;
case 8:
printf("Вихiд з програми.\n");
return 0;
default:
printf("Невiрний вибiр. Спробуйте ще раз.\n");
continue;
}
printf("Хочете почати знову? (y/n): ");
scanf(" %c", &reset, 1);
while ((getchar()) != '\n');
} while (reset == 'y'); {}
printf("Програму завершено.\n");
return 0;
}
#ifndef EXTRA_H
#define EXTRA_H
//Обчислення косинуса кута х
double cosine_deg(double x);
//Обчислення кубічного кореня
double cube_root(double x);
//Обчислення 1/х
double reciprocal(double x);
#endif
#include <stdio.h>
#define _USE_MATH_DEFINES
#include <math.h>
#include "extra.h"
double cosine_deg(double x) {
if (x < 0) {
printf("Помилка: градуси не можуть бути вiд'ємними!\n");
return 0;
}else
return cos(x * M_PI / 180.0); // градуси в радіани
}
double cube_root(double x) {
return cbrt(x);
}
double reciprocal(double x) {
if (x == 0) {
printf("Помилка: ділення на нуль!\n");
return 0;
}
return 1.0 / x;
}