10949-1 (Графическое программирование на Ms Fortran)

2016-07-30СтудИзба

Описание файла

Документ из архива "Графическое программирование на Ms Fortran", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "10949-1"

Текст из документа "10949-1"

Графическое программирование на Ms Fortran

Курс лекций по дисциплине по специальности «ПГС» после техникума

Факультет – строительный; кафедры – «Металлические и деревянные конструкции» и «Железобетонные и каменные конструкции»

Задачи курса

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

Литература

1) Уорд Т., Бромхед Э. Фортран и искусство программирования персональных ЭВМ. - М.: Радио и связь, 1993.-352с.

2) Программирование на Фортране 77/ Дж. Ашкрофт, Р. Элдридж и др. - М.: Радио и связь, 1990.-272с.

3) Бартеньев О.В. Фортран для студентов. - М.: "Диалог-МИФИ", 1999.-400с.

4) Рыжиков Ю.И. Программирование на Фортране Pоwer Statiоn для инженеров. Практич. рук-во. - СПб.: КОРОНАпринт, 1999.-160с.

5) Н.А Рак, В.И Смех, С.Б. Щербак Программирование инженерных задач на FORTRANе: Уч. методич. пособие по дисц. "Выч. техн. и программир." - Мн.: БГПА, 1998.-45с.

6) Соловьев П.В. FORTRAN для персонального компьютера: Справ. пособие. - М.: Арист, 1991.-224с.

7) Н.А Рак, В.И Смех, С.Б. Щербак Графическое программирование: Уч. методич. пособие по дисц. "Выч. техн. и программир." - Мн.: БГПА, 1997.-40с.

8) Бартеньев О.В. Графика OрenGL: программирование на Фортране. М.: ДИАЛОГ-МИФИ, 2000.-368с.

Этапы разработки графических программ

Для разработки графических программ на Fortran необходимо иметь в наличии библиотеки графических процедур, содержащиеся в файле Graphics.lib.

Разработка графических программ состоит из следующих этапов:

Подключение графической библиотеки

Установка видео режима

Установка среды изображения

Создание и управление графическими объектами

Восстановление первоначальной конфигурации перед выходом из программы

Графические процедуры представляют собой функции и подпрограммы. Каждая программа, использующая графическую библиотеку должна ЯВНО объявить процедуры. Отдельную используемую графическую процедуру можно объявить, написав ее интерфейс (смотри справку NORTON GUIDE). Сразу все графические процедуры можно описать, включив в программу файлы FGRAPH.FI и FGRAPH.FD. FGRAPH.FI – содержит объявление процедур в операторах INTERFACE (см. далее).

Оператор INTERFACE объявляет имя процедуры (функции), ее атрибуты и типы формальных параметров. Оператор используется для обеспечения корректности вызовов п/п. Компилятор выполняет проверку числа и типов параметров в вызове п/п с параметрами, указанными в интерфейсе.

Пример:

I NTERFACE TO INTEGER FUNCTION Func (p, d, q)

Integer*2 p

Real d типы параметров

Real*8q

END

где: INTEGER – тип функции; FUNCTION – функция; Func – имя функции; p, d, q – формальные параметры.

Здесь объявлена целая функция (возвращающая целое значение) Func с тремя входными параметрами p, d, q. Вызов данной функции обычен:

K = Func (p,d,q)

INTERFACE TO ________________ SUBROUTINE Mix (a,b,c) – объявляет п/п (находится в библиотечном файле с расширением .LIB), находящейся в другом файле.

Вызов п/п обычен CALL MIX (a,b,c)

Файл FGRAPH.FD содержит объявления структурных и символических констант и объявлений операторов EXTERNAL для графических процедур.

Пример, кода файл FGRAPH.FD:

и мя структуры

STRUCTURE /videoconfig/

I nteger*2 numxpixels элементы структуры

а) Integer*2 numypixels

……………………. операторы объявления типов и/или RECORD.

E ND STRUCTURE

б) INTEGER*2 setvideomode [extern] PARAMETER ($YELLOW = #153f3f)

в ) EXTERNAL getvideoconfig PARAMETER ($BRIGHTWHITE = #3f3f3f)

г) INTEGER*4$YELLOW,$BRIGHTWHITE

а) Определение составного типа переменной (структуры).

Обратиться к элементу структуры (для присвоения или получения значения) можно следующим способом:

X = videoconfig.numxpixels


имя структуры элемент структуры

Структуры могут вкладываться друг в друга с использованием оператора RECORD – объявляет структуру для имен, определяемых пользователем.

Пример:

STRUCTURE /full_adress/ !объявление структуры

RECORD /full_name/ personsname !вложение структуры full_name под именем personsname.

INTEGER*1 age

INTEGER*4 phone

END STRUCTURE

Структура full_name может иметь следующий вид:

STRUCTURE /full_name/

Character*15 first_name

Character*20 last_name

END STRUCTURE

Обращение к элементам структуры может быть осуществлено следующим образом:

WRITE (5,*) ‘имя:’, full_adress.personsname.first_name

WRITE (5,*) ‘возраст:’ full_adress.age

б) Объявление целой функции setvideomode.

Атрибут EXTERN указывает, что переменная (в данном случае являющаяся именем функции) размещается в другом исходном файле. Вообще атрибут позволяет определить для переменной, типа переменной, п/п или формальных параметров п/п некоторую дополнительную информацию. Атрибут заключается в квадратные скобки [ ].

Ранее рассматривался пример с атрибутом ALLOCATABLE, указывающим, что массив является динамическим (“размещаемым”).

в) Объявление пользовательского имени как внешней п/п getvideoconfig.

г) Объявление символических констант. В данном случае, задаются значения цветов (в шестнадцатиричном виде) двум целым константам.

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

Файл FGRAPH.FI включается в начало каждого исходного файла программы, а FGRAPH.FD в каждую п/п, содержащую графическую процедуру. Включение производится оператором include – вставка содержимого указанного файла в позиции оператора include.

Пример:

include ‘fgraph.fi’ ! вставка текста файла fgraph.fi

………………….

program LINE

………………….

include ‘fgraph.fd’

………………. символическая константа

I2 = setvideomode ($MAXRESMODE) ! графическая функция установки видеорежима

………………….

end

2. Установка видеорежима

Установка видеорежима необходима для выполнения графических процедур. Под видеорежимом подразумевается:

тип используемого монитора и видеокарты;

разрешение экрана;

использование цветного или монохромного изображения;

количество отображаемых цветов, определяемое количеством памяти выделяемой под цвет. Так “четырех битный цвет” соответствует шестнадцати цветам, восьми битный – 256 (т.е. два в восьмой степени) и т.д.

В настоящее время обычно используется 16 и 24 битные цвета.

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

Получение такой информации:

Record /videoconfig/ Myvideoconf ! включение структуры videoconfig под именем Myvideoconf

……………………..

call getvideoconfig (Myvideoconf) ! вызов п/п определения видеоконфигурации

Элементы структуры videoconfig описаны в файле fgraph.fd. Данной п/п можно узнать разрешение экрана, возможное количество цветов и т.д. Значения возвращаются через элементы структуры.

Установить графический видеорежим можно функцией setvideomode.

Пример:

dum = setvideomode ($MAXRESMODE)

В функцию передается идентификатор (номер) видеорежима. В данном случае передается символическая константа целого типа $MAXRESMODE (= - 3), определенная в файле FGRAPH.FD и определяющая, что выбирается и устанавливается видеорежим с максимальным разрешением.

В случае возникновения ошибки функция возвращает значение 0.

3. Установка среды изображения.

Перед непосредственным выводом изображения необходимо произвести некоторые предварительные настройки.

Установка курсора.

Функция displaycursor позволяет включить или выключить изображение курсора.

Пример:

I2 = displaycursor (1) ! включение курсора, 0 – выключение. Можно использовать символические константы $GCURSOROFF и $GCURSORON.

3.2 Установка палитры.

Каждому цвету на экране ставится в соответствие индекс цвета, по которому он вызывается. Обычно имеется 16 индексов, которым соответствуют 16 стандартных цветов, хотя самих цветов может быть больше.

Для ассоциирования цвета конкретному индексу используются процедуры: remappallpalette, remappalette и selctpalette.

Значение цвета определяется целым числом, состоящим из четырех байт (32 битов). Цвет задается указанием уровня интенсивности для каждого значения красного, зеленого и голубого цветов (RGB модель).

Значение цвета в двоичном виде:

zzzzzzzz zzBBBBBB zzGGGGGG zzRRRRRR, где z это 0, а B, G и R – значения битов для соответствующих цветов различной интенсивности. 1 (двоичные 00000001) соответствует минимальной интенсивности, а 63 (двоичное 00111111) максимальной. Чисто желтому цвету (100% зеленого и 100% красного) соответствуют значение:

(00000000 00000000 00111111 00111111)2 = (1392447)10 = (153f3f)16

белому (всего по 100%): (4144959)10 = (3f3f3f)16

Пример:

i2 = remapalette (1#153f3f) !присвоение индексу 1 желтого цвета

аналогично

i2 = remapalette (1,1392447)

аналогично

i2 = remapalette (1,$YELOW) !где $YELOW – константа, соответствующая желтому цвету (определена в файле Fgraph.fd)

Функция remappallpalette выполняет одновременное переназначение всех индексов цвета. В функцию передается массив значений цветов.

Установка координатных систем

Текстовые координаты.

Текстовые координаты служат для отображения текста шрифтом фиксированного размера. Координаты текста задаются в строках и столбцах. В обычном текстовом режиме: 25 строк и 80 столбцов. Установка текстовых координат осуществляется графической п/п settextposition.

Пример:

call settextposition (10, 50, rc)

10, 50–координаты начала текста; rc – локальное имя структуры rccoord (см. fgraph.fd) с помощью которой возвращается и передается в п/п предыдущая текстовая координата для ее переразмещения в новую. Координата (1,1) находится в левом верхнем углу.

Физические координаты.

Физические координаты являются фиксированными и определяются техническими средствами (видеокартой и монитором).Начало координат находится в левом верхнем углу, если не используется п/п setvieworg. Разрешения 640*480; 800*600. Физические координаты являются целочисленными.

Пример: перенос начала координат в точку (50, 100)

CALL setvieworg (50, 100, xy)

Теперь координата x изменяется от 50, до .numxpixels-50, а y, от 100 до .numypixels-100, где numxpixels и numypixels – элементы структуры videoconfig, содержащие максимальное число пиксел по осям OX и OY. Переустановка начала координат повлияет на все графические процедуры.

Используя физические координаты можно установить невидимую координатную область ‑ “область клипа”. Рисование в этом случае производится только в этой области, попытка рисования вне области игнорируется.

Пример:

call setcliprgn (10,10,100,100) – установка квадратной “области клипа”. Процедура setcliprgn не изменяет систему координат.

3.3.3 Координаты порта просмотра

“Порт просмотра” (“viewport”) – прямоугольная область экрана в которой осуществляется рисование. “Порт просмотра” устанавливается процедурой setviewport. Действие этой процедуры аналогично процедуре setcliprgn, но с переносом начала координат в левый верхний угол области. При использовании “оконных” координат необходимо создать "порт просмотра”.

Пример:

Call SetViewPort(20,20,200,200)

Аналогично:

Call SetClipRgn(20,20,200,200)

Call SetViewOrg(20,20)

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5173
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее