Студопедия

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

КАТЕГОРИИ:

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






Объявление переменной 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.ru - Мои Лекции - 2015-2020 год. (0.013 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал