- •Введение
- •Инструкции для работы в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 для построения графиков
- •Справочник простейших функций для заданий
- •Типичные ошибкив арифметических выражениях
- •Типичные недочеты и ошибки в работе с массивами
- •Перевод ключевых слов, операторов и терминов Фортрана
- •Литература
Механизмы присоединения данных Задание
Реализовать два проекта, которые содержат:
ввод данных из файла In.txtна диске и форматный вывод их в результирующий файл Out.txt;
вызовы процедур с различными данными для отладки;
если возможно, проверку результатов работы процедур обращением к стандартным подпрограммам или функциям;
форматный вывод в файл Out.txtрезультатов работы каждой процедуры с пояснениями выводимых величин (использовать формулировки из индивидуального задания).
В проекте Container– механизм присоединения объектов носителя.
В проекте ProModule – механизм присоединения объектов модуля.
Содержание отчета.
Название работы и номер варианта индивидуального задания.
Фамилия, имя, отчество и номер группы студента.
Текст варианта индивидуального задания.
Постановка задачи, методы вычислений.
Описание механизмов обмена данными.
Графическая интерпретация (если требуется), выполненная вручную или пакетом Agrapher.
Блок-схемы главной программы и подпрограмм.
Распечатки текстов всех программных единиц.
Распечатки файлов результатов Out.txt.
При подготовке к защите ответить на контрольные вопросы.
Комментарии к заданию
Приступая к выполнению задания, прочтите раздел 5.
В проекте Containerрасчетная процедура – это внутренняя процедура, присоединяющая объекты носителя, которым является внешняя программа.
В проекте ProModuleрасчетная процедура – это модульная процедура, присоединяющая объекты используемого модуля.
Расчетные процедуры в виде внутренней и модульной процедуры не являются самостоятельными программными единицами.
Вызов внутренней или модульной процедуры не требуют Interface.
Пример
В подпрограмме: ввести одномерный массив из файлаin.txt; найти и вывести в файлout.txtномер и значение максимального по модулю элемента массива.
В главной программе: применить подпрограмму к нескольким массивам, предварительно вводя длину каждого массива из файлаin.txt.
Применить механизмы присоединения объектов носителя и модуля.
Проект Container
Главная программа Container– единственная самостоятельная программная единица. В программуContainer вложена внутренняя подпрограмма Subroutine OneArray. ПрограммаContainerявляется носителем данных для подпрограммы OneArray. В ней лишь одна глобальная переменная dArr, указывающая длину массива. Эту переменную заимствует подпрограмма OneArray.
Переменные ARR,NumARR локальны в подпрограммеOneArray.Динамический массивARR локализован в подпрограммеOneArray. Его переменная длинаdARR определена до входа в подпрограмму. Командыallocate и deallocateне нужны – динамический массив размещается автоматически при входе в подпрограмму и освобождается при выходе.
Программа
Program Container ! внешняя программа
Implicit none
Integer dARR !длина автоматического массива ARR
Open(1,File='In.txt') ! файл исходных данных
Open(2,File='Out.txt')!результирующий файл Read(1,*)dARR; Call OneArray('B') ! ввод dARR - длины массива 'B' Read(1,*)dARR; Call OneArray('C') !ввод dARR - длины массива 'C'
contains
Subroutine OneArray(ArrName) ! внутренняя подпрограмма
