Файл: Министерство науки и высшего образования российской федерации фгбоу во новосибирский государственный технический университет.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);

}

}