Цикли
Існує кілька видів циклів.
Цикл з параметром (лічильником)
for (лічильник = початкове значення; умова продовження циклу; крок циклу)
{
тіло циклу;
}
Приклад. Порахувати суму чисел від 1 до 1000.
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Ukrainian");
int sum = 0; // початкова сума
for (int i = 1; i <= 1000; i++) // лічильник і міняється від 1 до 1000 щоразу збільшуючись на 1
{
sum = sum + i;//додаємо до суми і
}
cout << "Сума чисел від 1 до 1000 = " << sum << endl;
system("pause");
return 0;
}
Цикл з умовою
while (умова виконання циклу)
{
тіло циклу;
}
Існує можливість модифікації циклу з післяумовою:
do
{
тіло циклу;
} while (умова виконання циклу)
Приклад. Порахувати суму чисел від 1 до 1000.
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Ukrainian");
int i; // лічильник
int sum = 0; // початкова сума
while (i < 1000) // цикл виконуватиметься, поки і менше 1000
{
i++; //збільшуємо значення і
sum += i; //додаємо до суми і
}
cout << "Сума чисел від 1 до 1000 = " << sum << endl;
system("pause");
return 0;
}
Задача. Вгадай число
Функція rand() генерує числа в діапазоні від 0 до RAND_MAX.
RAND_MAX - це константа, визначена у бібліотеці <cstdlib>. Для Microsoft
Visual Studio RAND_MAX = 32767, але значення залежить від компілятора.
Програма, подана нижче дозволяє перевірити значення цієї константи та
згенерувати випадкове число
#include <iostream>
using namespace std;
int main()
{
cout << "RAND_MAX = " << RAND_MAX << endl; // максимальна межа інтервалу
cout << "random number = " << rand() << endl; // генератор випадкових чисел
system("pause");
return 0;
}
Для того, щоб кожного разу при запуску програми генерувались нові випадкові числа, потрібна функція srand(time(0));, котра прийматиме значення у залежності від функції часу. Для використання останньої потрібно підключити бібліотеку #include <ctime>.
Комп'ютер загадує число, користувач відгадує (використання випадкових чисел)
#include <iostream>
#include<cmath>
#include <ctime>
using namespace std;
int main()
{ srand( time(0) );
setlocale(LC_ALL, "Ukrainian");
cout << "Я загадую число від 1 до 10 " << endl;
int a=rand() % 10 +1; // діапазон чисел від 1 до 10 включно;
int b;
do
{
cout << "Ваша версія= " << endl;
cin >> b;
if (a>b)
cout << "Мало!" << endl;
else if (a<b)
cout << "Багато!" << endl;
else
cout << "Вгадано!" << endl;
} while (b!=a);
system("pause");
return 0;
}
Користувач загадує число, комп'ютер відгадує
#include <iostream>
#include<cmath>
using namespace std;
int main()
{
setlocale(LC_ALL, "Ukrainian");
cout << "Загадай число від 1 до 100 " << endl;
int x=1;
int y=100;
int a=(x+y)/2;
int b;
do
{
a=(x+y)/2;
cout << "Моя версія " << a << endl;
cout << "Якщо мало, натисніть 1. Якщо багато, натисніть 2. Якщо вгадано, натисніть 3 " << endl;
cin >> b;
if (b==1)
x=a;
if (b==2)
y=a;
} while (b!=3);
cout << "The end " << endl;
system("pause");
return 0;
}