Мегаобучалка Главная | О нас | Обратная связь


Программирование циклов



2016-01-26 345 Обсуждений (0)
Программирование циклов 0.00 из 5.00 0 оценок




Цикл – многократное выполнение последовательности операторов (тела цикла) при соблюдении некоторого условия. В Фортране, как и в большинстве других процедурных языков программирования, различают три способа программирования циклов:

· цикл "с предусловием" или «цикл-пока»;

· цикл "с постусловием" или «цикл-до»

· цикл "с параметром".

 

Цикл "с предусловием" реализуется конструкцией DO WHILE ENDDO:

[имя:]DO WHILE (логическое _выражение)

БОК

END DO [имя]

Цикл "с предусловием" выполняется, пока истинно логическое выражение, определяющее условие повторения цикла. БОК образует тело цикла. Проверка истинности логического выражения происходит каждый раз перед выполнением тела цикла.

Оператор END DO можно писать как с пробелом, так слитно: ENDDO.

 

Пример 1. Табулирование функции y=sin(x) + x2 с использованием цикла с предусловием.

program Tabfunct1

reala,b,h,x,y

integer n

print *,'INPUT a,b,n: '

read *, a,b,n ! n шагов по Х на отрезке от a до b

write(*,'(6x,"x",16x,"y")')! Вывод шапки таблицы

x=a; h=(b-a)/n

do while (x<=b+1.0e-7) ! Цикл с предусловием

y=sin(x)+x*x

print *,x,' ',y

x=x+h ! Изменение аргумента функции

End do

End program

 

Цикл "с постусловием" отличается от цикла "с предусловием" тем, что проверка истинности логического выражения происходит после очередного выполнения тела цикла. Логическое выражение является условием окончания выполнения цикла. В Фортране не существует специальной конструкции цикла "с постусловием", но его можно реализовать, используя бесконечный цикл конструкции DO ... END DO следующим образом:

[имя:]DO

БОК

IF( логическое_выражение) EXIT

END DO [имя]

Здесь для прерывания работы цикла и передачи управления на следующий за циклом выполняемый оператор применяется оператор выхода из цикла EXIT. Если нужно про­пустить часть операторов цикла и перейти к началу тела цикла, то используется оператор возврата к началу цикла CYCLE. При этом управление передается операторам DO или DO WHILE. Операторы EXIT и CYCLE отдельно не применяются, а встраиваются в конструкции DO.

Пример 2. Табулирование функции y=sin(x) + x2 с использованием цикла с постусловием.

program Tabfunct2

reala,b,h,x,y

integer n

print *,'INPUT a,b,n: '

read *, a,b,n

write(*,'(6x,"x",16x,"y")')! Вывод шапки таблицы

x=a; h=(b-a)/n

do! Начало цикла

y=sin(x)+x*x

print *,x,' ',y

x=x+h

if(x>b+1.0e-7) exit!Условие выхода из цикла

End do

End program

 

Цикл "с параметром"в Фортране реализуется следующей конструкцией:

[имя:]DOр = рs, ре [, h]

БОК

END DO [имя]

Параметр р также называют переменной цикла, которая может иметь целый тип, стандартный вещественный или вещественный тип двойной точности. Здесь ps –начальное значение параметра цикла, pe – конечное значение параметра цикла, h – шаг изменения параметра цикла. Параметры рs, рe и шаг h могут быть арифметическими выражениями, которые приводятся к типу параметра цикла р. При отсутствии шага h его значение устанавливается равным единице.

Исполнение цикла с параметром происходит следующим образом:

1) вычисляются значения ps, ре и h;

2) параметру p присваивается значение ps;

3) если при h > 0 истинно отношение р <= ре (при h<pe истинно отношение р >= ре), то выполняется тело цикла (БОК) иначе происходит выход из цикла;

4) значение параметра цикла изменяется на величину шага, происходит возврат на выполнение п.3.

При использовании цикла с параметром необходимо учитывать следующие обстоятельства:

- значения ps, ре и h вычисляются только один раз при входе в цикл и внутри цикла меняться не могут;

- в теле цикла нельзя изменять значение параметра p;

- не следует входить внутрь цикла, минуя его заголовок (оператор DO).

Пример 3. Табулирование функции y=sin(x) + x2 с использованием цикла с параметром.

program Tabfunc

real a,b,x,y

integer n

print *,'INPUT a,b,n:

read *, a,b,n write(*,'(6x,"x",16x,"y")')

do x=a,b,(b-a)/n

y=sin(x)+x*x

print *,x,' ',y

End do

End program

 

Упражнения

1. Используя циклы с предусловием, с постусловием, с параметром составить три варианта программы вычисления N!.

2. Составить программу, по которой будет вводиться последовательность целых чисел до тех пор, пока не встретится число 9999. Подсчитать количество введенных значений и их сумму.

3. Вычислить сумму квадратов всех целых чисел, попадающих в интервал (ln x, ex), x > 1.

4. Вычислить количество точек с целочисленными координатами, попадающих в круг радиуса R (R > 0) с центром в начале координат.

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

6. Дано целое n > 2. Напечатать все простые числа из диапазона [2, n].

7. Рекуррентная последовательность определена следующим образом:

Для данного натурального n получить значение an.

8. Дана последовательность:

Вычислить произведение элементов с 1-го по 20-й.

9. Используя рекуррентный подход, вычислить сумму многочлена 10-й степени по формуле Горнера, где x –– данное вещественное число.

10x10 + 9x9 + 8x8 + ... + 2x2 + x = (((((((((10x + 9)x + 8)x + ... + 2)x + 1)x.

10. Для данного вещественного x и натурального N вычислить цепную дробь: x / (1 + x / (2 + x / (3 + x / ( ... / (N + x))...).

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

превышающие значение 10–5.

11. Функцию можно вычислить как предельное значение последовательности, определяемой рекуррентной формулой

Начальное значение y0 задается произвольно (желательно ближе к ). За приближенное с точностью e значение корня берется первое yk, для которого выполняется условие: |ykyk-1| < e. Составить программу.

 

 



2016-01-26 345 Обсуждений (0)
Программирование циклов 0.00 из 5.00 0 оценок









Обсуждение в статье: Программирование циклов

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (345)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)