Мегаобучалка Главная | О нас | Обратная связь


Пример 2.5. Калькулятор.



2019-07-03 236 Обсуждений (0)
Пример 2.5. Калькулятор. 0.00 из 5.00 0 оценок




Составить программу, выполняющую с двумя действительными числами одно из трех арифметических действий (сложение, вычитание, умножение) по выбору.

 

Постановка задачи

Исходными данными для этой задачи являются значения двух чисел a и b, с которыми будут выполняться действия; a и b любые действительные числа. Значения a и b вводятся с клавиатуры. Кроме того, исходным данным является действие k, которое нужно выполнить; k- это символ, вводится с клавиатуры.

Выходные данные - результат вычислений res, действительное число, которое выводится на экран монитора.

 

 

Метод решения

После ввода значений чисел a и b пользователю предоставляется возможность выбрать арифметическое действие. Для обозначения действия используем соответствующие символы клавиатуры: +, -, *. В зависимости от выбора пользователя, выполняем ту или иную операцию с введенными числами.

 Возможных действий (направлений выполнения программы) – три, следовательно, в этой задаче удобно воспользоваться оператором варианта.

Схема алгоритма

Начало
Калькулятор
Введите числа a и b
a,b
Выберите действие:   + Сложение - Вычитание * Умножение
k
1

Неверно выбрано действие
res
Конец
res = a + b
res = a - b
res = a b
k
нет
+
-
*
 
1

 

 


Текст программы

#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 (если год високосный) дней. Номера високосных годов кратны четырем. 

 

Схема алгоритма

Начало
Вычисление месячного расхода электроэнергии
Введите номер месяца и суточный расход энергии
j, W
4, 6, 9,11
1, 3, 5, 7, 8,10,12
j
R=31 × W
2
Високосный год?
да
нет
R=30 × W
R=29× W
R=28× W
нет
R
Конец
Ошибочный номер месяца

Текст программы

#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 в качестве условия проверяется значение выражения, вычисляющего остаток целочисленного деления (эта операция обозначается знаком %). Номер года задан в виде целой константы.

 

 



2019-07-03 236 Обсуждений (0)
Пример 2.5. Калькулятор. 0.00 из 5.00 0 оценок









Обсуждение в статье: Пример 2.5. Калькулятор.

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (236)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)