Лабораторная работа № 3. Программирование с использованием циклов
Цель работы: изучение операторов организации циклов, приемов создания программ, обеспечивающих выполнение циклических процессов
Объем работы: 4 часа
Теоретическая часть
Циклическая структура процесса вычислений определяет, что для получения результата некоторые действия необходимо выполнить несколько раз.
Для реализации циклических процессов используют операторы циклов. В теории программирования выделяют несколько основных видов циклических конструкций:
· счетный цикл (рисунок 3,а);
· цикл-пока (рисунок 3, б);
· цикл-до (рисунок 3, в).
Рисунок 3 - Структура циклов, реализованных в С++:
счетный цикл (а), цикл-пока (б) и цикл-до (в)
Счетный цикл. Счетными называются циклы, в которых количество повторений заранее известно или легко определяется. Примерами подобных циклов являются определение значения степени числа, факториала некоторого числа, суммы определенного числа членов некоторой последовательности и т.д.
В С++ оператор счетного цикла for имеет следующий систаксис:
for (<Выражение1>;<Выражение2>;<Выражение3>)<Оператор>;
где:
Выражение1 – инициализирующее выражение; представляет собой последовательность описаний, определений и выражений, разделенных запятыми. Выполняется только один раз в начале цикла и задает начальные значения переменным цикла. Может отсутствовать, при этом точка с запятой остается.
Выражение2 –выражение условия; определяет условие завершения цикла, в частности, предельное значение параметра цикла. Может отсутствовать, при этом точка с запятой остается.
Выражение3 – список выражений, которые выполняются на каждой итерации цикла после тела цикла, но до следующей проверки условия. Обычно определяют изменение параметра цикла. Может отсутствовать.
Оператор – тело цикла. Может быть любым оператором С++, в том числе и составным оператором (блоком операторов). Составной оператор применяется, если тело цикла содержит более одного простого оператора. Оператор тела цикла может отсутствовать, в этом случае вмесо него ставится точка с запятой.
Примеры операторов счетного цикла
1. for(int i=0,float s=0; i<n; i++,s+=i); - отсутствует тело цикла
2. for(int i=0,float s=0;i<n;i++)s+=i; - есть все компоненты
3. int i=0;float s=0;
for(;i<n;s+=i++); - отсутствует инициализирующее выражение и тело цикла
4. for(;i<n;)s+=i++; ++); - отсутствует инициализирующее выражение
5. int i;float s; s=0;
for(i=n; i>0;i--) s=s+i;
6. for(;;); - бесконечный цикл.
Пример 1. Разработать программу вычисления суммы n первых натуральных чисел. n вводится с клавиатуры.
Сумма определяется методом накопления. Количество суммируемых чисел известно, поэтому используем цикл с заданным количеством повторений. На каждой итерации цикла к сумме будем добавлять переменную цикла, которая будет изменяться от 1 до n. Перед циклом переменную суммы необходимо обнулить. На рисунке 4 приведена схема алгоритма программы.
Рисунок 4 – Схема алгоритма вычисления суммы n натуральных чисел
Текст программы приведен ниже:
#include "stdafx.h"
#include <stdio.h>
int main()
{ int i,n,s;
puts(“Input n”);
scanf(“%d”,&n);
for (i=1,s=0;i<=n;i++) s+=i;
printf("Sum=%5d n=%4d\n",s,n);
return 0;
}
Итерационные циклы.Итерационными называются циклы, в которых количество повторений заранее неизвестно, а определяется некоторой целевой функцией. В частности, это может быть точность вычислений. Примерами подобных циклов являются нахождение суммы бесконечного ряда, значения интеграла на отрезке, длины кривой и т.д. В С++ итерационные циклы реализуются с помощью двух видов циклов: цикла-пока и цикла-до.