Выбери формат для чтения
Загружаем конспект в формате ppt
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Разветвляю щиеся конструкции язы ка Фортран
Разветвляющиеся конструкции служат для изменения
последовательности выполнения программ.
Оператор безусловного перехода GOTO
GOTO метка
Используется для передачи управления по метке.
Условный логический оператор IF
Общий вид:
IF (Л.В.) “оператор”
последующий оператор программы
Блок-схема:
Конструкция IF THEN ENDIF
Общий вид:
[имя:] IF(Л.В.) THEN
“группа операторов”
ENDIF [имя]
Блок – схема:
Конструкция IF THEN ELSE ENDIF
Общий вид:
[имя:] IF (Л.В.) THEN
“операторы группы 1”
ELSE [ имя]
“операторы группы 2”
ENDIF [имя]
Блок схема:
Конструкция IF THEN ELSEIF
Общий вид:
[имя:] IF(Л.В.1) THEN
операторы группы 1
ELSEIF(Л.В.2) THEN [имя]
операторы группы 2
…
[ELSE [имя]
операторы группы n]
ENDIF [имя]
Блок –схема
Конструкция SELECT CASE
Общий вид: [имя:] SELECT CASE (тест-выражение)
CASE ( СП1) [имя]
“операторы группы 1”
[CASE (СП2) [имя]
[“операторы группы 2”]]
…
[CASE DEFAULT [имя]
[“операторы группы n”]]
ENDSELECT [имя]
Вспомогательные управляющие операторы
STOP
PAUSE
[сообщение]
[сообщение]
Циклические конструкции
Цикл с “параметром”
Общий вид:
[имя:] DO dovar = start, stop, [, inc]
…
тело цикла
…
ENDDO [имя]
Блок – схема:
Цикл “пока”
Общий вид:
[имя:] DO WHILE (Л.В.)
…
тело цикла
…
ENDDO [имя]
Блок – схема:
Цикл DO (бесконечный цикл)
Общий вид:
[имя:] DO
…
тело цикла
…
ENDDO [имя]
Операторы выхода из цикла
EXIT [имя]
CYCLE [имя]
Блок – схема:
Вложенные циклы
D1: DO while( Л.В.1)
…
D2: DO while ( Л,В.2)
…
ENDDO D2
…
ENDDO D1
DX: DO x=a, b, hx
…
DY: DO y=c, d, hy
…
ENDDO DY
…
ENDDO DX
Массивы
Массив – это именованный набор из конечного числа
объектов одного типа . Массив обеспечивает доступ к
некоторому множеству данных при помощи одного имени.
Также имя массива используется для обеспечения доступа
к элементу или группе элементов(сечению) массива.
Объявление массивов
Статические:
1. С помощью операторов описания типа
а) integer a(0:10);
б) integer, parameter:: n=10, m=0
integer a(m:n).
2. С помощью Dimension
а) integer, dimension(10):: a ! dimension как атрибут;
а) integer a
dimension a(10) ! dimension как оператор.
Динамические:
С помощью атрибутов POINTER и ALLOCATABLE
а) real, pointer:: a(:), c(:), d(:)
б) integer, allocatable:: b(:,:)
в) real, allocatable, target:: t(:)
С помощью оператора ALLOCATABLE
integer, dimension(:,:):: b
allocatable b.
Инициализация массивов
Инициализация одномерных массивов:
а) integer a(10)/1,2,3,4,5,1,7,2,12,9/
б) integer a(10)
data a/1,2,3,4,5,1,7,2,12,9/
в) integer:: a(10)=(/ 1,2,3,4,5,1,7,2,12,9/)
Инициализация двумерных массивов:
а) integer b(2,3)
data b/1,8,4,9,6,10/
б) integer b(2,3) / 1,8,4,9,6,10 /
Размещение массивов в памяти
Одномерный массив:
integer:: a(10) = (/3,8,9,5,12,167,-4,6,-1,0/)
3
8
9
5
12
167
-4
а(1) а(2) а(3) а(4) а(5) а(6) а(7)
6
-1
а(8) а(9) а(10)
Двумерный массив:
real, dimension(2,3):: b /1.5,6.,7.1,-123.6,0.,1.78/
1.5
6.
1.5
6.
7.1
0.
-123.6 1.78
7.1
b(1,1) b(2,1) b(1,2)
-123.6
0.
1.78
b(2,2) b(1,3) b(2,3)
Маскирование присваивания
WHERE(логическое выражение-массив) присв. массива
Пример: real:: a(5)=(/1.0,-1.0,1.0,-1.0,1.0/)
where(a>0) a=sin(a)
Конструкция WHERE имеет вид:
а) WHERE(логическое выражение-массив)
операторы присваивания массивов
ENDWHERE
б) WHERE(логическое выражение-массив)
операторы присваивания массивов
ELSEWHERE
операторы присваивания массивов
ENDWHERE
Пример: integer:: a(10)=(/1,-1,1,-1,1,-1,1,-1,1,-1/)
integer:: b(-2:7)=0
where (a>b)
b=b+2
elsewhere
b=b-3; a=a+b
endwhere
write (*,*) b; write (*,*) a
Встроенны е функции для работы с массивами
PRODUCT(array[,dim][,mask])
SIZE(array[,dim])
SUM(array,[,dim][,mask])
COUNT(mask[,dim])
MAXLOC(array[,mask])
MINLOC(array,[,mask])
MAXVAL(array[,dim][,mask])
MINVAL(array[,dim][,mask])