Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Объявление переменной xyпроизводного типа (структуры) xycoord. которая содержит координаты (x,y) видеопорта ⇐ ПредыдущаяСтр 6 из 6
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
|