Lab_2_2, 515i, Darchuk Hlib Serhiyovic
/*
* @file Lab_2_2.cpp
* @author Дарчук Г.С., 515i
* @date 14.03.2025
* @brief Лабораторна робота №2, варіант 22
*
* Модульне тестування. Завдання 2
*/
// Підключення стандартних бібліотек
#include <stdio.h>
#include <locale.h>
#include <string.h>
// Підключення заголовочного файлу з реалізацією функцій
#include "calculatorFunctions.h"
int main(void)
{
// Оголошення змінних для обчислень
double a = 0; // Перше число (або результат попереднього обчислення)
char type[6]; // Тип операції (максимум 6 символів)
double b = 0; // Друге число
while (1)
{
// Запит першого числа
printf("Введіть перше число: ");
scanf("%lf", &a);
while (1)
{
// Виведення поточного значення `a`
printf("Перше/отримане число: %lf\n", a);
printf("Введіть тип операції: "); // Запит типу операції
scanf("%5s", type);
if (strcmp(type, "reset") == 0) break; // Завершення обчислень за командою "скид"
// Операція додавання
if (strcmp(type, "+") == 0)
{
printf("Введіть друге число: ");
scanf("%lf", &b);
a = add(a, b);
continue;
}
// Операція віднімання
if (strcmp(type, "-") == 0)
{
printf("Введіть друге число: ");
scanf("%lf", &b);
a = substract(a, b);
continue;
}
// Операція множення
if (strcmp(type, "*") == 0)
{
printf("Введіть друге число: ");
scanf("%lf", &b);
a = multiply(a, b);
continue;
}
// Операція ділення
if (strcmp(type, "/") == 0)
{
printf("Введіть друге число: ");
scanf("%lf", &b);
// Перевірка на ділення на нуль
if (b == 0)
{
printf("Помилка: ділення на нуль! Можливо сплутано тип команди або друге число!\n");
continue;
}
a = divide(a, b);
continue;
}
// Операція обчислення тангенса
if (strcmp(type, "tan") == 0)
{
a = tang(a);
continue;
}
// Операція зведення у квадрат
if (strcmp(type, "squar") == 0)
{
a = squar(a);
continue;
}
// Операція зведення у куб
if (strcmp(type, "cub") == 0)
{
a = cub(a);
continue;
}
// Завершення роботи програми
if (strcmp(type, "exit") == 0) return 0;
// Повідомлення про невідому команду
printf("Помилка: такої команди не існує!\n");
}
}
}
INFO