Раз вы приступаете к задачам, значит уже знаете что такое цикл 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 в С++”
Нормалек ребят, решил. И кстати у автора вроде баг был в задаче, типа на складе осталось – 65 ящиков (и т.п. то есть отрицательное количество), у меня багов нет)) #include using namespace std;
int main () { int a /* количество отгруЖаемых */, b = 15/*количество на складе*/; cout << "На складе " << b <> a; for (int i /*Количество машин*/ = 1; (a > 0) && (a <= b) ; i++) { if (a == 15) { cout << "На складе не осталось ящиков"; exit (0); } b -= a; cout << "На складе " << b << " ящиков, сколько грузим в " << i <> a; if (a == b) { cout << "На складе не осталось ящиков"; exit (0); }
Я вообще куда-то не туда пошёл))) // грузим ящики с яблоками. Если не хватает ящиков грузим всё что осталось #include using namespace std;
int main() { setlocale(LC_ALL, “rus”); int box = 654; // количество ящиков с яблоками int unbox = 0; // сколько нужно выгрузить int mach = 0; // количество машин int i = 0; cout <> mach; // вводим количество машин for (;;) // бесконечный цикл погрузки (пока есть яблоки). Если не хватает ящиков последнюю машину забиваем до отвала { cout << "Есть " << box << " ящиков с яблоками! " << "Сколько загрузить ящиков в машину № " << i + 1 <> unbox; // определяем количество ящиков которые нужно загрузить i++; // переходим к следующей машине if ((box – unbox) < 0) // ящиков недостаточно? грузим что осталось и завершаем программу { cout << "Нет столько ящиков! Вы запросили " << unbox << ", осталось " << box << "!" << "\nВсе оставшиеся ящики погружены в машину № " << i << " Программа завершила работу!\n"; break; } box -= unbox; // грузим ящики mach -= 1; // отправляем машину if (mach == 0) // если машин нет завершаем цикл break; } cout << "Погрузка завершена! Пока! Пока!\n"; system("PAUSE"); return 0; }
int visitors; int time; int allTime = 0; int priceInHour = 50; int sum;
cout <> visitors; cout << endl; int i; for (i = 0; i < visitors; i++) { cout << "Введитеr количество часов которое провел в зале " << i + 1 <> time; cout << endl; allTime += time;
}
sum = priceInHour * allTime; cout << "Общая сумма, которую посетители заплатили за тренировки = " << sum << endl << endl;
У вас во втором задании, там где “Показать код” ниже, ошибка, написано – “Для самостоятельно задания …”, там должно быть “Для самостоятельного задания…”. Сайт очень хорош, спасибо вам за старания :)
int main() { setlocale(LC_ALL, “rus”); int arr[7] = { 0, 0, 0, 100, 0, 0, 0 }; cout << "Enter the number of visitors of the gym " <> arr[0]; //количество посtтителей // arr3 самый молодой, arr4 самый старый, arr5 средний возраст, arr6 общая сумма для расчета средего… for ( arr[1] = 0; arr[1] < arr[0]; arr[1]++ ) { cout << " Enter the age " << arr[1] + 1 << " each visitor :" <> arr[2]; //возраст каждого посетителя if (arr[4] arr[2]) { arr[3] = arr[2]; }
arr[6] += arr[2]; } arr[5] = arr[6] / arr[0]; cout << "=========================================================" << endl; cout << " The most adult visitor – " << arr[4] << " years old " << endl; cout << " Youngest visitor – " << arr[3] << " years old " << endl; cout << " Average age of visitors " << arr[5] << " years" << endl; }
int main(){ setlocale(LC_ALL, “rus”); int a = 15;//общее количество ящиков на складе int b = 0;//количество ящиков погружаемых в машину for(int x = 1; ; x++){ a-= b; if(a==0){ cout<<"Ящиков на складе не осталось"; break; } cout<<"Сколько ящиков загрузить в "<<x<<"-ю машину (ящиков на складе "<<a<>b; while(1){ if(b>a){ cout<<"На складе нет столько ящиков, повторите ввод"<<endl; cout<<"Сколько ящиков загрузить в "<<x<<"-ю машину (ящиков на складе "<<a<>b; } else {break;} } } return 0; }
Нормалек ребят, решил. И кстати у автора вроде баг был в задаче, типа на складе осталось – 65 ящиков (и т.п. то есть отрицательное количество), у меня багов нет))
#include
using namespace std;
int main ()
{
int a /* количество отгруЖаемых */, b = 15/*количество на складе*/;
cout << "На складе " << b <> a;
for (int i /*Количество машин*/ = 1; (a > 0) && (a <= b) ; i++)
{
if (a == 15)
{
cout << "На складе не осталось ящиков";
exit (0);
}
b -= a;
cout << "На складе " << b << " ящиков, сколько грузим в " << i <> a;
if (a == b)
{
cout << "На складе не осталось ящиков";
exit (0);
}
}
cout << "На складе нет столько ящиков";
}
Спорим не работает?)
кажется у меня слишком много лишнего кода…
3 задание:
#include “pch.h”
#include
using namespace std;
int main()
{
system(“chcp 1251”);
system(“cls”);
cout << "На складе 15 ящиков" << endl;
int i=0 , max = 15, num, sum = 0, sum1 = 0, sum2 = 0;
for (;;) {
cout << "Сколько погрузить в " << i + 1 << " машину?" <> num;
if (num <= max – sum) sum = sum + num;
else {
cout << "Не больше чем : " << max – sum << endl;
cout << "Сколько погрузить в " << i + 1 << " машину?" <> num;
if (num max) cout << "Максимум 15!" << endl;
sum1 = sum – max;
sum2 = max – sum;
if (sum < max) cout << " Осталось всего " << sum2 << " ящиков!" < max) {
cout << " Осталось всего " << sum1 << " ящиков!" << endl;
sum -= num;
cout << " Сколько погрузить в " << i << " машину?" <> num;
}
i += 1;
if (num > max) cout << "Максимум 15!" << endl;
else if (sum == max)
break;
}
cout << "Вы погрузили все ящики!" << endl;
cin.get();
return 0;
}
Я вообще куда-то не туда пошёл)))
// грузим ящики с яблоками. Если не хватает ящиков грузим всё что осталось
#include
using namespace std;
int main()
{
setlocale(LC_ALL, “rus”);
int box = 654; // количество ящиков с яблоками
int unbox = 0; // сколько нужно выгрузить
int mach = 0; // количество машин
int i = 0;
cout <> mach; // вводим количество машин
for (;;) // бесконечный цикл погрузки (пока есть яблоки). Если не хватает ящиков последнюю машину забиваем до отвала
{
cout << "Есть " << box << " ящиков с яблоками! " << "Сколько загрузить ящиков в машину № " << i + 1 <> unbox; // определяем количество ящиков которые нужно загрузить
i++; // переходим к следующей машине
if ((box – unbox) < 0) // ящиков недостаточно? грузим что осталось и завершаем программу
{
cout << "Нет столько ящиков! Вы запросили " << unbox << ", осталось " << box << "!" << "\nВсе оставшиеся ящики погружены в машину № " << i << " Программа завершила работу!\n";
break;
}
box -= unbox; // грузим ящики
mach -= 1; // отправляем машину
if (mach == 0) // если машин нет завершаем цикл
break;
}
cout << "Погрузка завершена! Пока! Пока!\n";
system("PAUSE");
return 0;
}
Самостоятельное задание
#include “pch.h”
#include
using namespace std;
int main() {
setlocale(0, “”);
int visitors;
int time;
int allTime = 0;
int priceInHour = 50;
int sum;
cout <> visitors;
cout << endl;
int i;
for (i = 0; i < visitors; i++) {
cout << "Введитеr количество часов которое провел в зале " << i + 1 <> time;
cout << endl;
allTime += time;
}
sum = priceInHour * allTime;
cout << "Общая сумма, которую посетители заплатили за тренировки = " << sum << endl << endl;
return 0;
}
У вас во втором задании, там где “Показать код” ниже, ошибка, написано – “Для самостоятельно задания …”, там должно быть “Для самостоятельного задания…”. Сайт очень хорош, спасибо вам за старания :)
#include “pch.h”
#include
#include
#include
using namespace std;
int main() {
setlocale(LC_ALL, “rus”);
int arr[7] = { 0, 0, 0, 100, 0, 0, 0 };
cout << "Enter the number of visitors of the gym " <> arr[0]; //количество посtтителей
// arr3 самый молодой, arr4 самый старый, arr5 средний возраст, arr6 общая сумма для расчета средего…
for ( arr[1] = 0; arr[1] < arr[0]; arr[1]++ ) {
cout << " Enter the age " << arr[1] + 1 << " each visitor :" <> arr[2]; //возраст каждого посетителя
if (arr[4] arr[2]) {
arr[3] = arr[2];
}
arr[6] += arr[2];
}
arr[5] = arr[6] / arr[0];
cout << "=========================================================" << endl;
cout << " The most adult visitor – " << arr[4] << " years old " << endl;
cout << " Youngest visitor – " << arr[3] << " years old " << endl;
cout << " Average age of visitors " << arr[5] << " years" << endl;
}
#include
using namespace std;
int main(){
setlocale(LC_ALL, “rus”);
int a = 15;//общее количество ящиков на складе
int b = 0;//количество ящиков погружаемых в машину
for(int x = 1; ; x++){
a-= b;
if(a==0){
cout<<"Ящиков на складе не осталось";
break;
}
cout<<"Сколько ящиков загрузить в "<<x<<"-ю машину (ящиков на складе "<<a<>b;
while(1){
if(b>a){
cout<<"На складе нет столько ящиков, повторите ввод"<<endl;
cout<<"Сколько ящиков загрузить в "<<x<<"-ю машину (ящиков на складе "<<a<>b;
}
else {break;}
}
}
return 0;
}