Головна сторінка Випадкова сторінка КАТЕГОРІЇ: АвтомобіліБіологіяБудівництвоВідпочинок і туризмГеографіяДім і садЕкологіяЕкономікаЕлектронікаІноземні мовиІнформатикаІншеІсторіяКультураЛітератураМатематикаМедицинаМеталлургіяМеханікаОсвітаОхорона праціПедагогікаПолітикаПравоПсихологіяРелігіяСоціологіяСпортФізикаФілософіяФінансиХімія |
Індивідуальні особливості мисленняДата добавления: 2015-03-11; просмотров: 582
Исходный текст главной программы use msflib ! подключение модуля стандартных процедур implicit none ! указание обязательного объявления переменых !----------------------------------------------------------- integer,parameter::fi=1 ! устройство ввода integer,parameter::fpw=2 ! устройство вывода integer,parameter::MAX=100 ! максимальное количество точек integer,parameter::NT=150 ! количество точек кривой полинома real(8),parameter::D_X=0.05 ! припуск на диапазон рисования real(8),parameter::D_Y=0.05 ! припуск на диапазон real(8) XN,XK,YN,YK,HX ! границы и шаг изменения Х графика integer i ! счетчик точек полинома real(8) Xmin,Xmax ! минимальный и максимальный элементы X real(8) Ymin,Ymax ! минимальный и максимальный элементы Y real(8):: X(0:MAX),Y(0:MAX) ! таблица данных X(N),Y(N) real(8):: C(0:MAX) ! массив коэффициентов аппрокс.полинома Pm(x) real(8):: A(0:MAX,0:MAX) ! матрица коэффициентов системы уравнений integer N ! количество точек табл. функции (i=0..N-1) !----------------------------------------------------------- logical res ! логический результат графических функций integer(2) XE, YE ! XE,YE - размеры экрана в пикселях INTEGER(2) status ! целый результат графических функций logical(2) finv /.true./ ! Ось у направлена снизу вверх type(windowconfig) wc ! структура параметров окна !----------------------------------------------------------- open(unit=fi,file='DZ_V6.txt') ! открытие файла данных read(fi,*) n ! чтение количества узлов аппроксимации do i=0,n-1 read(fi,*) X(i),Y(i) ! чтение координат узлов Enddo close(fi) ! закрытие файла !----------------------------------------------------------- ! Автоматическая настройка конфигурации окна data wc.numxpixels, wc.numypixels, wc.numtextcols, & wc.numtextrows, wc.numcolors, wc.fontsize / 6*-1 / wc.title = "Интерполяционный многочлен Лагранжа"C res = getwindowconfig(wc) ! Читаем параметры видеоокна XE = wc.numxpixels ! numxpixels - число пикселей по оси х YE = wc.numypixels ! numypixels - число пикселей по оси у status = RECTANGLE( $GFILLINTERIOR, INT2(0), INT2(0), XE, YE ) status = setcolor(1_2) ! цвет рамки status = RECTANGLE( $GBORDER, XE/4_2-20, YE/4_2-20, & 3_2*XE/4_2+20, 3_2*YE/4_2+20) call axis() ! Рисуем оси координат ! Задание видового порта размером XE/2 * YE/2 в центре видеоокна call setviewport(XE/4_2, YE/4_2, 3_2*XE/4_2, 3_2*YE/4_2) ! Оконная система координат (ОСК) !----------------------------------------------------------- Xmin=MinVal(X); Xmax=MaxVal(X) ! поиск минимума и максимума Х Ymin=MinVal(Y); Ymax=MaxVal(Y) ! поиск минимума и максимума Y XN=Xmin-D_X ! левая граница Х графика XK=Xmax+D_X ! правая граница Х графика YN=Ymin-D_Y ! левая граница Y графика YK=Ymax+D_Y ! правая граница Y графика status = setwindow(finv, XN, YN, XK, YK) call curve() ! Рисуем график !----------------------------------------------------------- ПРИЛОЖЕНИЕ 2 Секция CONTAINS с определением внутренних подпрограмм !****************************************************************** subroutine axis() ! Рисуем оси координат Type(xycoord) xy status = setcolor( 2_2) ! цвет осей координат call moveto(int2(XE/4 - 10), int2(YE/2), xy) status = lineto(3_2*XE/4_2 + 10_2, YE/2_2) ! Ось х call moveto(int2(XE/2), int2(YE/4 - 10), xy) status = lineto(XE/2_2, 3_2*YE/4_2 + 10_2) ! Ось y
|