Раз вы приступаете к задачам, значит уже знаете что такое цикл for. Рассмотрим несколько задач, в решении которых он применяется и, тем самым, закрепим полученные знания. Практика программирования – самый лучший способ разобраться с материалом и запомнить информацию надолго.
1. Написать программу, которая будет показывать на экран квадрат числа, введенного пользователем. Пользователь должен сам решать – выйти из программы или продолжить ввод. (Подсказка – необходимо запустить бесконечный цикл, в котором предусмотреть его прерывание, при наступлении определённого условия).
Показать код
Задача: оператор for 1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
usingnamespacestd;
intmain()
{
setlocale(LC_ALL,"rus");
intdigit=0;// число для расчета
charexit='y';// для выхода или продолжения
for(;;)
{
cout<<"Введите число: ";
cin>>digit;
cout<<"Квадрат "<<digit<<" = "<<digit*digit;
cout<<"\nПродолжить ввод чисел - Y, Выйти - N: ";
cin>>exit;// выбор пользователя
if(exit!='y'&&exit!='Y')
break;// прервать цикл
}
return0;
}
В задаче, как видите, предусмотрено продолжение работы, вне зависимости в каком регистре введена буква Y (в нижнем или в верхнем).
Результат:
2. В спортзал ежедневно приходит какое-то количество посетителей. Необходимо предложить пользователю ввести такие данные: сколько человек посетило спортзал за день, ввести возраст каждого посетителя и в итоге показать возраст самого старшего и самого молодого из них, а так же посчитать средний возраст посетителей.
Показать код
Задача: оператор for 2
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
29
30
31
32
33
34
35
36
37
#include <iostream>
usingnamespacestd;
intmain()
{
setlocale(LC_ALL,"rus");
intage=0;// будет вводить пользователь
intmaxAge=0;// для записи максимального количества лет
intminAge=100;// для записи минимального количества лет
intsum=0;// общая сумма для расчета среднего
intaverage=0;// для записи среднего возраста посетителей
intamount=0;// количество посетителей спортзала
cout<<"Введите количество посетителей спортзала: ";
cin>>amount;
for(inti=0;i<amount;i++)
{
cout<<"Введите возраст "<<i+1<<"-го посетителя: ";// запрос на введение числа
cin>>age;
if(age>maxAge)// если оно больше, чем хранит переменная max
maxAge=age;// записываем в неё это число
if(age<minAge)
minAge=age;
sum+=age;// накопление общей суммы
}
average=sum/amount;// подсчет среднего возраста
cout<<"\nСредний возраст всех посетителей: "<<average<<endl;
cout<<"\nСамый взрослый: "<<maxAge<<endl;
cout<<"\nСамый молодой: "<<minAge<<endl;
return0;
}
Переменную min мы инициализировали значением 100, чтобы программа могла корректно работать. Если бы она была инициализирована значением 0, условие if (age < minAge) не выполнялось бы никогда, так как age всегда больше 0. Таким образом значение переменной minAge всегда оставалось бы нулем.
Результат:
Для самостоятельно задания, предлагаем вам решить похожую задачу. Организовать ввод количества посетителей спортзала и количества часов проведенных каждым из них в спортзале. В итоге посчитать и показать общую сумму, которую посетители заплатили за тренировки.
3. На складе имеется определённое количество ящиков с яблоками (в нашем примере 15). Когда подъезжает машина для погрузки, попросить пользователя ввести, сколько ящиков загрузить в первую машину, во вторую и так далее, пока не закончатся ящики с яблоками. Предусмотреть тот случай, когда пользователь введёт количество ящиков больше, чем есть на складе.
Показать код
Задача: оператор for 3
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
29
30
31
32
33
34
35
36
#include <iostream>
usingnamespacestd;
intmain()
{
setlocale(LC_ALL,"rus");
intboxWithApples=15;// количество ящиков на складе
intamountBoxesForSale=0;// количество отгружаемых ящиков
cout<<"Сейчас на складе "<<boxWithApples<<" ящиков с яблоками.\n\n";
for(inti=1;;i++)// счетчик i будет считать количество машин к погрузке
{
cout<<"Сколько ящиков загрузить в "<<i<<"-ю машину? ";
cin>>amountBoxesForSale;
if(amountBoxesForSale>boxWithApples)
{
cout<<"\nНа складе недостаточно товара!";
cout<<"Осталось только "<<boxWithApples<<" ящиков\n\n";
i--;// уменьшить счетчик на единицу
}
else
{
boxWithApples-=amountBoxesForSale;// перезаписываем значение
cout<<"Осталось "<<boxWithApples<<" ящиков.\n";
}
if(boxWithApples==0)// если ящиков больше нет - выйти из цикла
{
cout<<"Яблоки закончились! Давай до свидания!\n";
break;
}
}
return0;
}
Счетчик i в строке 21 уменьшается на единицу, чтобы при следующем шаге цикла показать правильный порядковый номер машины.
Результат:
При возникновении вопросов обращайтесь к нам в комментариях.
4.4
47
161 thoughts on “Задачи: Цикл for в С++”
моя вторая задачка #include using namespace std; int main() { int chelovek;//буду вводить кол во человек int vozrast;// буду вводить возраст int ma=0;// максимум int mi=100;// минимум int sr=0;//подсчёт суммы int sr1=0;//среднее
if (vozrast>ma)//если возраст больше максимума, отобразиться первое после ноля ma=vozrast; if (vozrast<mi)//если возраст меньше минимума, отобразиться первое число от 100, при условии что возраст не превышает 100 mi=vozrast; sr+=vozrast;//подсчитываю сумму
Дополнительная задача задание 2. Есть вопросик. Очень хотелось ввести имя каждого посетителя и затем часы, но с именем никак не получается. #include using namespace std; int main() { int chelovek;//буду вводить кол во человек float chasi;//количество часов float sum=0;//объявляю сумму
cout<<chelovek;
for(int i=1;i<=chelovek;i++) { cout<< "posetitel "<< i <>chasi;
немного переделала задачу 3.В ней кол-во ящиков не фиксировано. #include using namespace std; int main() { int apple=0; int vvod=0; int sum=0; int itog=0; int um=0;
cout<< apple;
for (int i=1; ;i++) { cout<<"vvedite kolihestvo dla mashinu "<<" "<< i<> vvod; sum=vvod+sum;
А я вот так 3ю задачу решил int main() { setlocale(0, ""); int jas, vv, n=0; cout << jas; for (; jas != 0 ;) { cout << vv; if (vv > jas) { cout << "Так не пойдет, ящиков меньше!\n"; cout << "Их осталось " << jas << "\n"; } else { jas -= vv; n++; } } cout << "Молодец! Ты погрузил все ящики в " << n << " грузовиков\n"; return 0; }
Народ, объясните кто может. я не понимаю по какой логике построен цикл for (int i = 0; i < amount; i++) во второй задаче. То есть, чем является переменная "i" и почему "i < amount".
моя вторая задачка
#include
using namespace std;
int main()
{
int chelovek;//буду вводить кол во человек
int vozrast;// буду вводить возраст
int ma=0;// максимум
int mi=100;// минимум
int sr=0;//подсчёт суммы
int sr1=0;//среднее
cout<<chelovek;
for(int i=1;i<=chelovek;i++)
{
cout<<"vvedite vozrst heloveka "<< i<>vozrast;
if (vozrast>ma)//если возраст больше максимума, отобразиться первое после ноля
ma=vozrast;
if (vozrast<mi)//если возраст меньше минимума, отобразиться первое число от 100, при условии что возраст не превышает 100
mi=vozrast;
sr+=vozrast;//подсчитываю сумму
}
sr1=sr/chelovek;//считаю среднее
cout<<"Samiy starshiy "<<endl;
cout<<ma<<endl;
cout<<"Samiy mladshiy"<< endl<<mi<<endl;
cout <<"sredniy vozrast"<<endl<<sr1<<endl;
return 0;
}
Дополнительная задача задание 2.
Есть вопросик.
Очень хотелось ввести имя каждого посетителя и затем часы, но с именем никак не получается.
#include
using namespace std;
int main()
{
int chelovek;//буду вводить кол во человек
float chasi;//количество часов
float sum=0;//объявляю сумму
cout<<chelovek;
for(int i=1;i<=chelovek;i++)
{
cout<< "posetitel "<< i <>chasi;
sum=sum+chasi;
}
cout<<"obshaya summa chasov "<< sum;
return 0;
}
немного переделала задачу 3.В ней кол-во ящиков не фиксировано.
#include
using namespace std;
int main()
{
int apple=0;
int vvod=0;
int sum=0;
int itog=0;
int um=0;
cout<< apple;
for (int i=1; ;i++)
{
cout<<"vvedite kolihestvo dla mashinu "<<" "<< i<> vvod;
sum=vvod+sum;
if(sum>apple)
{
itog=sum-apple;
cout<<"prosti drug,no ne vlazit "<< itog <<" yashikov ";
break;
}
}
return 0;
}
int stock = 5;
int car = 0;
for (;;)
{
CAR : cout << car;
if (car > stock)
{
cout << "Данное количество нет на складе! \n";
goto CAR;
}
stock -= car;
cout << "Остаток: " << stock << endl;
if (stock == 0)
{
cout << "Яблоки закончились! \n";
break;
}
}
int main()
{
setlocale(LC_ALL, "rus");
int number = 0;
int result = 0;
WELCOME : cout << number;
result = number * number;
cout << result << endl;
goto WELCOME;
}
int main()
{
setlocale(LC_ALL, "rus");
int number = 0;
int result = 0;
bool choise = true;
for (;;)
{
AGAIN : cout <> number;
result = number * number;
cout << "Ваш результат: " << result << endl;
cout << choise;
if (!(choise == 0))
{
break;
}
}
}
А я вот так 3ю задачу решил
int main()
{
setlocale(0, "");
int jas, vv, n=0;
cout << jas;
for (; jas != 0 ;)
{
cout << vv;
if (vv > jas)
{
cout << "Так не пойдет, ящиков меньше!\n";
cout << "Их осталось " << jas << "\n";
}
else
{
jas -= vv;
n++;
}
}
cout << "Молодец! Ты погрузил все ящики в " << n << " грузовиков\n";
return 0;
}
Народ, объясните кто может.
я не понимаю по какой логике построен цикл for (int i = 0; i < amount; i++) во второй задаче.
То есть, чем является переменная "i" и почему "i < amount".