Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Obschy_kurs / Fortran / Metod_Lr4_Fortran.doc
Скачиваний:
43
Добавлен:
21.02.2016
Размер:
124.93 Кб
Скачать
  1. Операторы цикла

В Фортране 90/95 существуют два вида циклов, организуемых с помощью соответствующих операторов:

- оператор цикла с параметром do … end do;

- оператор цикла с предусловием do while … еnd do.

    1. Оператор цикла do … end do

В общем виде оператор do … end do имеет следующий вид:

[имя:] do x = хн , хк [, х]

тело цикла

end do[имя], где

имя- имя оператора; если оно присутствует, то должно появляться в операторах do и end do;

x - переменная цикла целого или вещественного типа;

хн, хк, х - начальное, конечное значения и шаг изменения переменной цикла, в качестве которых могут использоваться константы, переменные, арифметические выражения целого или вещественного типа.

Количество повторений цикла N вычисляется по формуле:

Например, при хн=5, хк=7, х=0,15 N=14

Обратите внимание:

- шаг х не может равняться нулю;

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

- в цикле "с параметром" запрещено в теле цикла изменять значение переменной цикла.

    1. Оператор цикла do while … end do

В общем виде оператор do whileend do имеет следующий вид:

[имя:] do while (<условие>)

тело цикла

end do[имя], где

имя- имя оператора; если оно присутствует, то должно появляться в операторах do while и end do;

<условие> - логическое выражение – условие выполнения цикла.

Цикл с предусловием выполняется до тех пор пока <условие> принимает значение ИСТИНА. Если при первой же проверке <условие> примет значение ЛОЖЬ, то тело цикла ни разу не выполнится.

  1. Программирование задач циклической структуры

Рассмотрим на примере основные этапы решения задач циклической структуры.

Пример 1. При течении идеального газа отношение плотности газа  к плотности торможения 0 выражается следующим уравнением

,

где  - показатель адиабаты, М - число Маха.

Вывести в файл пары значений М и (М) с шагом М=0,1 в диапазоне изменения М: 0М5, для показателя адиабаты =1,4.

Примечание: числом Маха называется отношение скорости тела относительно газа или скорости газа относительно неподвижного наблюдателя к скорости звука в газе; отношение теплоемкости газа при постоянном объеме к теплоемкости при постоянном давлении называется показателем адиабаты.

Введем обозначения: Mн – начальное значение, Mк – конечное значение, M – шаг изменения для числа Маха M.

I Математическое описание задачи

Дано: Mн=0, Mк=5, M=0,1.

Основные зависимости, необходимые для решения задачи:

(1)

Ограничения: Зависимость (1) выполняются для значений M[Mн, Mк] c шагом M.

Найти: для всех значений M из заданного интервала.

II Схема алгоритма приведена на рис. 3.


III. Таблица идентификации переменных и их типов

Математическая переменная

Машинная переменная

Тип

M

M

real

Mn

Mk

M

dM

ЕM

γ

G

Рис. 3. Пример схемы алгоритма

IV Текст программы на языке Фортран 90/95

! Пример программы

! циклической структуры

! Выполнил ст. 219 гр. Иванченко А. Е.

Program Primer_1

implicit none

real :: M, EM

real :: Mn=0., Mk=5., dM=0.1, G=1.4

open (1,file='out_rez.txt')

do M=Mn, Mk+0.001, dM

EM=(1+(G-1)*0.5*M**2)**(-1/(G-1))

! Форматный вывод в файл 'out_rez.txt'

write(1, 10) M, EM

10 format (4x,'M=', F4.2, 3x, 'E(M)=', F7.5)

end do

close (1)

end Program Primer_1

В процессе выполнения задачи результаты вычислений будут записаны в файл 'out_rez.txt' с использование форматного вывода (см. оператор format с меткой 10)

М=. E(M)=.

Вид результатов, записанных в файл 'out_rez.txt'

M=0.00 E(M)=1.00000

M=0.25 E(M)=0.96942

M=0.50 E(M)=0.88517

M=0.75 E(M)=0.76604

. . .

M=3.50 E(M)=0.04523

M=3.75 E(M)=0.03524

M=4.00 E(M)=0.02766

M=4.25 E(M)=0.02189

M=4.50 E(M)=0.01745

M=4.75 E(M)=0.01402

M=5.00 E(M)=0.01134

Пример 2. Вычислить длину окружности и площадь круга для всех значений радиуса R из заданного интервала [Rn, Rк] с постоянным шагом изменения R.

Введем обозначения: L –длина окружности; S – площадь круга; R – радиус окружности, Rн – начальное значение радиуса; Rк – конечное значение; R – шаг изменения.

I Математическое описание задачи

Дано: Rн, Rк, R.

Основные зависимости, необходимые для решения задачи:

L=2π R; (1)

S=π R2; (2)

Ограничения: Зависимости (1) и (2) выполняются для значений R[Rн, Rк] c шагом R.

Найти: длину окружности L и площадь круга S для всех значений R из заданного интервала.

II Схема алгоритма приведена на рис. 4.

III. Таблица идентификации переменных и их типов

Математическая переменная

R

R

L

S

Машинная переменная

R

Rn

Rk

dR

L

S

Тип

real

Рис. 4. Пример схемы алгоритма

IV Текст программы на языке Фортран 90/95

Program Primer_2

implicit none

real :: R, Rn, Rk, dR, L, S

real, parameter :: Pi=3.1415

open(3, file='Data.txt')

print *,'Rn, Rk, dR ?'

read *, Rn, Rk, dR

write(3,10) Rn, Rk, dR

R=Rn

do while (R<=Rk)

L=2*Pi*R

S=Pi*R**2

write(3,20) R, L,S

R=R+dR

end do

10 format(2x,'Rn=',F5.1,3x,'Rk=',F5.1,3x, & 'dR=',F4.1//)

20 format(2x,'R=',F5.1,3x,'L=',F7.3,3x, & 'S=',F7.3)

close(3)

end Program Primer_2

Ниже приведен протокол решения задачи со следующими исходными данными: Rn= 10.5 Rk= 15.0 dR= 0.5.

Rn, Rk, dR ? ! подсказка о вводе данных.

10.5, 15.0, 0.5

В процессе выполнения задачи результаты вычислений будут записаны в файл 'Data.txt' с использование форматного вывода

Rn= . Rk= . dR=. (см. оператор format с меткой 10)

R=. L=. S=. (см. оператор format с меткой 20)

Rn= 10.5 Rk= 13.0 dR= 0.5

(пропуск одной строки перед выводом результатов в теле цикла)

R= 10.5 L= 65.971 S=346.350

R= 11.0 L= 69.113 S=380.121

R= 11.5 L= 72.255 S=415.463

R= 12.0 L= 75.396 S=452.376

R= 12.5 L= 78.537 S=490.859

R= 13.0 L= 81.679 S=530.914

Содержание отчета по лабораторной работе

  1. Тема и цель лабораторной работы.

  2. Краткие сведения из теории:

- понятие циклического вычислительного процесса;

- циклические базовые структуры;

- операторы цикла: do …end do, do while … .end do.

  1. Условия заданий выданных преподавателем.

  2. Математическое описание задач.

  3. Схемы алгоритмов.

  4. Тексты программ.

  5. Листинги с текстом программ и результатами выполнения.

  6. Анализ результатов.

Контрольные вопросы.

  1. Какой вычислительный процесс называется циклическим?

  2. Какая переменная называется переменной цикла?

  3. Что такое тело цикла?

  4. Назовите базовые циклические структуры.

  5. От чего зависит количество выполнений арифметического цикла?

  6. В чем отличие итерационного цикла от арифметического?

  7. В чем отличие базовой структуры цикла "до" от структуры цикл "пока"?

  8. Назовите четыре шага циклического вычислительного процесса.

  9. Назначение и выполнение оператора do …end do.

  10. Способы задания переменной цикла для оператора do …end do.

  11. Назначение и выполнение оператора do while … end do.

  12. Может ли цикл do while … end do ни разу не выполниться?

  13. Назначение оператора format.

  14. Поясните назначение дескрипторов в операторах format в приведенных примерах программ.

8

ст. преп. каф. ЭВМ Скабалланович Т.И.

Соседние файлы в папке Fortran