КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Оператор цикла с предусловием
Программирование задачи Анализ алгоритмов, реализующих циклы с пред- и пост-условиями, позволяет сделать вывод, что их программирование (выполнение блоков проверки условия) возможно с использованием укороченного оператора условной передачи управления вида if(усл_выр) goto m. Однако современный стиль программирования не рекомендует использование оператора безусловной передачи управления. Поэтому составление программ требует использования специальных конструкций языка Си – операторов цикла, позволяющих реализовать каждую из полученных схем алгоритма – цикл с предусловием, цикл с постусловием, цикл с параметром. В Си существуют три оператора цикла. Каждый из них соответствует основному требованию структурирования – имеет один вход и один выход.
Предназначен для реализации в программе варианта цикла с предусловием – проверки текущего значения параметра цикла на соответствие диапазону изменения с реализацией тела цикла, если условие выполняется, и выходу из цикла при его невыполнении. Структура оператора while(усл_выр) { тело цикла } где while – ключевое слово (пока); усл_выр – выражение, определяющее проверку условия повторения цикла; () – ограничители выражения; тело цикла – совокупность повторно вычисляемых операторов; { } – ограничители тела цикла. Первая строка оператора называется заголовком цикла. Рис. 5.7. Развёрнутые изображения циклов: а – с предусловием, б – с постусловием, в – с параметром
Оператор выполняется следующим образом: · вычисляется условное выражение (усл_выр); · если выражение истинно (результат не равен нулю) – выполняется тело цикла и управление передается в заголовок для очередной проверки усл_выр; · если усл_выр ложно (результат равен нулю) – тело цикла не выполняется и управление передается оператору, записанному под ним. Выход из оператора цикла по результатам проверки условного выражения называется естественным (нормальным) выходом. Схема выполнения оператора while(усл_выр) ЛОЖЬ ИСТИНА { тело цикла }
Стрелки определяют последовательность работы оператора в зависимости от результатов проверки условного выражения – ИСТИНА или ЛОЖЬ. Например, фрагмент программы ... while(zi <= b) /* заголовок цикла */ { yi = sin(xi); /* вычисления в */ zi = 2.* yi; /* теле цикла */ } sum = 0.; ... предписывает повторение вычислений yi и zi пока zi <= b. Как только условие перестанет выполняться, произойдет нормальный выход из цикла – управление передастся оператору sum = 0. Правила записи и выполнения 1. В качестве усл_выр могут использоваться любые выражения Си. Арифметические, например (sin(b) + 0.5), (2 * c – d / f), (a) или простые (составные) логические выражения, например (а!= b), (sin(x) < b), (x <= a && x >= b). 2. Тело цикла может оформляться одним составным или одним простым оператором, например:
3. В теле цикла возможно использование специальных операторов break, goto, continue, обеспечивающих искусственный (принудительный) выход из цикла. Оператор break прекращает выполнение цикла и передает управление оператору, записанному непосредственно под телом цикла. Оператор goto m организует выход из цикла с передачей управления оператору, помеченному его меткой. Оператор continue прерывает выполнение тела цикла и возвращает управление заголовку цикла, например:
Первый фрагмент предписывает искусственный выход из цикла при выполнении в теле цикла условия c < a с передачей управления оператору d = 15. Второй – нарушает естественный порядок вычисления тела цикла при c < a с передачей управления оператору d=12., помеченному меткой k. Третий прерывает выполнение тела цикла по тому же условию, но управление возвращается заголовку цикла. 4. В теле цикла возможно использование других (вложенных) операторов цикла.
Вывод: оператор while позволяет программировать арифметические циклы с предусловием, например, представленные схемами рис. 5.4 (блоки 5, 6, 7, 8, 9); рис. 5.7а (блоки 5, 6, 7, 8), при условии, что начальное значение параметра цикла (блок 4) задается до входа в цикл, а изменение параметра (блок 8) осуществляется в теле цикла.
Дата добавления: 2014-01-07; Просмотров: 269; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |