Once you begin to tasks, therefore already know what for loop. Let's look at a few of the tasks, solution in which it is applied, and, thereby, strengthen the knowledge gained. Programming practice– the best way to deal with the material and store information for a long time.
1. Write a program, that will show on the screen the number of the square, entered by the user. The user has to decide for himself – exit the program or continue writing. (Tip – You must run an infinite loop, which provide for termination of his, upon the occurrence of certain conditions).
Show code
Задача: оператор 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;
}
В задаче, as you can see, provided for continuation of the work, вне зависимости в каком регистре введена буква Y (в нижнем или в верхнем).
Result:
2. In the gym every day comes a certain number of visitors. It should prompt the user to enter such data: how many people visited the gym for the day, enter the age of each visitor and ultimately show the age of the oldest and the youngest of them, as well as to calculate the average age of visitors.
Show code
Задача: оператор 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;
}
The variable min we initialized value 100, so the program can work properly. If it was initialized value 0, conditionif (age < minAge) would not satisfy the ever, asage is always more 0. Thus the value of variable minAge would always remain zero.
Result:
For the job yourself, We offer you to solve a similar task. Arrange the number of visitors entering the gym and the number of hours spent by each of them in the gym. As a result, calculate and display the total amount, which customers have paid for training.
3. In stock has a certain number of boxes of apples (in this example, 15). When the car arrives for pickup, ask the user to enter, how many boxes loaded into the first car, the second and so on, until there are no more boxes of apples. Provide case, When the user enters the number of boxes more, than there is in stock.
Show code
Задача: оператор 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" count in string 21 reduced per unit, so that the next iteration of the loop to show the correct serial number of the machine.
Result:
If you have questions, please contact us in the comments.
4.4
48
161 thoughts on “Tasks: A for loop in c ++”
#include #include using namespace std;
int main() { setlocale(LC_ALL, "rus"); int x = 0; int y = 0; int min = 1000; int max = 0; int sum = 0; int srd = 0;
cout <> x; int z = x; for (x; (x > 0); x--)
{ cout <> y; sum = sum + y; if (min > y) min = y;
if (max < y) max = y; } srd = sum / z; cout << "Максимальный возраст - " << max << endl; cout << "Минимальный возраст - " << min << endl; cout << "Средний возраст - " << srd << endl; _getch(); return 0; }
int main() { setlocale(LC_ALL, "rus"); int y = 0; int x = 0; cout << x; for ( ;;) { cout << y; x = x - y; if (x = 0) { break; } if (x < 0) { x = x + y; cout << "Введено недопустимо большое значение. Начните ввод для крайней машины заного. \n "; continue; }
else { x = x - y; cout << "У вас осталось " << x << " ящиков \n";
This is how I got problem N3: ________________________ #include #include using namespace std; int main () { int a,h,b,c,k,p,v,g,n; a=0;//ящикoв setlocale(LC_ALL, "rus"); b=0;//машини n=0;//ящики v=0;//лишились k=0; g=0; h=0; cout <<"Введите количество ящиков"<>a; cout <<"Введите количество машин"<>b;
for (c=1;c<=b;c++) { :check_1 cout <<"Сколько ящиков поставить в "<<c<<"-ю машину?"<>n; g+=n;// if (a<g) { g-=n; for (;;) { cout <<"Недостаточно ящиков"<<endl; cout <<"Сколько ящиков поставить в "<<c<<"-ю машину?"<>p; g+=p;// } if (a>g) { :check_1 } else g-=p; goto check; } } } if (g<a) { cout <<"Ошибка!Нехватка машин!У вас осталось "<<a-g<<" ящиков"<<endl; } else cout <<"15 ящиков распределено по машинах"<<endl;
Seeing this without markings – it's all the same, if only I could write all the code in one line. The code even in such a record will be compiled and executed, but that doesn't mean, that someone will read it.
Would you at least compile the code?, ran it through the computer, before showing it – there will be just a lot syntactic errors. Therefore, talk about “it worked” – won't suit you ;-).
Can… But pay attention to this, what always when selected in sequence (array, list, etc.) element according to some criterion: min, max, … any – есть 2 different approaches:
1. take as the initial value a value that is clearly not suitable for this (then, what is in your example … 100, 0, …);
2. take as initial value first sequence element, and it's too much to lead, starting from next, 2-it elements.
I solved the first problem differently. using namespace std; int main() { setlocale(LC_ALL, “rus”); int number = 0; bool Continue = 0; for (int i = 0; i < 1; i ) { cout <> number; cout << endl; cout << "Квадрат числа " << number << " = " << number*number << endl; cout <> Continue; if (Continue == 1) i–;
#include#include
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
int x = 0;
int y = 0;
int min = 1000;
int max = 0;
int sum = 0;
int srd = 0;
cout <> x;
int z = x;
for (x; (x > 0); x--)
{
cout <> y;
sum = sum + y;
if (min > y)
min = y;
if (max < y)
max = y;
}
srd = sum / z;
cout << "Максимальный возраст - " << max << endl;
cout << "Минимальный возраст - " << min << endl;
cout << "Средний возраст - " << srd << endl;
_getch();
return 0;
}
but the third task didn’t work out
#include#include
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
int y = 0;
int x = 0;
cout << x;
for ( ;;)
{
cout << y;
x = x - y;
if (x = 0)
{
break;
}
if (x < 0)
{
x = x + y;
cout << "Введено недопустимо большое значение. Начните ввод для крайней машины заного. \n ";
continue;
}
else
{
x = x - y;
cout << "У вас осталось " << x << " ящиков \n";
}
}
_getch();
return 0;
}
what's the mistake?
There is an error in your code at this point if (x = 0). I.e., in any case, x will not be negative, and will be constantly equal 0.
This is how I got problem N3:
________________________
#include#include
using namespace std;
int main ()
{
int a,h,b,c,k,p,v,g,n;
a=0;//ящикoв
setlocale(LC_ALL, "rus");
b=0;//машини
n=0;//ящики
v=0;//лишились
k=0;
g=0;
h=0;
cout <<"Введите количество ящиков"<>a;
cout <<"Введите количество машин"<>b;
for (c=1;c<=b;c++)
{
:check_1
cout <<"Сколько ящиков поставить в "<<c<<"-ю машину?"<>n;
g+=n;//
if (a<g)
{
g-=n;
for (;;)
{
cout <<"Недостаточно ящиков"<<endl;
cout <<"Сколько ящиков поставить в "<<c<<"-ю машину?"<>p;
g+=p;//
}
if (a>g)
{
:check_1
}
else
g-=p;
goto check;
}
}
}
if (g<a)
{
cout <<"Ошибка!Нехватка машин!У вас осталось "<<a-g<<" ящиков"<<endl;
}
else
cout <<"15 ящиков распределено по машинах"<<endl;
system ("pause");
return 0;
}
> This is how I got problem N3:
Seeing this without markings – it's all the same, if only I could write all the code in one line. The code even in such a record will be compiled and executed, but that doesn't mean, that someone will read it.
> This is how I got problem N3:
Would you at least compile the code?, ran it through the computer, before showing it – there will be just a lot syntactic errors. Therefore, talk about “it worked” – won't suit you ;-).
for (;;) – Where is the exit from the loop??
Or was he there, but the portal ate?
Why not write something like this? : int minAge = 100;
Can this be done :
int minAge = 0
if (age < minAge || age == 0)
Otherwise it’s not known, maybe life expectancy will increase in the future..
> Can this be done :
Can…
But pay attention to this, what always when selected in sequence (array, list, etc.) element according to some criterion: min, max, … any – есть 2 different approaches:
1. take as the initial value a value that is clearly not suitable for this (then, what is in your example … 100, 0, …);
2. take as initial value first sequence element, and it's too much to lead, starting from next, 2-it elements.
.. then set the condition for the second element..
Well, whose brains are twisted. In general, this is the attractiveness of this business..
I somehow managed the 3rd task differently
#include
using namespace std;
int main()
{
you nNumBoxPerCar, nNumBox=0, i=1, nOstatokBox=15;
for ( ;nNumBox < 15 ; i )
{
cout << "Сколько ящиков загрузить в машину " << i <> nNumBoxPerCar;
nNumBox = nNumBox + nNumBoxPerCar;
if (nNumBox >= 15)
{
nOstatokBox = (15 – nNumBox) + nNumBoxPerCar;
break;
}
}
cout << "Ящики закончились. Moreover, we managed to load the last machine: "
<< nOstatokBox << "\n";
}
I solved the first problem differently.
using namespace std;
int main()
{
setlocale(LC_ALL, “rus”);
int number = 0;
bool Continue = 0;
for (int i = 0; i < 1; i )
{
cout <> number;
cout << endl;
cout << "Квадрат числа " << number << " = " << number*number << endl;
cout <> Continue;
if (Continue == 1)
i–;
}
system(“pause”);
return 0;
}
task №3
awry, but the main thing is the meaning and the result…
#includeusing namespace std;
int main()
{
int i=0,a,b;
char x;
cout<<a;
for(;;)
{
i+=1;
cout<<i<<b;
if (a>b)
{
a-=b;
cout<<"Na sklade ostatok = "<<a<<endl;
}
else if (a<b)
{
cout<<"Na sklade otalos = "<<a<<endl;
cout<<"zagruzat - "<<a<<"jachikov?";
cout<<x;
if (x=='y')
{
cout<<"zagruzili ostatok - "<<a;
break;
}
else if (x=='n')
{
cout<<"izvenite za neudobstvo DOSVIDANIE";
}
}
else if (a==b)
{
cout<<"Na sklade ostalos = 0"<<endl;
break;
}
}
return 0;
}