756.48K
Категория: ПрограммированиеПрограммирование

Л11_Циклы

1.

1
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ОБРАЗОВАНИЯ
«СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ НАУКИ И ТЕХНОЛОГИЙ
ИМЕНИ АКАДЕМИКА М.Ф. РЕШЕТНЕВА»
КАФЕДРА ИНФОРМАТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
ДИСЦИПЛИНА: ПРОГРАММИРОВАНИЕ (С++)
ЛЕКЦИЯ: ЦИКЛИЧЕСКИЕ
ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ
ЧИТАЕТ СТАРШИЙ ПРЕПОДАВАТЕЛЬ
ФИЛИМОНОВА ОЛЬГА АЛЕКСАНДРОВНА

2.

2
Процесс называется циклическим, если он
содержит неоднократное выполнение одной и
той же последовательности действий.
Бывают циклы с проверкой условия в начале цикла, по
окончании цикла или внутри цикла с помощью
операторов передачи управления.
Выполнение цикла один раз называется итерацией.
Операторы цикла состоят из заголовка и тела цикла.
Заголовок цикла – некая конструкция, включающая в себя
зарезервированное слово. Тело цикла - один оператор
или блок, которые повторяются заданное количество раз.

3.

3
1) Выделить переменную цикла, от которой зависит
выполняется цикл или завершается
2) До цикла присвоить правильное начальное значение
переменной цикла
3) Построить условие при помощи переменной цикла,
при истинности которого цикл выполнялся бы
4) При каждой итерации изменять переменную цикла так,
что бы на некотором шаге цикл прекратился бы, т.е.
условие стало бы ложным
Построение цикла строится на основе 3 операторов:
while, do while, for.

4.

4
Цикл с предусловием
Применяется:
Если количество повторов заранее не известно, а известно
лишь условие при истинности которого цикл повторяется.
Синтаксис:
while(выражение)
один оператор или блок(1)
Выполнение:
Если выражение истинно – выполняются действия (1) - тело
цикла, если выражение ложно – управление передаётся
следующему оператору.

5.

5
Пример №1
Вычислить сумму натуральных
чисел, начиная от единицы
включительно
и
до
ста
включительно.
Переменная цикла:
натуральное число – n
Начальное число: n=1
Условие: n<=100
Изменение переменной:
увеличение на 1 (n++)
int n, summa;
n=1;
summa=0;
while(n<=100)
{
summa+=n;
n++;
}

6.

6
Пример №2
Дано
натуральное
число,
вычислить сумму цифр в
этом числе.
Переменная цикла:
число – n
Начальное значение:
n – вводится
Условие, при истинности
которого цикл выполняется:
n>0
Изменение переменной:
n/=10
int n, summa;
summa=0;
cout<<"n= ";
cin>>n;
while(n>0)
{
n=n%10;
summa+=n;
n/=10;
}

7.

7
Цикл с пост условием
Сначала выполняется тело цикла, потом условие. Цикл с
неизвестным количеством повторов. Известно лишь условие,
при истинности которого цикл повторится, а при ложности
прекратится
Синтаксис:
do
один оператор или блок(1)
while(выражение); //точка с запятой
Выполнение:
Сначала выполняется тело цикла - действия (1). Если
выражение истинно, то снова выполняется тело цикла. Если
выражение ложно, цикл прекращается и переход к
следующему оператору.

8.

8
Пример
Даны 3 стороны треугольника, вычислить периметр треугольника
#include<iostream>
using namespace std;
int main(void)
{
double a, b, c;
do
{
cout<<"Введите стороны треугольника: ";
cin>>a>>b>>c;
}
while(a+b<=c||a+c<=b||b+c<=a);
cout<<"Периметр: "<<a+b+c<<endl;
return 0;
}

9.

9
Цикл с предусловием
Применяется:
Используется, когда заранее известно количество повторений
цикла
Синтаксис:
for(инициализация(1); выражение(2); коррекция(4))
один оператор или блок(3)

10.

10
Синтаксис:
for(инициализация(1); выражение(2); коррекция(4))
один оператор или блок(3)
Выполнение цикла:
1) Один раз выполняется инициализация(1) - один оператор или
несколько разделённые запятой
2) Если выражение(2) истинно переход на пункт (3), если ложно цикл завершается и управление передаётся следующему за ним
оператору
3) Выполнение тела цикла (3)
4) Выполняется коррекция(4), один оператор или несколько
разделённые запятой, переход на пункт (2)

11.

11
Обычно в заголовок цикла помещают всё, что связано с
переменной цикла.
Любая из 3 частей заголовка цикла синтаксически может
отсутствовать, но обязательные точки с запятой должны быть.
Примеры использования цикла:
Организовать повтор цикла n раз
for(i=0; i<n; i++0) //(i=1; 1<=n; i++)
cout<<"i= "<<i<<endl;
Обратный отчёт
for(i=10; i>0; i--)
cout<<i<<" сек"<<endl;
cout<<"Пуск \nСчёт десятками:\n";
for(i=10; i<=100; i+=10)
cout<<i<<endl;

12.

12
Вычислить факториал числа (n!)
Ответ:
#include<iostream>
using namespace std;
int main(void)
{
int i, n;
double f;
cout<<"n= ";
cin>>n;
for(f=1, i=1; i<=n; i++)
f*=i;
cout<<"\nn!= "<<f<<endl;
return 0;
}

13.

13
Цикл называется вложенным, если он находится в теле
другого цикла.
Задача:
Используя 2 цифры, сформировать разнообразные
двухзначные числа и вывести их в следующем порядке
10 11 12 13 ... 19
20 21 22 23 ... 29
30 31 32 33 ... 39
............................
90 91 92 93 ... 99
int a, b;
for(a=1; a<10; a++)
{
for(b=0; b<10; b++)
cout<<a*10+b<<" ";
cout<<endl;
}

14.

14
Выполнение операторов вызывает скачок в вычислительном
процессе. Частое их использование ухудшает читаемость
программы, увеличивает вероятность ошибок. затрудняет её
модификацию.
Оператор break
Оператор continue
Оператор goto

15.

15
Применяется внутри циклов для его прерывания
Есть 2 способа использования:
1) Демонстрирует организацию цикла с условием
прерывания цикла внутри тела цикла.
for(;;)
{
................
оператор
................
if(условие выхода из цикла)
break;
оператор
................
}

16.

16
2) Демонстрирует наряду с общим условием цикла
использование особого условия выхода из цикла.
while(выражение)
{
................
оператор
................
if (особое условие выхода из цикла)
break;
оператор
................
}

17.

17
Применяется внутри тела цикла в составе условного
оператора и приводит к выполнению следующей итерации.
Оставшаяся часть текущей итерации пропускается:
while(выражение)
{
................
оператор
................
if(выражение)
continue;
оператор
................
}

18.

18
Используется для передачи управления внутри одной
функции от одного оператора другому, помеченному
меткой. goto не способствует структуризации программы.
Поэтому сводим к минимуму его использование.
goto входит в блок только через голову оператора:
for(....)
for(....)
for(....)
{
.................
if(условие ошибки)
goto M1;
}
..............
M1:
операторы
................

19.

19
Дано натуральное
простым.
число,
определить
является
#include<iostream>
using namespace std;
int main(void)
{
int n, i;
cout<<"\Число: ";
cin>>n;
for(i=2; i<n; i++) //i - возможный делитель
if(n%i==0)
break;
if(i==n)
cout<<"\nЧисло простое\n";
else
cout<<"\nЧисло не простое\n";
return 0;
}
ли
оно
English     Русский Правила