Для виконання даних завдань вам варто ознайомитися з циклом «while» та «do while». Також не забувайте пройти попередній матеріал!
Завдання 1: Користувач має вказати ціле додатне число (припустимо це число до Програма має порахувати кількість чисел від до вказаного числа, що діляться на
Приклад виконання програми:
Ввід:
input number: 7
Вивід:
sum = 0
Ввід:
input number: 17
Вивід:
sum = 2
Ввід:
input number: 100
Вивід:
sum = 12
Приклад програми:
Варіантів виконання цього завдання на справді доволі багато. От приклади деяких з них:
Варіант 1. Проведемо не велике дослідження. Починаючи від знайдемо хоча б декілька чисел які діляться на Це буде Якщо зауважити, то ці числа повторюються через Тобто, першим числом є а щоб знайти наступне нам потрібно до попереднього додати і так далі. Тому, ми можемо порахувати скільки разів нам варто додавати щоб отриманий результат нас не влаштовував. Тобто, щоб отримане число було більшим за вказане.
#include <iostream>
int main()
{
int sum = 0; //оскільки у нас завжди відразу буде "0" таких чисел,
//то напишемо, що їх сума рівна нулеві
int a; //змінна в яку збережемо число яке введе користувач
std::cout << "input number: ";
std::cin >> a;
int b = 8; //числа які діляться на "8"
//враховуємо, що останнє число теж може ділитися на "8"
//тому, вказуємо знак "<="
while(b <= a)
{
sum++;
b += 8;
}
std::cout << "sum = " << sum;
return 0;
}
Варіант 2: Другий метод базується на першому. По факту ми просто перевіряємо скільки влазить у якесь число. Тому, це завдання можна максимально спростити. Для цього достатньо лише націло поділити вказане число на
#include <iostream>
int main()
{
int a; //змінна в яку збережемо число яке введе користувач
std::cout << "input number: ";
std::cin >> a;
std::cout << "sum = " << a/8;
return 0;
}
Варіант 3: Один з найдовших по часу виконання але на справді один із найнадійніших методів. Враховуючи, що нам потрібні числа які діляться націло (без залишку) на То ми можемо перевіряти кожне число від (за умовою задачі) і до вказаного числа чи воно ділиться на без залишку. Якщо так, тоді збільшуємо кількість таких чисел.
#include <iostream>
int main()
{
int sum = 0; //оскільки у нас завжди відразу буде "0" таких чисел,
//то напишемо, що їх сума рівна нулеві
int a; //змінна в яку збережемо число яке введе користувач
std::cout << "input number: ";
std::cin >> a;
int b = 1; //числа які будемо перевіряти
//цикл продовжується поки ми не досягнемо вказаного числа
while(b <= a)
{
//якщо виконується умова "залишок від ділення на 8 = 0", то
if(b % 8 == 0)
{
//кількість чисел збільшуємо на "1"
sum++;
}
//переходимо до наступного числа
b++;
}
std::cout << "sum = " << sum;
return 0;
}
Завдання 2: Кіт Леопольд пішов на рибалку та спіймав рибин тобто ціле додатне. Вважатимемо, що воно є меншим Кожна рибина важить певну кількість кілограмів (ціле число). Допоможіть коту Леопольду порахувати вагу всієї риби.
Приклад виконання програми:
Ввід:
Input n: 6
Vaga rubu:
5 3 1 2 7 5
Вивід:
Vaga = 23
Приклад програми:
#include <iostream>
int main()
{
int n; //кількість рибт яку спіймали
std::cout << "Input n: ";
std::cin >> n;
int i = 0; //рахуватимемо кількість риб яким вже вказали вагу
int vaga = 0; //вага всієї риби
//вказуватимемо вагу риби через пробіл
std::cout << "Vaga rubu:" << std::endl;
while(i < n)
{
//розкоментуйте якщо хочете вказувати вагу риби по черзі
//std::cout << "vaga " << i + 1 << " rubu = ";
int v1; //вага риби
std::cin >> v1;
//додаємо вагу однієї риби до загальної
vaga += v1;
//переходимо до наступної рибини
i++;
}
std::cout << "Vaga = " << vaga;
return 0;
}
Завдання 3: Перенесемося в реальність. Дуже часто програмісти зустрічаються з проблемою яка називається Тобто, з людьми які використовують (користуються) програмами які створили програмісти. Тому, в реальності програми є більшими та складнішими чим здається на перший погляд. Візьмемо задачу Ми описали ідеальні умови використання даної програми. Давайте припустимо, що користувач не зовсім дотримується правил. Тому, він замість натуральних чисел (цілих додатних чисел) може ввести ціле число. Дробові числа чи букви не розглядаємо.
Ваша задача така: виконати але при цьому ігнорувати моменти, коли користувач вводить не коректні значення. Наприклад, якщо на питання «скільки риб спіймав користувач вводить від’ємне число, то програма ігнорує це (нуль допускається), тобто повторює його знову. Якщо на питання «скільки важить користувач вводить число або нуль, то питання повторюється. Звісно, питання мають повторюватись поки програма не отримає те чого очікує.
#include <iostream>
int main()
{
int n = -1; //кількість риб
//ми будемо перевіряти значення "n"
//поки воно є меншим за нуль, то програма будем
//постійно просити його вказати.
//томі відразу ініціалізували його значенням "-1"
//як тільки "n" стане нулем або більшим за нуль, то
//цикл завершиться
while(n < 0)
{
std::cout << "Input n: ";
std::cin >> n;
}
int sum = 0; //загальна вага риби
int i = 0; //кількість риби з правильною вагою
while(i < n)
{
//вагу кожної риби вказуватимемо окремо
int v1;
std::cout << "Input v: ";
std::cin >> v1;
//коли вага риби є додатнім число
//лише тоді ми додаємо її до загальної ваги
//та збільшуємо кількість правильної риби
if(v1 > 0)
{
sum += v1;
i++;
}
}
std::cout << "Sum = " << sum;
return 0;
}