Допустимые уровни звукового давления

Рабочие Места Уровни звукового давления, дБ, в октавных полосах со среднегеометрическими частотами, ГЦ Уровень звука, ДБА
Помещения вычис- Лительных центров          

9.3. Расчет необходимого воздухообмена

Для нормализации воздушной среды производится расчет воздухообмена в производственном помещении.

Согласно СН 245-71 в производственных помещениях с объемом на одного работающего менее 20 куб. м. следует проектировать подачу наружного воздуха в количестве не менее 30 куб.м./ч на каждого ра­ботающего. Рассчитаем объем приточного воздуха L по кратности воз­духообмена:

L = k * v, м/ч ,

где k - рекомендуемая кратность воздухообмена, которая для обычных производственных помещений обычно составляет 1 - 10 (в расчетах мы принимаем ее равной 2),

v - объем помещения.

Таким образом,

L =2 * 160 = 320 куб.м/ч.

Наилучший обмен воздуха осуществляется при сквозном проветри­вании, но кроме того, если позволяют погодные условия, то работу следует проводить при открытых окнах.

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 В Выше 1000 В   Изолированная Изолированная   Защитное Защитное   Rз =< 10 Rз =< 0,5  

Сопротивление изоляции электрических цепей ЭВМ общего назна­чения в нормальных климатических условиях должно быть не менее значений указанных в табл. 23

Таблица 23

Напряжение цепи, кВ Сопротивление изоляции, МОм
до од 0,1 0,1 - 0,5 0,5 - 1,0 5,0 20,0

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. Температура, С и относительная влаж­ность воздуха, % Аспирационный психометр MB-4M -     - -31 . . . 51 С   10 . . . 100 % +0,1 С     +5%
2. Скорость движения воздуха, м/с Термометр, электроанемометр TAM-1   -   0,1 . . . 5 м/с +2,1 м/с
3. Уровень звукового давления в октавных полосах частот, дБ вшв-ооз 10 . . . 20000 Гц 25 . . . 140 дБ +1 дБ
4. Освещенность, лк. Люксметр Ю-116 мкм 0,38. . . 0,72 мкм 5 . . . 100000 лк +10 %
5. Массовая концент­рация пыли, мг/куб.м Радиоизотопный пылемер ПРИЗ-2 - 0,1 . . . 100 иг/м +20 %

ЗАКЛЮЧЕНИЕ

В результате разработки данной дипломной работы написана программа для обучения работе в графическом режиме. Программа предназначена для студентов младших курсов Санкт-Петербургской государственной академии аэрокосмического приборостроения и знакомит их с графическими средствами языка 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 NOMER3<3 then

begin

RAZDEL30;

ball3[NOMER3]:=REZ3;

Itog[nomer3]:=Itog[nomer3]+ball3[nomer3];

K[nomer3]:=K[nomer3]+l;

end

end;

4: begin

NOMER4:=NOMER4+1;

If NOMER4<3 then

begin

RAZDEL40;

ball4[nomer4]:=rez4;

Itog[nomer4]:=Itog[nomer4]+ball4[nomer4];

K[nomer4]:=K[nomer4]+l;

end

end;

5:begin

NOMER5:=NOMER5+1;

If NOMER5<3 then

begin

RAZDEL50;

Ьа115[погаег5]:=rez5;

Itog[nomer5]:=Itog[nomer5]+ball5[nomer5];

K[nomer5]:=K[nomer5]+1;

end;

end;

6:begin

NOMER6:=NOMER6+1;

If NOMER6<3 then

begin

RAZDEL60;

ball6[nomer6]:=rez6; Itog[nomer6]:=Itog[nomer6]+ball6[nomer6]; K[nomer6]:=K[nomer6]+l;

end;

end

7:begin

NOMER7:=NOMER7+1;

IF NOMER7<3 then

begin

RAZDEL70;

ball7[nomer7]:=rez7;

Itog[nomer7]:=Itog[nomer7]+ball7[nomer7];

end;

end;

8:begin {вывод результатов работы}

If K[l]<>0 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);

GoTo 2;

end

else

repeat

Read(F33,Atr);

R2:=StrPas(Atr.P2); {Преобразование ASCIIZ-строки Atr.P2 в

строку типа string }

Val(R2,Z2,Code); {Преобразование символьного представления

номера вопроса в двоичную форму}

If Z2=Z1 then

begin

repeat

If Atr.P3=CH then

begin

Y:=100;

OKNO;

repeat

Stt:=StrPas(Atr.P4); {Преобразование ASCIIZ-строки Atr.P4

в строку типа string }

R5:=StrPas(Atr.P5); {Преобразование ASCIIZ-строки Atr.P5

в строку типа string }

Val(R5,Z5,Code); {Преобразование символьного

представления оценки в двоичную форму}

REZ3:=Round((REZ3+Z5)/2); {Формирование оценки}

OutTextXY(20,Y,Stt); {Вывод текста справки}

Y:=Y+10;

case Atr.P1 of {иллюстрации к тексту справок}

'1':begin

Line(380,150,550,190);

MoveRel(380,190);

Line(380,190,550,190);

LineTo(550,190);

OutTextXY(555,190,'(X1,Y1)');

OutTextXY(370,140,'(X,Y)');

OutTextXY(390,200,'(X,Y+dY)');

end;

'2':begin

GOTOXY(100,190);

LineTo(100,190);

LineRel(30,40);

LineRel(0,80);

end;

'3':begin

GOTOXY(100,190);

LineTo(380,150);

LineRel(30,40);

LineRel(0,80);

end;

end;

Read(F33,Atr);

until Atr.P3='*';

readkey;

GOTO 3;

end

else Read(F33,Atr);

until Atr.P1='*';

end

until Atr.P1='0';

end

else

3: end;

until At.P1='0';

Close(F32);

Close(F33);

CloseGraph;

end;

begin

end.

Unit RAZDEL4;

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 F4: file of An ; {Переменные теории}

A:An;

N,Y:integer;

St:string[68];

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;

REZ4:Longint; {переменная оценки}

procedure RAZDEL40;

implementation

procedure RAZDEL40;

Label 0,1,2,3;

begin

REZ4:=6;

GraphRegim;

Assign(F4,'RAZTEX4.pas'); {Связь с файлом текста теории}

{SI-}

Reset(F4);

{SI+}

If IOResult <> 0 then Writeln ('Нет файла RAZTEX4.pas');

repeat

ClearDevice;

OKNO;

Y:=10;

For N:=0 to 31 do {Вывод текста теории}

begin

Read(F4,A);

St:=StrPas(A.P2); {Преобразование ASCIIZ-строки A.P2 в строку

типа string}

OutTextXY(20,Y*N+10,St);

case A.P1 of

'*':begin

SetColor(4);

OutTextXY(20,Y*N+10,St);

SetColor(1);

end;

'1':begin SetFillStyle(1,15);

Bar(350,45,600,340);

SetFillStyle(1,0);

Bar(350,45,600,65);

SetFillStyle(1,1);

Bar(350,65,600,85);

SetFillStyle(1,2);

Bar(350,85,600,105);

SetFillStyle(1,3);

Bar(350,105,600,120);

SetFillStyle(1,4);

Bar(350,120,600,135);

SetFillStyle(1,5);

Bar(350,135,600,150);

SetFillStyle(1,6);

Bar(350,150,600,165);

SetFillStyle(1,7);

Bar(350,165,600,185);

SetFillStyle(1,8);

Bar(350,185,600,200);

SetFillStyle(1,9);

Bar(350,200,600,215);

SetFillStyle(1,10);

Bar(350,215,600,235);

SetFillStyle(1,11);

Bar(350,235,600,255);

SetFillStyle(1,12);

Bar(350,255,600,275);

SetFillStyle(1,13);

Bar(350,275,600,295);

SetFillStyle(1,14);

Bar(350,295,600,315);

SetFillStyle(1,15);

Bar(350,315,600,340);

end;

'2':begin

SetBKColor(15);

SetFillStyle(1,15);

Bar(200,100,600,300);

SetFillStyle(2,2);

Bar(200,100,600,120);

SetFillStyle(3,2);

Bar(200,120,600,145);

SetFillStyle(4,2);

Bar(200,145,600,168);

SetFillStyle(5,2);

Bar(200,168,600,190);

SetFillStyle(6,2);

Bar(200,190,600,210);

SetFillStyle(7,2);

Bar(200,210,600,228);

SetFillStyle(8,2);

Bar(200,228,600,246);

SetFillStyle(9,2);

Bar(200,246,600,264);

SetFillStyle(10,2);

Bar(200,264,600,282);

SetFillStyle(11,2);

Bar(200,282,600,300);

SetFillStyle(1,0);

end;

'0':GoTo 0

end;

end;

readkey;

0:until A.P1='0' ;

readkey;

Close(F4);

Assign(F32,'Joi.pas'); {связь с файлом вопросов}

{SI-}

Reset(F32);

{SI+}

If IOResult<>0 then Writeln('Нет файла Joi.pas');

Assign(F33,'Iodi.pas');

{SI-}

Reset(F33); {связь с файлом справок}

{SI+}

If IOResult<>0 then Writeln('Нет файла Iodi.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;

M[1]:=1;

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

' ':begin

end;

end;

Y:=Y+10;

Read(F32,At);

until At.P1='*';

OutTextXY(50,330,'ВВЕДИТЕ НОМЕР ПРАВИЛЬНОГО ОТВЕТА ___');

2: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);

GoTo 2;

end

else

repeat

Read(F33,Atr);

R2:=StrPas(Atr.P2); {Преобразование ASCIIZ-строки Atr.P2 в

строку типа string}

Val(R2,Z2,Code); {Преобразование символьного представления

номера вопроса в двоичную форму}

If Z2=Z1 then

begin

repeat

If Atr.P3=CH then

begin

Y:=100;

OKNO;

repeat

Stt:=StrPas(Atr.P4); {Преобразование ASCIIZ-строки Atr.P4 в

строку типа string}

R5:=StrPas(Atr.P5); {Преобразование ASCIIZ-строки Atr.P5 в

строку типа string}

Val(R5,Z5,Code); {Преобразование символьного представления

оценки в двоичную форму}

REZ4:=Round((REZ4+Z5)/2); {Формирование оценки }

OutTextXY(20,Y,Stt);

Y:=Y+10;

case Atr.P1 of

' ':begin

end;

end;

Read(F33,Atr);

until Atr.P3='*';

readkey;

GOTO 3;

end

else Read(F33,Atr);

until Atr.P1='*';

end

until Atr.P1='0';

end

else

3:end;

until At.P1='0';

Close(F32);

Close(F33);

CloseGraph;

end;

begin

end.

Unit RAZDEL5;

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 F5: file of An ;

A:An;

N,Y:integer;

St:string[68];

var F52:file of Ant; { переменные вопросов}

At:Ant;

R1:string[2];

Z1:integer;

S:string[68];

V:char;

var F53:file of Antr; {переменные справок}

Atr:Antr;

R2:string[2]; {поле Ant.P1-номер вопроса}

R3:string[1]; {поле Ant.P2-номер варианта ответа}

Stt:string[68];{поле Ant.P3-текст справки}

R4:string[2]; {поле Ant.P4- оценка}

Z2,Z3,Z4:integer;

CH: Char; {номер варианта ответа}

K,J,I:integer;

M: array[0..3] of integer;

Nom:Longint;

Code:integer;

var R5:string[1]; {переменные вывода результатов}

Z5:integer;

REZ5:Longint;

procedure RAZDEL50;

implementation

procedure RAZDEL50;

Label 0,1,2,3;

begin

REZ5:=0;

GraphRegim;

Assign(F5,'RAZTEX5.pas');

{SI-}

Reset(F5);

{SI+}

If IOResult <> 0 then Writeln ('Нет файла RAZTEX5.pas');

repeat

ClearDevice;

OKNO;

Y:=10;

For N:=0 to 31 do

begin

Read(F5,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;

'1':begin

SetColor(4);

Arc(500,150,0,278,30);

OutTextXY(490,140,'(X,Y)');

OutTextXY(500,150,'.');

SetColor(1);

end;

'2':begin

SetColor(4);

Circle(500,300,30);

OutTextXY(475,290,'(X,Y)');

OutTextXY(500,300,'.');

SetColor(1);

end;

'3':begin

SetBKColor

Наши рекомендации