Указатель на указатель C++ Классы в С++ Дополнительный сборник задач с решениями


Задачи: арифметические операции в С++



Download 193,71 Kb.
bet2/12
Sana12.03.2020
Hajmi193,71 Kb.
#42219
TuriУказатель
1   2   3   4   5   6   7   8   9   ...   12
Bog'liq
Задачи и решение-Bustanov

Задачи: арифметические операции в С++


Если вы уже прочитали статью Арифметические операции в С++ можно приступать к практике.

  1. Распространённая задача:  Дано четырехзначное число (к примеру 5678), вывести на экран  в обратном порядке цифры из которых это число состоит. То есть мы должны увидеть на экране 8765. Подсказка: чтобы взять из числа отдельные цифры, надо применять  деление по модулю на 10.

  2. #include

  3. using namespace std;

  4.  

  5. int main()

  6. {

  7. setlocale(LC_ALL, "rus");

  8.  

  9. int mainNumber = 5678;

  10.  

  11. cout << "Дано целое число: " << mainNumber << endl;

  12. cout << "Число  наизнанку: ";

  13. // остаток от деления четырехзначного числа 5678 на 10

  14. cout << mainNumber % 10; // 5678 % 10 = 8

  15. // далее делим mainNumber на 10 и записываем в переменную

  16. // так как тип переменной int, дробная часть отбросится

  17. // и mainNumber будет равен 567 (а не 567,8)

  18. mainNumber /= 10;

  19. // показываем остаток от деления 567 на 10 на экран

  20. cout << mainNumber % 10;

  21. mainNumber /= 10;

  22. cout << mainNumber % 10;

  23. mainNumber /= 10;

  24. cout << mainNumber % 10;

  25. mainNumber /= 10;

  26.  

  27. cout << endl << endl;

  28.  

  29. return 0;

  30. }

Показать код

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. Первая задача интересная и достаточно простая. Но код получится длинным. Эту задачу придумали наши преподаватели из компьютерной академии. Идея была такая – как бы заставить начинающих студентов  помучиться с написанием кода, чтобы писанины было побольше )))  Задание: Пользователь вводит число от 1 до 9999 (сумму выдачи в банкомате). Необходимо вывести на экран словами введенную сумму и в конце написать название валюты с правильным окончанием. Например: 7431 – семь тысяч четыреста тридцать один доллар, 2149 – две тысячи сто сорок девять долларов, 15 – пятнадцать долларов, 3 – три доллара. Для решения этой задачи вам необходимо будет применять оператор % (остаток от деления). Почитать о нем можно в статье Арифметические операции в C++  . Приступайте!

  2. #include

  3. using namespace std;

  4.  

  5. int main()

  6. {

  7. setlocale(LC_ALL, "rus");

  8.  

  9. int enterNumber = 0;

  10.  

  11. cout << "Введите целое число  (от 1 до 9999): ";

  12. cin >> enterNumber;

  13.  

  14. // проверяем входит ли введенное число в заданный диапазон

  15. if (enterNumber <= 0 ||enterNumber > 9999)

  16. cout << "Число не входит в диапазон от 1 до 9999!\n";

  17. else // если да - приступаем к выводу на экран

  18. {

  19. cout << "\nВы ввели: ";

  20.  

  21. // чтобы добраться до первой цифры в введенном числе

  22. // (если оно четырехзначное), надо это число поделить

  23. // на 1000 и взять от него остаток от деления на 10

  24. // например 8 888 / 1000 = 8 (888 тысячные отбрасываются

  25. // т.к. введенное число типа int), далее 8 % 10 = 8

  26. // так же не ошибитесь с оператором == (равно)

  27. if ((enterNumber / 1000) % 10 == 1) cout << "Одна тысяча ";

  28. else if ((enterNumber / 1000) % 10 == 2) cout << "Две тысячи ";

  29. else if ((enterNumber / 1000) % 10 == 3) cout << "Три тысячи ";

  30. else if ((enterNumber / 1000) % 10 == 4) cout << "Четыре тысячи ";

  31. else if ((enterNumber / 1000) % 10 == 5) cout << "Пять тысяч ";

  32. else if ((enterNumber / 1000) % 10 == 6) cout << "Шесть тысяч ";

  33. else if ((enterNumber / 1000) % 10 == 7) cout << "Семь тысяч ";

  34. else if ((enterNumber / 1000) % 10 == 8) cout << "Восемь тысяч ";

  35. else if ((enterNumber / 1000) % 10 == 9) cout << "Девять тысяч ";

  36.  

  37.  

  38. if ((enterNumber / 100) % 10 == 1) cout << "сто ";

  39. else if ((enterNumber / 100) % 10 == 2) cout << "двести ";

  40. else if ((enterNumber / 100) % 10 == 3) cout << "триста ";

  41. else if ((enterNumber / 100) % 10 == 4) cout << "четыреста ";

  42. else if ((enterNumber / 100) % 10 == 5) cout << "пятьсот ";

  43. else if ((enterNumber / 100) % 10 == 6) cout << "шестьсот ";

  44. else if ((enterNumber / 100) % 10 == 7) cout << "семьсот ";

  45. else if ((enterNumber / 100) % 10 == 8) cout << "восемьсот ";

  46. else if ((enterNumber / 100) % 10 == 9) cout << "девятьсот ";

  47.  

  48. if ((enterNumber / 10) % 10 == 1)

  49. {

  50. if (enterNumber % 10 == 0) cout << "десять долларов";

  51. else if (enterNumber % 10 == 1) cout << "одинадцать долларов";

  52. else if (enterNumber % 10 == 2) cout << "двенадцать долларов";

  53. else if (enterNumber % 10 == 3) cout << "тринадцать долларов";

  54. else if (enterNumber % 10 == 4) cout << "четырнадцать долларов";

  55. else if (enterNumber % 10 == 5) cout << "пятнадцать долларов";

  56. else if (enterNumber % 10 == 6) cout << "шестнадцать долларов";

  57. else if (enterNumber % 10 == 7) cout << "семнадцать долларов";

  58. else if (enterNumber % 10 == 8) cout << "восемнадцать долларов";

  59. else if (enterNumber % 10 == 9) cout << "девятнадцать долларов";

  60. }

  61.  

  62. if ((enterNumber / 10) % 10 == 2) cout << "двадцать ";

  63. else if ((enterNumber / 10) % 10 == 3) cout << "тридцать ";

  64. else if ((enterNumber / 10) % 10 == 4) cout << "сорок ";

  65. else if ((enterNumber / 10) % 10 == 5) cout << "пятьдесят ";

  66. else if ((enterNumber / 10) % 10 == 6) cout << "шестьдесят ";

  67. else if ((enterNumber / 10) % 10 == 7) cout << "семьдесят ";

  68. else if ((enterNumber / 10) % 10 == 8) cout << "восемьдесят ";

  69. else if ((enterNumber / 10) % 10 == 9) cout << "девяносто ";

  70.  

  71. if ((enterNumber / 10) % 10 != 1)

  72. {

  73. if (enterNumber % 10 == 0) cout << "долларов";

  74. else if (enterNumber % 10 == 1) cout << "один доллар";

  75. else if (enterNumber % 10 == 2) cout << "два доллара ";

  76. else if (enterNumber % 10 == 3) cout << "три доллара ";

  77. else if (enterNumber % 10 == 4) cout << "четыре доллара ";

  78. else if (enterNumber % 10 == 5) cout << "пять долларов ";

  79. else if (enterNumber % 10 == 6) cout << "шесть долларов ";

  80. else if (enterNumber % 10 == 7) cout << "семь долларов ";

  81. else if (enterNumber % 10 == 8) cout << "восемь долларов ";

  82. else cout << "девять долларов ";

  83. }

  84. }

  85.  

  86. cout << endl << endl;

  87. return 0;

  88. }

Посмотреть код

  1. Пользователь вводит порядковый номер пальца руки. Необходимо показать его название на экран.

  1. #include

  2. using namespace std;

  3.  

  4. int main()

  5. {

  6. setlocale(LC_ALL, "rus");

  7.  

  8. int NumberOfFinger = 0;



  9. cout << "Введите номер: ";

  10. cin >> NumberOfFinger;

  11.  

  12. if (NumberOfFinger == 1)

  13. cout << "\nРезультат:  Большой палец \n";

  14. else if (NumberOfFinger == 2)

  15. cout << "\nРезультат: Указательный палец\n";

  16. else if (NumberOfFinger == 3)

  17. cout << "\nРезультат: Средний палец\n";

  18. else if (NumberOfFinger == 4)

  19. cout << "\nРезультат: Безымянный палец\n";

  20. else if (NumberOfFinger == 5)

  21. cout << "\nРезультат: Мизинец\n";

  22. else

  23. cout << "\nНет соответствий!\n\n";

  24.  

  25. return 0;

  26. }

В этой задаче нам не приходится проверять введенный номер на вхождение в диапазон от 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. Еще одна задача для самостоятельно решения.  Необходимо написать программу, которая проверяет пользователя на знание таблицы умножения. Пользователь сам вводит два целых однозначных числа. Программа задаёт вопрос: результат умножения первого числа на второе.  Пользователь должен ввести ответ и увидеть на экране правильно он ответил или нет. Если нет  – показать еще и правильный результат.



Download 193,71 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   12




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish