Обучающая программа Графика программированию в графическом режиме на языке turbo-pascal 7.x
кроме того, если позволяют погодные условия, то работу следует проводить
при открытых окнах.
9.4.Система освещения
Искусственное освещение по своему устройству бывает двух систем: общее
и комбинированное . При выборе системы освещения учитывают психологические,
физиологические, экономические и конструктивные факторы. Так как в
помещении выполняются работы высокой точности IIIв, то целесообразнее
использовать систему общего освещения. В нее включаются потолочные и
подвесные люминесцентные светильники общей освещенностью 400 лк.
Светильники распределяются равномерно рядами и параллельно источникам
прямого света, так чтобы экран монитора находился в зоне защитного угла
светильника, и его проекция не приходилась на экран монитора. Причем, для
таких светильников рекомендуется использовать люминесцентные лампы
мощностью по 40 Вт серий ЛП013, ЛП031, ЛПОЗЗ.
Для улучшения освещенности важно правильно подобрать цветовую отделку
интерьера и оборудования. Обычно потолок и стены выше панелей 1.5 - 1.7 м,
если они не облицованы звукопоглощающим материалом, окрашиваются
водоэмульсионной краской светлых, холодных тонов.
9.5. Инженерно - технические мероприятия благоприятных условий труда
9.5.1. Защита от шума
Источниками шума в данном помещении являются принтеры, персональные
компьютеры и сами люди, работающие в лаборатории. Кроме того, шум может
поступать извне, а т.к. в помещении выполняются работы высокой точности,
желательно, чтобы оно не граничило с помещениями, имеющими повышенные
уровни воздушного и ударного шума.
Для обеспечения изоляции помещения от шумов, проникающих извне можно
использовать акустическую обработку помещения, которая заключается в
облицовке потолка и стен звукопоглощающим материалом, причем для достижения
максимально возможного звукопоглощения необходимо облицевать не менее 60%
общей площади внутренних поверхностей помещения.
Для сохранения стабильности звукопоглощающих характеристик такого
покрытия необходимо периодически осуществлять различные профилактические
мероприятия. Для уменьшения звука, поступающего извне данное помещение не
должно граничить с помещениями, имеющими повышенные уровни воздушного и
ударного шума, а также располагаться вблизи таких "шумных" помещений.
Источники загазованности и вибрации в данном помещении отсутствуют.
9.5.2.Защита от излучения
Результаты спец исследований показали, что мониторы испускают слабые
рентгеновские лучи, но интенсивность такого излучения составляет менее
половины мили рентгена в час - намного меньше допустимого уровня. Но даже
от такого незначительного излучения можно защититься. В зависимости от
условий воздействия электромагнитных полей (ЭМП), характера и
местонахождения источника могут быть использованы следующие виды защиты :
1) защита временем, использующаяся в случае невозможности снизить
интенсивность излучения в рабочей зоне;
2) защита расстоянием, позволяющая существенно уменьшить степень
поражения излучением, так как интенсивность убывает пропорционально
квадрату расстояния;
3) экранирование источника излучения или рабочего места. Оно должно
отвечать следующим требованиям :
- уменьшать интенсивность излучения до предельных уровней;
- обеспечивать удобства в работе;
- обеспечивать безопасность работы в отношении механических и
электрических травм.
Применительно к рассматриваемому помещению чаще всего используются
следующие два способа защиты:
1) ввиду того, что незначительная утечка излучения из кинескопа
обнаруживается только в пределах нескольких миллиметров от поверхности
экрана и по мере удаления доза уменьшается, то можно применять защиту
расстоянием. Нормальным расстоянием, на котором излучение не регистрируется
даже чувствительной измеризмерительной аппаратурой является расстояние 0.3
- 0.4 метра;
2) можно использовать защитный экран или сетку.
9.5.3. Меры защиты от поражения электрическим током
Статистика показывает, что число травм, вызванных электрическим током,
составляет 11-12% от их общего числа. Но из всех случаев со смертельным
исходом наибольшее количество происходит в результате поражения
электрическим током. Причем до 80% всех случаев электротравматизма со
смертельным исходом приходится на электрооборудование напряжением до 1000
Вив первую очередь 220...380 В.
Электрооборудование в основном относится к установкам напряжением до
1000 В, исключения составляют лишь экранные пульты, дисплеи, электронно-
лучевые трубки, которые имеют напряжение в несколько киловольт.
Организационные мероприятия, обеспечивающие безопасность работ,
заключаются в следующем: соблюдение режима работы и отдыха, правильная
организация обслуживания действующих электроустановок ВЦ, проведение
ремонтных и профилактических работ.
По опасности поражения электрическим током рассматриваемое помещение
относится к помещениям без повышенной опасности.
Таблица 21
Классификация помещения по степени опасности поражения человека
электрическим током
|Класс помещения |Характеристика помещения |
|Без повышенной опасности |Сухое, не жаркое, с токонепроводящим |
| |полом, без токопроводящей пыли, |
| |отсутствует возможность одновременного|
| |прикосновения человека к имеющим |
| |соединение с землей |
| |металлоконструкциями зданий, |
| |технологическим аппаратам, механизмам |
| |и т.п. с одной стороны, и к |
| |металлическим корпусам |
| |электрооборудования, которые при |
| |пробое изоляции могут оказаться под |
| |напряжением, - с другой стороны |
К техническим мероприятиям, обеспечивающим безопасность работ со
снятием напряжения относятся:
- отключение оборудования на участке, принятие мер против ошибочного
или самопроизвольного включения, ограждение при необходимости рабочих мест
и оставшихся под напряжением токоведущих частей;
- проверка отсутствия напряжения;
- установка заземления.
Применение только одних организационных и технических мероприятий по
предупреждению поражения электрическим током не может в полной мере
обеспечить необходимую электробезопасность при эксплуатации. Наряду с ними
в вычислительных центрах используют защитное заземление. Нормативное
значение сопротивления заземления приведено в табл. 22
Таблица 22
Нормативное, значение сопротивления заземления
|Напряжение сети |Режим нейтрали |Назначение |Сопротивление |
| | |заземления |заземления, Ом |
|До 1000 В |Изолированная |Защитное |Rз =< 10 |
|Выше 1000 В |Изолированная |Защитное |Rз =< 0,5 |
Сопротивление изоляции электрических цепей ЭВМ общего назначения в
нормальных климатических условиях должно быть не менее значений указанных в
табл. 23
Таблица 23
|Напряжение цепи, кВ |Сопротивление изоляции, МОм |
|до од 0,1 |5,0 |
|0,1 - 0,5 |20,0 |
|0,5 - 1,0 |100 |
9.6. Противопожарные требования
К помещению, в котором располагается вычислительный центр
предъявляются требования:
1) здание, в котором предусмотрено размещение ЭВМ, должно быть 1
степени огнестойкости;
2) все виды кабельных коммуникаций должны быть проложены в
металлических газовых трубах;
3) подпольные пространства под съемными полами должны быть разделены
несгораемыми перегородками;
4) силовые кабельные линии должны быть надежно изолированы;
5) в наличии должны быть первичные огнетушительные средства;
По пожароопасности зоны данное помещение относится к классу П-IIa. Для
ликвидации пожаров помещение вычислительного центра площадью 40 кв. м.
должно располагать одним углекислотным огнетушителем типа ОУ-2, ОУ-5, или
ОУ-8.
Для своевременного обнаружения, оповещения и принятия мер быстрой
ликвидации пожара в помещении необходима установка дымовых пожарных
извещателя. При установке извещателя на высоте 4 м и площади помещения 40
кв. м. достаточно одного дымового извещателя.
9.7. Организация рабочего места пользователя при работе с терминалом
1) При организации рабочего места с терминалом на одного пользователя
необходимо выделять не меньше б кв. метров. Высота юмещения должна быть не
меньше 4 метров.
2) Помещение обязательно должно оборудоваться огнетушителем,
сигнализацией и телефоном (и городским и местным).
3) Помещение должно быть оборудовано одноместными столами и мягкими
стульями с меняющимися по высоте сиденьями и спинками стула. Столы должны
иметь длину не менее 0.7 метра и ширину, обеспечивающую место перед
клавиатурой 0.3 метра.
4) Разрешающая способность человеческого глаза составляет примерно 0.3
мм на расстоянии 500 мм. Благоприятная для обозрения площадь лежит в
пределах 500-700 мм. Для зрительного распознавания алфавитно-цифровых
знаков необходим растр размером 5-7 точек, поэтому ширина и высота линий
изображения этих знаков должна быть не менее 1.5 мм при удалении 500 мм и
2.9 мм при удалении 700 мм от работающего. Угол обзора по вертикали
составляет 15. В положении сидя этот угол не превышает 15 относительно
горизонтали. Оптимальное расстояние от глаз до экрана монитора 0.6-0.7 м.,
допустимое не менее 0.5 метра. Рассматривать информацию на экране ближе 0.5
метра не рекомендуется.
5) Требуемая и допустимая контрастность элементов рабочего места снизу
ограничена возможностью распознавания, а сверху допускаемой освещенностью,
исключающей ослепление работающего. В поле зрения работающего контрастность
должна быть в пределах от 8:1 до 15:1. При этом исключается наличие
глянцевых поверхностей, создающих блики и отражающий свет. Уменьшению
усталости и повышению удобства обслуживания способствует определенное
размещение коммуникаций работающего с машиной.
9.8.Приборы контроля параметров среды
Метрологическое обеспечение осуществляется на основе положений ГОСТ
12.0.005-84 "Метрологическое обеспечение в области безопасности труда.
Основные положения" /М., 1984/, системы стандартов безопасности труда,
санитарных норм и правил Минздрава СССР и др.
Приборы для контроля опасных и вредных производственных факторов
представлены в
Таблица 24
Приборы контроля
|Измеряемая |Рабочие средства измерений |Погрешность |
|величина | | |
|единица | | |
|измерений | | |
| |тип |диапазон | |
| | |частотный |динамический | |
|1. |Аспирационный |- |-31 . . . |+0,1 С |
|Температура, С|психометр | |51 С | |
|и |MB-4M | | | |
|относительная | |- |10 . . . |+5% |
|влажность | | |100 % | |
|воздуха, % | | | | |
|2. Скорость |Термометр, | |0,1 . . . |+2,1 |
|движения |электроанемоме|- |5 м/с |м/с |
|воздуха, м/с |тр TAM-1 | | | |
|3. Уровень |вшв-ооз |10 . . . |25 . . . |+1 дБ |
|звукового | |20000 Гц |140 дБ | |
|давления в | | | | |
|октавных | | | | |
|полосах | | | | |
|частот, дБ | | | | |
|4. |Люксметр Ю-116|0,38. . . |5 . . . |+10 % |
|Освещенность, |мкм |0,72 мкм |100000 лк | |
|лк. | | | | |
|5. Массовая |Радиоизотопный|- |0,1 . . . |+20 % |
|концентрация |пылемер | |100 иг/м | |
|пыли, мг/куб.м|ПРИЗ-2 | | | |
ЗАКЛЮЧЕНИЕ
В результате разработки данной дипломной работы написана программа для
обучения работе в графическом режиме. Программа предназначена для студентов
младших курсов Санкт-Петербургской государственной академии
аэрокосмического приборостроения и знакомит их с графическими средствами
языка Turbo-Pascal 6.0/7.0.
Программа содержит семь разделов для изучения:
1) Программирование графических режимов.
2) Управление курсором и полем рисования.
3) Формирование прямолинейных монохромных изображений.
4) Управление цветом и стилем изображений.
5) Программирование цветных криволинейных изображений.
6) Формирование графических текстов.
7) Программирование озвученных динамических сцен.
Программа позволяет индивидуально, в удобном для каждого обучаемого
темпе , изучать работу с компьютером в графическом режиме. Изучаемый
материал представлен в программе наглядно, теоретический материал
сопровожден необходимыми иллюстрациями, что делает его более понятным.
Предусмотрена возможность повторного изучения материала. В процессе
обучения производится контроль приобретенных знаний в виде Контрольных
вопросов. При ответах на контрольные вопросы студенту выставляются оценки,
которые регистрируются и могут быть выведены на экран в любой момент работы
с программой. Имеется возможность разъяснения студенту его ошибок в случае
наличия таковых. После ответа на каждый вопрос на экран выводится
комментарий, содержащий оценку в форме "правильно/неправильно" и в случае
неверного ответа пояснения сущности ошибки. Продолжительность сеанса работы
программы составляет 45 минут.
Программа написана на языке Turbo-Pascal 7.0 и требует для
использования наличия персонального компьютера типа IBM, монитора типа EGA
с графическим выводом 640x350 пиксел, 16 регистрами палитры.
Разработанная программа полностью соответствует требованиям
Технического задания.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Брусенцов Н.П., Маслов С.П., Х.Рамиль Альварес Микрокомпьютерная
система обучения "Наставник". М.: Наука , 1990. 223 с.
2. Демушкин А7С7, КирилловА.И., Сливин Н.А., Чубров Е.В., Кривошеев
А.О., Фомин С.С. Компьютерные обучающие программы // Информатика и
образование, 1995. N 3.
3. Казаков В.Г., Дорошквин А.А., Задорожный П.М., Князев Б.А.
Лекционная мультимедиа аудитория // Информатика и образование, 1995. N4.
4. Фаронов В.В. турбо паскаль: в 3 т. М.: Учебно-инженерный центр
"МВТУ-ФЕСТО ДИДАКТИК", 1992.Т.1: Основы турбо Паскаля. 286 с.
5. Епанешников A.M., Епанешников В.А. Программирование в среде TURBO-
PASCAL 7.O.M.: "ДИАЛОГ-МИФИ", 1995. 282 С.
6. Петров В.И. Графические средства алгоритмического языка TURBO-
PASCAL : Методические указания к выполнению лабораторных работ N 1,2 /
ЛИАП.СПб., 1992. 33 с.
7. Петров В.И. Графические средства алгоритмического языка TURBO-
PASCAL : Методические указания к выполнению лабораторных работ N 3,4,5 /
ЛИАП.СПб., 1992. 43 с.
8. Технико-экономическое обоснование исследовательских и инженерных
решений в дипломных проектах и работах: учебное пособие / под редакцией
Минько Э.В., Покровского А.В. /Свердловск Уральский университет, 1990. 144
с.
9. Евдокимов В.И. Охрана труда и окружающей среды: Методические
указания по дипломному проектированию / ЛИАП.Л., 1989. 34 с.
10. Евдокимов В.И., Козаченко В.И., Нейман Л.А., Румянцев В.В. Охрана
труда в приборо- и радиоаппаратостроении: Учебное пособие / СПГУАП. СПб.,
1993. 81 с.
ПРИЛОЖЕИЕ 1
Текст программы
program GRAPHIC; {главная программа "Графика"}
uses Crt, Graph, Dos, Strings, MYBOOK, RAZDEL1, RAZDEL2, RAZDEL3,
RAZDEL4 , RAZDEL5 , RAZDEL6 , RAZDEL7 ;
Type Dlina=string[6Q];
var Gd,Gm: integer;
Regime: byte;
NOMER3 , NOMER4 , NOMER5 , NOMER6 , NOMER7 : integer ;
Ball3 :array[l. .2} of integer; {переменные вывода результатов} ball4
:array[l. .2] of integer; { работы по разделам}
ball5 :array[l. .2] of Integer;
ball6 :array[l. .2] of integer; ball7:array[l. .2] of integer; Itog
:array[l, .2] of integer; {переменная накопления
результатов работы за сеанс}
tog:array[l. .2] of integer; {переменная вывода результатов
работы за сеанс}
К:аггау[1. .2] of integer; {переменная контролирующая число
обращений к процедурам рабочих модулей
}
Dh: Char; {переменная для принятия символа с клавиатуры}
procedure Windol; {введение }
Type Ann=record
PPl:char;
РР2:array [0. .69] of char;
end;
var FF:file of Ann;
A: Ann;
St :string[68];
label 1;
begin
Assign (FF, 'VEDEN. pas' ); {связь с файлом текста введения}
{SI-}
Reset(FF);
{SI + }
IF lOResulto 0 then Writeln ('Heт файла VEDEN1);
ClearDevice;
OKNO; {процедура оформления экрана}
For N:=0 to 31 do {цикл вывода текста введения }
begin
Read(FF,A);
St:=StrPas(A.PP2);
case A.PP1 of {проверка наличия иллюстрации и их вывод}
‘ ‘: OutTextXY( 20 , 10*N+10 , St ) ;
‘0‘ : GoTo 1 ;
end;
end;
1:readkey;
Close(FF);
end;
procedure Cursor(Flag:boolean); {Если Flag=True, то курсор видим;}
{ если Flag=False,TO невидим}
const sizeCursor:word=0;
var Red:registers;
begin
with Red do
begin
if Flag then
begin
CX:=SizeCursor; {Восстановим старый размер курсора}
end
else
begin
BH:=0; {0-я страница дисплея}
АН:=03; {функция чтения размера и позиции курсора}
Intr($10,Red);
SizeCursor:=CX;{сохраняем размер курсора}
СН:=$20; {делаем курсор невидимым}
end;
АН:=01; {функция установки размера курсора}
Intr($10,Red);
end;
end;
procedure SVETFON(C,F:byte); {установка цвета и фона}
begin
TextColor(C);
TextBackground(F)
end;
procedure VERTIKALNOE_MENU(Kl,K2,Kp:byte;SS1,SS2,SS3,SS4,SS5,SS6,
SS7,SS8,SS9:dlina;Var Result:byte);
{процедура создания окна меню}
Label Met;
Const Kr=9;
Var M:array[l..Kr] of string[60];
I,T:byte;
Ch:char;
Fl:boolean;
begin
Cursor(False);
Fl:=True;
M[1]:=SS1;M[2]:=SS2;M[3]:=SS3;M[4]:=SS4;M[5]:=SS5;M[6]:=SS6;
M[7]:=SS7;M[8]:=SS8;M[9]:=SS9;
T:=Length(M[I]);
for I:=2 to Kp do
if Length(M{I])>T then T:=Length(M[I]);
for l:=l to Kp do
begin
if 1=1 then SVETFON(1,13)
else SVETFON(13,1);
GoToXY(Kl,K2+i);
write(M[I]);
end;
SVETFON(13,1);
I:=l;
while Fl=True do begin
Ch:=ReadKey;
if Ch=#13 then Fl:=False;
if(Ch=#0) and KeyPressed then
begin
Ch:=ReadKey;
case Ch of
#80: begin
GoToXY(Kl,K2+i);
SVETFON(13,1);
write(M[I]);
if i=(Kp+l) then
begin
I:=l;
SVETFON(3,l);
GoToXY(Kl,K2+l);
SVETFON(1, 13);
write(M[I]);
SVETFON(13,1);
goto Met;
end;
GoToXY(Kl,K2+I);
SVETFON(1,13);
write(M[I]);
SVETFON(13,1);
end;
#72: begin
if 1=1 then goto Met;
GoToXY(Kl,K2+I);
SVETFON(1371);
write(M[I]);
i:=I-1;
GoToXY(Kl,K2+I);
SVETFON(1,13);
write(M[I])
end
end;
Met:
end ;
end;
Result :=I;
SVETFON(13,1);
Cursor(True) ;
end;
begin {Начало основной программы}
GraphRegim;
SetBKColor(l);
SetTextStyle(0,0,5);
SetColor(12);
OutTextXY(40,50, 'Т Р А Ф И К А');
SetTextStyle(0,0,1);
SetColor(15);
OutTextXY(100,225,'Программа для обучения работе в графическом
режиме’);
OutTextXY(170,245,'Разработал Черноткач Р. И.');
OutTextXY(232,285,'СПГУАП');
OutTextXY{240,305,'2002’);
readkey;
SetTextStyle(0,0,l);
Windo1;
CloseGraph;
NOMER3:=0; {переменные, контролирующие доступ к разделам}
NOMER4:=0; {{ не более двух раз) за сеанс}
NOMER5:=0;
NOMER6:=0;
NOMER7:=0;
К[1]:=0;
К[2]:=0;
while True do begin
TextBackground(3);
ClrScr;
Cursor(False);
GoToXY(15,5);
TextColor(l);
write('Какой раздел Вы хотели бы изучить?');
GoToXY(10,10);
VERTIKALNOE_MENU(10,10,9,
' Программирование графических режимов
' Управление курсором и полем рисования
' Формирование прямоллинейньгх монохромных изображений
' Управление цветим и стилем изображений
' Программирование цветных криволинейных изображений
' Формирование графических текстов
' Программирование озвученных динамических сцен
' Результаты Вашей работы
' Конец работы
Regime);
case Regime of
1:RAZDEL10;
2:RAZDEL20;
3:begin
NOMER3:=NOMER3+1;
If NOMER30 then
tog[l3:=Round(Itog[l]/K[1);
If K[2]<>0 then
tog[2]:=Round(Itog[2]/K[2]);
TextBackground(1);
ClrScr;
TextColor(12);
writeln;
Write('РЕЗУЛЬТАТЫ ВАШЕЙ РАБОТЫ’);
writeln;
writeln('l попытка 2 попытка':80);
writeln;
wtiteln('ФОРМИРОВАНИЕ ПРЯМОЛИНЕЙНЫХ МОНОХРОМНЫХ
ИЗОБРАЖЕНИЙ');
writeln;
writeln(' УПРАВЛЕНИЕ ЦВЕТОМ И СТИЛЕМ ИЗОБРАЖЕНИЙ1);
writeln;
writeln('ПРОГРАММИРОВАНИЕ ЦВЕТНЫХ КРИВОЛИНЕЙНЫХ
ИЗОБРАЖЕНИЙ');
writeln;
writeln(' ФОРМИРОВАНИЕ ГРАФИЧЕСКИХ ТЕКСТОВ');
writeln;
writeln(' ПРОГРАММИРОВАНИЕ ОЗВУЧЕННЫХ ДИНАМИЧЕСКИХ СЦЕН');
writeln;
writeln;
writeln(' ОЦЕНКА РАБОТЫ ЗА СЕАНС');
GotoXY(64,6); writeln(ball3[1]);
GoToXY(75,6); writeln(ball3[2]);
GoToXY(64,8); writeln(ball4[l]);
GoToXY(75,8); writeln(ball4[2]);
GoToXY(64,10); writeln(ball5[l]);
GoToXY(75,10); writeln(ball5[2]);
GoToXY(64,12); writeln(ball6[l]);
GoToXY(75,12); writeln(bal16[2]);
GoToXY(64,14); writeln(bal17[l]);
GoToXY(75,14); writeln(ball7[23)
GoToXY(64,18); writeln(tog[l]);
GoToXY(75,18); writeln(tog[2]);
readkey;
end;
9:begin
GraphRegim;
OKNO;
SetTextStyle{0,0,4);
SetColor(4);
OutTextXY(150,80,'Bы хотите');
OutTextXY(60,120,'закончить работу')
OutTextXY(100,160,'с программой?');
OutTextXY(230,280,'Y/N');
Dh:=ReadKey;
If (Dh='y') or (Dh='н') then
begin
Cursor(True);
ClrScr;
Halt
end
else
CloseGraph;
end;
end;
end;
CloseGraph;
end.
{$A+, B-, D+, E+, F-, G-, I+,L+,N-,O-,P-,Q-,R-,S+,T-,V+,X+}
{$M 16384,0,655360}
Unit RAZDEL1;
interface
uses Crt, Graph, Dos, Strings, MYBOOK;
type An=record
P1:Char;
P2:array[0..69] of Char;
end;
var Fl:file of An ;
A: An;
Gd,Gm,Y,N:integer;
St:string[68];
procedure RAZDEL10; {Обеспечение работы с разделом "Программиро вание
графических режимов"}
implementation
procedure RAZDEL10;
Label 1;
begin
GraphRegim;
Assign(Fl,'RAZTEX1.pas');
{SI-}
Reset (Fl);
{SI+}
If lOResult <>0 then Writeln ('Нет файла RAZTEX1.pas');
Repeat;
ClearDevice;
OKNO;
Y:=10;
For N:=0 to 31 do
begin
Read(Fl,A); St:=StrPas(A.P2);
case A.P1 of
' ':OutTextXY(20,Y*N+10,St);
'*':begin
SetColor{4);
OutTextXY(20,Y*N+10,St);
SetColor(l);
end;
'0':GoTo 1;
end;
end;
1: readkey;
until A.P1='O';
Close(Fl);
CloseGraph;
end;
begin
end.
{$A+,B-,D+,E+,F-,G-,I+,L+,N-,O-,P-,Q-,R-,S+,T-,V+,X+}
{$M 16384,0,655360}
Unit RAZDEL2;
interface
uses Crt,Graph,Dos,Strings,MYBOOK;
type An=record
P1:Char;
P2:array[0..69] of Char;
end;
var F2:file of An ;
A: An;
Gd,Gm,X,Y,N:integer;
St:string[68];
procedure RAZDEL20; {Обеспечение работы с разделом "Управление
курсором и полем рисования"}
implementation
procedure RAZDEL20;
Label 1;
begin
GraphRegim;
Assign(F2,'RAZTEX2.pas');
{SI-}
Reset(F2);
{SI+}
If IOResult <> 0 then Writeln ('Нет файла RAZTEX2.pas');
repeat
ClearDevice;
OKNO;
Y:=10;
For N:=0 to 31 do
begin
Read(F2,A);
St:=StrPas(A.P2);
case A.P1 of
' ':OutTextXY(20,Y*N+10,St);
'*':begin
SetColor(4);
OutTextXY(20,Y*N+10,St);
SetColor(1);
end;
'0':GoTo 1;
end;
end;
1: readkey;
until A.P1='0';
Close(F2);
CloseGraph;
end;
begin
end.
Unit RAZDEL3;
interface
uses Crt,Graph,Dos,Strings,MYBOOK;
type An=record {Теоретическая часть }
P1:Char; {переменная поля флагов: конец файла, номер
иллюстрации, строка, выделяемая цветом}
P2:array[0..69] of Char; {переменная поля текста}
end;
type Ant=record {Текст вопросов}
P1:Char; {переменная поля флагов: конец файла, конец
вопроса, номер иллюстрации}
P2:array[0..1] of Char; {переменная номера вопроса}
P3:array[0..69] of Char; {переменная поля текста}
end;
type Antr=record { Справки }
P1:Char; {переменная поля флагов: конец файла, конец вопроса,
номер иллюстрации}
P2:array[0..1] of Char; {переменная поля номера вопроса}
P3:array[0..0] of Char; {переменная поля флагов: номера
справки, конца справки}
P4:array[0..69] of Char; {переменная поля текста}
P5:array[0..2] of Char; {переменная поля оценки}
end;
var F3:file of An ; {переменные теоретической части}
A: An;
St:string[68];
Y,N:integer;
var F32:file of Ant; { переменные вопросов}
At:Ant;
R1:string[2];
Z1:integer;
S:string[68];
var F33:file of Antr; {переменные справок}
Atr:Antr;
R2:string[2];
R3:string[1];
Stt:string[68];
R4:string[2];
Z2,Z3,Z4:integer;
CH: Char; {переменная для принятия символа с клавиатуры}
K,J,I:integer; {переменные циклов}
M: array[0..3] of integer; {массив для хранения четырех
выбранных номеров вопросов}
Code:integer;
var R5:string[1]; {переменные вывода результатов}
Z5:integer;
REZ3:Longint; {переменная оценки}
procedure RAZDEL30; {Обеспечение работы с разделом "Формирование
прямолинейных монохромных изображений"}
implementation
const Mn:array[1..5] of PointType=((X:460;Y:30),(X:590;Y:90),
(X:590;Y:120),(X:430;Y:120),(X:460;Y:30));
Mno:array[1..5] of PointType=((X:460;Y:170),(X:590;Y:230),
(X:590;Y:260),(X:430;Y:260),(X:460;Y:170));
{Константы для формирование иллюстраций к тексту теории}
const Ww:array[1..5] of PointType=((X:390;Y:60),(X:510;Y:60),
(X:510;Y:260),(X:390;Y:260),(X:390;Y:60));
WWW:array[1..5] of PointType=((X:380;Y:50),(X:520;Y:50),
(X:520;Y:270),(X:380;Y:270),(X:380;Y:50));
{Константы для формирования иллюстраций к тексту вопросов}
procedure RAZDEL30;
Label 0,1,2,3;
begin
REZ3:=6;
GraphRegim;
Assign(F3,'RAZTEX3.pas'); {Связь с файлом теста теории}
{SI-}
Reset(F3);
{SI+}
If IOResult <> 0 then Writeln ('Нет файла RAZTEX3.pas');
repeat
OKNO;
Y:=10;
For N:=0 to 31 do {Цикл вывода текста теории}
begin
Read(F3,A);
St:=StrPas(A.P2); {Преобразование ASCIIZ-строки A.P2 в строку
типа string}
case A.P1 of {Иллюстрации к тексту}
' ': OutTextXY(20,Y*N+10,St);
'*': begin
SetColor(4);
OutTextXY(20,Y*N+10,St);
SetColor(1);
end;
'щ': begin
SetColor(4);
Line(460,120,593,120);
OutTextXY(460,160,'0');
OutTextXY(593,130,'(X,Y)');
SetColor(1);
end;
'2':begin
SetColor(4);
OutTextXY(460,160,'0 dX');
OutTextXY(600,180,'dY');
OutTextXY(550,200,'(dX,dY)');
Line(460,170,593,170);
Line(593,170,593,200);
Line(460,170,593,200);
SetColor(1);
end;
'3':begin
SetColor(4);
OutTextXY(430,245,'(X1,Y1)');
Line(460,260,593,285);
OutTextXY(580,270,'(X2,Y2)');
SetColor(1);
end;
'4':begin
SetBKColor(2);
SetColor(4);
Rectangle(460,40,590,90);
SetColor(1);
end;
'5':begin
SetFillStyle(1,4);
Bar(459,129,591,181);
SetFillStyle(8,5);
SetColor(4);
Bar(460,130,590,180);
SetColor(1);
end;
'6':begin
SetFillStyle(6,5);
SetColor(4);
Bar3D(460,240,590,300,20,true);
SetCOLOR(1);
SetFillStyle(1,15);
SetBKColor(11);
end;
'7':begin
SetBKColor(15);
SetColor(4);
DrawPoly(5,Mn);
SetColor(1);
end;
'8':begin
SetColor(4);
SetFillStyle(11,5);
SetBKColor(15);
FillPoly(5,Mno);
SetColor(1);
SetFillStyle(1,15);
end;
'0':GoTo 0;
end;
end;
0:readkey;
ClearDevice;
OKNO;
until A.P1='0';
Close(F3);
Assign(F32,'Joing.pas'); {связь с файлом вопросов}
{SI-}
Reset(F32);
{SI+}
If IOResult<>0 then Writeln('Нет файла Joing.pas');
Assign(F33,'Iod.pas'); {связь с файлом справок}
{SI-}
Reset(F33);
{SI+}
If IOResult<>0 then Writeln('Нет файла Iod.pas');
OKNO1; {заставка "Контрольные вопросы"}
readkey;
ClearDevice;
Randomize; {Выбор четырех номеров вопросов}
For J:=0 to 3 do
begin
1:I:=Random(10);
If I=0 then GOTO 1;
For K:=0 to J-1 do
begin
If M[k]=I then GOTO 1;
end;
M[J]:=I;
end;
repeat
OKNO;
begin
Read(F32,At);
R1:=StrPas(At.P2); {Преобразование ASCIIZ-строки At.P2 в строку
типа string}
Val(R1,Z1,Code); {Преобразование символьного представления
номера вопроса в двоичную форму}
Y:=20;
If(Z1=M[0]) or (Z1=M[1]) or (Z1=M[2]) or (Z1=M[3]) then
begin
repeat
S:=StrPas(At.P3); {Преобразование ASCIIZ-строки At.P3 в строку
типа string}
OutTextXY(20,Y,S); {Вывод текста вопроса}
case At.P1 of {иллюстрации к тексту вопросов}
'1':begin
DrawPoly(5,Ww);
DrawPoly(5,Www);
Bar3D(410,100,470,120,20,true);
Bar3D(410,120,470,250,20,false)
end;
'2':begin
Bar3D(200,250,300,300,30,true);
Bar3D(200,300,300,320,30,true)
end;
'3':begin
Line(380,150,550,190);
Line(380,190,550,190);
Line(380,230,550,190);
OutTextXY(375,140,'(X,Y)');
OutTextXY(375,170,'dY');
OutTextXY(555,190,'(X1,Y1)');
OutTextXY(375,200,'dY');
end;
end;
Y:=Y+10;
Read(F32,At);
until At.P1='*';
2:OutTextXY(50,330,'ВВЕДИТЕ НОМЕР ПРАВИЛЬНОГО ОТВЕТА ___');
CH:=ReadKey;
SetColor(4);
OutTextXY(320,325,CH);
SetColor(1);
readkey;
If(CH<>'1') and (CH<>'2') and (CH<>'3') and (CH<>'4') then
begin
SetFillStyle(1,11);
Bar(318,320,327,340);
Страницы: 1, 2, 3, 4, 5, 6, 7
|