Программирование на современном Фортране Занимает лидирующее положение среди языков программирования, ориентированных на решение научно-технических задач,

Презентация:



Advertisements
Похожие презентации
1 Лекция 13 ОСНОВНЫЕ ПОНЯТИЯ ЯЗЫКА Visual Basic For Applications (VBA) План лекции Типы данных VBA Операции над данными VBA Описание типов данных VBA Имена.
Advertisements

1 Записи 2 Запись – это тип данных, который может включать в себя несколько полей – элементов разных типов (в том числе и другие структуры). Свойства:
Лекция 9 ПРОИЗВОДНЫЕ ТИПЫ. Производные типы, зачем ? ! данные N частиц real x(N) real y(N) real z(N) logical status(N) real temperature(N) real pressure(N)
класс-ПОВТОРЕНИЕ ОСНОВНЫХ ПОНЯТИЙ ТЕМЫ « ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ » 8 КЛАСС.
Программирование типовых алгоритмов вычислений Информатика.
Программирование на языке Паскаль Файлы комбинированного типа (записей)
Язык программирования Delphi. Алфавит языка 53 буквы латинского алфавита и символ подчеркивания Цифры от 0 до 9 23 спец.символа
ОБЩИЕ СВЕДЕНИЯ О ЯЗЫКЕ ПРОГРАММИРОВАНИЯ ПАСКАЛЬ НАЧАЛА ПРОГРАММИРОВАНИЯ.
Основы языка Pasсal.
Операторы языка. Арифметические операторы Арифметические операторы Арифметические операторы Арифметические операторы Операторы сравнения Операторы сравнения.
Все процедуры и функции делятся на стандартные встроенные определенные пользователем. Встроенные и стандартные вызываются без предварительного описания.
Операторы цикла в языке программирования Pascal Вторая Всероссийская научно-методическая конференция, 10 ноября февраля 2015 "Педагогическая.
Знакомство с интерфейсом программы Delphi. Отладка простейших программ.
Основы программирования В качестве базового языка взят обычный BASIC позволяющий в простой и наглядной форме выполнять основные конструкции программирования.
Тема урока: Деловая игра С А В Д Цикл с параметром Цикл с параметром – это циклическая структура, когда тело цикла выполняется, если значение параметра.
3. Дана прямоугольная матрица, элементами которой являются целые числа. Поменять местами ее строки следующим образом: первую строку с последней, вторую.
Алфавит и словарь языка Паскаль Учитель информатики Абдулзагирова А.И.
Структуры (записи) Программирование на языке Паскаль.
Лекция 8 МОДУЛИ. Если много параметров ? program prog... call sub1(X,Y,Z,X1,...,PAR)... call sub2(X,Y,Z,X1,...,PAR)... end subroutine sub1(A,B,C,D,...,ZW)
«Обработка массивов данных» Delphi. Тема 4:4: «Обработка массивов данных» План темы: l1l1. Понятие массива данных. l2l2. Описание массива в программе.
Транксрипт:

Программирование на современном Фортране Занимает лидирующее положение среди языков программирования, ориентированных на решение научно-технических задач, требующих большого объема вычислений Постоянно развивается и совершенствуется в соответствии с развитием вычислительной техники и технологий программирования Накоплен огромный фонд прикладных программ Удобство программирования Эффективность выполнения программ Стандартизация языка на международном уровне

Структура программы Программа состоит из программных единиц: главная программная единица (PROGRAM); подпрограмма (SUBROUTINE); функция (FUNCTION); блок данных (BLOCK DATA); модуль (MODULE).

Лексемы Имена (до 31 символа – в старых версиях 6) Метки (не более 5 цифр) Ключевые слова Встроенные операции: + - * / ** - арифметические.NOT..AND..OR..EQV..NEQV. – логические.EQ..LT..LE..GT..GE..NE. – отношения == >= /=

Формат исходного текста Фиксированный (зафиксированы позиции строки) С Длина строки 72 символа * 1-5 метка 123 A (I,J) = (A (I-1,J) + A (I+1,J) + A (I,J-1) * + A (I, J+1))/4 Свободный ! Оператор со строкой продолжения A = Перенос строки на & & строку-продолжение

Оператор IMPLICIT принцип умолчания: приписывание объектам типа по имени объекта I,J,K,L,M,N – INTEGER остальные – REAL INTEGER ICOUNT0 … ICOUNT0=ICOUNTO+1 IMPLICIT NONE ! Тип всех объектов должен быть ! объявлен явно

Базовые типы данных Целый INTEGER I ! Вещественный REAL X,Y,Z ! -3.2 DOBLE PRECISION T ! 12.6E-11 Комплексный COMPLEX Z1, Z2 ! (2.5, -3.) Логический LOGICAL L !.TRUE. или.FALSE. Символьный CHARACTER (LEN=6) C1, C2 ! SUM или PART1

Производные типы данных TYPE BOOK CHARACTER (LEN = 30) TITLE CHARACTER (LEN = 20) AUTHOR INTEGER NUM_OF_PAGES END TYPE BOOK TYPE (BOOK) :: BOOK_1, BOOK_2 BOOK_1%AUTHOR = Tolstoy

Массивы REAL Z (100,200) REAL, DIMENSION (100,100) :: X,Y DIMENSION W (2:10, 3, -1:1) REAL, DIMENSION(21):: AR= (/(1.5,2.8, L=1,10), 6.4/) REAL, DIMENSION (:,:) ALLOCATABLE :: AR1, AR2 READ (*,*) NX,NY ALLOCATE ( AR1 (NX,NY), AR2 (NX,NY)) … DEALLOCATE (AR1, AR2, STAT = NUMB_ERR)

Массивы по столбцам

Секция массива REAL, DIMENSION :: Z (M,N), V(3), A (3,3) Z (3,:) – третья строка матрицы Z; Z (:,J) – J-ый столбец матрицы Z; Z (K1:K2, L1:L2:L3) – прямоугольная секция V = (/2, 1, 3/) A (3,V) - секция массива содержащая элементы: A(3,2), A(3,1) и A(3,3)

Операторы присваивания REAL X (10,20), Y(40), Z (-7:12), W (10,10) Z(1) = 7.4 Z = 7.4 X(10, :) = 2.9 * Y (2:40:2) +EXP(Z) Y (1:40) = Y (40:1:-1) Y (3:5) = Y (2:4) W(1:10, I) = X (J,1:10)

Присваивание по маске WHERE (A

Условные операторы IF (X.LT. 0) X = -X IF (A.LT. 0.0) THEN X = A ELSE IF (A.EQ. 0.0) THEN X = A ELSE IF (A.LT. 3.0) THEN X = A ELSE X = A ENDIF … IF (N-10) 10, 20, 30

Конструкция выбора SELECT CASE (N) CASE (:-1) X = -N CASE (0, 4:6, 9) X = 0 CASE DEFAULT X = N END SELECT

Циклы DO 20 I = 10, 1, -2 WRITE (*,*) I =', I 20 CONTINUE DO I = 1, 10 WRITE (*,*) I =', I ENDDO

Циклы SUM=0.0 I=0 DO WHILE (I

Циклы DO WHILE (IND

Функции REAL FUNCTION FUNC(M,T) INTEGER M REAL T SAVE ICOUNT FUNC = 0.1*T * (M**2 + 14*M + 46) IF (FUNC.LT. 0) FUNC = 0.0 ICOUNT = ICOUNT + 1 RETURN END … IF (FUNC(I,X).GT. FUNC(J,Y)) THEN …

Процедуры SUBROUTINE S (X,N,METHOD,PR) INTEGER, OPTIONAL :: PR, METHOD REAL, INTENT(OUT) :: X (N) INTEGER, INTENT(IN) :: N REAL WORK (N) ! Автоматический массив EXTERNAL FUNC WORK (1) = FUNC (1, X(1)) … END SUBROUTINE S CALL S (Y,N, PR=6)

Рекурсивная функция RECURSIVE FUNCTION FACTORIAL (N) RESULT (NFACTORIAL) INTEGER, INTENT (IN) :: N INTEGER NFACTORIAL SELECT CASE (N) CASE (0) NFACTORIAL = 1 CASE (1:) NFACTORIAL = N * FACTORIAL (N-1) CASE DEFAULT NFACTORIAL = -1 END SELECT END FUNCTION FACTORIAL

Оператор COMMON SUBROUTINE SUB1 (some arguments) declarations of arguments REAL ALPHA, BETA COMMON /COEFF/ ALPHA, BETA ! Описание общей области statements ! памяти, доступной разным RETURN ! блокам. END SUBROUTINE SUB2 (some arguments) declarations of arguments REAL ALPHA, BETA COMMON /COEFF/ ALPHA, BETA statements RETURN END

Оператор DATA REAL A1, A2, A3 INTEGER M1, N1 DATA A1, A2, A3 /1., 2., 3./, M1, N1 /1, -1/ REAL W1, W2, W3 DATA W1, W2, W3 / 3*0.0/ REAL AR (10, 10) DATA AR /100*1.1/ DATA AR(1,1),AR(10,1),AR(1,10),AR(10,10) /2*1.0, 2*2.0/

PROGRAM JAC PARAMETER (L=8, ITMAX=20) REAL A(L,L), EPS, MAXEPS, B(L,L) PRINT *, '********** TEST_JACOBI **********' MAXEPS = 0.5E - 7 DO IT = 1, ITMAX EPS = 0. DO J = 2, L-1 DO I = 2, L-1 EPS = MAX ( EPS, ABS( B( I, J) - A( I, J))) A(I, J) = B(I, J) ENDDO DO J = 2, L-1 DO I = 2, L-1 B(I, J) = (A( I-1, J ) + A( I, J-1 ) + A( I+1, J)+ * A( I, J+1 )) / 4 ENDDO PRINT 200, IT, EPS 200 FORMAT(' IT = ',I4, ' EPS = ', E14.7) IF ( EPS. LT. MAXEPS ) GO TO 3 ENDDO 3 OPEN (3, FILE='JAC.DAT', FORM='FORMATTED', STATUS='UNKNOWN') WRITE (3,*) B CLOSE (3) END