Главная страница

программирование. ПП-Лаб4. Решение задач с помощью циклов Теоретические сведения


Скачать 26.75 Kb.
НазваниеРешение задач с помощью циклов Теоретические сведения
Анкорпрограммирование
Дата08.05.2022
Размер26.75 Kb.
Формат файлаdocx
Имя файлаПП-Лаб4.docx
ТипРешение
#518134

Тема: Цикл на C++. Решение задач с помощью циклов
Теоретические сведения:

Циклы чрезвычайно важны в программирования на C++, да и в остальных языках. Начнем с теории.

Цикл — это повторение одного и того же участка кода в программе. Последовательность действий, которые повторяются, называюттелом цикла. Один проход цикла — это шаг или итерация. Переменные, изменяющиеся внутри цикла и влияющие на его окончание, называютсяпараметрами цикла.

В C++ предусмотрены три оператора, реализующих циклический процесс: while,do..while и for. Рассмотрим каждый из них.

Оператор с предусловием (while)

Он работает следующим образом. Вычисляется значение выражения. Если оно истинно, то выполняется оператор. В противном случае цикл заканчивается. Если состоит более чем из одного оператора, необходимо использоватьсоставной оператор:

while условие
{
оператор_1;
оператор_2;

оператор_n;
}

Рассмотрим пример. Пусть нам необходимо составить программу, которая в зависимости от возраста пользователя определяла сколько лет ему осталось до выхода на пенсию. При условии, что пенсионный возраст наступает в 56 лет.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

#include "stdafx.h"
#include
using namespace std;
int main ()
{
int x, y, i, pen; //описаваем нужные переменные
x=0; //стартовое значение переменной
y=56; //определяем пенсионный возраст
while (x<=3) //пока параметр цикла не превышает конечное значение.
//выполнять тело цикла
{
cout<<"How old are you? \n";
cin>>i;
pen=y-i;
cout<<"Remained until retirement (years) = "<
x++; //изменение параметра цикла (аналогично x=x+1 (расмотрим в последующих уроках))
}
system ("pause");
return 0;
}

Вот результат работы программы



Цикл с постусловием (do…while)

Иногда возникает необходимость, чтобы тело цикла выполнилось хотя бы один раз, но условие не позволяет этому случится. Вот именно тут нам поможет цикл с постусловие do…while. Который реализован следующей конструкцией:

do оператор while (выражение);

Работает цикл следующим образом. В начале выполняется оператор, затем вычисляется значение выражения. Если оно истинно, оператор тела цикла выполняется еще раз.

Рассмотрим код на примере прошлой программы, изменив некоторые строки.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

#include "stdafx.h"
#include
using namespace std;
int main ()
{
int x, y, i, pen; //описаваем нужные переменные
x=0; //стартовое значение переменной
y=56; //определяем пенсионный возраст
do
{
cout<<"How old are you? \n";
cin>>i;
pen=y-i;
cout<<"Remained until retirement (years) = "<
x++; //изменение параметра цикла (аналогично x=x+1)
}
while (x<=-1); //условие ложно, но цикл выполняется 1 раз
system ("pause");
return 0;
}

Цикл с параметром (for)

Данный цикл можно представить такой конструкцией;

for (начальные_присваивания; выражение; приращение) оператор;

Здесь начальные_присваивания — оператор или группа операторов, применяемые для присвоения начальных значений величинам используемым в цикле; выражение — определяет условие выполнения цикла, если оно истинно, то цикл выполняется; приращение — оператор, который выполняется после каждого шага (прохода) по телу цикла; оператор — любой оператор.

Давайте на примере задачи рассмотрим цикл с параметром. Нам необходимо посчитать сумму чисел от 1 до 500. Делаем:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

#include "stdafx.h"
#include
using namespace std;
int main ()
{
int i; //определяем переменную
int sum = 0;
for (i=1; i<=500; i=i+1) // задаем начальное значение, конечное 500, шаг цикла
{
sum = sum + i;
}
cout << "The sum of the numbers from 1 to 500 = " <system ("pause");
return 0;
}

 

Задания для выполнения:

  1. Найдите все четырехзначные числа, сумма цифр каждого из которых равна 15.

  2. Написать программу, выводящую факториал числа (произведение чисел от 1 одного до n), заданного с клавиатуры.

  3. Составить программу, которая выводит таблицу квадратов целых чисел от 1 до 10.

  4. Написать программу, которая выводит на экран таблицу умножения на k (k вводится с клавиатуры).

  5. Для заданного натурального числа n найти такое наименьшее число k, что к!>=n.


написать администратору сайта