- •«Информатика» программирование на фортране
- •Часть 1
- •От автора
- •Содержание
- •1. Константы
- •2. Типы констант
- •3. Переменные
- •4. Типы переменных
- •5. Операторы описания
- •6. Арифметические операции Операции по приоритету:
- •7. Расположение текста программы на экране дисплея
- •Правила набора текста программ:
- •Правило:
- •4 Write(6,*)’ Введите значения сторон треугольника a,b,c’
- •8. Технология прохождения фортран – программ на эвм
- •Технология прохождения фортран – программ на эвм
- •9. Арифметический оператор if
- •If(арифметическое выражение) m1, m2, m3
- •Примечание:
- •Правило:
- •Оператор, следующий после if арифметического должен иметь метку;
- •If арифметический не может быть последним оператором в цикле do.
- •4 Write(6,*)’ Введите значения сторон треугольника a,b,c’
- •8 Write(6,*)’ Площадь треугольника равна нулю’
- •9 Write(6,*)’ Такой треугольник не существует’
- •10. If логический
- •If(логическое выражение) выполняемый оператор
- •70% Ошибок у программистов возникает из-за несоответствия типов переменных!.
- •Условные обозначения логических операторов на блок-схемах
- •If арифметический if логический
- •11. Табулирование функции
- •12. Оператор цикла do
- •Внимание:
- •Примечание:
- •3 Write(6,*)’Введите переменные a,b,c’
- •13. Массивы
- •Примечание:
- •Вычисление определенного интеграла
- •1 Write(6,*)’Введите значения a,b,dx’
- •14. Работа с одномерными массивами Ввод массивов
- •Первый способ ввода массивов:
- •Второй способ ввода массивов:
- •Третий способ ввода массивов:
- •15. Вывод массивов Первый способ вывода массива
- •Второй способ вывода массива:
- •Третий способ вывода массива:
- •Четвёртый способ вывода массива:
- •Способ вывода массива в два столбца:
- •Фрагменты задач с одномерными массивами
- •If(b.Eq.K) write(6,*)’ Число m является чётным’
- •Сортировка массива
- •Второй способ сортировки массива:
- •16. Конструкция if then–else if then–else – end if
- •If (логическое выражение 1) then
- •Правила:
- •Примечания:
- •17. Оператор data
- •Правило:
- •По очерёдности следования
- •По типу данных.
- •Правило:
- •18.Работа с двухмерными массивами
- •19. Ввод двухмерного массива
- •Второй способ ввода массивов:
- •Третий способ ввода массивов:
- •Четвертый способ ввода массивов:
- •Фрагменты задач с двухмерными массивами
- •20. Вывод двухмерного массива
3 Write(6,*)’Введите переменные a,b,c’
READ(5,*) A,B,C
WRITE(6,*)’Введите значения Хнач, Хкон, шаг dx’
READ(5,*) XN,XK,XD
C Блок корректировки шага
N=(XK-XN)/XD+1.
DX=(XK-XN)/(N-1)
P=(A-B)/(C-A)
IF (P.LT.0.) GO TO 3 Проверка на минус под корнем
FMA=-1.E30 Начальному значению переменной, где будет запоминаться максимум, задаем малое число, расположенное слева на числовой оси.
FMI=1.E30 А для минимума задаем начальное большое число.
DO 4 X=XN , XK , DX
S = SIN(ABS(X-1.)**(1./3.)+EXP(2.*X))**2
F=SQRT(P*S)
IF(F.GT.FMA) FMA=F или можно так: FMA=AMAX1(F,FMA)
FMI=AMIN1(FMI,F) или IF(F.LT.FMI) FMI=F
IF(F.LT.0.) WRITE(6,*)’При x=’,X,’ MU=’,F
4 IF(F.GT.0.) WRITE(6,*)’ При x=’,X,’ MU=’,F
PAUSE
STOP
END
13. Массивы
Под массивом понимают совокупность данных одного типа, объединённых одним именем.
Массивы должны быть описаны в программе одним из операторов описания. Существует специальный оператор для описания массивов:
DIMENSION
Пример:
DIMENSION A(10),B(8),C(3,4),K(15)
Оператор не выполняет никаких действий в программе и служит лишь только для отведения места в оперативной памяти ЭВМ для размещения массивов.
Изначально всем элементам массива заданы значения, равные нулю, кроме ЭВМ образца до 1985, где массив изначально был заполнен машинным нулём (0.67*10-19).
Массивы бывают:
а). Одномерными (другое их название – вектор-столбец);
б). Двухмерными (другое название – матрица)
в). Трех- и т.д. мерными. Максимальное количество измерений в массиве равно 7.
Чтобы обратиться к определённому элементу массива, необходимо указать его имя и индекс этого элемента.
Индекс в одномерном массиве – это порядковый номер элемента массива, для двухмерного – номер строки и номер столбца.
В качестве индекса может выступать константа целого типа, переменная целого типа или арифметическое выражение, желательно целого типа.
Пример:
DIMENSION A(10)
K=4
M=3
A(1)=2.5
A(3)=1.7E-7
A(K+M)=D+A(1)
A(4)=A(M)+A(K+1) Эта строка аналогична выражению: А(4)=А(3)+А(4+1)
переменная арифметическое
целого типа выражение
Примечание:
Желательно избегать арифметических действий с индексами массива, особенно при циклическом вычислении, т.к. это очень замедляет выполнение программы.
Двухмерные массивы в памяти ЭВМ располагаются по столбцам:
Пример заполнения ячейки двухмерного массива:
С(1,2)=1.8
При этом в строку номер 1 и столбец номер 2 массива С занесётся число 1.8.
При выполнении программы транслятор анализирует, не превышает ли значение вызываемого индекса массива его предельного значения, описанного в операторе DIMENSION (т.е. проверяется случай, когда вызываемый индекс массива не существует – массив имеет меньшие размеры).
Так при записи С(К,М)=С(1,1)+С(1,2), которая соответствует записи:
С(4,3)=С(1,1)+С(1,2) значение С(4,3) не соответствует. При попытке выполнить такую операцию будет выдана ошибка.
При работе с двухмерными массивами есть одна особенность, которую рассмотрим на примере:
READ(5,*)К
С(К,3)=7
Пока переменную К будем задавать равную от 1 до 3, программа будет выполняться корректно. Но, если К присвоить значение 4 и больше, то ЭВМ будет не в состоянии отследить, что пределы размерности массива нарушены. Обращение будет идти к совершенно иному, и даже случайному элементу памяти ЭВМ.
Массивы можно описать ещё и с помощью операторов описания REAL и INTEGER:
REAL A(10)
INTEGER K(15)
Повторное описание массивов не допускается.
Массивы могут быть: целого, вещественного, комплексного, строкового и логического типа.
Для 8-разрядных ЭВМ максимальное значение индекса массива может быть равно 32767. Например: DIMENSION A(32767), B(32767, 32767).