Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
68
Добавлен:
12.04.2015
Размер:
229.89 Кб
Скачать

Примеры:

PRINT*, ″WWOD M,N ″ ! вывод на экран текстовой подсказки для ввода

PRINT*, z, y ! Вывод только значений переменных z и y

PRINT*, ″ Z= ″, z, ″ Y= ″, y ! Вывод значений переменных z и y с пояснением

! Вывод значения корня квадратного из числа 2 с пояснением:

PRINT*, " SQRT( 2.0 ) =", SQRT( 2.0 )

Перечислим некоторые рекомендации по организации ввода-вывода:

  • Каждый оператор вывода формирует одну запись.

  • Не рекомендуется в одном операторе вывода задавать длинный список вывода, лучше использовать в таких случаях несколько операторов вывода.

  • Для поясняющих текстов (длиной до 256 символов) отводится столько места, сколько указано в символьной константе, текст прижимается к левому краю. Поэтому рекомендуется в конце и начале текста добавлять пробелы для улучшения вида.

Перед оператором ввода рекомендуется записывать вспомогательный оператор вывода, в котором помещается строка подсказки, поясняющая, какие величины и в каком порядке должны быть введены.

Оператор присваивания

Одним из наиболее распространенных шагов алгоритмов в математических задачах является вычисления по формулам. Результатам вычислений по формулам часто присваивают свои обозначения (имена переменных), чтобы пользоваться ими в дальнейшем.

Для записи операции присваивания будем в дальнейшем использовать символ = (не следует путать его с обычным знаком равенства).

Операцию присваивания будем также использовать для явного задания начальных значений величин и переприсваивания значений.

Шаг алгоритма, в котором описывается вычисление по формулам или осуществляется явное задание значений, будем называть присваиванием. В блок-схеме такой шаг алгоритма изображается с помощью блока обработки. В Фортран – программе его заменяет арифметический оператор присваивания.

Арифметический оператор присваивания

Это выполняемый оператор, с помощью которого проводятся вычисления по формулам, задаются начальные значения, осуществляется «пересылка» значений из одной ячейки памяти в другую (переприсваивание значений).

Общий вид этого оператора: x = АВ,

где x – имя переменной (простой или с индексами), АВ - арифметическое выражение (правая часть формулы), = знак присваивания.

Для компьютера этот оператор - указание о выполнении следующих действий:

1) вычислить значение арифметического выражения (АВ) в правой части оператора при текущих значениях входящих в него переменных;

2) привести значение полученного результата к типу переменной, находящейся в правой части оператора;

3) присвоить переменой, находящейся в правой части оператора, вычисленное и приведенное к типу переменной значение результата.

Примеры

  1. PROGRAM PR_1

INTEGER:: J=2

REAL :: A=3.4, F=5.25, B=9.7

A=F ! значение переменной F присваивается переменной A

J=B ! значение переменной B присваивается переменной J

PRINT*, “A=”,A,” F=”,F,” J=”,J ! вывод результатов на экран

END

В результате выполнения программы, на экране увидим следующий результат:

A=5.25 F=5.25 J=9

  1. PROGRAM PR_2

INTEGER:: J=2, I

REAL :: A=3.3, F=5.25, B

B=J*A+F

! переменной B присваивается результат вычисления ! выражения J*A+F , преобразованного к вещественному типу

PRINT*, “B=”, B ! вывод результата на экран

I=J*A+F

! переменной I присваивается результат вычисления ! выражения J*A+F , преобразованного к целому типу

PRINT*, “ I=”, I ! вывод результата на экран

END

В результате выполнения программы, на экране увидим следующий результат:

B=11.85

I=11

Рассмотрим примеры программ, составленных на основе линейного алгоритма.

Пример 3. Рассчитать значение величины t по следующей формуле

, для значений x=0.2, , , d = x + b.

Блок-схема алгоритма:

Программа примера 3:

PROGRAM PRIMER3

X=0.2

B=SQRT(10.75)

C=LOG10(B+1)

D=X+B

Z=X*X

Y=Z*X

T=(B*Z-SIN(Z)) / (Y+C*D*(Y*Z)**(1./7.))

PRINT*,” T=”,T

END

Обратите внимание, что в этой программе дополнительно введены переменные Z и Y, чтобы несколько раз не вычислять повторяющиеся в формуле для t выражения. Плюс операция возведения в степень здесь заменена операцией умножения, на которую компьютер тратит меньше времени, чем на возведение в степень. В принципе, вы можете использовать операцию возведения в степень, и на небольших программах это не является существенным. Однако, если программа сложная и содержит несколько тысяч операторов со сложными вычислениями, то рекомендуется, где это возможно, заменить операцию возведения в степень операцией умножения, что уменьшит затраты компьютера и увеличит скорость выполнения программы.

Пример 4. Составить программу вычисления площади вписанной в треугольник окружности , радиус , где – периметр треугольника.

Исходными данными задачи являются стороны треугольника a, b, c. Составьте блок-схему алгоритма самостоятельно.

Программа примера 4:

program primer_4

parameter (pi=3.14159) !оператор задания констант

print*, “ Vvedite a, b, c” ! вывод поясняющего текста на экран

read*, a,b,c ! ввод длин сторон треугольника

p=a+b+c ! вычисление периметра треугольника

r=sqrt((p – a)*(p – b)*(p – c))/p) ! вычисление радиуса, вписанной окружности

s=pi*r**2 ! определение площади окружности

print*,” s=”,s ! вывод результата

end

В указанном примере число π имеет имя pi, поскольку в Фортране можно использовать только латинские буквы.

Вопросы к Лекции 3:

  1. Какова структура программы на Фортране?

  2. Для чего используются подпрограммы?

  3. Что содержит основная Фортран-программа (MAIN)?

  4. Изобразите схематично общую структуру программы на Фортране.

  5. Что такое подпрограмма?

  6. Что хранится в библиотеках стандартных программ?

  7. Дайте определение оператора.

  8. Что называется исполняемыми операторами?

  9. Какие операторы называют неисполняемыми?

  10. Какие операторы относятся к операторам обработки информации?

  11. Для чего нужны комментарии в программе?

  12. Что называют алгоритмом линейной структуры?

  13. Какая последовательность действий характерна для программы, реализующей линейный алгоритм?

  14. Как записывается оператор начала программы? Обязателен ли он?

  15. Запишите оператор конца программы в общем виде. Обязателен ли этот оператор при написании программы?

  16. Для чего используется оператор ввода? Как правильно он записывается?

  17. Как выглядит общий вид оператора вывода на экран?

  18. Для чего в записи операторов ввода/вывода используется символ звездочка *?

  19. Как можно разделять переменные при вводе их значений с клавиатуры?

  20. Какой порядок ввода переменных должен соблюдаться?

  21. Какие данные можно выводить с помощью оператора ввода?

  22. Для каких целей предназначен оператор вывода?

  23. Как можно вывести текст на экран компьютера?

  24. Запишите оператор вывода двух переменных a=4.5, k=3.

  25. Как оформить оператор вывода двух переменных a=4.5, k=3 с пояснительным текстом?

  26. Какие правила рекомендованы для правильного оформления операторов ввода/вывода?

  27. Что называется оператором присваивания?

  28. Что представляет собой арифметический оператор присваивания?

  29. Запишите общий вид оператора присваивания.

  30. Какие действия должен выполнить компьютер в результате выполнения оператора присваивания?

  31. К какому типу приводится результирующее значение переменной, полученное в результате вычисления арифметического выражения?

  32. Почему в программе часто заменяют, где возможно, операцию возведения в степень операцией умножения?

9

Соседние файлы в папке Лекции_фортран_текст