Раз вы приступаете к задачам, значит уже знаете что такое цикл 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() { setlocale(LC_ALL, “RUS”);
int apple_box = 15, box_export;
for (int i; true; i++) { if (apple_box == 0) { cout << "У вас закончились ящики, программа закрывается, пока :D" << endl; break; } cout << "У вас есть " << apple_box << " ящиков, сколько желаете загрузить в " << i + 1 << "машину" <> box_export; if (box_export > apple_box) { cout << "У вас нету столько ящиков" << endl; continue; } apple_box -= box_export;
}
}
void kvadrat() { setlocale(LC_ALL, "RUS");
int a, result;
for (;;) { cout << "Введите число для возведения в квадрат: " <> a; a = a * a;
Изи ласт таргет ес #include using namespace std; int main() { int kol = 15; int a = 0; int b = 0; for (;;) { cout << "skolko yashikov pogruzit" <> a; b += a; while (b > 15) { cout << "error"; return 0; } while (b == 15) { cout << "vse yashiki pogrusheny"; return 0; }
int main() { int abox , i = 0 , inbox; cout <> abox; for (;;){ i += 1; cout << "How many boxes you want input in " << i <> inbox; if (inbox > abox){ cout << "Invalid value , you entered number grater than you have boxes. "; break; } abox -= inbox; if (abox < 0){ cout << "Invalid value , you entered number grater than you have boxes. "; break; } if (abox == 0){ cout << "Success^-^"; } cout << "Remaind boxes : " << abox << "\n"; } return 0; }
int main() { int a = 15; //наличие ящиков на складе int x; //итератор цикла
for (int b;a > 0;x++){ //пока ящиков больше 15 – цикл работает cout <> b; // запрашиваем кол-во ящиков для изъятия
if (b > a){ //если запрашиваем больше чем есть в наличии cout << "Only " << a <<" box left"<< endl; } if (b <= a){ //если запрашиваем (допустимое кол-во) ящиков a = a – b; //отнимаем от склада ящики и присваиваем складу новое кол-во } if (a == 0){ //если забрали все имеющиеся ящики cout << "stock is empty, you took all boxes\n"; //сообщаем об этом break; //программа заканчивается } }
#include using namespace std; int main() { int kilk = 0; int age = 0; int max = 0; int min = 100; float ser = 0; int sum = 0;
cout <> kilk;
for (int i = 0;i < kilk;i++) { cout << "Enter age of " << i + 1 <> age; if (age max) max = age;
sum += age;
} ser = sum / kilk; cout << "Average age of customers : " << ser << endl; cout << "Min age of castomers : " << min << endl; cout << "Max age of customers : " << max << endl; }
#include
using namespace std;
int main() {
setlocale(LC_ALL, “RUS”);
int apple_box = 15, box_export;
for (int i; true; i++) {
if (apple_box == 0) {
cout << "У вас закончились ящики, программа закрывается, пока :D" << endl;
break;
}
cout << "У вас есть " << apple_box << " ящиков, сколько желаете загрузить в " << i + 1 << "машину" <> box_export;
if (box_export > apple_box)
{
cout << "У вас нету столько ящиков" << endl;
continue;
}
apple_box -= box_export;
}
}
void kvadrat() {
setlocale(LC_ALL, "RUS");
int a, result;
for (;;) {
cout << "Введите число для возведения в квадрат: " <> a;
a = a * a;
if (a == 0) {
break;
}
cout << "Результат: " << a << endl;
}
}
void sportzal() {
setlocale(LC_ALL, "RUS");
int users_count = 0, users_age = 0, sum_age = 0, avgAge = 0, minAge = 100, maxAge = 0;
cout << "Введите количество посетителей" <> users_count;
for (int i = 0; i < users_count; i++) {
cout << "Введите возраст " << i + 1 << " посетителя: " <> users_age;
sum_age += users_age;
if (users_age > maxAge) {
maxAge = users_age;
}
else if (users_age < minAge) {
minAge = users_age;
}
}
avgAge = sum_age / users_count;
cout << "Средний возраст " << avgAge << endl;
cout << "Максимальный возраст " << maxAge << endl;
cout << "Средний возраст " << minAge << endl;
}
Не понимаю как зациклить если вводится больше чем есть на складке( памагити…(
#include
using namespace std;
int main()
{
setlocale(LC_ALL, “rus”);
int i = 0; //сколько отгрузить
int after = 0; //сколько осталось после погрузки
for (int box = 15; box > 0; box – i)
{
cout << " Сколько ящиков отгрузить? " <> i;
if (i > box)
{
cout << " Всего на складе 15 ящиков, не выебуйся, чертила " << endl;
}
else
{
after = box -= i;
cout << " Ящиков осталось " << after << endl;
}
if (after == 0)
{
cout << "У вас не осталось ящиков " << endl;
break;
}
}
return 0;
}
А ты тоже, когда нех делать меняешь подзаголовки на сайтах через консоль, или я один такой?
блиииииииииин, только сейчас вспомнил про “всего на складке…” простите
Изи ласт таргет ес
#include
using namespace std;
int main()
{
int kol = 15;
int a = 0;
int b = 0;
for (;;) {
cout << "skolko yashikov pogruzit" <> a;
b += a;
while (b > 15) {
cout << "error";
return 0;
}
while (b == 15) {
cout << "vse yashiki pogrusheny";
return 0;
}
}
}
// sad:(
#include
using namespace std;
int main() {
int abox , i = 0 , inbox;
cout <> abox;
for (;;){
i += 1;
cout << "How many boxes you want input in " << i <> inbox;
if (inbox > abox){
cout << "Invalid value , you entered number grater than you have boxes. ";
break;
}
abox -= inbox;
if (abox < 0){
cout << "Invalid value , you entered number grater than you have boxes. ";
break;
}
if (abox == 0){
cout << "Success^-^";
}
cout << "Remaind boxes : " << abox << "\n";
}
return 0;
}
Задача №3
int main()
{
int a = 15; //наличие ящиков на складе
int x; //итератор цикла
for (int b;a > 0;x++){ //пока ящиков больше 15 – цикл работает
cout <> b; // запрашиваем кол-во ящиков для изъятия
if (b > a){ //если запрашиваем больше чем есть в наличии
cout << "Only " << a <<" box left"<< endl;
}
if (b <= a){ //если запрашиваем (допустимое кол-во) ящиков
a = a – b; //отнимаем от склада ящики и присваиваем складу новое кол-во
}
if (a == 0){ //если забрали все имеющиеся ящики
cout << "stock is empty, you took all boxes\n"; //сообщаем об этом
break; //программа заканчивается
}
}
int a;
cout <> a;
int help = 5352;
int max = 0;
int min = 0;
float medium = 0;
int big;
int b = 0;
b = a;
int c;
for (int i = 0;i < b;i++)
{
cout << "Введите возвраст" << i <> c;
if (help == 5352)
{
min = c;
}
help = 12;
if (c max)
{
max = c;
}
medium += c;
}
cout << "Max" << max << endl;
cout << "Min" << min << endl;
cout << "Middle" << float(medium/a);
#include
using namespace std;
int main()
{
int kilk = 0;
int age = 0;
int max = 0;
int min = 100;
float ser = 0;
int sum = 0;
cout <> kilk;
for (int i = 0;i < kilk;i++) {
cout << "Enter age of " << i + 1 <> age;
if (age max)
max = age;
sum += age;
}
ser = sum / kilk;
cout << "Average age of customers : " << ser << endl;
cout << "Min age of castomers : " << min << endl;
cout << "Max age of customers : " << max << endl;
}