Главная страница

Курс лекций по дисциплине Программирование на языке Фортран


Скачать 0.98 Mb.
НазваниеКурс лекций по дисциплине Программирование на языке Фортран
Дата02.09.2019
Размер0.98 Mb.
Формат файлаdoc
Имя файлаFortran01.doc
ТипКурс лекций
#85698
страница13 из 15
1   ...   7   8   9   10   11   12   13   14   15

Пример нахождения минимального 3- х чисел



Оператор SELECT CASE

Для избежания длинной последовательности проверок оператором if можно использовать оператор SELECT CASE

SELECT CASE (выражение), где выражение- целочисленное символьное или логическое скалярное выражение . список I- список констант соответствующего выражению типа. Выражение не может быть вещественного типа.

CASE(список 1)

[блок 1]

CASE(список 2)

[блок 2]

CASE(список 1n)

[блок n]

end select



Левая граница диапазона должна быть меньше правой. Если опущена левая граница, то это указывает на список всех значений меньших и равных левой границе. Аналогично, если опущена правая граница.

Оператором SELECT CASE могут быть вложены друг в друга. При этом каждая функция завершаться собственным END SELECT.

Если в значении выражения входит в список I, то выполняется блок I операторов и затем управление передается на следующий за END SELECT операторов

Если значение не входит ни в один из списков, то выполняется блок n(CASE DEFAULT).

Пример нахождения числа положительных, отрицательных и нулевых элементов целочисленного массива.



Integer a(100), np/0/,ne/0/,nz/0/,I ! ввод массива а

Do I=1, 100

Select case (a(i))

Case(1:)

Np=np+1

Case(-1:)

Ne=ne+1

Case(0) !или case default

Nz=nz+1

End select

End do




2.5.4. Оператор цикла DO

Оператор DO выполняет повтор некоторого блока операторов заданное число раз







Синтаксис

DO Lb var=start, end [, step]

… {тело цикла}

Lb оператор



или

DO var=start, end [, step]

… тело цикла

END DO

где Lb – метка используемого оператора;
var – переменная цикла, имеет тип INTEGER, или REAL;
start, end – выражения или переменные (целые или вещественные), задающие
начальные и конечные значения переменной var;
step – необязательное выражение или переменная типа INTEGER, или
REAL, задающее приращение(шаг) переменной var. step0, по
умолчанию step1.

Ч
Пример:

do i=1,5.3

ni=5

do i=1.2,5.3,1.1

ni=4

do i=-1.2,5.3,1.1

ni=0
исло итераций определяется по формуле:



если в цикле нет операторов выхода, то он выполняется ni раз.
Замечания:

  1. о
    do k=1,10

    k=k+2

    end do
    ператор DO целиком находится в теле других DO или IF операторов, т.е. должна соблюдаться вложенность;

  2. значения переменной цикла не должно меняться в

  3. теле цикла. Неверный код:

  4. Переход внутрь DO цикла извне запрещен.

Пример вычисления многочлена по схеме Гарнера:

p=a5x5+a4x4+a3x3+a2x2+a1x1+a0=((((a5x+a4)x+a3)x+a2)x+a1)x+a0


program Gorner

integer i

Real a(0:5),x,p

Data a/2,3,4,5,6,7/

x=0.7

p=a(5)

do i=4,0,-1

p=p*x+a(i)

end do

write (5,*)’Значения многочлена p=’,p

end

результат: p=10.39209

Пример вложенных циклов

Real a(4,6), b(6,5), c(4,5)

do i=1,4

do j=1,5

s=0.0

do k=1,6

s=s+a(i,k)*b(k,j)

end do

c(i,j)=s ! Внешняя операция индексирования

end do

end do


2.5.5. Оператор цикла с условием DO WHILE.


Цикл с условием используется при заранее неизвестном количестве повторений.


Синтаксис

DO Lb WHILE (Logic_expr)

…тело цикла

Lb оператор

или

DO WHILE (Logic_expr)

…тело цикла

END DO

где Lb –метка используемого оператора;
Logic_expr –логическое текстовое выражение. Тело цикла – набор
операторов, выполняемых до тех пор, пока текстовое
выражение истинно

При выполнении оператора DO WHILE выполняется следующая последовательность шагов

  1. Вычисление логических выражений Logic_expr.

  2. Если Logic_expr=.FALSE., то тело цикла не выполняется и управление передается на следующий за TND DO оператор;

  3. Если Logic_expr=.TRUE., то выполняется тело цикла.

  4. По достижению конца цела цикла логическое выражение Logic_expr вычисляется заново и выполнение цикла продолжается.

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

S(x)= с точностью ε =10

т.к погрешность суммы членов {bk} знакочередующегося ряда не превосходит модуля первого отброшенного члена, то условие достижения заданной точности < ε.

Значение последующего члена ряда удобно определить использую предыдущий, а именно его умножением на их отношение:

тогда члены ряда определяются по рекуррентной формуле:

bk=bk-1, при k=1,2,… при начальном условии b0=x (при k=0)
2.6.4. Оператор Function

Оператор объявления функций:

1   ...   7   8   9   10   11   12   13   14   15


написать администратору сайта