Файл: Министерство науки и высшего образования российской федерации фгбоу во новосибирский государственный технический университет.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 22.11.2023
Просмотров: 51
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФГБОУ ВО «НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Факультет автоматики и вычислительной техники
Кафедра АСУ
Дисциплина «Программирование»
Преподаватель: Достовалов Д.Н.
Группа: АВТ-213
Студент : Камоус Яхья
Задание на 3ей лекции
г. Новосибирск
2021 год
Задание
-
написать программу калькулятор в основном меню программа запрашивает у пользователя необходемое дествие и аргументы затем вызывает указанную функциию и выводит результат , После этого запрашивает действие .
Тестовые данные
№ | Исходные данные и ожидаемый результат |
1 | Ввод: 12 555 / + |
Вывод: 12,00 + 555,00 = 567,00 программа запускается снова | |
2 | Ввод: -88 54 / - |
Вывод :-88,00 - 54,00 = -142,00 программа запускается снова | |
3 | Ввод: 47854 85548 / * |
Вывод: 47854,00 * 85548,00 = 4093814016,00 программа запускается снова | |
4 | Ввод: 1 21 / ? ошибка : Неверный ввод повторите еще раз : программа запускается снова |
Вывод: | |
5 | Ввод: 54 |
Вывод: программа продолжает запрашивать второй номер |
Текст программы
#define _CRT_SECURE_NO_WARNINGS #include #include #include // объявления функций void display(float n1, float n2, char ch, float result); void add(float n1, float n2); void subtract(float n1, float n2); void multiply(float n1, float n2); void divide(float n1, float n2); void rem(float n1, float n2); void power(float n1, float n2); // основная функция int main() { setlocale(LC_ALL, "Rus"); float n1, n2; int ch; do { printf("Введите два числа : "); scanf_s("%f %f", &n1, &n2); printf("\n*****************");// для разделения операций printf("\n1. + "); printf("\n2. - "); printf("\n3. * "); printf("\n4. / "); printf("\n5. %% "); printf("\n6. (x^y) "); printf("\n7. Выход "); printf_s("\n Введите номер действие : "); scanf_s("%d", &ch); switch (ch) { case 1: add(n1, n2); break; case 2: subtract(n1, n2); break; case 3: multiply(n1, n2); break; case 4: divide(n1, n2); break; case 5: rem(n1, n2); break; case 6: power(n1, n2); break; case 7: printf("........................"); exit(0); default: printf("ошибка : Неверный ввод повторите еще раз : "); } printf("\n**********************************\n"); } while (1); return 0; } // функция для отображения результата void display(float n1, float n2, char ch, float result) { printf("%.2f %c %.2f = %.2f\n", n1, ch, n2, result); } // функция для добавления void add(float n1, float n2) { float result = n1 + n2; display(n1, n2, '+', result); } // функция для вычитания void subtract(float n1, float n2) { float result = n1 - n2; display(n1, n2, '-', result); } // функция для умножения void multiply(float n1, float n2) { float result = n1 * n2; display(n1, n2, '*', result); } // функция для деления void divide(float n1, float n2) { float result = n1 / n2; display(n1, n2, '/', result); } // функция для вычисления остатка void rem(float n1, float n2) { int num1 = n1; int num2 = n2; int result = num1 % num2; printf("%d %% %d = %d\n", num1, num2, result); } // функция для вычисления мощности void power(float n1, float n2) { if (n2 < 0) printf("Second number should be > 0 "); else { float result = 1.0; for (int i = 1; i <= n2; i++) { result *= n1; } display(n1, n2, '^', result); } } |