
- •Введение
- •Инструкции для работы вIdeStudio
- •Инструкция по работе в DevStudio,fps4.0
- •Инструкция по работе вVisualStudio
- •Инструкция по работе вPlatoIdeStudio
- •Лабораторные работы
- •Вычисления по формулам Задание
- •Содержание отчета
- •Справочная информация
- •Комментарии к заданию
- •Контрольные вопросы к защите работы
- •Пример контрольного задания
- •Варианты индивидуальных заданий «Формулы»
- •ВетвленияIfи циклыDo Задание
- •Последовательность выполнения работы
- •Содержание отчета
- •Справочная информация
- •Комментарии к заданию
- •Контрольные вопросы
- •Примеры задач контрольного задания
- •Варианты индивидуальных заданий «Ветвления и циклы»
- •Сумма степенного ряда - приближенное вычисление функции Задание
- •Содержание отчета
- •Справочная информация
- •Комментарии к заданию
- •Implicit None
- •Контрольные вопросы к защите работы
- •Пример контрольного задания
- •Варианты индивидуальных заданий «Сумма степенного ряда»
- •Решение задач с одномерными массивами Задание
- •Комментарии к заданию
- •Содержание отчета
- •Справочная информация
- •Implicit None
- •Контрольные вопросы
- •Пример контрольного задания
- •Варианты индивидуальных заданий «Одномерные массивы»
- •Решение задач с двумерными массивами Задание
- •Содержание отчета
- •Комментарии к заданию
- •Справочная информация
- •Ввод и вывод двумерного массива
- •Динамические массивы.
- •Контрольные вопросы
- •Пример контрольного задания
- •Варианты индивидуальных заданий «Двумерные массивы»
- •Решение задач с использованием процедур Задание
- •Содержание отчета
- •Справочная информация
- •Комментарии к заданию
- •Пример 1 (функция)
- •Implicit None
- •Interface
- •Пример 2 (подпрограмма)
- •Implicit none
- •Implicit none
- •Implicit none
- •Контрольные вопросы
- •Примеры задач контрольного задания
- •Integer I
- •Варианты индивидуального задания «Процедуры»
- •Механизмы присоединения данных Задание
- •Содержание отчета.
- •Комментарии к заданию
- •Implicit none
- •Implicit none
- •Implicit none
- •Implicit none
- •Контрольные вопросы к защите работы
- •Пример контрольного задания
- •Варианты индивидуальных заданий
- •Элементы языка программирования Фортран
- •Текст программы на Фортране
- •Синтаксис языка Фортран, выражения
- •Имена и ключевые слова
- •Константы и переменные встроенных типов
- •Выражения
- •Оператор присваивания
- •ВетвленияIfи циклыDo Ветвления – конструкции If
- •Циклы – конструкции do
- •Параллельные конструкцииwhereиforall
- •Оператор и конструкция where
- •Оператор и конструкция forall
- •Различие скалярных и векторных конструкций
- •Парафлоид – один оператор вместо двадцати
- •Implicit none
- •Implicit none
- •Ввод и вывод в Фортране
- •Форматный вывод
- •Дескрипторы данных
- •Взаимодействие операторовwriteиformat
- •Массивы
- •Характеристики массива
- •Размещение массива в памяти компьютера
- •Секции массивов и неявный цикл в списках ввода/вывода
- •Ввод-вывод на матрице Integer,dimension(1:3,1:4)::m
- •Программы, модули и механизмы обмена данными
- •Двухуровневая структура программ
- •Трёхуровневая структура модуля
- •Вызов процедур и использование модулей
- •Оператор Interface
- •Interface
- •Операторы End, Stop, Return
- •Обмен данными в проекте
- •Присоединение данных носителя
- •Присоединение данных модуля
- •Встроенные функции Фортрана
- •Числовые функции
- •Функции редукции массивов
- •Редукция одномерных массивов
- •Редукция двумерных массивов
- •Справочные материалы Редакторы простых текстов для набора программ
- •Традиции оформления текста на Фортране
- •Пакет Agrapher для построения графиков
- •Справочник простейших функций для заданий
- •Типичные ошибкив арифметических выражениях
- •Типичные недочеты и ошибки в работе с массивами
- •Перевод ключевых слов, операторов и терминов Фортрана
- •Литература
End Subroutine MaxAbs
Program Sub1 ! ФИО Лаб 6 Группа. Вар.
Implicit none
Interface ! шаблон вызываемой подпрограммы
Subroutine MaxAbs(Array, eLem, Num)
Implicit none
Real,intent(in),dimension(:)::Array ! входной массив
Real,intent(out)::eLem ! выходной: max по модулю элемент
Integer,intent(out)::Num ! выходной: номер max по модулю
End Subroutine MaxAbs
End Interface
Real,dimension(1:12)::B
Real,dimension(1:10)::C
Real MaxB, MaxC ! max по модулю элементы для В,C
Integer NumB, NumC ! и их порядковые номера в массивах
... ! ввод и вывод в результирующий файл массива B
Call MaxAbs(B, MaxB, NumB)
... ! вывод в результирующий файл NumB, MaxB
... ! ввод и вывод в результирующий файл массива C
Call MaxAbs(C, MaxC, NumC)
... ! вывод в результирующий файл NumC, MaxC
End Program Sub1
Результаты работы программы Sub1
Массив В
1.0 -4.0 6.0 20.0 45.0 -71.0
4.0 -17.0 .0 .0 .0 11.0
max по модулю элемент -71.0 его номер 6 в массиве B
Массив С
-122.0 .0 45.0 71.0 4.0 -17.0
.0 .0 .0 11.0
max по модулю элемент -122.0 его номер 1 в массиве C
Контрольные вопросы
Назовите четыре вида программных единиц в Фортране.
Что такое процедура? Когда целесообразно использование процедур? Сколько разновидностей процедур в Фортане?
Каковы основные атрибуты функции?
Как результат функции передается в вызывающую программу?
Что в программировании называют подпрограммой? Сколько разновидностейподпрограмм в Фортане?
Зачем подпрограмме имя? Есть ли значение, связанное с именем подпрограммы? Как передаются результаты подпрограммы в вызывающуюпрограмму?
Что такое формальные и фактическиеаргументы? Правила согласования формальных и фактических аргументов, поясните примерами.
Какими по назначению могут быть формальные аргументыпроцедуры? Приведите примеры описанияназначения формальных аргументов.
Где и для чего пишут интерфейсы?
Чем процедура отличается от функции? Сравните на примере, оформив как функцию и как подпрограммувычисление количества повторений цикла.
Примеры задач контрольного задания
В функции: вычислить среднее геометрическое положительных элементов одномерного массива. Если в массиве нет положительных элементов, результат приравнять нулю. В главной программе применить функцию к трем массивам разной длины. Вывести результаты с именами массивов. Найти и вывести минимум среди полученных значений, не равных нулю.
Блок-схема функции обязательна.
В подпрограмме: вычислить сумму элементов, расположенных ниже, выше и на главной диагонали квадратной вещественной матрицы.В главной программе: применить подпрограмму к матрице размером 88. Вывести три значащих цифры результатов.
Блок-схема подпрограммы обязательна.
В вещественном массиве обнулить элементы, синус которых превышает 0.5 (операторwhere). Как получить тот же результат без использования оператораwhere?
Исправьте ошибку
Integer I
Real, dimension(7,4):: А
write(*,10) ’Массив’,(A(i,:), i=1,4)
10 Format(a/(4F10.2))
Таблица 14.