Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Объявление переменной xyпроизводного типа (структуры) xycoord. которая содержит координаты (x,y) видеопорта






 

type(xycoord) xy

 

Производный тип (структура) wxycoord. содержит координаты (x, y) окна и определена как:

 

TYPE wxycoord

REAL(8) wx! x window coordinate

REAL(8) wy! y window coordinate

END TYPE wxycoord

Графическая функция MOVETO перемещает текущую графическую позицию в заданную точку видеопорта с координатами (x, y). Графическая функция MOVETO_W перемещает текущую графическую позицию в заданную точку окна с координатами (wx, wy). При этом рисования не происходит. Функции MOVETO и MOVETO_W присваивает координаты предыдущей позиции переменным t и wt, соответственно.

 

CALL MOVETO (x, y, t)

CALL MOVETO_W (wx, wy, wt)

 

· x, y - (Input) INTEGER(2). Координаты новой графической позиции в системе координат видеопорта;

· t - (Output) производный тип xycoord. Координаты предыдущей графической позиции в системе координат видеопорта;

· wx, wy - (Input) REAL(8). Координаты новой графической позиции в системе координат окна;

· wt - (Output) производный тип wxycoord. Координаты предыдущей графической позиции в системе координат окна.

 

 

Графическая функция рисует линию из текущей графической позиции в заданную конечную точку включительно. Линия рисуется текущим цветом (устанавливается с помощью SETCOLORRGB), в логическом режиме вывода (устанавливается SETWRITEMODE) и стилем (устанавливается SETLINESTYLE). Если не возникает ошибок, LINETO устанавливает текущую графическую позицию в точку видеопорта (x, y), а LINETO_W устанавливает текущую графическую позицию в точку окна (wx, wy).

result = LINETO (x, y)

result = LINETO_W (wx, wy)

 

x, y - (Input) INTEGER(2). Конечная точка видеопорта;

wx, wy - (Input) REAL(8). Конечная точка окна;

result - INTEGER(2). Результат имеет ненулевое значение, если успешно завершена функция, иначе 0.

 

Графическая функция SETPIXEL устанавливает заданный пиксел в текущий цвет, который устанавливается SETCOLOR и может быть получен с помощью GETCOLOR. Не RGB цветовые функции (такие как SETCOLOR and SETPIXELS) используют индексы цвета вместо реальных значений цвета.

 

result = SETPIXEL (x, y)

result = SETPIXEL_W (wx, wy)

 

x, y - (Input) INTEGER(2). Координаты заданного пиксела в системе координат видеопорта;

wx, wy - (Input) REAL(8). Координаты заданного пиксела в системе координат окна;

result - INTEGER(2). Результатом является предыдущий цвет заданного пиксела, если функция успешна; в противном случае, -1 (например, если пиксел находится вне области рисования).

 

КАТЕГОРИЯ 2. Реализация процедуры W вывода в текстовый файл 'DZ2.out' массива С коэффициентов полинома аппроксимации степени m

 

Вариант 1

subroutine W(m, C)

integer, parameter:: fpw=2! устройство вывода

integer m! степень полинома

real(8) C(0: m)! массив коэффициентов

open(unit=fpw, file='DZ2.out')! открыть файл

write(fpw, *) 'Коэффициенты полинома Pm(x): '

write(fpw, '(100f8.4)') (c(i), i=0, m)

close(fpw)! закрыть файл

end subroutine W

 

Вариант 2

subroutine W(m, C)

integer m! степень полинома

double precision C(0: m)! массив коэффициентов

open(unit=2, file=" DZ2.out")! открыть файл

write(2, *) " Коэффициенты полинома Pm(x): "

write(2, " (100f8.4)") (c(i), i=0, m)

close(2)! закрыть файл

end subroutine

 

Вариант 3

subroutine W(m, C)

integer m! степень полинома

real*8 C(0: m)! массив коэффициентов

open(2, file='DZ2.out')! открыть файл

write(2, 10) 'Коэффициенты полинома Pm(x): '

10 format(a)

do i=0, m

write(2, 11) c(i), ' '

end do

11 format(f8.4, a, $)

close(2)! закрыть файл

end

 

КАТЕГОРИЯ 3. Реализация процедуры R считывания из текстового файла 'DZ.txt' динамических массивов X, Y координат n узлов аппроксимации.

Текстовый файл DZ.txt.

 

Вариант 1

subroutine R(n, X, Y)

implicit none

integer, parameter:: fi=1! устройство ввода

integer, parameter:: MAX=100! максимальное количество точек

integer i! счетчик точек полинома

real(8):: X(0: MAX), Y(0: MAX)! таблица данных X(n), Y(n)

integer n! количество точек функции (i=0..n-1)

open(unit=fi, file='DZ.txt')! открытие файла данных

read(fi, *) n! чтение количества узлов аппроксимации

do i=0, n-1! проход по узлам аппроксимации

read(fi, *) X(i), Y(i)! чтение координат узлов

enddo

close(fi)! закрытие файла

end subroutine R

 

Вариант 2

subroutine R1(n, X, Y)

implicit none

integer, parameter:: MAX=100! максимальное количество точек

integer i! счетчик точек полинома

double precision X(0: MAX), Y(0: MAX)! таблица данных X(n), Y(n)

integer n! количество точек функции (i=0..n-1)

open(unit=1, file='DZ.txt')! открытие файла данных

read(1, *) n! чтение количества узлов

do 2 i=0, n-1! проход по узлам аппроксимации

read(1, *) X(i), Y(i)! чтение координат узлов

2 continue

close(1)! закрытие файла

end subroutine

 

Вариант 3

subroutine R2(n, X, Y)

real*8 X(0: 100), Y(0: 100)! таблица данных X(n), Y(n)

open(1, file='DZ.txt')! открытие файла данных

read(1, *) n! чтение количества узлов аппроксимации

do 2 i=0, n-1! проход по узлам аппроксимации

2 read(1, *) X(i), Y(i)! чтение координат узлов

close(1)! закрытие файла

end

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.012 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал