Пример 2.5. Калькулятор.
Составить программу, выполняющую с двумя действительными числами одно из трех арифметических действий (сложение, вычитание, умножение) по выбору.
Постановка задачи Исходными данными для этой задачи являются значения двух чисел a и b, с которыми будут выполняться действия; a и b любые действительные числа. Значения a и b вводятся с клавиатуры. Кроме того, исходным данным является действие k, которое нужно выполнить; k- это символ, вводится с клавиатуры. Выходные данные - результат вычислений res, действительное число, которое выводится на экран монитора.
Метод решения После ввода значений чисел a и b пользователю предоставляется возможность выбрать арифметическое действие. Для обозначения действия используем соответствующие символы клавиатуры: +, -, *. В зависимости от выбора пользователя, выполняем ту или иную операцию с введенными числами. Возможных действий (направлений выполнения программы) – три, следовательно, в этой задаче удобно воспользоваться оператором варианта. Схема алгоритма
Текст программы #include <stdio.h> #include <conio.h> #include <math.h> main() {float a,b, res; char k;
printf ("\nКалькулятор"); // Ввод исходных данных printf ("\nВвeдите числo a="); scanf ("%f",&a); printf ("\nВвeдите число b="); scanf ("%f",&b); printf ("\nВыберите действие"); printf ("\n+ Сложение"); printf ("\n- Вычитание"); printf ("\n* Умножение"); k=getche(); // функция, считывающая символ с клавиатуры, //прототип ее объявлен в заголовочном файле conio.h // Вычисления switch (k) { { case '+': res=a+b; break; case '-': res=a-b; break; case '*': res=a*b; break; } default: printf ("\n Неверно выбрано действие. Нажми любую клавишу"); getche(); return 0; } //вывод результата printf ("\n %f %c %f = %f",a,k,b,res); printf("\nДля выхода нажмите любую клавишу …"); getche(); return 0; }
Для выбора арифметического действия используется символьная переменная k. С помощью оператора switch значение переменной k сравнивается с константами, обозначающими действия. Для выполнения выбирается тот вариант, константа которого совпадает со значением k. После выполнения действия выбранного варианта стоит оператор break, который передает управление сразу в конец оператора switch. Когда введенное значение переменной k не соответствует ни одной из констант, управление передается ветви с меткой default. В этой ветви на экран выводится сообщение о неверном выборе действия, и программа завершает работу (оператор return).
Совместное использование условного оператора и оператора выбора Пример 2.6. Месячный расход электроэнергии Некоторое непрерывное производство ежесуточно расходует W квт/ч электроэнергии. Для заданного месяца текущего года требуется вычислить общий расход электроэнергии R.
Постановка задачи Исходными данными для этой задачи являются номер месяца j (целое неотрицательное число) и суточный расход энергии W- действительное число. Оба значения вводятся с клавиатуры. Кроме того, необходимо задавать год, для которого производятся вычисления (задается в программе в виде константы). Выходные данные – расход электроэнергии R за выбранный месяц в квт/ч. Значение R - действительное число, выводится на экран монитора.
Метод решения Для вычисления расхода электроэнергии за месяц необходимо суточный расход энергии W умножить на количество дней в заданном месяце: R = W × d (2.4) Количество дней в месяце d зависит от номера месяца (см. календарь). Кроме того, в феврале может быть либо 28 дней либо 29 (если год високосный) дней. Номера високосных годов кратны четырем.
Схема алгоритма #include <stdio.h> #include <conio.h> main() {const god=2006; float W, R; int j; //заставка printf("\nПРОГРАММА ВЫЧИСЛЕНИЯ РАСХОДА ЭЛЕКТРОЭНЕРГИИ ЗА ОПРЕДЕЛЕННЫЙ МЕСЯЦ ГОДА” ); //ввод исходных данных printf("\n Введите расход энергии за 1 день"); scanf("%f", &W); printf("\n Введите номер месяца"); scanf("%d", &j); switch (j) { {case 1:case 3:case 5: case 7: case 8: case 10:case 12: R=31*W; break; case 4:case 6:case 9: case 11: R=30*W; break; case 2 : if (god%4) R=28*w; else R=29*W;break; }
default: printf ("\n нет такого месяца ");return 0; } //вывод результата printf ("\n за %d месяц израсходовано %f кВт ", j, R); printf("\nДля выхода нажмите любую клавишу"); getche(); return 0; } В этой программе выбор формулы для вычисления осуществляется с помощью оператора switch. В одну из ветвей оператора варианта вложен условный оператор if (определение количества дней в феврале для високосного и невисокосного года). Кроме того, у оператора варианта есть ветвь default (случай, когда введенное число j не является номером месяца года). В операторе if в качестве условия проверяется значение выражения, вычисляющего остаток целочисленного деления (эта операция обозначается знаком %). Номер года задан в виде целой константы.
Популярное: Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (236)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |