Конспект лекции по дисциплине «Разветвляющиеся конструкции языка Фортран», ppt

Файл загружается
Благодарим за ожидание, осталось немного.
Конспект лекции по дисциплине «Разветвляющиеся конструкции языка Фортран», текстовый формат
Разветвляю щиеся конструкции язы ка Фортран Разветвляющиеся конструкции служат для изменения последовательности выполнения программ. Оператор безусловного перехода 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])