Раз вы приступаете к задачам, значит уже знаете что такое цикл 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 уменьшается на единицу, чтобы при следующем шаге цикла показать правильный порядковый номер машины.
Результат:
При возникновении вопросов обращайтесь к нам в комментариях.
У вас не корректно сработает программа по третьей задаче, если кол-во загружаемых ящиков будет больше чем есть на складе.
cout kolLoadBox; kolBox = kolBox – kolLoadBox; у вас тут может получиться “-” cout << "Ящиков осталось на складе: " << kolBox << endl; if (kolBox <=0) break; например: kolBox = 15 первая машина запросила 10 kolBox = kolBox – kolLoadBox осталось 5 ящиков, следующая машина просит 7 у вас посчитается и на складе будет -2 ящика.
Лыжник, начав тренировки, в первый день пробежал n км. Каждый следующий день он увеличивал пробег на m% от пробега предыдущего дня. Сколько километров он пробежит за k дней.
Редактор сайта портит запись кода – съедает символы между открывающейся и закрывающейся угловыми скобками. Поэтому я 100 раз писал в разных темах: не пишите сюда свой код! Зачем вы сюда пишете код? Хотите похвастаться? Или хотите чтобы вас похвалили? Так хвалить вас не за что: код ваш … как и всех других учащихся – очень посредственный ;-). А если хотите чтобы ваш код покритиковал, то обращайтесь сюда: http://rus-linux.net/forum/viewforum.php?f=31
Наоборот, тут имеется ввиду , чтобы продолжить вы должны ввести именно ‘y’ или ‘Y’, если введете всё что угодно кроме ‘y’ или ‘Y’, то программа закончит выполнятся.
можно вот так написать, if (exit == ‘n’ && exit == ‘N’)
Дано натур число.Выбросить из записи этого числа цифру 3 ,оставив прежним порядок остальных чисел, если нет цифры 3,то вывести просто заданное число(помогите ,пожалуйста.
Вторая дополнительная и 3 задачи:
#include
using namespace std;
int main()
{
int base;
int power;
long long result=1;
cout<>base>>power;
for(int i=1;i<=power;i++)
{
result*base;
}
cout<<"Result is"<<result;
return 0;
}
У вас не корректно сработает программа по третьей задаче, если кол-во загружаемых ящиков будет больше чем есть на складе.
cout kolLoadBox;
kolBox = kolBox – kolLoadBox; у вас тут может получиться “-”
cout << "Ящиков осталось на складе: " << kolBox << endl;
if (kolBox <=0) break;
например: kolBox = 15
первая машина запросила 10
kolBox = kolBox – kolLoadBox
осталось 5 ящиков, следующая машина просит 7
у вас посчитается и на складе будет -2 ящика.
помогите сделать пожалуйста!
Лыжник, начав тренировки, в первый день пробежал n км. Каждый следующий день он увеличивал пробег на m% от пробега предыдущего дня. Сколько километров он пробежит за k дней.
KM = sum( i = 0, k-1, n * (1+0.01*m)**k )
И записать это циклом.
double n;
double m;
Int k, S;
cin>>n>>m>>k;
for (i = 1; i < =k; i++)
S=((n+m)+m)*k;
cout<<k;
return ;
}
Вы бы, прежде чем писать, проверили выполнением то, что пишете… :-(
double n;
double m;
Int k;
for (i = 1; i < k; i++) {
n += (n * m);
}
double km = 0., mn = 1.;
for( int i = 0; i < k; i++ ) {
km += n * mn;
mn *= ( 1. + .01 * m );
}
Задача N3
Строка 9,10
cout<>box;
Редактор сайта портит запись кода – съедает символы между открывающейся и закрывающейся угловыми скобками.
Поэтому я 100 раз писал в разных темах: не пишите сюда свой код!
Зачем вы сюда пишете код?
Хотите похвастаться?
Или хотите чтобы вас похвалили?
Так хвалить вас не за что: код ваш … как и всех других учащихся – очень посредственный ;-).
А если хотите чтобы ваш код покритиковал, то обращайтесь сюда:
http://rus-linux.net/forum/viewforum.php?f=31
Почему в первой задаче стоит знак не равенства не могу понять :( if (exit != ‘y’ && exit != ‘Y’).
Потому что если вы вводите что-нибудь, всё что угодно кроме ‘y’ или ‘Y’ (не ‘y’ и не ‘Y’) – то вы ещё не созрели для выхода из программы.
Наоборот, тут имеется ввиду , чтобы продолжить вы должны ввести именно ‘y’ или ‘Y’, если введете всё что угодно кроме ‘y’ или ‘Y’, то программа закончит выполнятся.
можно вот так написать, if (exit == ‘n’ && exit == ‘N’)
Привет! хотелась бы узнать где найти побольше задач?
Дано натур число.Выбросить из записи этого числа цифру 3 ,оставив прежним порядок остальных чисел, если нет цифры 3,то вывести просто заданное число(помогите ,пожалуйста.