Практическое занятие №18

HАИМЕНОВАНИЕ: Составление и отладка программ с применением операторов цикла

1.ЦЕЛЬ РАБОТЫ: Научится использовать циклические операторы

2.ПОДГОТОВКА К ЗАНЯТИЮ:

2.1. Изучить предложенную литературу.

2.2. Подготовить бланк отчёта.

3.ЛИТЕРАТУРА:

3.1 Белов В.В., Чистякова В.И. Программирование в Delphi: процедурное, объектно-ориентированное, визуальное. Учебное пособие. – М.: Горячая линия – Телеком, 2009

3.2 Голицына О.Л., Попов И.И. Основы алгоритмизации и программирования. – Форум, 2010

3.3Семакин И.Г., Шестаков А.П. Основы алгоритмизации и программирования. – М.: Издательский центр «Академия», 2008

3.4Семакин И.Г., Шестаков А.П. Основы программирования. – М.: Издательский центр «Академия», 2008

4. ПЕРЕЧЕНЬ ОБОРУДОВАНИЯ И ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ:
4.1. Персональный IBM PC.

5.ЗАДАНИЕ:

5.1 Используя циклы while, do - while и for, написать три варианта программы получения на экране таблицы синусов для значений аргумента в диапазоне от 0 до π/2 с заданным числом шагов.

5.2 Вычислить и вывести все члены числового ряда

значение которых превышает 10 в -5.

5.3 Напечатать в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр.

6. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ:

6.1 По предложенной литературе изучить необходимый материал;

6.2 Выполнить задания практического занятия и записать листинг программы;

6.3 Дать ответы на контрольные вопросы;

7. СОДЕРЖАНИЕ ОТЧЕТА:

7.1 Наименование и цель работы

7.2 Код программы

7.3 Записать результат (листинг) выполненых заданий.

7.4 Ответы на контрольные вопросы

7.5 Вывод о проделанной работе

8. КОНТРОЛЬНЫЕ ВОПРОСЫ:

8.1 Зачем нужен фаил l i m i t s. h?

8.2 Когда программа будет «топтаться на месте»?

8.3 Что делает-«i++»?

8.4 Отличие do... while от repeat... u n t i l?

ПРИЛОЖЕНИЕ:

В Си, как и в Паскале, существуют все три типа операторов цикла: цикл с предусловием, цикл с постусловием и цикл с параметром.

Цикл с предусловием. Формат оператора цикла с предусловием:

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

Цикл повторяет свое выполнение, пока значение выражения отлично от нуля, т. е. заключенное в нем условие цикла истинно.

В качестве примера использования оператора цикла рассмотрим программу вычисления факториала целого положительного числа N!. Сопоставим программу решения этой задачи, написанную

на Паскале, с программой на Си.

Обратите внимание на операторы в теле цикла. Конечно, и в Си-программе можно было написать два оператора присваивания, объединив их фигурными скобками. Однако использованный способ записи более лаконичен и более характерен для Си. Этот же самый оператор можно было записать еще короче: F*=i++.

При практическом использовании этой программы не следует забывать, что факториал - очень быстро растущая функция, и поэтому при определенных значениях N выйдет из диапазона, соответствующего типу long int. Задав для переменной F тип unsigned long, можно сдвинуть эту границу, но этого может оказаться недостаточно. Предлагаем в качестве самостоятельного задания исследовать предельные значения N для двух указанных типов переменной F.

Интересно свойство следующего оператора: while (1);

Это бесконечный пустой цикл. Использование в качестве выражения константы 1 приводит к тому, что условие повторения цикла все время остается истинным и работа цикла никогда не заканчивается. Тело в этом цикле представляет собой пустой оператор. При исполнении такого оператора программа будет «топтаться на месте».

Рассмотрим еще один пример использования оператора цикла while. Вернемся к задаче итерационного вычисления суммы гармонического ряда: 1 +1/2+1/3+... с заданной точностью ε. Снова сопоставим программу на Си с программой на Паскале.

Файл l i m i t s. h, подключаемый препроцессором, содержит определения предельных констант для целых типов данных. В частности, константа с именем INT_MAX равна максимальному значению типа i n t в данной реализации компилятора. Если для типа int используется двухбайтовое представление, то INT_MAX=327 67.

В этом же заголовочном файле определены и другие константы:

INT_MIN=-327 68; LONG_MAX=2147483647 И Т.Д.

Цикл с постусловием. Формат оператора цикла с постусловием:

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

Цикл выполняется до тех пор, пока выражение отлично от Нуля, т.е. заключенное в нем условие цикла истинно. Выход из Цикла происходит после того, как значение выражения станет ложным, иными словами равным нулю. Таким образом, в отличие от оператора repeat... u n t i l, используемого в Паскале, где в конце пишется условие выхода из цикла, в операторе do... while

в Си в конце пишется условие повторения цикла. В качестве примера рассмотрим программу вычисления N!, в которой используется цикл с постусловием, и сопоставим ее с аналогичной программой на Паскале.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: