Описание языка Fortran
Структура Fortran-программы. Описание переменных, правила умолчания и операторы. Стандартные математические функции. Вычисляемый оператор перехода. Общие области, подпрограмма Block Data. Обработка внешних файлов. Файлы с графическими шрифтами.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 10.06.2013 |
Размер файла | 46,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
INTEGER*2 mode ! текущий видеорежим
INTEGER*2 adapter ! активный адаптер дисплея
INTEGER*2 monitor ! активный монитор
INTEGER*2 memory ! видеопамять адаптера в килобайтах
END STRUCTURE
RECORD/videoconfig/s
Процедура возвращает текущую графическую конфигурацию через структуру s. Поле mode возвращает установленный графический режим. Поле adapter возвращает тип графического адаптера, например, $VGA = 8 . Поле monitor возвращает тип монитора, например, $COLOR или $ENHCOLOR .Фоновый цвет экрана устанавливается функцией
INTEGER*4 FUNCTION SetBkColor (color)
INTEGER*4 color
Подпрограмма
SUBROUTINE ClearScreen(area)
INTEGER*2 area
очищает некоторую область экрана, заполняя ее текущим цветом фона. Параметр area может быть одной из следующих констант:
$GCLEARSCREEN - весь экран,
$GVIEWPORT - текущий видеопорт,
$GWINDOW - текущее текстовое окно.
Текущий цвет для линий и закраски устанавливает функция
INTEGER*2 FUNCTION SetColor(color)
INTEGER*2 color
Вывод пиксела на экран (с использованием текущего цвета) выполняется функцией
INTEGER*2 FUNCTION SetPixel (x,y)
INTEGER*2 x,y
Отрезок прямой от текущего положения графического курсора до точки с координатами x,y рисует функция
INTEGER*2 FUNCTION LineTo (x,y)
INTEGER*2 x,y
Графический курсор перемещается процедурой
SUBROUTINE MoveTo(x,y,s)
INTEGER*2 x,y
STRUCTURE/xycoord/
INTEGER*2 xcoord
INTEGER*2 ycoord
END STRUCTURE
RECORD/xycoord/s
Процедура возвращает через параметр s предыдущее положение графического курсора. Шаблон линии задается процедурой
SUBROUTINE SetLineStyle (mask)
INTEGER*2 mask
Эллиптическая дуга рисуется функцией
INTEGER*2 FUNCTION Arc(x1,y1,x2,y2,x3,y3,x4,y4)
INTEGER*2 x1,y1,x2,y2,x3,y3,x4,y4
Центром эллипса является центр прямоугольника, который определяется точками (x1,y1) и (x2,y2), дуга начинается в точке, (x3,y3), и заканчивается в точке (x4,y4). Эллипс рисуется функцией
INTEGER*2 FUNCTION Ellipse(control,x1,y1,x2,y2)
INTEGER*2 control,x1,y1,x2,y2
Центром эллипса является центр ограничивающего прямоугольника, определяемого точками (x1,y1) и (x2,y2). Аргумент control может быть одной из двух констант:
$GFILLINTERIOR - эллипс закрашивается,
$GBORDER - эллипс не закрашивается.
Прямоугольник рисуется функцией
INTEGER*2 FUNCTION Rectangle (control,x1,y1,x2,y2)
INTEGER*2 control,x1,y1,x2,y2
Замкнутая область закрашивается функцией
INTEGER*2 FUNCTION FloodFill(x,y,boundary)
INTEGER*2 x,y,boundary
Функция аналогична FloodFill в языках PASCAL и C. Способ закрашивания устанавливается процедурой
SUBROUTINE SetFillMask(mask)
INTEGER*1 mask
где mask - массив из 8 элементов типа INTEGER*1, который определяет шаблон закраски области 8 на 8 пикселов. Если маска заполнения не установлена или массив нулевой, то для заполнения используется текущий цвет. Текст на графический экран выводится процедурой
SUBROUTINE OutGText(text)
CHARACTER*(*) text
Текст выводится с использованием текущего шрифта, текущей графической позиции и текущего цвета. После вывода текста сохраняется текущая графическая позиция. Текст позиционируется по левому верхнему краю. Кроме того язык FORTRAN позволяет пользоваться в графическом режиме и обычными операторами PRINT и WRITE. Текущее положение графического курсора возвращает процедура
SUBROUTINE GetCurrentPosition (s)
RECORD/xycoord/s
Ширину текста в пикселах возвращает функция
INTEGER*2 FUNCTION GetGTextExtent(text)
CHARACTER *(*) text
Подключение графических шрифтов осуществляет функция
INTEGER*2 FUNCTION RegisterFonts (PathToFiles)
CHARACTER*(*) PathToFiles
Файлы с графическими шрифтами имеют расширение fon и должны быть доступны программе. Функция возвращает положительное число, равное номеру последнего зарегистрированного шрифта при успешной регистрации. Отрицательное число означает : -1 - файл не найден; -2,-3 - один или несколько файлов ошибочны. Графические шрифты отключаются процедурой
SUBROUTINE UnRegisterFonts()
Текущий шрифт устанавливается функцией
INTEGER*2 FUNCTION SetFont (options)
CHARACTER *(*) options
Она устанавливает один из зарегистрированных шрифтов, который характеризуется параметром options. Строка options может содержать подстроки:
t'fontname' - имя шрифта;
hx - высота символа в пикселах для масштабируемых шрифтов;
wx - ширина символа в пикселах для масштабируемых шрифтов;
nx - номер шрифта.
1.19 Дополнительные возможности языка: дополнительные точки входа, свободный формат, строки отладки, средства консольного ввода-вывода, системное время, случайные числа
В подпрограммах SUBROUTINE и FUNCTION могут быть дополнительные точки входа, которые задаются оператором ENTRY :
ENTRY имя точки входа(список параметров)
Операторы ENTRY могут записываться в любом месте подпрограммы, но не внутри цикла и не внутри условного оператора. Список параметров дополнительной точки входа может не совпадать со списком параметров в заголовке подпрограммы. Тип вычисляемого значения (если это функция) также может отличаться от типа, указанного в заголовке. Но в самом операторе ENTRY задать вычисляемый тип нельзя, это нужно сделать в операторе описания в начале подпрограммы. Подпрограмму, имеющую дополнительные точки входа, можно вызвать через любую из этих точек, точно так же, как и по основному имени. Но дополнительные точки входа нельзя передавать другим подпрограммам как аргументы.
Метакоманда $FREEFORM позволяет записывать текст программы в так называемом свободном формате. При этом операторы можно размещать в позициях с 1-й по 80-ю; метки записываются начиная с 1-й позиции и могут не отделяться от оператора пробелом; если последний символ строки “-”, то следующая строка считается строкой продолжения; признак комментария -символ “ в 1-й позиции.
Строки отладки позволяют осуществлять так называемую условную компиляцию, т.е. компилировать не все операторы программы, а лишь некоторое их подмножество. Строка отладки - это любая строка программы, в первой позиции которой записана какая-нибудь латинская буква (кроме буквы C). Для включения режима условной компиляции используется метакоманда $DEBUG. Она может быть задана (в любом месте программы) либо без параметров : $DEBUG , либо с параметром - строкой, состоящей из латинских букв : $DEBUG:'буквы'. В первом случае метакоманда включает расширенную диагностику ошибок времени выполнения (целочисленное переполнение, проверка границ подстрок, проверка индексных выражений элементов массивов и т.д.). Во втором случае метакоманда включает режим условной компиляции - компилируются только те из строк отладки, которые начинаются буквой, входящей в строку, заданную в $DEBUG, остальные строки отладки считаются комментариями. Отменить действие метакоманды $DEBUG можно либо другой метакомандой $DEBUG, либо метакомандой $NODEBUG.
В языке FORTRAN есть некоторые средства для работы с текстовыми окнами на экране. Они находятся в той же библиотеке, что и графические процедуры и функции, поэтому для их использования необходимо подключить к программе файлы fgraph.fi и fgraph.fd. Процедура SetTextWindow (y1,x1,y2,x2) распределяет текстовое окно на экране, y1,y2 - номера строк, x1,x2 - номера позиций. Для очистки текстового окна используются функция SetBkColor и процедура ClearScreen, которые работают как в графическом, так и в текстовом режиме. Положение курсора устанавливает процедура SetTextPosition(y,x,OlpPos), где y,x - номер строки и номер позиции (координаты отсчитываются от левого верхнего угла окна), OldPos - структурная переменная, через которую возвращаются предыдущие координаты курсора, она должна быть описана как RECORD/rccoord/TextPos. Цвет текста устанавливает функция SetTextColor(Color). Вывод в текстовое окно осуществляется специальной процедурой OutText(text). Процедура выводит только символьные значения, числа должны быть предварительно преобразованы в строку. Не следует использовать совместно с процедурой OutText операторы PRINT и WRITE. Форму курсора можно установить функцией SetTextCursor. Она имеет один параметр типа INTEGER*2, значение #0707 задает тонкий курсор, #0007 - максимально большой (“блочный”) курсор, #0607 - нормальный курсор, #2000 - невидимый курсор. При работе с текстовыми окнами нежелательно использование оператора PAUSE, вместо него можно использовать оператор READ(*,*), который ожидает нажатия клавиши Enter (как ReadLn в языке PASCAL). Этот оператор работает и во всех других случаях.
Для получения системного времени служит стандартная подпрограмма-процедура
SUBROUTINE GetTim(h,m,s,s100)
INTEGER*2 h,m,s,s100
где h-часы, m-минуты, s-секунды и s100-сотые доли секунды.
Случайное вещественное число из отрезка (0,1) возвращает подпрограмма-процедура
SUBROUTINE Random(x)
REAL*4 x
Генератор случайных чисел можно инициализировать с помощью подпрограммы-процедуры
SUBROUTINE Seed(Init)
INTEGER*2 Init
При возрастании параметра Init от 0 до примерно 10000 первое значение, возвращаемое генератором случайных чисел, растет от почти нуля до почти единицы, а для больших значений Init этот цикл повторяется. В качестве хорошего инициализатора можно брать величину s100*100, где s100 - сотые доли секунды текущего системного времени.
Размещено на Allbest.ru
...Подобные документы
Основные приёмы и возможности алгоритмических языков программирования Fortran. Табуляция функции на языке Fortran, ее графический вид и блок-схема алгоритма. Выполнение расчетов на алгоритмическом языке Фортран. Текст (листинг) Fortran-программы.
курсовая работа [31,9 K], добавлен 15.02.2011Степень переносимости исходного кода между различными платформами. Первый язык программирования высокого уровня, имеющий транслятор. Программа Fortran, ее версии, отличия от других программ. Составление программ на языке программирования Fortran.
курсовая работа [45,5 K], добавлен 04.06.2014Характеристики операторов языка Си. Операторы безусловного и условного перехода: if, if-else, if-else if. Оператор переключатель switch. Оператор цикла с предусловием while, постусловием do-while. Упрощение логических выражений, взаимозаменяемость циклов.
лабораторная работа [30,0 K], добавлен 06.07.2009Принцип работы основных операторов языка программирования Turbo-Paskal: оператор присваивания, выбора Case, безусловного перехода, цикла, уловный, составной. Формальное описание и вызов функции и процедуры. Требования к списку фактических параметров.
реферат [261,8 K], добавлен 09.02.2011Машинные коды и ассемблер. Первые языки программирования высокого уровня. Язык программирования FORTRAN. Достоинства и недостатки ALGOL. Научные и бухгалтерские программы. Основные принципы, которые соблюдались при создании языка программирования Basic.
курсовая работа [407,4 K], добавлен 21.06.2014Общая характеристика языков программирования. Описание языка Паскаль: основные субъекты языка; структура Паскаль-программы; типизация и объявление данных. Операторы присваивания и выражения. Структурные операторы, организация ветвлений и циклов.
дипломная работа [276,6 K], добавлен 26.01.2011История создания и применение языка Basic. Стандартные математические и строковые функции. Операции и выражения языка. Блоки данных и подпрограммы. Операторы управления, цикла, ввода-вывода и преобразования информации. Константы, переменные, массивы.
контрольная работа [2,3 M], добавлен 04.05.2015Разработка блока распараллеливания последовательной программы с языка Fortran на язык Fortran-DVM/OpenMP. Реализация блока DVM/OpenMP-эксперт на основе компонента DVM-эксперт. Тестирование системы алгоритмами Якоби, верхней релаксации и методом Гаусса.
дипломная работа [218,3 K], добавлен 15.10.2010Программирование вычислительных процессов на языке FORTRAN для обеспечения взаимодействия системы "Человек-Производство-Природа". Использование массивов для составления циклов подсчета уровня экологического загрязнения, затрат на переработку отходов.
курсовая работа [2,0 M], добавлен 30.05.2014Краткая характеристика встроенного языка. Формат исходных текстов программных модулей. Комментарии, формат операторов, зарезервированные слова. Структура программного модуля. Базовые типы данных, правила их преобразования. Оператор объявления переменных.
реферат [30,3 K], добавлен 23.01.2011Особенности параллельного программирования высокопроизводительных многопроцессорных или многомашинных вычислительных комплексов. Основные положения и понятия стандартов MPI и OpenMP. Средства компиляции параллельных операторов для языков C и Fortran.
лекция [177,9 K], добавлен 22.10.2014Общая характеристика языка программирования Турбо Паскаль: операторы, циклы, файлы. Процедуры и функции модуля Crt. Структурная и функциональная схема программы учета учащихся, таблица идентификаторов. Список и описание использованных подпрограмм.
курсовая работа [702,9 K], добавлен 29.01.2011Разработка программы, моделирующей игру "Кости". Использование в программе генератора псевдослучайных чисел. Схема иерархии модулей. Описание работы программы. Регистрация игрока, окно программы. Определение языка программирования, основные операторы.
курсовая работа [3,2 M], добавлен 29.07.2010Процесс создания программы, разработка проекта программы и программирование. Лексическая обработка, синтаксический анализ, поэтапная генерация кода, использование библиотечного файла и кода. Стандартные функции библиотечного кода, математические ошибки.
курсовая работа [26,4 K], добавлен 01.12.2009Характеристика базовых конструкций языков программирования. Изучение истории их развития и классификации. Определение основных понятий языков программирования. Описание основных операторов, которые используются в языках программирования высокого уровня.
курсовая работа [400,6 K], добавлен 10.11.2016Разработка программы, которая выполняет удаление элементов внешних таблиц, а также очистку файлов, вывод таблиц на экран. Описание программного продукта. Выбор языка программирования. Схема информационных потоков. Комплект поставки и инсталляция.
курсовая работа [180,0 K], добавлен 09.03.2009Структура программы PL/SQL. Секция заголовка блока. Элементы, объявленные в секции объявлений базового блока. Приоритет операций выражения. Управление выполнением программы. Конструкция и синтаксис цикла LOOP. Оператор GOTO и метки, пример использования.
лекция [356,3 K], добавлен 14.02.2014Описание предметной области. Характеристика программных средств. Описание компонентов, интерфейс программы. Описание процедур и функций. Вызов и загрузка программы. Испытание методом белого и черного ящика на ошибки кода программного приложения.
курсовая работа [2,2 M], добавлен 26.04.2015Изучение строкового типа данных, построение классов обработки строк. Описание программы, выводящей слова, состоящие только из гласных латинских букв (a, e, i, o, u). Операторы для проверки корректности вводимых значений c помощью условного оператора if.
контрольная работа [12,7 K], добавлен 26.05.2016Символьные типы данных, работа со строками, составление блок-схемы алгоритма и программы для работы с массивами. Организация программы с использованием процедур и функций. Процедуры и функции, использующиеся при обработке файлов; компонентные файлы.
контрольная работа [52,9 K], добавлен 03.10.2010