Главная
Регистрация
Вход
Суббота
23.11.2024
01:12
Приветствую Вас, Гость | RSS

Меню сайта

Друзья сайта

Категории раздела
1. Основы работы в среде C++ Builder.Основы языка Си++ [9]
2. Операторы ветвления и операторы передачи управления [4]
3. Операторы цикла и операторы передачи управления [5]
4. Одномерные массивы [3]
5. Многомерные массивы [3]
6. Указатели.Динамическое распределение памяти [6]
7. Отладка программы [3]
8. Функции [8]
9. Строки [5]
10. Функция Main [2]
11. Типы данных,определяемые пользователем [5]
12. Потоки ввода/вывода [7]
13. Основы объектно-ориентированного программирования [5]
Приложения [11]

Форма входа

Наш опрос
Оказался ли Вам полезным наш сайт?
Всего ответов: 464

Пользователи

Онлайн всего: 13
Гостей: 13
Пользователей: 0

 Каталог статей 
Главная » Статьи » Лекции по C++ » 3. Операторы цикла и операторы передачи управления

PDA-версия страницы

1. Организация циклов с помощью операторов if и goto

Организация циклов с помощью операторов if и goto

Циклы используются для организации многократно повторяющихся вычислений. Любой цикл состоит из тела цикла, то есть тех операторов, которые выполняются несколько раз, начальных установок, модификации параметра цикла и проверки условия продолжения выполнения цикла, которое записывается в виде логического выражения (рис. 2.1). Выход из цикла может быть организован как при истинности выражения – «Да», так и при его неистинности «Нет» (на рис. 2.1 лишь пример выхода по – «Нет»).

Один проход цикла называется итерацией. Проверка условия выполняется на каждой итерации либо до тела цикла (тогда говорят о цикле с предусловием), либо после тела цикла (цикл с постусловием). Разница между ними состоит в том, что тело цикла с постусловием всегда выполняется хотя бы один раз, после чего проверяется, надо ли его выполнять еще раз. Проверка необходимости выполнения цикла с предусловием делается до тела цикла, поэтому возможно, что он не выполнится ни разу.



Рис. 3.1, Структурные схемы операторов цикла: а – цикл с предусловием; б – цикл с постусловием

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

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

Цикл завершается, если условие его продолжения не выполняется. Передавать управление извне внутрь тела цикла, минуя его заголовок, не рекомендуется, так как параметры цикла могут быть не определены.

Рассмотрим пример, который можно использовать для решения задания 1. Требуется вычислить арифметическое выражение, содержащее бесконечную сумму:



Для инициализации вычислений переменной n присваивается начальное значение 0 и переменной F также присваивается 0.  В цикле переменная n после каждого вычисления выражения, стоящего под знаком суммы должна изменяться по формуле n = n + 1. Таким образом, n – счетчик цикла. Если бы был конечный верхний предел суммы, то условием завершения цикла было бы равенство n конечному пределу. Но в данном случае предел бесконечный и, следовательно, F может быть вычислена только приближенно.

Для этого вводится понятие погрешности вычисления e. Истинную погрешность вычислений найти можно аналитически, но не для всех выражений. Поэтому воспользуемся приближенными методами оценки погрешности. Один из вариантов такой оценки – отбросить все слагаемые, абсолютная величина которых меньше e. Конечно, это не та e, которая близка к истинной погрешности вычислений, но зато такая оценка универсальна (для любого выражения). Понятно, что истинная погрешность всегда больше e. Поэтому e следует выбирать меньше ожидаемой истинной погрешности раз в 10. В большинстве случаев это оправданно. Хотя, конечно, анализ выражения под знаком суммы никогда не помешает.

Переменная F, то есть сумма должна накапливаться с каждым циклом, для этого слагаемые, содержащие в том или ином виде n, складываются с переменной F и результат заносится также в F.

Цикл  с постусловием для приведенного выше выражения будет выглядеть так:

n=0; F=0;eps=0.001;  //инициализация переменных

// переменную eps в задании 3 следует вводить с клавиатуры

m1: Fp=1.0/n;             //вычисление выражения под знаком суммы

        F=F+Fp;               //накопление суммы

        n++;                      //изменение переменной цикла

if (Fp>=eps) goto m1;



Здесь eps – погрешность e;

Переменная Fp вводится, чтобы при анализе условия не вычислять выражение повторно. После выхода из цикла переменная F будет содержать сумму вычисленную приближенно. Можно также контролировать число циклов n с целью защиты от ошибок программирования. Обычно это делают при отладке программы. Если число циклов программирования слишком велико (например, n>100000) можно выйти из цикла по этому условию. Для этого в последней строке программы можно связать 2 условия логическим оператором:

if (Fp>=eps & n<=100000) goto m1;
Категория: 3. Операторы цикла и операторы передачи управления | Добавил: Admin (10.09.2011)
Просмотров: 10058 | Комментарии: 1 | Рейтинг: 0.0/0
Всего комментариев: 1
1 sidorovkg  
0
"Китайская Лапша" на С++? Узнал ОЧЕНЬ много нового и именно здесь.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Помочь сайту!
рублей WMR
WebMoney на кошелек R407507742179

Партнёры сайта

Закладки

Поиск по сайту

Copyright H-L-L.RU © 2024
Сделать бесплатный сайт с uCoz