Задачи: арифметические операции в С++
Если вы уже прочитали статью Арифметические операции в С++ можно приступать к практике.
Распространённая задача: Дано четырехзначное число (к примеру 5678), вывести на экран в обратном порядке цифры из которых это число состоит. То есть мы должны увидеть на экране 8765. Подсказка: чтобы взять из числа отдельные цифры, надо применять деление по модулю на 10.
#include
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
int mainNumber = 5678;
cout << "Дано целое число: " << mainNumber << endl;
cout << "Число наизнанку: ";
// остаток от деления четырехзначного числа 5678 на 10
cout << mainNumber % 10; // 5678 % 10 = 8
// далее делим mainNumber на 10 и записываем в переменную
// так как тип переменной int, дробная часть отбросится
// и mainNumber будет равен 567 (а не 567,8)
mainNumber /= 10;
// показываем остаток от деления 567 на 10 на экран
cout << mainNumber % 10;
mainNumber /= 10;
cout << mainNumber % 10;
mainNumber /= 10;
cout << mainNumber % 10;
mainNumber /= 10;
cout << endl << endl;
return 0;
}
Показать код
2. На сайте практически любого коммерческого банка, можно встретить так называемый Депозитный калькулятор, который позволяет людям, не желающим углубляться в формулы расчета процентных ставок, узнать какую прибыль они получат. Для этого им достаточно заполнить определённые поля, нажать на кнопку и увидеть результат. Это простая программа, которую уже сможет написать каждый из вас. Итак, задача: Пользователь вводит сумму депозита и количество месяцев хранения денег в банке. Необходимо провести расчет и показать на экран прибыль с депозита в месяц, за весь срок депозита, и общую сумму к выплате в конце срока. Валюта пусть будет – доллар США. Процентная ставка – 5% годовых. Формула расчета процентов в месяц – СуммаДепозита * (ПроцентнаяСтавка / 100) / ДнейВГоду * ДнейВМесяце.
#include
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
float sumDeposit = 0; // сумма депозита
int amountMonth = 0; // количество месяцев
float profit = 0; // прибыль
float annualRate = 5; // пять процентов годовых
int daysInYear = 365;
int daysInMonth = 30;
cout << "Введите сумму депозита в долларах: ";
cin >> sumDeposit;
cout << "Введите количество месяцев: ";
cin >> amountMonth;
cout << "\nРасчет\n";
cout << "=======================================\n";
cout << "Проценты в месяц: ";
// проводим расчет по формуле и записываем в переменную profit
profit = sumDeposit * (annualRate / 100) / daysInYear * daysInMonth;
cout << sumDeposit << " * " << annualRate << "% / " << daysInYear
<< " * " << daysInMonth << " = " << profit << " $" << endl;
cout << "Проценты за весь срок: ";
// умножаем % за 1 месяц на весь срок депозита и записываем в profit
profit *= amountMonth;
cout << profit << " $" << endl;
cout << "Общая сумма выплаты в конце срока: "
<< sumDeposit + profit << " $";
cout << endl << endl;
return 0;
}
Показать код
Возможно у вас возникли вопросы по решению задач – задавайте их в комментариях!
4.3
Задачи: операторы выбора if и else в С++
После прочтения урока об операторах выбора if и else, переходим к практике. Как обычно, прошу вас постараться решать все задания самостоятельно, и только потом смотреть на предложенное нами решение.
Первая задача интересная и достаточно простая. Но код получится длинным. Эту задачу придумали наши преподаватели из компьютерной академии. Идея была такая – как бы заставить начинающих студентов помучиться с написанием кода, чтобы писанины было побольше ))) Задание: Пользователь вводит число от 1 до 9999 (сумму выдачи в банкомате). Необходимо вывести на экран словами введенную сумму и в конце написать название валюты с правильным окончанием. Например: 7431 – семь тысяч четыреста тридцать один доллар, 2149 – две тысячи сто сорок девять долларов, 15 – пятнадцать долларов, 3 – три доллара. Для решения этой задачи вам необходимо будет применять оператор % (остаток от деления). Почитать о нем можно в статье Арифметические операции в C++ . Приступайте!
#include
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
int enterNumber = 0;
cout << "Введите целое число (от 1 до 9999): ";
cin >> enterNumber;
// проверяем входит ли введенное число в заданный диапазон
if (enterNumber <= 0 ||enterNumber > 9999)
cout << "Число не входит в диапазон от 1 до 9999!\n";
else // если да - приступаем к выводу на экран
{
cout << "\nВы ввели: ";
// чтобы добраться до первой цифры в введенном числе
// (если оно четырехзначное), надо это число поделить
// на 1000 и взять от него остаток от деления на 10
// например 8 888 / 1000 = 8 (888 тысячные отбрасываются
// т.к. введенное число типа int), далее 8 % 10 = 8
// так же не ошибитесь с оператором == (равно)
if ((enterNumber / 1000) % 10 == 1) cout << "Одна тысяча ";
else if ((enterNumber / 1000) % 10 == 2) cout << "Две тысячи ";
else if ((enterNumber / 1000) % 10 == 3) cout << "Три тысячи ";
else if ((enterNumber / 1000) % 10 == 4) cout << "Четыре тысячи ";
else if ((enterNumber / 1000) % 10 == 5) cout << "Пять тысяч ";
else if ((enterNumber / 1000) % 10 == 6) cout << "Шесть тысяч ";
else if ((enterNumber / 1000) % 10 == 7) cout << "Семь тысяч ";
else if ((enterNumber / 1000) % 10 == 8) cout << "Восемь тысяч ";
else if ((enterNumber / 1000) % 10 == 9) cout << "Девять тысяч ";
if ((enterNumber / 100) % 10 == 1) cout << "сто ";
else if ((enterNumber / 100) % 10 == 2) cout << "двести ";
else if ((enterNumber / 100) % 10 == 3) cout << "триста ";
else if ((enterNumber / 100) % 10 == 4) cout << "четыреста ";
else if ((enterNumber / 100) % 10 == 5) cout << "пятьсот ";
else if ((enterNumber / 100) % 10 == 6) cout << "шестьсот ";
else if ((enterNumber / 100) % 10 == 7) cout << "семьсот ";
else if ((enterNumber / 100) % 10 == 8) cout << "восемьсот ";
else if ((enterNumber / 100) % 10 == 9) cout << "девятьсот ";
if ((enterNumber / 10) % 10 == 1)
{
if (enterNumber % 10 == 0) cout << "десять долларов";
else if (enterNumber % 10 == 1) cout << "одинадцать долларов";
else if (enterNumber % 10 == 2) cout << "двенадцать долларов";
else if (enterNumber % 10 == 3) cout << "тринадцать долларов";
else if (enterNumber % 10 == 4) cout << "четырнадцать долларов";
else if (enterNumber % 10 == 5) cout << "пятнадцать долларов";
else if (enterNumber % 10 == 6) cout << "шестнадцать долларов";
else if (enterNumber % 10 == 7) cout << "семнадцать долларов";
else if (enterNumber % 10 == 8) cout << "восемнадцать долларов";
else if (enterNumber % 10 == 9) cout << "девятнадцать долларов";
}
if ((enterNumber / 10) % 10 == 2) cout << "двадцать ";
else if ((enterNumber / 10) % 10 == 3) cout << "тридцать ";
else if ((enterNumber / 10) % 10 == 4) cout << "сорок ";
else if ((enterNumber / 10) % 10 == 5) cout << "пятьдесят ";
else if ((enterNumber / 10) % 10 == 6) cout << "шестьдесят ";
else if ((enterNumber / 10) % 10 == 7) cout << "семьдесят ";
else if ((enterNumber / 10) % 10 == 8) cout << "восемьдесят ";
else if ((enterNumber / 10) % 10 == 9) cout << "девяносто ";
if ((enterNumber / 10) % 10 != 1)
{
if (enterNumber % 10 == 0) cout << "долларов";
else if (enterNumber % 10 == 1) cout << "один доллар";
else if (enterNumber % 10 == 2) cout << "два доллара ";
else if (enterNumber % 10 == 3) cout << "три доллара ";
else if (enterNumber % 10 == 4) cout << "четыре доллара ";
else if (enterNumber % 10 == 5) cout << "пять долларов ";
else if (enterNumber % 10 == 6) cout << "шесть долларов ";
else if (enterNumber % 10 == 7) cout << "семь долларов ";
else if (enterNumber % 10 == 8) cout << "восемь долларов ";
else cout << "девять долларов ";
}
}
cout << endl << endl;
return 0;
}
Посмотреть код
Пользователь вводит порядковый номер пальца руки. Необходимо показать его название на экран.
#include
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
int NumberOfFinger = 0;
cout << "Введите номер: ";
cin >> NumberOfFinger;
if (NumberOfFinger == 1)
cout << "\nРезультат: Большой палец \n";
else if (NumberOfFinger == 2)
cout << "\nРезультат: Указательный палец\n";
else if (NumberOfFinger == 3)
cout << "\nРезультат: Средний палец\n";
else if (NumberOfFinger == 4)
cout << "\nРезультат: Безымянный палец\n";
else if (NumberOfFinger == 5)
cout << "\nРезультат: Мизинец\n";
else
cout << "\nНет соответствий!\n\n";
return 0;
}
|
В этой задаче нам не приходится проверять введенный номер на вхождение в диапазон от 1-го до 5-ти. Если соответствий не будет найдено – сработает последний блок else в строке 23. Эту же задачу можно решить намного изящней, используя оператор switch.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#include
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
int NumberOfFinger = 0;
cout << "Введите номер: ";
cin >> NumberOfFinger;
switch (NumberOfFinger)
{
case 1: cout << "\nРезультат: Большой палец \n";
break;
case 2: cout << "\nРезультат: Указательный палец\n";
break;
case 3: cout << "\nРезультат: Средний палец\n";
break;
case 4: cout << "\nРезультат: Безымянный палец\n";
break;
case 5: cout << "\nРезультат: Мизинец\n";
break;
default: cout << "\nНет соответствий!\n\n";
}
return 0;
}
|
Результат в обоих случаях одинаков:
Посмотреть код
3. Еще одна задача для самостоятельно решения. Необходимо написать программу, которая проверяет пользователя на знание таблицы умножения. Пользователь сам вводит два целых однозначных числа. Программа задаёт вопрос: результат умножения первого числа на второе. Пользователь должен ввести ответ и увидеть на экране правильно он ответил или нет. Если нет – показать еще и правильный результат.
Do'stlaringiz bilan baham: |