13.08.2013 Views

?????????????? ?????? ? ????????? ?????????? ??????? ?????

?????????????? ?????? ? ????????? ?????????? ??????? ?????

?????????????? ?????? ? ????????? ?????????? ??????? ?????

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Подпрограмма вывода результатов на график.<br />

В подпрограмме подсоединяется модуль convert, который предназначен<br />

для ввода текста на русском языке при его отображении в различных<br />

надписях на графиках. DISLIN непосредственно не поддерживает<br />

кириллицу. Для ее отображения надо обратиться к п/программе<br />

BASALF с параметром 'RUSSIAN'. После этого текстовые строки с латинскими<br />

буквами преобразуются в соответствующие русские буквы.<br />

Например, латинская v преобразуется в русскую в и т.д. Для того, чтобы<br />

непосредственно вводить текст на русском языке, используется функция<br />

conv('русский текст'), где 'русский текст' печатается в windows-кодировке.<br />

Эта функция загружается модулем convert. Текст модуля приведен<br />

после программы вывода на график.<br />

subroutine vyvod<br />

use obmen<br />

use convert<br />

! Константа dLeg соответствует максимальной длине одной надписи легенды.<br />

integer , parameter :: dLeg=10<br />

! объявление промежуточной символьной переменную Legbuf для вывода легенды.<br />

!Длина символьной переменной должна быть равной произведению констант dLeg и<br />

! kolgr. (значение kolgr объявлено в модуле obmen)<br />

character (len=dLeg*kolgr) Legbuf<br />

! объявление массива Ys, который понадобится для автоматического определения<br />

! масштабов по осям.<br />

real Ys(2*kolgr)<br />

! позиционирование окна в центре экрана<br />

CALL SWGOPT('center','position')<br />

! установка ширины окна 63% от ширины экрана, и высоты окна 71% от ширины<br />

! окна. (Здесь эти цифры определены опытным путем)<br />

CALL SWGWTH (-63); CALL SWGDRW(0.71)<br />

! инициализация виджетов с вертикальным расположением<br />

CALL WGINI ('VERT', IP)<br />

! вывод надписи<br />

CALL WGLAB (IP, 'Результаты расчета:', ID1)<br />

! вывод выджета для рисунка<br />

CALL WGDRAW(ip,id_draw2)<br />

! установка параметров виджета рисунка. Если в качестве параметра п/программы<br />

! METAFL задана символьная переменная 'XWIN', то график выводится в окно. Если<br />

! задан параметр 'WMF', то график выводится в графический файл с расширением<br />

! wmf. Возможен вывод в форматы PDF, BMP, TIFF, GIF и др. При задании параметра<br />

! 'VIRT' график выводится в виртуальный файл, сохраняемый в памяти компьютера.<br />

CALL SETXID(id_draw2,'WIDGET'); CALL METAFL('XWIN')<br />

! инициализация DISLIN, очистка окна рисунка<br />

CALL DISINI; CALL ERASE<br />

! задание отображения кириллицы в надписях графика<br />

CALL BASALF('RUSSIAN');<br />

! call chncrv('COLOR')<br />

! ввод надписей по оси Х и У соответственно.<br />

CALL name(conv('время,с'), 'X')<br />

CALL name(conv('ток, А; напряжение, В'), 'Y')<br />

! занесение в массив Ys минимальных и максимальных значений массивов тока в<br />

155

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!