Разработка анимационно-обучающей программы механической системы

Механические системы и анимационное моделирование. Некоторые задачи моделирования механических систем (на примере движение тела с переменной массой). Создание анимационно-обучающей программы механической системы, текст программы и описание ее установки.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 30.08.2010
Размер файла 522,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Основные проблемы связанные с компьютерным обучением

Обучающие программы реализуются с помощью компьютера и вполне естественно, что при их разработке ведущее место приобрели проблемы, связанные с машиной (программной) реализацией программ. Ведь не смотря на то, что возможности компьютера значительно возросли с каждым годом увеличиваются, реализация многих обучающих функций которые легко осуществляет даже неопытный педагог, связана с большими трудностями (например, распознавание ответа учащегося).Однако нельзя считать правильной весьма распространенную точку зрения, будто ключ к решению основных проблем компьютерного обучения - это разработка средств которые позволяют осуществлять переход от сценария обучающей программы к компьютерной программе. Такое представление в ряде случаев сказалось на разработке и оценке роли инструментария для программирования обучающих курсов (их называют обычно системными средствами автора). Многие разработчики таких систем (как правило, в целях рекламы) преувеличивают не только возможности созданных ими авторских систем, но и вообще их значение. Это обстоятельство, по мнению специалистов, играет отрицательную роль в исследуемых актуальных проблем разработки обучающих программ.

Преувеличение возможностей авторских средств часто сочетается с недооценкой важности тех психолого-педагогических проблем, которые возникают при разработки обучающих программ. Некоторые разработчики авторских средств полагают, будто учителя, а также специалисты в области информатики и вычислительной техники, имея смутные представление о психолого-педагогических особенностях обучения, а некоторые и о содержании того или иного учебного предмета, в состоянии создать эффективную обучающую программу.

Распространение подобных взглядов оказало влияние не только на теорию, но и на практику разработки обучающих программ. В ряде стран, например, в США и особенно в Великобритании, в течение последних 10-15 лет появилось не поддающееся учету количество микроскопических по своим размерам фирм (многие из них имеют штат из двух-трех программистов), которые разрабатывают обучающие программы, предназначенные для продажи. В нашей стране также нередко среди единоличных разработчиков обучающих программ были специалисты по вычислительной технике. Эта их деятельность, хотя и несколько отличалась от выполняемой ранее, тем не менее по своей сути оставалось привычной для них. В результате создавались многочисленные, но малоэффективные программы. Именно такая практика стала основным источником иллюзий, будто наибольшие трудности в разработке обучающих программ представляет кодирование или как часто говорились, программирование обучающих курсов.

Следует иметь в виду, что термин программирование трактуется по -разному: в более узком смысле - как составление программы для компьютера и как разработка программ в широком смысле слова. Когда мы говорим, что система образования и общество в целом программируют личность, то мы понимаем, что здесь речь идет о том, что общество в целом в частности через систему образования, оказывает большое влияние на становление человека как личности. Применительно к компьютерному обучению выражение “программирование обучающих курсов” стало восприниматься как синоним “разработки обучающих курсов”. А это привело к серьезным отрицательным последствиям:

Отвлекло внимание от наиболее важных и трудоемких проблем-психолого-педагогических проблем разработки обучающих программ (обучающих курсов) - и тем самым, естественно, затормозило их исследование.

Породило иллюзию, будто создав удобный инструментарий для кодирования обучающих программ, можно с помощью педагогов-энтузиастов решить проблему создания эффективных обучающих программ (обучающих курсов).

Разумеется, вину за это нельзя полностью возлагать на первых разработчиков обучающих программ и инструментария для кодирования (программирования) обучающих курсов. Просто они, не будучи педагогами, не усматривали тех психолого-педагогических проблем, которые возникают при разработке обучающих программ. Предполагалось, что, имея перед глазами внешне наблюдаемое поведение педагога, можно составить эффективную обучающую программу для компьютера.

Психолого-педагогический аспект компьютерного обучения

Недооценка психолого-педагогических проблем компьютеризации обучения, недостаточный учет психологических особенностей деятельности педагога и учащегося не могли не сказаться на качестве авторских систем, предназначенных для программирования (в узком смысле слова) обучающих курсов. Дидактические возможности их, как правило, были весьма ограничены. И дело не в том, что они налагали определенные ограничения на способ управления учебной деятельностью, на выбор учебных задач. Более существенно, что большинство авторских систем строилось на ошибочных представлениях о процессе обучения.

Поясним это более подробно, поскольку иногда полагают, что системы автора нейтральны по отношению к теоретическому представлению обучения и поэтому разрабатываемый инструментарий может быть использован для программирования обучающих систем, реализующих различные теоретические подходы. На самом деле это не так. Разработчики системы автора всегда исходят из некоторой модели обучения, из определенного представления о том, как именно следует управлять учебной деятельностью. Поскольку часто разработчики таких систем не имеют достаточной теоретической подготовки, они иногда чересчур смело полагаются на рекомендации отдельных психологов, не зная исходных теоретических предпосылок, основных принципов психологической теории, которых те придерживаются. Следовать таким рекомендациям особенно заманчиво, если их относительно легко реализовывать с помощью компьютера: это значительно упрощает разработку системы автора.

Данная точка зрения самым непосредственным образом сказалась на теории и практике разработки авторских систем. Многие из них содержат явный отпечаток бихевиористических теорий обучения, которые основное внимание удаляют правильному ответу, игнорируя мыслительную деятельность обучаемого. С точки зрения бихевиористов, основным в обучении является увеличение вероятности правильного ответа на некоторый стимул (например, предлагаемую учебную работу).

В настоящие время все большее число специалистов в области компьютерного обучения вынуждено признать, что основные проблемы при разработке обучающих программ - психолого-педагогические. По мнению многих специалистов, программирование обучающей программы - это лишь один этап ее разработки, который требует не более 10-20% времени и усилий. К тому же данный этап относится к наиболее изученным, его реализации при наличии опытных специалистов, как говорится, дело техники.

Следует иметь в виду, что применение компьютера оказывает исключительно большое влияние на все аспекты учебного процесса: и на содержание учебного материала, и на используемые учебные задачи, и на мотивацию учащихся и т.д. Все это обусловливает исключительно большое значение психолого-педагогических проблем для разработки эффективных обучающих программ.

Компьютеризация обучения отчетливо показала, что многие психологические и дидактические понятия и концепции работают”: основываясь на них, нельзя разработать эффективные обучающие программы. Проблема здесь не только в том, что многие из понятий еще не имеют однозначной трактовки. Ведь, в принципе, можно было бы договориться о том, какой именно трактовки следует придерживаться. Дело в том, что трактовка этих понятий не допускает их технологизации.

Некоторые особенности обучающих программ

Создание обучающих программ - творческий процесс, требующий не только логического мышления, но и интуиции. Этот процесс еще изучен недостаточно и не может быть описан с помощью жестких нормативов-предписаний. Много опасностей и ловушек подстерегает разработчиков обучающих программ. Для педагогов самая большая опасность - механический перенос особенностей обучения в классе (группе) на компьютерное обучение, стремление как можно более точно скопировать работу педагога. Хотелось бы отметить, что механический перенос в принципе недопустим по следующим причинам:

Даже самый опытный педагог, мастер своего дела, далеко не всегда сможет описать свою деятельность и тем более объяснить каждое свое решение (многие решения принимаются педагогом интуитивно, они не полностью осознаются, и на вопрос, почему принято именно такое, а не иное решение в большинстве случаев отвечают: так подсказал опыт, это известно из практики и т.д.).

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

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

Кроме того следует иметь в виду, сто разработка обучающих программ - это качественно иная, в сравнении с практической, деятельность педагога. Можно уметь решить задачу, но не уметь составить алгоритм. А ведь при разработке обучающей программы необходимо составить алгоритм работы компьютера, который отнюдь не копирует, а моделирует деятельность педагога и даже те же самые функции реализует иными способами. К тому же разработка обучающих программ требует более глубоких знаний не только в определенной предметной области, но и знаний об учебном процессе и учащихся. Мировой опыт убедительно показывает, что даже опытные практические работники, прошедшие специальную подготовку, нередко составляют весьма бледные обучающие программы, которые дают результаты значительно хуже, чем традиционное обучение.

Справедливости ради стоит отметить, что далеко не все обучающие программы, составленные специалистами в области обучения, оказались эффективными. Многие из них настолько скучные и неинтересные, что от них отказались как учителя, так и учащиеся.

Составление обучающих программ - это наука и искусство. Оно требует и глубоких знаний, и педагогического таланта.

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

Чтобы обеспечить эффективное использование компьютера в учебном процессе, недостаточно заложить в компьютер систему указаний, даже правильных самих по себе. Необходимо спроектировать условия, в которых учащийся захочет следовать этим указаниям, а не поступать вопреки им. Только та обучающая программа сможет обеспечить эффективное обучение, разработчики которой учитывают в должной мере человеческий фактор, видят в учащихся субъектов учебной деятельности, а не придаток к компьютеру, слепо повинующийся его указаниям.

Основные типы программ применяемых в образовании.

Многообразие применений компьютеров делает возможным и даже необходимым систематизацию форм использования и типов программ. Принцип независимости может оказаться подходящим критерием для классификации, отвечающей педагогическим соображениям. Независимость в этом смысле предполагает способность учащихся принимать участие в определение целей и содержания своей деятельности, влиять на процесс обучения и управлять применяемыми средствами.

Упрощенная классификация программ может быть составлена по восходящей: от тех, которые структурируют работу и учение, до тех, которые позволяют делать это самим учащимся.

Управляющие программы, выполняющие некоторые традиционные функции учителя, в частности управления классом. Они содержать команды, не только касающиеся работы на компьютере, но и, например, дающие учащимся указание покинуть рабочее место, с тем чтобы что-то проверить, получить дополнительные данные, обсудить ход работы с соучениками и т.д.

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

§ 2.1.2 описание установки

ПРИБОРЫ и ПРИНАДЛЕЖНОСТИ:

Экспериментальная установка (рис. 2), состоящаяся из двух цилиндров 7, связанных нитью, перекинутой через блок 1, системы подвода воды 5, 6 и отчетных устройств 2, 3, смонтирована в виде стенда на стене.

Наполнение обоих цилиндров водой производится одновременно с помощью трубы 5 с распределительными отводами 6. Труба 5 выполнена подвижной, с тем чтобы после наполнения цилиндров иметь возможность приостановить подачу воды одновременно в оба цилиндра, для чего труба отводится влево. Для отсчета уровня воды в цилиндрах на них нанесены шкалы 9. Система приходит в движение только после того, как ограничительная пластина 10 опустится . в горизонтальном положении она удерживается замком 4 и фиксирует стопорные диски 11 и 12.

Величина пройденного пути определяется расстоянием, проходимым диском 12 до упорного кольца 2, и измеряется по шкале 3, нуль которой совмещен с начальным положением диска 12.

Вода, вытекающая из цилиндров, попадает в сосуд 8, имеющий сток.

Задание 1. Определение расхода массы цилиндров

При выполнении этого задания цилиндры находятся в неподвижном состоянии.

Наполнить цилиндры водой.

Прекратить доступ воды в цилиндры, передвинув трубу 5 в крайнее левое положение.

Провести измерения уровня воды в левом цилиндре через каждые 2 с. секундомер включается в тот момент, когда уровень проходит нулевое деление шкалы 9, нанесенной на цилиндр.

Проделать измерения п. 3 для правого цилиндра. Указанные измерения для каждого из цилиндров провести не менее трех раз. Результаты измерений занести в таблицу. Рассчитать расход воды, принимая ее плотность равной p=1г/см3 (площадь сечения цилиндров рассчитывается по известному внутреннему диаметру). На основании полученных результатов построить график зависимости расхода воды от времени. При малых значениях времени истечения эта зависимость должна представлять прямую линию, тангенс угла наклона которой к оси времени с учетом масштаба дает величину .

Используя график , рассчитать секундный расход воды в обоих цилиндрах.

Убедиться, что скорость истечения жидкости для обоих цилиндров примерно одинакова.

Задание 2. Экспериментальное определение ускорения системы

Наполнить цилиндры водой.

Прекратить подачу воды в цилиндры, передвинув трубу 5 в крайнее левое положение.

В тот момент, когда опускающееся уровни воды в цилиндрах проходят нулевую отметку шкал 9, открыв замок 4, опустить упорную пластину 10 и включить секундомер.

В момент удара шайбы 12 об упорное кольцо 2 остановить секундомер.

Для данного расстояния , проходимого цилиндрами, произвести не менее трех измерений времени (повторить п. 1-4).

Меняя положение упорного кольца 2, т. е. меняя расстояния, проходимые системой, произвести измерения времени движения для 4-5 расстояний (повторить п. 1-5).

Результаты измерений занести в таблицу.

На основании полученных результатов построить график . Из данного графика определить ускорение цилиндров.

Задание 3. Определение относительной скорости истечения воды

1.Скорость истечения воды из цилиндров рассчитать в соответствии с формулой , где -средняя арифметическая высота уровня воды за время движения, - безразмерный коэффициент скорости, равный для данной установки 0,97. Среднюю высоту уровня жидкости найти с помощью графика, полученного в задании 1. По этому графику определить высоту столба жидкости , вытекающей за время движения. Высоту рассчитать как разность между высотой столба воды в начальный момент и половинной высотой столба вытекшей воды . Высота столба воды в начальный момент известна.

Задание 4.Определение теоретического значения ускорения движения по результатам

измерения б и u

По значениям секундного расхода воды и скорости истечения , полученным в заданиях 1 и 3, рассчитать ускорение движения системы по формуле

Сопоставить теоретическое значение ускорения с его значением, полученным экспериментально в задании 2.

§ 2.1.3 алгоритмизация анимационо - обучающей механической системы

§ 2.2 Инструкция пользования анимационно-обучающей программы ”Water Program”

Для пользования анимационно-обучающей программы “Water Program” необходимо выполнить следующие:

Дискету на которой записан диалоговой - обучающие программа “Water Program” расположим в дисковод;

С помощью мышки находим нужную название файла;

Вызовем на ОЗУ компьютера выбранный файлы на экране появится MENU в виде:

С помощью мышки курсор устанавливается на текст “Teorya” и нажмём клавишу <Enter>. На экране появится описание установки, т. е. порядка выполнения лабораторной работы.

После рассмотрение и изучения текста нажмём клавишу <Enter> и на экране появится Menu.

Далее с помощью мышки курсор устанавливаем на отметку “Resunok Pribora” и на экране появится рисунок установки для определения движения тела с переменной массой.

7. После ознакомления с порядком выполнения работ нажимаем

клавишу <Enter> и возвращаемся в Menu.

8. С помощью мышки курсор устанавливаем на отметку “Animatsiya Pribora” и нажмем клавишу “Enter” на экране появится слово “Vvdite Massu Tela Tselindra S Vodoy (v grammah)- ”.

9. Введем массу.

10. После нажатия клавиши <Enter> появится рисунок прибора.

11. Когда нажмем на <Enter> происходит анимация в установке.

12. Нажатием клавишу <Enter> возвращаемся в Menu.

13. Для выхода из диалогово - обучающей программы “Water Program” следует курсор установит на отметку “Exit” и нажат клавишу <Enter>.

14. Для повторения работы необходимо выполнить последовательно пункты с 4-го по 13-й.

§2.3 Текст анимационно-обучающей программы механической системы

Program Water_Program;

Uses Crt, Graph;

Const

{ Vvod Unit Graphics }

FunWeb='c:\tp\Bgi';

Var

Gd,Gm,I,X,Y,X1,Y1,XX,YY,Rad,J:Integer;

Z,J1,J2,W,V,G:Integer;

F:Real;

N,M,M1:Word;

KEY:CHAR;

INFINITE,K,X2,Y2: Integer;

Color1,Color2,Color3,Color4:Word;

A,U:Integer;

B,C,D,E,H,Q,WWW,FF:INTEGER;

S,T,Alfa,Ao,Mo,St:Integer;

procedure click;

const f:array[1..12] of real=(130.8,130.6,146.8,155.6,164.8,174.6,185.0,196.0,207.7,220,233.1,246.9);

var k,n:integer;

begin

for k:=0 to 3 do

for n:=1 to 12 do

begin

sound(round(f[n]*(1 shl k)));

delay(5000);

nosound;

end;

for k:=3 downto 0 do

for n:=12 downto 1 do

begin

sound(round(f[n]*(1 shl k)));

delay(5000);

nosound;

end;

end;

Procedure Suret;

Procedure Vvedenia;

Begin

{ClearDevice;}

SetColor(Yellow);

SetFillStyle(1,Yellow);

Bar(0,0,700,500);

SetFillStyle(1,Blue);

Bar(2,2,636,477);

For I:=1 To 250 Do

Begin

Sound(2000-(i*5));

SetFillStyle(1,Yellow);

Bar(380,20+i,600,52+i);

End;

SetFillStyle(1,Black);

Bar(382,22,598,300);

NoSound;

For I:=1 To 10 Do

Begin

Delay(1000);

End;

Begin

Delay(60000);

Sound(1000);

SetColor(10);

Delay(1000);

SetTextStyle(0,0,0);

OutTextXY(390,35,'1 - ');

SetColor(Red);

OutTextXY(420,35,'Block');

Sound(920);

SetColor(10);

Delay(1000);

OutTextXY(390,50,'2 - ');

SetColor(Red);

OutTextXY(420,50,'Otchetnayia Ustanovka');

Sound(840);

SetColor(10);

Delay(1000);

OutTextXY(390,65,'3 - ');

SetColor(Red);

OutTextXY(420,65,'Izmeritel Pokazanyia');

Sound(760);

SetColor(10);

Delay(1000);

OutTextXY(390,80,'4 - ');

SetColor(Red);

OutTextXY(420,80,'Udergivayushaya zamok');

{ Sound(680); }

SetColor(10);

Delay(1000);

OutTextXY(390,95,'5 - ');

SetColor(Red);

OutTextXY(420,95,'Vodaprovod');

Sound(600);

SetColor(10);

Delay(1000);

OutTextXY(390,110,'6 - ');

SetColor(Red);

OutTextXY(420,110,'Vodaprovodki');

Sound(520);

Delay(1000);

SetColor(10);

OutTextXY(390,125,'7 - ');

SetColor(Red);

OutTextXY(420,125,'Tsilindri');

Sound(440);

Delay(1000);

SetColor(10);

OutTextXY(390,140,'8 - ');

SetColor(Red);

OutTextXY(420,140,'Rezervuar');

{ Sound(360);}

Delay(1000);

SetColor(10);

OutTextXY(390,155,'9 - ');

SetColor(Red);

OutTextXY(420,155,'Shkala');

{ Sound(280);

Delay(100); }

SetColor(10);

OutTextXY(390,170,'10- ');

SetColor(Red);

OutTextXY(420,170,'Plastina');

{ Sound(200);

Delay(100);}

SetColor(10);

OutTextXY(390,185,'11- ');

SetColor(Red);

OutTextXY(420,185,'Stopornyia Diska - 1');

{ Sound(120);

Delay(1000);}

SetColor(10);

OutTextXY(390,200,'12- ');

SetColor(Red);

OutTextXY(420,200,'Stopornyia Diska - 2');

Delay(5000);

Nosound;

End;

{ReadLn;}

End;

Begin

{ClearDevice;}

vvedenia;

SetColor(Yellow);

SetFillStyle(1,Yellow);

Bar(0,0,700,500);

SetFillStyle(1,Blue);

Bar(2,2,636,477);

vvedenia;

{************************** Go To The Program **************************}

{- 1 -}

A:=St;

SetColor(Yellow); SetFillStyle(1,Red);

FillEllipse(120,45,25,25);

SetColor(Yellow); SetFillStyle(1,Blue);

FillEllipse(120,45,2,2);

SetColor(Black);

Line(80,45,98,45); Line(102,45,120,45);

Line(120,45,138,45); Line(142,45,160,45);

Line(120,5,120,23); Line(120,27,120,45);

Line(120,45,120,63); Line(120,67,120,85);

SetColor(Yellow);

Line(120,45,112,53);

Line(120,45,128,53);

Line(112,53,128,53);

SetColor(Black);

Line(112,54,110,57); Line(116,54,114,57);

Line(120,54,118,57); Line(124,54,122,57);

Line(128,54,126,57);

{- 10 -}

SetFillStyle(1,8);

SetColor(Yellow);

Bar(60,185,175,220);

Rectangle(60,185,175,220);

For I:=1 To 15 Do

Begin

SetColor(Blue);

Line(59+i,185,59,220);

Line(191-i,184,176-i,220);

End;

SetColor(Yellow);

Line(75,185,59,220);

Line(175,185,160,220);

SetColor(Black);

Line(85,178,92,178); Line(85,178,85,185);

Line(92,178,92,185); Line(85,185,92,185);

Line(85,185,82,190); Line(92,185,89,190);

Line(82,190,89,190);

Line(155,178,162,178); Line(155,178,155,185);

Line(162,178,162,185); Line(155,185,162,185);

Line(155,185,152,190); Line(162,185,159,190);

Line(152,190,159,190);

{- 4 -}

SetColor(Yellow);

SetFillStyle(1,8);

FillEllipse(173,197,3,10);

For I:=1 To 8 Do

Begin

SetColor(8);

FillEllipse(175-i,202+(i*2),2,2);

End;

SetColor(Yellow);

Line(171,204,166,219);

Line(176,203,169,219);

Ellipse(167,219,180,360,2,2);

SetColor(Yellow);

SetFillStyle(1,4);

FillEllipse(173,196,1,3);

{- 3 -}

SetColor(Red); SetFillStyle(7,Yellow);

Bar(127,79,137,189);

Rectangle(127,79,137,189);

SetColor(Red); SetFillStyle(1,Black);

Bar(132,81,135,187);

SetColor(Black);

SetTextStyle(2,0,1);

OutTextXY(121,82,'0');

OutTextXY(121,88,'1');

OutTextXY(121,94,'2');

OutTextXY(121,102,'3');

OutTextXY(121,110,'4');

OutTextXY(121,116,'5');

OutTextXY(121,122,'6');

OutTextXY(121,130,'7');

OutTextXY(121,138,'8');

OutTextXY(121,146,'9');

OutTextXY(118,154,'10');

OutTextXY(118,162,'11');

OutTextXY(118,170,'11');

OutTextXY(118,178,'11');

{- 11 -}

{- 12 -}

SetFillStyle(1,0);

SetColor(Yellow);

FillEllipse(95,215,8,5);

FillEllipse(145,215,8,5);

{- 5 -}

SetColor(Yellow);

SetFillStyle(1,Yellow);

Bar(70,230,166,240);

SetFillStyle(1,Red);

Bar(71,231,165,239);

SetFillStyle(1,0);

FillEllipse(166,235,3,5);

For I:=1 To 5 Do

Begin

SetColor(Blue);

Ellipse(70+i,235,90,270,3,5);

End;

SetColor(Yellow);

Ellipse(76,235,90,270,3,5);

Bar(72,233,35,237);

Rectangle(72,233,35,237);

{- 6 -}

SetColor(Yellow);

SetFillStyle(1,Black);

Bar(97,235,100,253);

Bar(147,235,150,253);

Rectangle(97,235,100,253);

Rectangle(147,235,150,253);

{- 8 -}

SetColor(Yellow);

SetFillStyle(1,2);

Bar(45,330,190,400);

For I:=1 To 20 Do

Begin

SetColor(Blue);

Line(44+i,330,44,365);

Line(211-i,365,191-i,400);

End;

SetColor(Yellow);

Line(64,330,190,330); Line(64,330,44,365);

Line(44,365,170,365); Line(170,365,190,330);

Line(190,330,190,365); Line(190,365,170,400);

Line(170,365,170,400); Line(170,400,44,400);

Line(44,400,44,365); Line(64,330,64,365);

{- 7 -}

{- 7.1 -}

SetColor(Yellow);

SetFillStyle(1,Blue);

Rectangle(88,265,102,310);

FillEllipse(95,265,8,3);

SetColor(Yellow);

SetFillStyle(1,Blue);

FillEllipse(95,310,8,3);

SetColor(Yellow);

Rectangle(93,311,97,350);

SetFillStyle(1,Blue);

FillEllipse(95,310,3,2);

SetColor(Blue);

Line(93,350,97,350);

SetColor(Yellow);

Ellipse(95,350,180,360,2,1);

{- 7.2 -}

SetColor(Yellow);

SetFillStyle(1,Blue);

Rectangle(138,265,152,310);

FillEllipse(145,265,8,3);

SetColor(Yellow);

SetFillStyle(1,Blue);

FillEllipse(145,310,8,3);

SetColor(Yellow);

Rectangle(143,311,147,350);

SetFillStyle(1,Blue);

FillEllipse(145,310,3,2);

SetColor(Blue);

Line(143,350,147,350);

SetColor(Yellow);

Ellipse(145,350,180,360,2,1);

{- 2 -}

SetColor(Yellow);

Line(95,47,95,215);

Line(145,47,145,215);

Line(95,220,95,263);

Line(145,220,145,263);

Line(95,257,89,263);

Line(95,257,101,263);

Line(145,257,139,263);

Line(145,257,151,263);

SetFillStyle(1,Black);

Bar(138,130,148,132);

Rectangle(138,130,148,132);

{- Line -}

SetColor(11);

Line(140,40,200,25);

Line(150,130,200,120);

Line(134,183,200,170);

Line(160,238,200,230);

Line(150,250,200,260);

Line(150,280,200,290);

Line(170,345,210,355);

Line(200,205,148,217);

Line(98,217,200,192);

Line(175,190,210,180);

Line(160,208,210,195);

SetColor(Yellow);

SetTextStyle(2,0,4);

OutTextXY(204,21,'1');

OutTextXY(204,116,'2');

OutTextXY(204,166,'3 - 9');

OutTextXY(213,176,'4');

OutTextXY(204,226,'5');

OutTextXY(204,256,'6');

OutTextXY(204,286,'7');

OutTextXY(214,351,'8');

OutTextXY(213,190,'10');

OutTextXY(202,184,'11');

OutTextXY(202,200,'12');

ReadLn;

End;

{--------------------------------------------------------------}

Procedure Vvedenia;

Begin

ClearDevice;

{ SetColor(Yellow);

SetFillStyle(1,Yellow);

Bar(0,0,700,500);

SetFillStyle(1,Blue);

Bar(2,2,636,477);}

For I:=1 To 250 Do

Begin

Sound(2000-(i*5));

SetFillStyle(1,Yellow);

{ Bar(80,20+i,60,52+i);}

End;

SetFillStyle(1,Black);

{ Bar(382,22,558,300);}

NoSound;

For I:=1 To 10 Do

Begin

Delay(1000);

End;

Begin

Delay(60000);

Sound(1000);

SetColor(10);

Delay(1000);

SetTextStyle(0,0,0);

{ OutTextXY(40,35,'1 - ');

} SetColor(Red);

OutTextXY(200,35,'ОПИСАНИЕ УСТАНОВКИ');

Sound(920);

SetColor(10);

Delay(1000);

{ OutTextXY(39,50,'2 - ');}

SetColor(Red);

OutTextXY(200,50,'ПРИБОРЫ И ПРИНАДЛЕЖНОСТИ:');

OutTextXY(200,65,'Измерительная установка, секундомер.');

Sound(840);

SetColor(10);

Delay(1000);

{ OutTextXY(39,65,'3 - ');}

SetColor(Red);

OutTextXY(30,75,'Экспериментальная установка, состоящая из двух цилиндров 7, связанных ');

OutTextXY(30,85,'нитью, перекинутой через блок 1, системы подвода воды 5,6 и отсеченных ');

OutTextXY(30,95,'устройств 2,3 смонтирована в виде стенда на стене.');

OutTextXY(30,105,'Наполнение обоих цилиндров водой производится одновременно с помощью ');

OutTextXY(30,115,'трубы 5 c распределительными отводами 6. Труба 5 выполнена подвижной,');

OutTextXY(30,125,'с тем чтобы после наполнения цилиндров иметь возможность приостоновить ');

OutTextXY(30,135,'подачу воды одновременно в оба цилиндра, для чего труба отводится влево.');

OutTextXY(30,145,'Для отсчета уровня воды в цилиндрах на них нанесены шкалы 9. ');

OutTextXY(30,155,'Система приходит в движение только после того, как ограничительная пластина');

OutTextXY(30,165,'10 опустится. В горизонтальном положении она удерживается замком 4');

OutTextXY(30,175,'и фиксирует стопорные диски 11 и 12. Величина пройденного пути определяется ');

OutTextXY(30,185,'расстоянием,проходимым диском 12 до упорного кольца 2,и измеряется по');

OutTextXY(30,195,'шкале 3, нуль которой совмещен с начальным положением диска 12.');

OutTextXY(30,205,'Вода, вытекающая из цилиндров, попадает в сосуд 8, имеющий сток.');

OutTextXY(40,215,'');

Nosound;

End;

repeat until keypressed;

end;

Procedure Vvedenia1;

Begin

ClearDevice;

{ SetColor(Yellow);

SetFillStyle(1,Yellow);

Bar(0,0,700,500);

SetFillStyle(1,Blue);

Bar(2,2,636,477);}

For I:=1 To 250 Do

Begin

Sound(2000-(i*5));

SetFillStyle(1,Yellow);

{ Bar(80,20+i,60,52+i);}

End;

SetFillStyle(1,Black);

{ Bar(382,22,558,300);}

NoSound;

For I:=1 To 10 Do

Begin

Delay(1000);

End;

Begin

Delay(60000);

Sound(1000);

SetColor(10);

Delay(1000);

SetTextStyle(0,0,0);

{ OutTextXY(40,35,'1 - ');

} SetColor(Red);

OutTextXY(42,210,'Block');

Sound(920);

SetColor(10);

Delay(1000);

{ OutTextXY(39,50,'2 - ');}

SetColor(Red);

OutTextXY(42,220,'Otchetnayia Ustanovka');

Sound(840);

SetColor(10);

Delay(1000);

{ OutTextXY(39,65,'3 - ');}

SetColor(Red);

OutTextXY(42,230,'Izmeritel Pokazanyia');

Sound(760);

SetColor(10);

Delay(1000);

{ OutTextXY(39,80,'4 - ');

} SetColor(Red);

OutTextXY(42,240,'Udergivayushaya zamok');

Sound(680);

SetColor(10);

Delay(1000);

{ OutTextXY(39,95,'5 - ');}

SetColor(Red);

OutTextXY(42,250,'Vodaprovod');

Sound(600);

SetColor(10);

Delay(1000);

{ OutTextXY(39,110,'6 - '); }

SetColor(Red);

OutTextXY(42,260,'Vodaprovodki');

Sound(520);

Delay(1000);

SetColor(10);

{ OutTextXY(39,125,'7 - ');}

SetColor(Red);

OutTextXY(42,270,'Tsilindri');

Sound(440);

Delay(1000);

SetColor(10);

{ OutTextXY(39,140,'8 - '); }

SetColor(Red);

OutTextXY(42,280,'Rezervuar');

Sound(360);

Delay(1000);

SetColor(10);

{ OutTextXY(39,155,'9 - ');}

SetColor(Red);

OutTextXY(42,290,'Shkala');

Sound(280);

Delay(1000);

SetColor(10);

{ OutTextXY(39,170,'10- '); }

SetColor(Red);

OutTextXY(42,300,'Plastina');

Sound(200);

Delay(1000);

SetColor(10);

{ OutTextXY(39,185,'11- ');}

SetColor(Red);

OutTextXY(42,310,'Stopornyia Diska - 1');

Sound(120);

Delay(1000);

SetColor(10);

{ OutTextXY(39,200,'12- '); }

SetColor(Red);

OutTextXY(42,320,'Stopornyia Diska - 2');

Delay(5000);

Nosound;

End;

repeat until keypressed;

ReadLn;

End;

Procedure Anim1;

Begin

ClearDevice;

{---------------------------------------------------------}

SetColor(Yellow);

SetFillStyle(1,Yellow);

Bar(0,0,700,500);

Bar(500,10,600,20);

SetFillStyle(1,Blue);

Bar(2,2,636,477);

SetTextStyle(1,0,1);

SetFillStyle(1,Yellow);

Bar(500,12,620,35);

SetFillStyle(1,Black);

Bar(501,13,619,34);

OutTextXY(10,10,'Vvdite Massu Tela Tselindra S Vodoy (v grammah) - ');

WriteLn('Vvdite Massu Tela Tselindra S Vodoy (v grammah) - ');

begin

GotoXY(65,2);

ReadLn(WWW);

end;

If WWW>100 Then

Begin

WriteLn('Vvdennaya Massa Ne Realen - ');

WriteLn('Vvdite Massu Tela Tselindra S Vodoy (v grammah) - ');

ReadLn(WWW);

End;

If WWW>100 Then Gd:=10;

W:=WWW Div 4;

Gm:=0;

Ao:=0;

Alfa:=1;

Mo:=1;

T:=WWW;

Gd := 0;

{--------------- Formula -----------------}

{-} {-}

{-} St:=(Alfa*Ao) div (4*Mo)*Sqr(t); {-}

{-} {-} {-}

{-----------------------------------------}

InitGraph(Gd, Gm, FunWeb);

SetColor(Yellow);

SetFillStyle(1,Yellow);

Bar(0,0,700,500);

SetFillStyle(1,Blue);

Bar(2,2,636,477);

{************************** Go To The Program **************************}

{- 1 -}

A:=St;

SetColor(Yellow); SetFillStyle(1,Red);

FillEllipse(120,45,25,25);

SetColor(Yellow); SetFillStyle(1,Blue);

FillEllipse(120,45,2,2);

SetColor(Black);

Line(80,45,98,45); Line(102,45,120,45);

Line(120,45,138,45); Line(142,45,160,45);

Line(120,5,120,23); Line(120,27,120,45);

Line(120,45,120,63); Line(120,67,120,85);

SetColor(Yellow);

Line(120,45,112,53);

Line(120,45,128,53);

Line(112,53,128,53);

SetColor(Black);

Line(112,54,110,57); Line(116,54,114,57);

Line(120,54,118,57); Line(124,54,122,57);

Line(128,54,126,57);

{- 10 -}

SetFillStyle(1,8);

SetColor(Yellow);

Bar(60,185,175,220);

Rectangle(60,185,175,220);

For I:=1 To 15 Do

Begin

SetColor(Blue);

Line(59+i,185,59,220);

Line(191-i,184,176-i,220);

End;

SetColor(Yellow);

Line(75,185,59,220);

Line(175,185,160,220);

SetColor(Black);

Line(85,178,92,178); Line(85,178,85,185);

Line(92,178,92,185); Line(85,185,92,185);

Line(85,185,82,190); Line(92,185,89,190);

Line(82,190,89,190);

Line(155,178,162,178); Line(155,178,155,185);

Line(162,178,162,185); Line(155,185,162,185);

Line(155,185,152,190); Line(162,185,159,190);

Line(152,190,159,190);

{- 4 -}

SetColor(Yellow);

SetFillStyle(1,8);

FillEllipse(173,197,3,10);

For I:=1 To 8 Do

Begin

SetColor(8);

FillEllipse(175-i,202+(i*2),2,2);

End;

SetColor(Yellow);

Line(171,204,166,219);

Line(176,203,169,219);

Ellipse(167,219,180,360,2,2);

SetColor(Yellow);

SetFillStyle(1,4);

FillEllipse(173,196,1,3);

{- 3 -}

SetColor(Red); SetFillStyle(7,Yellow);

Bar(127,79,137,189);

Rectangle(127,79,137,189);

SetColor(Red); SetFillStyle(1,Black);

Bar(132,81,135,187);

SetColor(Black);

SetTextStyle(2,0,1);

OutTextXY(121,82,'0');

OutTextXY(121,88,'1');

OutTextXY(121,94,'2');

OutTextXY(121,102,'3');

OutTextXY(121,110,'4');

OutTextXY(121,116,'5');

OutTextXY(121,122,'6');

OutTextXY(121,130,'7');

OutTextXY(121,138,'8');

OutTextXY(121,146,'9');

OutTextXY(118,154,'10');

OutTextXY(118,162,'11');

OutTextXY(118,170,'11');

OutTextXY(118,178,'11');

{- 11 -}

{- 12 -}

SetFillStyle(1,0);

SetColor(Yellow);

FillEllipse(95,215,8,5);

FillEllipse(145,215,8,5);

{- 5 -}

SetColor(Yellow);

SetFillStyle(1,Yellow);

Bar(70,230,166,240);

SetFillStyle(1,Red);

Bar(71,231,165,239);

SetFillStyle(1,0);

FillEllipse(166,235,3,5);

For I:=1 To 5 Do

Begin

SetColor(Blue);

Ellipse(70+i,235,90,270,3,5);

End;

SetColor(Yellow);

Ellipse(76,235,90,270,3,5);

Bar(72,233,35,237);

Rectangle(72,233,35,237);

{- 6 -}

SetColor(Yellow);

SetFillStyle(1,Black);

Bar(97,235,100,253);

Bar(147,235,150,253);

Rectangle(97,235,100,253);

Rectangle(147,235,150,253);

{- 8 -}

SetColor(Yellow);

SetFillStyle(1,2);

Bar(45,330,190,400);

For I:=1 To 20 Do

Begin

SetColor(Blue);

Line(44+i,330,44,365);

Line(211-i,365,191-i,400);

End;

SetColor(Yellow);

Line(64,330,190,330); Line(64,330,44,365);

Line(44,365,170,365); Line(170,365,190,330);

Line(190,330,190,365); Line(190,365,170,400);

Line(170,365,170,400); Line(170,400,44,400);

Line(44,400,44,365); Line(64,330,64,365);

{- 7 -}

{- 7.1 -}

SetColor(Yellow);

SetFillStyle(1,Blue);

Rectangle(88,265,102,310);

FillEllipse(95,265,8,3);

SetColor(Yellow);

SetFillStyle(1,Blue);

FillEllipse(95,310,8,3);

SetColor(Yellow);

Rectangle(93,311,97,350);

SetFillStyle(1,Blue);

FillEllipse(95,310,3,2);

SetColor(Blue);

Line(93,350,97,350);

SetColor(Yellow);

Ellipse(95,350,180,360,2,1);

{- 7.2 -}

SetColor(Yellow);

SetFillStyle(1,Blue);

Rectangle(138,265,152,310);

FillEllipse(145,265,8,3);

SetColor(Yellow);

SetFillStyle(1,Blue);

FillEllipse(145,310,8,3);

SetColor(Yellow);

Rectangle(143,311,147,350);

SetFillStyle(1,Blue);

FillEllipse(145,310,3,2);

SetColor(Blue);

Line(143,350,147,350);

SetColor(Yellow);

Ellipse(145,350,180,360,2,1);

{- 2 -}

SetColor(Yellow);

Line(95,47,95,215);

Line(145,47,145,215);

Line(95,220,95,263);

Line(145,220,145,263);

Line(95,257,89,263);

Line(95,257,101,263);

Line(145,257,139,263);

Line(145,257,151,263);

SetFillStyle(1,Black);

Bar(138,130,148,132);

Rectangle(138,130,148,132);

{- Line -}

SetColor(11);

Line(140,40,200,25);

Line(150,130,200,120);

Line(134,183,200,170);

Line(160,238,200,230);

Line(150,250,200,260);

Line(150,280,200,290);

Line(170,345,210,355);

Line(200,205,148,217);

Line(98,217,200,192);

Line(175,190,210,180);

Line(160,208,210,195);

SetColor(Yellow);

SetTextStyle(2,0,4);

OutTextXY(204,21,'1');

OutTextXY(204,116,'2');

OutTextXY(204,166,'3 - 9');

OutTextXY(213,176,'4');

OutTextXY(204,226,'5');

OutTextXY(204,256,'6');

OutTextXY(204,286,'7');

OutTextXY(214,351,'8');

OutTextXY(213,190,'10');

OutTextXY(202,184,'11');

OutTextXY(202,200,'12');

{- Animation -}

SetColor(10);

SetTextStyle(5,0,1);

OutTextXY(230,20,'Dlya Zapuska Programmy Nagmite');

SetColor(10);

SetTextStyle(7,0,1);

OutTextXY(520,25,'<ENTER>');

Repeat;

Delay(50000);

SetColor(Yellow);

SetTextStyle(7,0,1);

OutTextXY(520,25,'<ENTER>');

Sound(1200);

Delay(50000);

SetColor(Red);

SetTextStyle(7,0,1);

OutTextXY(520,25,'<ENTER>');

NoSound;

Until Keypressed;

SetColor(Blue);

SetTextStyle(5,0,1);

OutTextXY(230,20,'Dlya Zapuska Programmy Nagmite');

SetColor(Blue);

SetTextStyle(7,0,1);

OutTextXY(520,25,'<ENTER>');

{- 7 -}

ReadLn;

Sound(100);

Delay(10000);

NoSound;

SetTextStyle(2,0,2);

SetColor(Yellow);

OutTextXY(121,130,'7');

If W>0 Then

Begin

SetFillStyle(1,Blue);

Bar(2,2,636,477);

SetColor(Yellow); SetFillStyle(1,Red);

FillEllipse(120,45,25,25);

SetColor(Yellow); SetFillStyle(1,Blue);

FillEllipse(120,45,2,2);

SetColor(Black);

Line(80,45,98,45); Line(102,45,120,45);

Line(120,45,138,45); Line(142,45,160,45);

Line(120,5,120,23); Line(120,27,120,45);

Line(120,45,120,63); Line(120,67,120,85);

SetColor(Yellow);

Line(120,45,112,53);

Line(120,45,128,53);

Line(112,53,128,53);

SetColor(Black);

Line(112,54,110,57); Line(116,54,114,57);

Line(120,54,118,57); Line(124,54,122,57);

Line(128,54,126,57);

{- 10 -}

SetFillStyle(1,8);

SetColor(Yellow);

Bar(60,185,175,220);

Rectangle(60,185,175,220);

For I:=1 To 15 Do

Begin

SetColor(Blue);

Line(59+i,185,59,220);

Line(191-i,184,176-i,220);

End;

SetColor(Yellow);

Line(75,185,59,220);

Line(175,185,160,220);

SetColor(Black);

Line(85,178,92,178); Line(85,178,85,185);

Line(92,178,92,185); Line(85,185,92,185);

Line(85,185,82,190); Line(92,185,89,190);

Line(82,190,89,190);

Line(155,178,162,178); Line(155,178,155,185);

Line(162,178,162,185); Line(155,185,162,185);

Line(155,185,152,190); Line(162,185,159,190);

Line(152,190,159,190);

{- 4 -}

SetColor(Yellow);

SetFillStyle(1,8);

FillEllipse(173,197,3,10);

For I:=1 To 8 Do

Begin

SetColor(8);

FillEllipse(175-i,202+(i*2),2,2);

End;

SetColor(Yellow);

Line(171,204,166,219);

Line(176,203,169,219);

Ellipse(167,219,180,360,2,2);

SetColor(Yellow);

SetFillStyle(1,4);

FillEllipse(173,196,1,3);

{- 3 -}

SetColor(Red); SetFillStyle(7,Yellow);

Bar(127,79,137,189);

Rectangle(127,79,137,189);

SetColor(Red); SetFillStyle(1,Black);

Bar(132,81,135,187);

SetColor(Black);

SetTextStyle(2,0,1);

OutTextXY(121,82,'0');

OutTextXY(121,88,'1');

OutTextXY(121,94,'2');

OutTextXY(121,102,'3');

OutTextXY(121,110,'4');

OutTextXY(121,116,'5');

OutTextXY(121,122,'6');

OutTextXY(121,130,'7');

OutTextXY(121,138,'8');

OutTextXY(121,146,'9');

OutTextXY(118,154,'10');

OutTextXY(118,162,'11');

OutTextXY(118,170,'11');

OutTextXY(118,178,'11');

{- 11 -}

{- 12 -}

SetFillStyle(1,0);

SetColor(Yellow);

FillEllipse(95,215,8,5);

FillEllipse(145,215,8,5);

{- 5 -}

SetColor(Yellow);

SetFillStyle(1,Yellow);

Bar(70,230,166,240);

SetFillStyle(1,Red);

Bar(71,231,165,239);

SetFillStyle(1,0);

FillEllipse(166,235,3,5);

For I:=1 To 5 Do

Begin

SetColor(Blue);

Ellipse(70+i,235,90,270,3,5);

End;

SetColor(Yellow);

Ellipse(76,235,90,270,3,5);

Bar(72,233,35,237);

Rectangle(72,233,35,237);

{- 6 -}

SetColor(Yellow);

SetFillStyle(1,Black);

Bar(97,235,100,253);

Bar(147,235,150,253);

Rectangle(97,235,100,253);

Rectangle(147,235,150,253);

{- 8 -}

SetColor(Yellow);

SetFillStyle(1,2);

Bar(45,330,190,400);

For I:=1 To 20 Do

Begin

SetColor(Blue);

Line(44+i,330,44,365);

Line(211-i,365,191-i,400);

End;

SetColor(Yellow);

Line(64,330,190,330); Line(64,330,44,365);

Line(44,365,170,365); Line(170,365,190,330);

Line(190,330,190,365); Line(190,365,170,400);

Line(170,365,170,400); Line(170,400,44,400);

Line(44,400,44,365); Line(64,330,64,365);

{- 7 -}

{- 7.1 -}

SetColor(Yellow);

SetFillStyle(1,Blue);

Rectangle(88,265,102,310);

FillEllipse(95,265,8,3);

SetColor(Yellow);

SetFillStyle(1,Blue);

FillEllipse(95,310,8,3);

SetColor(Yellow);

Rectangle(93,311,97,350);

SetFillStyle(1,Blue);

FillEllipse(95,310,3,2);

SetColor(Blue);

Line(93,350,97,350);

SetColor(Yellow);

Ellipse(95,350,180,360,2,1);

{- 7.2 -}

SetColor(Yellow);

SetFillStyle(1,Blue);

Rectangle(138,265,152,310);

FillEllipse(145,265,8,3);

SetColor(Yellow);

SetFillStyle(1,Blue);

FillEllipse(145,310,8,3);

SetColor(Yellow);

Rectangle(143,311,147,350);

SetFillStyle(1,Blue);

FillEllipse(145,310,3,2);

SetColor(Blue);

Line(143,350,147,350);

SetColor(Yellow);

Ellipse(145,350,180,360,2,1);

{- 2 -}

SetColor(Yellow);

Line(95,47,95,215);

Line(145,47,145,215);

Line(95,220,95,263);

Line(145,220,145,263);

Line(95,257,89,263);

Line(95,257,101,263);

Line(145,257,139,263);

Line(145,257,151,263);

SetFillStyle(1,Black);

Bar(138,130,148,132);

Rectangle(138,130,148,132);

For I:=1 To 50 Do

Begin

SetColor(9);

Line(98,254,98,254+i);

Line(99,254,99,254+i);

Line(148,254,148,254+i);

Line(149,254,149,254+i);

Delay(1000);

End;

For B:=1 To W Do

Begin

Sound(100+(B*5));

If B=3 Then a:=a+1;

If B=6 Then a:=a+1;

If B=9 Then a:=a+1;

If B=12 Then a:=a+1;

If B=15 Then a:=a+1;

If B=17 Then a:=a+1;

If B=19 Then a:=a+1;

If B=21 Then a:=a+1;

If B=23 Then a:=a+1;

If B=25 Then a:=a+1;

If B=25 Then a:=a+1;

SetColor(Yellow);

Ellipse(95,310-B,360,0,6,2);

Ellipse(145,310-(B+a),360,0,6,2);

Delay(7000);

SetColor(9);

SetFillStyle(1,9);

FillEllipse(95,310-B,6,2);

FillEllipse(145,310-(B+a),6,2);

End;

SetColor(Yellow);

Ellipse(95,310-B,360,0,6,2);

Ellipse(145,310-(B+a),360,0,6,2);

For I:=1 To 14 Do

Begin

SetFillStyle(1,Blue);

Bar(98,252+i*2,99,255+i*2);

Bar(148,254+i,149,255+i);

Delay(1000);

End;

SetColor(Yellow);

Line(95,220,95,263);

Line(145,220,145,263);

Line(95,257,89,263);

Line(95,257,101,263);

Line(145,257,139,263);

Line(145,257,151,263);

FillEllipse(95,265,8,3);

FillEllipse(145,265,8,3);

NoSound;

Sound(100);

Delay(10000);

NoSound;

{- 5 -}

Sound(100);

Delay(10000);

Nosound;

For I:=1 To 149 Do

Begin

Sound(500-(i*3));

SetColor(Red);

SetFillStyle(1,Red);

FillEllipse(75-i,235,2,5);

SetColor(Yellow);

Ellipse(75-i,235,90,270,2,5);

SetColor(Yellow);

SetFillStyle(1,Black);

Bar(50-i,234,35-i,236);

Line(35-i,233,35-i,237);

SetFillStyle(1,0);

FillEllipse(166-i,235,3,5);

SetColor(Blue);

Ellipse(167-i,235,270,90,3,5);

{- 6 -}

SetColor(Yellow);

SetFillStyle(1,Black);

Bar(97-i,235,100-i,253);

Bar(147-i,235,150-i,253);

Rectangle(97-i,235,100-i,253);

Rectangle(147-i,235,150-i,253);

SetColor(Red);

Line(101-i,231,101-i,254);

Line(151-i,231,151-i,254);

SetColor(Yellow);

Line(101-i,240,101-i,240);

Line(151-i,240,151-i,240);

SetColor(Blue);

Line(101-i,241,101-i,254);

Line(151-i,241,151-i,254);

Delay(700);

SetColor(Yellow);

Line(95,220,95,263);

Line(145,220,145,263);

End;

NoSound;

Sound(100);

Delay(10000);

NoSound;

For I:=C To 53 Do

Begin

If C<=40 Then y:=C;

SetColor(8);

SetFillStyle(1,9);

Bar(144,310,146,311+C);

Bar(94,310,96,311+C);

SetColor(Yellow);

Delay(1000);

SetColor(Yellow);

Ellipse(145,350,180,360,2,1);

Ellipse(95,350,180,360,2,1);

Sound(100+C);

End;

For D:=1 To W Do

Begin

SetColor(Yellow);

SetFillStyle(1,9);

FillEllipse(95,310-B+D,6,2);

FillEllipse(145,310-(B+a)+D,6,2);

SetColor(Blue);

Ellipse(95,309-B+D,0,180,6,2);

Ellipse(145,309-(B+a)+D,0,180,6,2);

Delay(6000);

Sound(153+D);

End;

For E:=1 To 19 Do

Begin

SetColor(Yellow);

SetFillStyle(1,Blue);

FillEllipse(95,310,6,2);

SetColor(Blue);

SetFillStyle(1,Blue);

Bar(94,310+E,96,311+E);

Delay(3000);

Sound(178+E);

End;

SetColor(Yellow);

Line(90,330,100,330);

For FF:=1 To 32 Do

Begin

SetFillStyle(1,2);

Bar(94,331+FF,96,332+FF);

Delay(1000);

Sound(197+FF);

End;

SetColor(Yellow);

Ellipse(95,350,180,360,2,1);

SetColor(Yellow);

Line(88,265,88,310);

Line(102,265,102,310);

U:=1;

For G:=1 To W+7 Do

Begin

If G=8 Then

Begin

SetColor(Yellow);

OutTextXY(121,138,'8');

SetColor(Black);

OutTextXY(121,130,'7');

End;

If G=16 Then

Begin

SetColor(Yellow);

OutTextXY(121,146,'9');

SetColor(Black);

OutTextXY(121,138,'8');

End;

If G=24 Then

Begin

SetColor(Yellow);

OutTextXY(118,154,'10');

SetColor(Black);

OutTextXY(121,146,'9');

End;

If G=32 Then

Begin

SetColor(Yellow);

OutTextXY(118,162,'11');

SetColor(Black);

OutTextXY(118,154,'10');

End;

If G<=15 Then y:=G;

If G=3 Then u:=u+1;

If G=6 Then u:=u+1;

If G=9 Then u:=u+1;

If G=12 Then u:=u+1;

If G=15 Then u:=u+1;

If G=18 Then u:=u+1;

If G=21 Then u:=u+1;

If G=24 Then u:=u+1;

If G=27 Then u:=u+1;

If G=29 Then u:=u+1;

If G=30 Then u:=u+1;

If G=30 Then u:=u+1;

If G=32 Then u:=u+1;

SetColor(Yellow);

SetFillStyle(1,Blue);

FillEllipse(95,265-G,7,3);

SetColor(Blue);

Ellipse(95,266-G,180,360,6,3);

Ellipse(95,267-G,180,360,6,3);

SetColor(Yellow);

SetFillStyle(1,Blue);

FillEllipse(95,310-G,8,3);

SetColor(Blue);

Ellipse(95,311-G,180,360,8,3);

Ellipse(95,312-G,180,360,8,3);

SetColor(Yellow);

Rectangle(93,311-G,97,350-G);

SetFillStyle(1,Blue);

FillEllipse(95,310-G,3,2);

SetColor(Yellow);

Ellipse(95,350-G,180,360,2,1);

If G<=21 Then

Begin

SetColor(2);

Ellipse(95,351-G,180,360,3,2);

End

Else

Begin

SetColor(Blue);

Ellipse(95,351-G,180,360,3,2);

End;

SetColor(Yellow);

Line(95,257-G,89,263-G);

Line(95,257-G,101,263-G);

SetColor(Blue);

Line(95,258-G,90,264-G);

Line(95,258-G,100,264-G);

{- 7.2 -}

SetColor(Yellow);

SetFillStyle(1,Blue);

Rectangle(138,265+G,152,310+G);

FillEllipse(145,265+G,8,3);

SetColor(Blue);

Ellipse(145,264+G,0,190,8,3);

Line(137,265,137,310);

Line(153,265,153,310);

Line(87,265,87,310);

Line(103,265,103,310);

SetColor(Yellow);

SetFillStyle(1,9);

FillEllipse(145,310+G,7,3);

Bar(144,348+y,146,347+y);

SetColor(9);

Ellipse(145,310+G,0,190,7,3);

SetColor(Yellow);

Rectangle(143,313+G,147,350+y);

SetColor(Yellow);

Line(145,47,145,256+G);

Line(145,220+G,145,263+G);

Line(145,257+G,139,263+G);

Line(145,257+G,151,263+G);

SetColor(Blue);

Line(145,256+G,139,262+G);

Line(145,256+G,151,262+G);

SetColor(Yellow);

SetFillStyle(1,Black);

Bar(138,130+G,148,132+G);

Rectangle(138,130+G,148,132+G);

SetFillStyle(1,Blue);

Bar(138,129+G,144,129+G);

Bar(145,129+G,149,129+G);

SetColor(Yellow);

SetFillStyle(1,9);

FillEllipse(145,309-(B+a)+D+(G+u),6,2);

SetColor(Blue);

Ellipse(145,308-(B+a)+D+(G+u),0,180,6,2);

Ellipse(145,307-(B+a)+D+(G+u),0,180,6,2);

Ellipse(145,305-(B+a)+D+(G+u),0,180,6,2);

Ellipse(145,304-(B+a)+D+(G+u),0,180,6,2);

Delay(5000);

SetColor(Yellow);

Line(80,330,100,330);

SetColor(2);

Line(80,331,100,331);

Line(80,332,100,332);

If G>24 Then

Begin

SetFillStyle(1,2);

Bar(139,331,151,339);

SetColor(Yellow);

Line(140,330,150,330);

End;

Sound(129+G);

End;

SetFillStyle(1,2);

Bar(144,340,146,363);

Nosound;

Q:=W+7;

SetColor(Blue);

Line(95,257-Q,90,262-Q);

Line(95,257-Q,100,262-Q);

For I:=1 To W+7 Do

Begin

{- 7.1 -}

Sound(129+G+I);

SetColor(Yellow);

Line(95,260-Q+i,95,200);

SetColor(Yellow);

SetFillStyle(1,Blue);

Rectangle(88,265-Q+I,102,310-Q+I);

FillEllipse(95,265-Q+I,8,3);

SetColor(Yellow);

SetFillStyle(1,Blue);

FillEllipse(95,310-Q+I,7,3);

SetColor(Yellow);

Rectangle(93,311-Q+I,97,350-Q+I);

SetFillStyle(1,Blue);

FillEllipse(95,310-Q+I,3,2);

SetColor(Blue);

Line(93,350-Q,97,350-Q);

Ellipse(95,264-Q+I,0,180,8,3);

Ellipse(95,308-Q+I,0,180,6,3);

SetColor(Yellow);

Ellipse(95,350-Q,180,360,2,1);

{- 7.2 -}

SetColor(Yellow);

SetFillStyle(1,Blue);

Rectangle(138,265+Q-i,152,310+Q-i);

FillEllipse(145,265+Q-i,7,3);

SetColor(Yellow);

SetFillStyle(1,2);

FillEllipse(145,310+Q-i,8,3);

SetColor(Blue);

Ellipse(145,267+Q-I,180,360,6,3);

SetColor(Blue);

Ellipse(145,311+Q-i,180,360,8,3);

SetColor(Yellow);

Rectangle(143,311+Q-i,147,330+Q-i);

SetFillStyle(1,2);

FillEllipse(145,310+Q-i,3,2);

SetColor(Yellow);

Ellipse(145,330+Q-i,180,360,2,1);

If I>15 Then Begin

SetColor(2);

Line(140,335+i,150,335+i);

End;

Delay(3000);

If I>15 Then Begin

SetColor(2);

Line(140,335+i,150,335+i);

End;

SetFillStyle(1,2);

Bar(130,331,155,340);

End;

NoSound;

{- Finish Animation -}

{- Kirpich -}

SetColor(Yellow);

SetFillStyle(1,2);

Bar(45,330,190,400);

For I:=1 To 20 Do

Begin

SetColor(Blue);

Line(44+i,330,44,365);

Line(211-i,365,191-i,400);

End;

SetColor(Yellow);

Line(64,330,190,330); Line(64,330,44,365);

Line(44,365,170,365); Line(170,365,190,330);

Line(190,330,190,365); Line(190,365,170,400);

Line(170,365,170,400); Line(170,400,44,400);

Line(44,400,44,365); Line(64,330,64,365);

{- 7 -}

{- 7.1 -}

SetColor(Yellow);

SetFillStyle(1,Blue);

Rectangle(88,265,102,310);

FillEllipse(95,265,8,3);

SetColor(Yellow);

SetFillStyle(1,Blue);

FillEllipse(95,310,8,3);

SetColor(Yellow);

Rectangle(93,311,97,350);

SetFillStyle(1,Blue);

FillEllipse(95,310,3,2);

SetColor(Blue);

Line(93,350,97,350);

SetColor(Yellow);

Ellipse(95,350,180,360,2,1);

{- 7.2 -}

SetColor(Yellow);

SetFillStyle(1,Blue);

Rectangle(138,265,152,310);

FillEllipse(145,265,8,3);

SetColor(Yellow);

SetFillStyle(1,Blue);

FillEllipse(145,310,8,3);

SetColor(Yellow);

Rectangle(143,311,147,350);

SetFillStyle(1,Blue);

FillEllipse(145,310,3,2);

SetColor(Blue);

Line(143,350,147,350);

SetColor(Yellow);

Ellipse(145,350,180,360,2,1);

SetColor(Yellow);

Line(95,47,95,215);

Line(145,47,145,215);

Line(95,220,95,263);

Line(145,220,145,263);

Line(95,257,89,263);

Line(95,257,101,263);

Line(145,257,139,263);

Line(145,257,151,263);

End;

SetColor(10);

SetTextStyle(5,0,1);

OutTextXY(190,410,'Dlya Zaversheniya Programmy Nagmite');

SetColor(10);

SetTextStyle(7,0,1);

OutTextXY(520,415,'<ENTER>');

Repeat;

Delay(10000);

SetColor(Yellow);

SetTextStyle(7,0,1);

OutTextXY(520,415,'<ENTER>');

Sound(1000);

Delay(50000);

SetColor(Red);

SetTextStyle(7,0,1);

OutTextXY(520,415,'<ENTER>');

NoSound;

Until Keypressed;

ReadLn;

{---------------------------------------------------------}

End;

Procedure Anim2;

Begin

End;

{6666666666666666666666666666666666666666666666666666}

Procedure opis;

Begin

{ClearDevice;}

SetColor(Yellow);

SetFillStyle(1,Yellow);

Bar(0,0,700,500);

SetFillStyle(1,Blue);

Bar(2,2,636,477);

For I:=1 To 250 Do

Begin

Sound(2000-(i*5));

SetFillStyle(1,Yellow);

Bar(380,20+i,600,52+i);

End;

SetFillStyle(1,Black);

Bar(382,22,598,300);

NoSound;

For I:=1 To 10 Do

Begin

Delay(1000);

End;

Begin

Delay(60000);

Sound(1000);

SetColor(10);

Delay(1000);

SetTextStyle(0,0,0);

OutTextXY(390,35,'1 - ');

SetColor(Red);

OutTextXY(420,35,'Block');

Sound(920);

SetColor(10);

Delay(1000);

OutTextXY(390,50,'2 - ');

SetColor(Red);

OutTextXY(420,50,'Otchetnayia Ustanovka');

Sound(840);

SetColor(10);

Delay(1000);

OutTextXY(390,65,'3 - ');

SetColor(Red);

OutTextXY(420,65,'Izmeritel Pokazanyia');

Sound(760);

SetColor(10);

Delay(1000);

OutTextXY(390,80,'4 - ');

SetColor(Red);

OutTextXY(420,80,'Udergivayushaya zamok');

Sound(680);

SetColor(10);

Delay(1000);

OutTextXY(390,95,'5 - ');

SetColor(Red);

OutTextXY(420,95,'Vodaprovod');

Sound(600);

SetColor(10);

Delay(1000);

OutTextXY(390,110,'6 - ');

SetColor(Red);

OutTextXY(420,110,'Vodaprovodki');

Sound(520);

Delay(1000);

SetColor(10);

OutTextXY(390,125,'7 - ');

SetColor(Red);

OutTextXY(420,125,'Tsilindri');

Sound(440);

Delay(1000);

SetColor(10);

OutTextXY(390,140,'8 - ');

SetColor(Red);

OutTextXY(420,140,'Rezervuar');

Sound(360);

Delay(1000);

SetColor(10);

OutTextXY(390,155,'9 - ');

SetColor(Red);

OutTextXY(420,155,'Shkala');

Sound(280);

Delay(1000);

SetColor(10);

OutTextXY(390,170,'10- ');

SetColor(Red);

OutTextXY(420,170,'Plastina');

Sound(200);

Delay(1000);

SetColor(10);

OutTextXY(390,185,'11- ');

SetColor(Red);

OutTextXY(420,185,'Stopornyia Diska - 1');

Sound(120);

Delay(1000);

SetColor(10);

OutTextXY(390,200,'12- ');

SetColor(Red);

OutTextXY(420,200,'Stopornyia Diska - 2');

Delay(5000);

Nosound;

End;

ReadLn;

End;

Procedure MENU;

Begin

ClearDevice;

SetBkColor(BLACK);

SetColor(Yellow);

SetFillStyle(1,Yellow);

Bar(0,0,700,500);

SetFillStyle(1,Blue);

Bar(2,2,636,477);

x1:=round(getmaxx/2-170);

y1:=round(getmaxy/2-80);

x2:=round(getmaxx/2+160);

y2:=round(getmaxy/2+100);

setfillstyle(1,14);

bar(170,175,448,345);

setfillstyle(1,0);

bar(172,177,446,343);

K:=1;

SetTextStyle(1,0,1);

repeat

if K=1 then begin Sound(10000);color1:=14;color2:=4;color3:=4;color4:=4;Delay(1000);NoSound end;

if K=2 then begin Sound(10000);color1:=4;color2:=14;color3:=4;color4:=4;Delay(1000);NoSound end;

if K=3 then begin Sound(10000);color1:=4;color2:=4;color3:=14; color4:=4;Delay(1000);NoSound end;

if K=4 then begin Sound(10000);color1:=4;color2:=4;color3:=4;color4:=14;Delay(1000);NoSound end;

setcolor(color1);outtextxy(150,200,' 1. Teorya');

setcolor(color2);outtextxy(150,230,' 2. Resunok Pribora');

setcolor(color3);outtextxy(150,260,' 3. Animatsiya Pribora ');

setcolor(color4);outtextxy(150,290,' 4. Exit');

Key:=readkey;

if key=#080 then begin k:=k+1; if k>4 then k:=1; end;

if key=#072 then begin k:=k-1; if k<1 then k:=4; end;

if key=#13 then begin if K=2 THEN BEGIN suret;if key=#13 then MENU;END;

if K=1 then BEGIN {click;}Vvedenia;{vvedenia1;} if key=#13 then MENU;END;

if K=3 then begin anim1;

if key=#13 then MENU;END;

if key=#27 then begin anim2;if Key=#13 then MENU;END;

if K=4 THEN break;

end;

until INFINITE>2;END;


Подобные документы

  • Разработка автоматизированной системы реализации модели движения тела переменной массы на примере движения одноступенчатой ракеты, расчет времени и скорости полета. Описание формы загрузки программы. Требование к программному и техническому обеспечению.

    курсовая работа [255,0 K], добавлен 18.03.2012

  • Система программирования Delphi, ее характеристика. Основные требования к обучающей программе. Составление блок-схемы алгоритма программы "Математика. 1 класс". Виды задач для решения в обучающей программе. Описание работы системы, инструкция к ней.

    курсовая работа [2,0 M], добавлен 17.06.2015

  • Необходимость создания моделируемой системы. Описание моделируемой системы и задание моделирования. Структурная схема модели системы. Блок–диаграмма. Текст программы. Описание текста программы. Результаты моделирования. Эксперимент, его результаты.

    курсовая работа [35,9 K], добавлен 19.11.2007

  • Изучение программы базовой системы ввода-вывода (BIOS) и её настроек. Разработка компьютерной обучающей программы-тренажера "Настройка BIOS" в объектно-ориентированной среде Delphi. Тестирование данного программного продукта и экономические затраты.

    дипломная работа [54,5 K], добавлен 09.10.2013

  • История возникновения шифров, становление науки криптологии. Особенности создания электронного учебника - обучающей программы на языке Delphi. Создание архитектуры обучающей программы по организации практических занятий по криптографическим дисциплинам.

    дипломная работа [1,8 M], добавлен 30.06.2012

  • Принципы построения автоматизированных обучающих систем, их классификация, обзор существующих вариантов. Описание социальной программы поддержки населения "Твой курс", проектирование информационной системы по обучению населения компьютерной грамотности.

    курсовая работа [1,5 M], добавлен 12.09.2012

  • Программа Flash компании Macromedia. Создание обучающей системы по Macromedia Flash 7. Структура программы Flash. Базовые моменты, подлежащие описанию для включения их в обучающую систему, реализованную в виде web-узла. Реализация обучающей системы.

    курсовая работа [23,3 K], добавлен 21.02.2009

  • Понятие о кинематике. Относительность, траектория и виды движений. Движение тела, брошенного под углом к горизонту. Разработка компьютерной программы для моделирования. Описание интерфейса программы и программного кода. Инструкция пользования интерфейсом.

    курсовая работа [1,6 M], добавлен 25.11.2013

  • Разработка программы, имитирующей работу системы массового обслуживания. Методы и средства решения задачи. Создание концептуальной и структурной моделей системы. Анализ и оценка результатов моделирования, определение достоинств и недостатков системы.

    курсовая работа [469,5 K], добавлен 03.03.2015

  • Обзор и обоснование выбора системы управления обучением. Структура автоматизированной обучающей системы. Описание процессов проектирование базы. Общие сведения о процессах полимеризации. Получение каучуков методом стереоспецифической полимеризации.

    курсовая работа [2,9 M], добавлен 19.06.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.