Федеральное агентство по образованиюРФ
Государственное образовательноеучреждение высшего профессионального образования
Тульский государственныйпедагогический университет им. Л.Н. Толстого
Кафедра информационных технологий
Курсовая работа по информатике
на тему: Создание средств наглядностис использованием программной среды Delphi и />Microsoft Movie Maker
Выполнил: студент факультета МФиИ
группа 3Д
Мельников Д.И.
Проверил: ассистент кафедры ИТ
Ситникова Л.Д.
Тула 2010
Оглавление
Введение
Глава 1. Теоретическая часть
1.1 Классификация средствсоздания электронных наглядных пособий
Глава 2. Техническое описаниепрограммного продукта
2.1 Описание работы программногопродукта
Заключение
Список использованнойлитературы
Приложения
Введение
Изучение явленияколебания материальной точки на жестком стержне и его закономерностей внастоящее время включено в образовательные минимумы школ и вузов нашей страны.К сожалению, преподаватели при изложении материала посвященному колебаниямматериальной точки на жестком стержне часто ограничиваются только теорией, т.к.не везде есть необходимые установкидля проведения опыта. В то время какдля наилучшего усвоения данного материала просто необходимо использоватьучебный физический эксперимент в виде демонстрационных и лабораторных работ.Эксперимент в целом является неотъемлемой органической частью курса физики.Удачное сочетание теоретического материала и эксперимента даёт, как показываетпрактика, наилучший педагогический результат.
Целькурсовойработы: «создание программы, моделирующей виртуальный эксперимент».
Достижение поставленнойцели предусматривает решение следующих задач:
· провестианализ теоретической и научно-методической литературы по данной теме;
· разработатьпрограмму для виртуальной лабораторной работы «Колебания материальной точки нажестком стержне в вязкой среде»;
· подготовитьметодические рекомендации к лабораторной работе «Колебания материальной точкина жестком стержне в вязкой среде».
Разработаннаялабораторная работа в дальнейшем будет использована на занятиях лабораторногопрактикума в вузе, а так же для демонстрации колебаний материальной точки нажестком стержне в вязкой среде на уроках физики в школах.
Глава1. Теоретическая часть 1.1 Классификация средств создания электронных наглядныхпособий
Процесс вхождения высшейшколы в мировое образовательное пространство требует совершенствование, а такжесерьёзную переориентацию компьютерно — информационной составляющей. Втораяполовина ХХ века стала периодом перехода к информационным обществам.Лавинообразный рост объёмов информации, принял характер информационного взрываво всех сферах человеческой деятельности. Информационный взрыв породилмножество проблем, важнейшей из которых является проблема обучения. Особыйинтерес представляют вопросы, связанные с электронными наглядными пособиями.
Первоначально наглядностьобучения трактовалась как путь познания конкретного (видимого) объекта,например: реальные предметы и явления в их натуральном виде, модели машин,муляжи, иллюстративные пособия (раздаточный материал, транспаранты, таблицы) инекоторые графические пособия, учебные кинофильмы и т.д.
В современной жедидактике утверждается, что принцип наглядности — это систематическая опора нетолько на конкретные визуальные предметы (люди, животные, предметы и т.п.) и ихизображения, но и на модели.
Для того чтобы сделатьсредства обучения наглядными, необходимо выделить основные свойства изучаемогоявления (то есть превратить его в модель), правильно, адекватно отразить этисвойства (то есть сделать модель изоморфной изучаемому явлению) и, кроме того,обеспечить доступность этой модели для учащихся.
Средства созданияэлектронных наглядных пособий можно разделить на группы, например, используякомплексный критерий, включающий такие показатели, как назначение и выполняемыефункции, требования к техническому обеспечению, особенности применения. В соответствиис указанным критерием возможна следующая классификация:
· традиционныеалгоритмические языки;
· инструментальныесредства общего назначения;
· средствамультимедиа;
· гипертекстовые игипермедиа средства;
Ниже приводятсяособенности и краткий обзор каждой из выделенных групп. В качестве техническойбазы в дальнейшем имеется в виду IBM совместимые компьютеры, как наиболеераспространенные в нашей стране и имеющиеся в распоряжении университета.
Традиционныеалгоритмические языки.
Характерные чертыэлектронных пособий, созданных средствами прямого программирования:
· разнообразие стилейреализации (цветовая палитра, интерфейс, структура ЭП, способ подачи материалаи т.д.);
· сложностьмодификации и сопровождения;
· большие затратывремени и трудоемкость;
· отсутствиеаппаратных ограничений, т.е. возможность создания ЭП,
· ориентированногона имеющуюся в наличие техническую базу.
Инструментальные средстваобщего назначения.
Инструментальные средстваобщего назначения (ИСОН) предназначены для создания электронных пособий (ЭП)пользователями, не являющимися квалифицированными программистами. ИСОН, применяемыепри проектировании ЭП, как правило, обеспечивают следующие возможности:
· формированиеструктуры ЭП;
· ввод,редактирование и форматирования текста (текстовый редактор);
· подготовкастатической иллюстративной части (графический редактор);
· подготовка динамическойиллюстративной части (звуковых и анимационных фрагментов);
· подключениеисполняемых модулей, реализованных с применением других средств разработки идр.
К достоинствам инструментальныхсредств общего назначения следует отнести:
· возможность созданияЭП лицами, которые не являются
· квалифицированнымипрограммистами;
· существенноесокращение трудоемкости и сроков разработки ЭП;
· невысокиетребования к компьютерам и программному обеспечению.
Вместе с тем ИСОН имеютряд недостатков, таких как:
· далеко недружественный интерфейс;
· меньшие, по сравнениюс мультимедиа и гипермедиа системами, возможности;
· отсутствиевозможности создания программ дистанционного обучения.
В нашей стране существуетмножество отечественных ИСОН: Адонис, АосМикро, Сценарий, ТесСис, Интегратор идр.
Средства мультимедиа
Еще до появления новой информационнойтехнологии эксперты, проведя множество экспериментов, выявили зависимость междуметодом усвоения материала и способностью восстановить полученные знания некотороевремя спустя. Если материал был звуковым, то человек запоминал около 1\4 его объема.Если информация была представлена визуально – около 1\3. При комбинированиивоздействия (зрительного и слухового) запоминание повышалось до половины, аесли человек вовлекался в активные действия в процессе изучения, то усвояемостьматериала повышалось до 75%.
Итак, мультимедиа означаетобъединение нескольких способов подачи информации — текст, неподвижные изображения(рисунки и фотографии), движущиеся изображения (мультипликация и видео) и звук(цифровой и MIDI) — в интерактивный продукт. Аудиоинформация включает в себя речь,музыку, звуковые эффекты.
Наиболее важным вопросомпри этом является информационный объем носителя. По сравнению с аудио видеоинформацияпредставляется значительно большим количеством используемых элементов. Прежде всего,сюда входят элементы статического видеоряда, которые можно разделить на две группы:графика (рисованные изображения) и фото. К первой группе относятся различные рисунки,интерьеры, поверхности, символы в графическом режиме. Ко второй — фотографии исканированные изображения.
Динамический видеорядпрактически всегда состоит из последовательностей статических элементов (кадров).Здесь выделяются три типовых элемента: обычное видео (около 24 фото в секунду),квазивидео (6-12 фото в секунду), анимация. Использование видеоряда в составе мультисредыпредполагает решение значительно большего числа проблем, чем использование аудио.Среди них наиболее важными являются: разрешающая способность экрана и количествоцветов, а также объем информации.
Характерным отличием мультимедиапродуктов от других видов
информационных ресурсов являетсязаметно больший информационный объем, поэтому в настоящее время основным носителемэтих продуктов является оптический диск CD-ROM стандартной емкостью 640 Мбайт.Для профессиональных применений существует ряд других устройств (CD-Worm,CD-Rewritaeble, DVD и др.), однако они имеют очень высокую стоимость.
Гипертекстовые игипермедиа средства
Гипертекст – это способнелинейной подачи текстового материала, при котором в тексте имеются каким-либообразом выделенные слова, имеющие привязку к определенным текстовым фрагментам.Таким образом, пользователь не просто листает по порядку страницы текста, он можетотклониться от линейного описания по какой-либо ссылке, т.е. сам управляет процессомвыдачи информации. В гипермедиа системе в качестве фрагментов могут использоватьсяизображения, а информация может содержать текст, графику, видеофрагменты, звук.
Использование гипертекстовойтехнологии удовлетворяет таким предъявляемым к электронным наглядным пособиям,как структурированность, удобство в обращении. При необходимости такой учебник можно“выложить” на любом сервере и его можно легко корректировать. Но, как правило, имсвойственны неудачный дизайн, компоновка, структура и т.д.
В настоящее время существуетмножество различных гипертекстовых форматов (HTML, DHTML, PHP и др.).
Дляповышения педагогического результата при проведении физического эксперимента врамках достижения цели данной работы было выбрано следующие программноеобеспечение: Turbo Delphi и Microsoft Movie Maker. Выбор данных средств был обусловленследующими мотивами:
· Turbo Delphi объединяет в себе множество полезных инструментов иготовых компонентов, из которых, как дом из кирпичей, собираются проекты – пользовательскиепрограммы.
· Microsoft Movie Maker – имеет простой интерфейс, лёгок в применении.
Глава2. Техническое описание программного продукта 2.1 Описание работы программного продукта
Электронный ресурс«Моделирование колебаний шарика на жёстком стержне в вязкой среде» длястудентов всех ВУЗов и средних профессиональных учебных заведений предназначенодля подготовки к практическим и лабораторным занятиям, осуществлениясамостоятельной работы студентов, изучающих общую и теоретическую физику.
Программныйпродукт выполнен в средах Movie Maker и Turbo Delphi. Чтобы запустить программу нужно выбрать из папки«Маятник» файл Project1.exe.
При запуске этого файлаперед пользователем открывается главное окно, содержащие поля ввода параметровфизического эксперимента, поля вывода посчитанных значений, поле для выводаграфика и кнопки, при нажатии на которые происходит то или иное событие.
/>
В левом верхнем углуформы находится кнопка «меню». При нажатии кнопки «Меню» осуществляется переходк разделам меню. Оно содержит такие разделы, как:
· настройки
· теоретическаясправка
· о программе
· выход
/>
В разделе «Настройки»пользователь может ввести значение: предел угла /> награфике, предел угловой скорости /> награфике, нижний предел энергии Е на графике и шаг интегрирования, те значениякоторые он считает нужными. В зависимости от выбора данных параметровпользователь может получить различные формы графика плотности вероятности.
/>
В опции меню«Теоретическая справка» пользователь может получить справочный материалотносительно математического маятника и колебаниях, а также посмотреть нужныеформулы.
/>
В разделе «О программе»пользователь получает информацию относительно программы.
/>
При нажатии раздела«Выход» форма закрывается, и пользователь выходит из программы.
/>
Под кнопкой «Меню» напанели располагаются 8 окон ввода, в которые можно вносить заданные параметры:диаметр шара, массу шара, длину стержня, плотность среды, вязкость среды,начальный угол, начальная угловая скорость, конечное время и изменять их.
/>
За ячейками располагаетсякнопка «Видео», при нажатии которой воспроизводится демонстрационное видео. Наданном видео можно посмотреть порядок выполнения эксперимента.
/>
При нажатии на кнопку «Старт»справа выводятся 4 графика:
1) графикзависимости угла от времени
2) графикзависимости угловой скорости от времени
3) графикзависимости полной энергии колебаний от времени
4) анимация движениямаятника
/>
При нажатии на кнопку«Стоп» программа прекращает свою работу, и начинает считывать значения: собственнойчастоты, собственного периода, декремента затухания, частоты, периода,добротности, плотности шарика, которые обработались до определенного момента, изаписывает значения в поля, которые расположены за кнопкой видео.
/>
При нажатии на кнопку«Очистить графики» происходит очищение графических полей:
· графиказависимости угла от времени
· графиказависимости угловой скорости от времени
· графиказависимости полной энергии колебаний от времени
· анимация движениямаятника возвращается в исходное начальное положение
/>
При нажатии на кнопку«Выход» форма закрывается.
Заключение
Целью курсовой работыбыло «создание программы, моделирующей виртуальный эксперимент».
Электронныенаглядные пособия играют исключительно важную роль в образовании. Облегчаяпроведение экспериментов, они снимают психологический барьер в изучении физике,и делают этот процесс интересным и более простым. При грамотном применении их вучебном процессе, пособия обеспечивают повышение фундаментальности физического образования,содействуют интеграции нашей образовательной системы с образовательной системойнаиболее развитых западных стран, где подобные методы обучения применяются ужедавно.
В ходе работы над курсовымпроектом были решены следующие задачи:
- проведенанализ теоретической и научно-методической литературы по данной теме;
- разработанапрограмма для виртуальной лабораторной работы «Колебания материальной точки нажестком стержне в вязкой среде»;
- подготовленаметодическаярекомендация лабораторной работы «Колебания материальнойточки на жестком стержне в вязкой среде».
Такимобразом, задачи исследования были решены и цель достигнута.
Разработанный программа можетбыть использован в практике работы учителей. Это будет служить не толькорасширению и углублению теоретических знаний, умений и навыков школьников пофизике, но предполагает и практическую подготовку, усиливающую профориентационнуюнаправленность обучения.
Списокиспользованной литературы
1. Культин Н.Б. Основы программирования в Delphi 7.-СПб.: БХВ-Петербург, 2003. — 608 с.: ил.
2. Галисеев Г.В.Программирование в среде Delphi…Самоучитель:
— М.: Издательский дом«Вильяме», 2004. — 304 с.: ил.
3. М.В. Сухарев.Основы Delphi. Профессиональный подход — СПб.: Наука и Техника, 2004. — 600 с.:ил.
4. Стивене Р.Delphi. Готовые алгоритмы / Род Стивене; Пер. с англ. Мерещука П. А. — 2-еизд., стер. — М.: ДМК Пресс; СПб.: Питер, 2004. — 384 с.: ил.
5. Фленов М.Программирование в Delphi глазами хакера. — СПб.: БХВ-Петербург, 2004. — 368с.: ил.
ПриложенияПриложение 1 Программный код
privat
{ Private declarations }
B_Close: boolean;
X,Y,t,Dt,fi0,fi,X_O,Y_O,tend: real;
X1,Y1: real;
w0,b: real;
m,d,p,w,delta,j,E,m0,a,en,sch:real;
OT ,width,height: integer;
L,LVector:integer;
fiFc, Xfc,Yfc, Xfcnad, Yfcnad, c: real;
outalfa,outomega,k1a,k1w,k2a, k2w, k3a, k3w,k4a,k4w:real;
s: string;
public
{ Publicdeclarations }
end;
var
Form1: TForm1;
const g=9.814;dl=3.7;
implementation
{$R *.dfm}
Uses Unit4,Unit5, Unit3, Unit6;
//создание графиков и движения маятника
procedureTForm1.BStartClick(Sender: TObject);
begin
if(LabeledEdit1.Text='') or (LabeledEdit2.Text='') or (LabeledEdit3.Text='')
or(LabeledEdit4.Text='') or (LabeledEdit5.Text='') or (LabeledEdit6.Text='')
or(LabeledEdit7.Text='') or (LabeledEdit8.Text='') or(StrToFloat(LabeledEdit5.Text)=0)
or(StrToFloat(LabeledEdit4.Text)=0) and (StrToInt(LabeledEdit3.Text)=0)
or(StrToFloat(LabeledEdit8.Text)=0)
then
begin
ShowMessage('Провертеправильность ввода данных!');
exit;
end;
B_Close:=false;
BitBtn3.Enabled:=false;
BitBtn4.Enabled:=true;
BitBtn2.Enabled:=false;
LabeledEdit1.Enabled:=false;
LabeledEdit2.Enabled:=false;
LabeledEdit3.Enabled:=false;
LabeledEdit4.Enabled:=false;
LabeledEdit5.Enabled:=false;
LabeledEdit6.Enabled:=false;
LabeledEdit7.Enabled:=false;
LabeledEdit8.Enabled:=false;
Form4.LabeledEdit4.Enabled:=false;
L:=StrToInt(LabeledEdit3.Text);//длина нити
fi0:=StrToFloat(LabeledEdit2.Text);//начальный угол
d:=StrToFloat(LabeledEdit4.Text);//диаметр шара
m:=StrToFloat(LabeledEdit5.Text);//масса шарика
p:=StrToFloat(LabeledEdit6.Text);//плотноть среды
tend:=StrToFloat(LabeledEdit8.Text);//конечное время
w0:=StrToFloat(LabeledEdit7.Text);//начальная скороть
b:=StrToFloat(LabeledEdit1.Text);//вязкость среды
m0:=(p*PI*d*d*d)/6;
w:=w0;
t:=0;
fi0:=fi0*PI/180;
fi:=fi0;
delta:=(3*PI*b*d)/(2*m);
dt:=(2*PI*sqrt(L/g))/(StrToFloat(Form4.LabeledEdit4.Text));
j:=abs(g/l*(1-m0/m));
sch:=g/l*(1-m0/m);
en:=g*l*(m-m0);
E:=(en*(1 — cos(fi)) + (m*l*l*w*w)/2);
c:=(sqrt(j));
s:=FloatToSTR(round(c*10000)/10000);
Label16.Caption:=s+'Гц';
c:=(2*PI/sqrt(j));
s:=FloatToSTR(round(c*10000)/10000);
Label17.Caption:=s+'1/c';
c:=delta;
s:=FloatToSTR(round(c*10000)/10000);
Label18.Caption:=s;
ifdelta
a:=sqrt(j-delta*delta);
ifdelta>sqrt(j) then
a:=sqrt(delta*delta-j);
ifdelta=sqrt(j) then
a:=0;
c:=a;
s:=FloatToSTR(round(c*10000)/10000);
Label9.Caption:=s+'Гц';
c:=(2*PI)/a;
s:=FloatToSTR(round(c*10000)/10000);
Label11.Caption:=s+'1/c';
c:=delta*((2*PI)/a);
s:=FloatToSTR(round(c*10000)/10000);
Label14.Caption:=s;
ifdelta0 then
begin
c:=PI/(delta*((2*PI)/a));
s:=FloatToSTR(round(c*10000)/10000);
Label15.Caption:=s;
end
else
Label15.Caption:='-';
c:=(6*m)/(PI*sqr(d)*d);
s:=FloatToSTR(round(c*1000)/1000);
Label12.Caption:=s+'кг/куб.м';
Chart2.BottomAxis.Maximum:=tend;
Chart3.BottomAxis.Maximum:=tend;
Chart4.BottomAxis.Maximum:=tend;
Chart4.LeftAxis.Maximum:=E+0.5*E;
Chart4.LeftAxis.Minimum:=StrToFloat(Form4.LabeledEdit3.Text);
Chart2.LeftAxis.Maximum:=StrToFloat(Form4.LabeledEdit1.Text);
Chart2.LeftAxis.Minimum:=-Chart2.LeftAxis.Maximum;
Chart3.LeftAxis.Maximum:=StrToFloat(Form4.LabeledEdit2.Text);
Chart3.LeftAxis.Minimum:=-StrToFloat(Form4.LabeledEdit2.Text);
outalfa:=fi0;
outomega:=w0;
while (notB_Close) and (t
begin
fi:=outalfa;
w:=outomega;
k1a:=dt*w;
k1w:=-dt*(2*delta*w+sch*sin(fi));
fi:=outalfa+k1a/2;
w:=outomega+k1w/2;
k2a:=dt*w;
k2w:=-dt*(2*delta*w+sch*sin(fi));
fi:=outalfa+k2a/2;
w:=outomega+k2w/2;
k3a:=dt*w;
k3w:=-dt*(2*delta*w+sch*sin(fi));
fi:=outalfa+k3a;
w:=outomega+k3w;
k4a:=dt*w;
k4w:=-dt*(2*delta*w+sch*sin(fi));
fi:=outalfa+(k1a+k2a*2+k3a*2+k4a)/6;
w:=outomega+(k1w+k2w*2+k3w*2+k4w)/6;
E:=en*(1 — cos(fi)) + (m*l*l*w*w)/2;
outalfa:=fi;
outomega:=w;
Chart2.Series[0].AddXY(t,fi* 180 / PI);
Chart3.Series[0].AddXY(t,w);
Chart4.Series[0].AddXY(t,E);
t:=t+Dt;
X:=X_O+dL*sin(fi);
Y:=Y_O-dL*cos(fi);
X1:=X_O+LVector*sin(fi);
Y1:=Y_O-LVector*cos(fi);
Xfc:=X-sign(w)*cos(fi);
Yfc:=Y-sign(w)*sin(fi);
Xfcnad:=X-sign(w)*(cos(fi)+0.5);
Yfcnad:=Y-sign(w)*sin(fi);
Series14.AddArrow(X,Y,Xfc,Yfc);
Series16.AddXY(Xfcnad,Yfcnad,'Fc');
Series2.Clear;
Series3.Clear;
Series6.Clear;
Series7.Clear;
Series8.Clear;
Series9.Clear;
Series13.Clear;
Series14.Clear;
Series15.Clear;
Series16.Clear;
Series2.AddXY(X_O,Y_O,'',clBlack);
Series2.AddXY(X,Y,'',clBlack);
Series6.AddArrow(X,Y,X1,Y1,'T');
Series7.AddArrow(X,Y,X,Y-LVector,'G');
Series8.AddXY(X1+0.5,Y1,'T');
Series9.AddXY(X+0.5,Y-LVector,'G');
Series15.AddXY(X+0.5,Y+1,'Fa');
Series13.AddArrow(X,Y,X,Y+1);
Series14.AddArrow(X,Y,Xfc,Yfc);
Series16.AddXY(Xfcnad,Yfcnad,'Fc');
if(round((fi*180)/PI) = 0)and (round((w*180)/PI) = 0) and (round(E) = 0) then begin
Series14.AddArrow(0,0,0,0);
Series16.Clear;
Series14.Clear;
end
else
begin
Series14.AddArrow(X,Y,Xfc,Yfc);
Series16.AddXY(Xfcnad,Yfcnad,'Fc');
end;
Timer1.Enabled:= true;
Series3.AddXY(X,Y,'',clRed);
OT:=0;
while (OT = 0)do Application.ProcessMessages;
end;
Timer1.Enabled:= false;
BitBtn4.Enabled:=false;
BitBtn2.Enabled:=true;
end;
//создание формы
procedureTForm1.FormCreate(Sender: TObject);
begin
width:=GetSystemMetrics(SM_CXSCREEN);
height:=GetSystemMetrics(SM_CYSCREEN);
form1.height:=height;
form1.width:=width;
Chart1.Height:=((Form1.Height)div 2)-80;
Chart1.Width:=((Form1.width)div 2)-160;
Chart2.Height:=((Form1.Height)div 2)-50;
Chart2.Width:=((Form1.width)div 2)-120;
Chart3.Height:=((Form1.Height)div 2)-50;
Chart3.Width:=((Form1.width)div 2)-120;
Chart4.Height:=((Form1.Height)div 2)-50;
Chart4.Width:=((Form1.width)div 2)-120;
Chart2.Top:=Panel2.Top+20;
Chart1.Top:=Panel2.Top+Chart2.Height+50;
Chart3.Top:=Chart2.Top;
Chart3.Left:=Chart2.Left+Chart2.Width;
Chart4.Top:=Chart1.Top-20;
Chart4.Left:=Chart2.Left+Chart2.Width;
if(Form1.width
begin
LabeledEdit4.Height:=LabeledEdit4.Height-5;
LabeledEdit4.Width:=LabeledEdit4.Width-5;
LabeledEdit1.Height:=LabeledEdit1.Height-5;
LabeledEdit1.Width:=LabeledEdit1.Width-5;
LabeledEdit2.Height:=LabeledEdit2.Height-5;
LabeledEdit2.Width:=LabeledEdit2.Width-5;
LabeledEdit3.Height:=LabeledEdit3.Height-5;
LabeledEdit3.Width:=LabeledEdit3.Width-5;
LabeledEdit5.Height:=LabeledEdit5.Height-5;
LabeledEdit5.Width:=LabeledEdit5.Width-5;
LabeledEdit6.Height:=LabeledEdit6.Height-5;
LabeledEdit6.Width:=LabeledEdit6.Width-5;
LabeledEdit7.Height:=LabeledEdit7.Height-5;
LabeledEdit7.Width:=LabeledEdit7.Width-5;
LabeledEdit8.Height:=LabeledEdit8.Height-5;
LabeledEdit8.Width:=LabeledEdit8.Width-5;
LabeledEdit4.Top:=LabeledEdit4.Top-15;
LabeledEdit1.Top:=LabeledEdit1.Top-53;
LabeledEdit2.Top:=LabeledEdit2.Top-78;
LabeledEdit3.Top:=LabeledEdit3.Top-23;
LabeledEdit5.Top:=LabeledEdit5.Top-19;
LabeledEdit6.Top:=LabeledEdit6.Top-50;
LabeledEdit7.Top:=LabeledEdit7.Top-80;
LabeledEdit8.Top:=LabeledEdit8.Top-82;
StaticText2.Top:=StaticText2.Top-6;
StaticText6.Top:=StaticText6.Top-105;
StaticText7.Top:=StaticText7.Top-110;
StaticText8.Top:=StaticText8.Top-115;
StaticText1.Top:=StaticText1.Top-120;
StaticText5.Top:=StaticText5.Top-126;
StaticText3.Top:=StaticText3.Top-130;
StaticText4.Top:=StaticText4.Top-135;
StaticText9.Top:=StaticText9.Top-140;
BitBtn2.Top:=BitBtn2.Top-147;
BitBtn3.Top:=BitBtn3.Top-147;
BitBtn4.Top:=BitBtn4.Top-155;
BitBtn1.Top:=BitBtn1.Top-155;
BitBtn1.Height:=BitBtn1.Height-5;
BitBtn1.Width:=BitBtn1.Width-5;
BitBtn2.Height:=BitBtn2.Height-5;
BitBtn2.Width:=BitBtn2.Width-5;
BitBtn3.Height:=BitBtn3.Height-5;
BitBtn3.Width:=BitBtn3.Width-5;
BitBtn4.Height:=BitBtn4.Height-5;
BitBtn4.Width:=BitBtn4.Width-5;
Label16.Top:=Label16.Top-105;
Label17.Top:=Label17.Top-109;
Label18.Top:=Label18.Top-116;
Label9.Top:=Label9.Top-117;
Label11.Top:=Label11.Top-125;
Label14.Top:=Label14.Top-130;
Label15.Top:=Label15.Top-137;
Label12.Top:=Label12.Top-140;
end;
if(Form1.width>1024) and (Form1.Height>768) then
begin
LabeledEdit4.Height:=LabeledEdit4.Height+5;
LabeledEdit4.Width:=LabeledEdit4.Width+5;
LabeledEdit1.Height:=LabeledEdit1.Height+5;
LabeledEdit1.Width:=LabeledEdit1.Width+5;
LabeledEdit2.Height:=LabeledEdit2.Height+5;
LabeledEdit2.Width:=LabeledEdit2.Width-5;
LabeledEdit3.Height:=LabeledEdit3.Height+5;
LabeledEdit3.Width:=LabeledEdit3.Width+5;
LabeledEdit5.Height:=LabeledEdit5.Height+5;
LabeledEdit5.Width:=LabeledEdit5.Width-5;
LabeledEdit6.Height:=LabeledEdit6.Height+5;
LabeledEdit6.Width:=LabeledEdit6.Width+5;
LabeledEdit7.Height:=LabeledEdit7.Height+5;
LabeledEdit7.Width:=LabeledEdit7.Width+5;
LabeledEdit8.Height:=LabeledEdit8.Height+5;
LabeledEdit8.Width:=LabeledEdit8.Width+5;
LabeledEdit4.Top:=LabeledEdit4.Top+15;
LabeledEdit1.Top:=LabeledEdit1.Top+58;
LabeledEdit2.Top:=LabeledEdit2.Top+78;
LabeledEdit3.Top:=LabeledEdit3.Top+30;
LabeledEdit5.Top:=LabeledEdit5.Top+23;
LabeledEdit6.Top:=LabeledEdit6.Top+53;
LabeledEdit7.Top:=LabeledEdit7.Top+80;
LabeledEdit8.Top:=LabeledEdit8.Top+82;
StaticText2.Top:=StaticText2.Top+6;
StaticText6.Top:=StaticText6.Top+125;
StaticText7.Top:=StaticText7.Top+130;
StaticText1.Top:=StaticText1.Top+135;
StaticText3.Top:=StaticText3.Top+135;
StaticText4.Top:=StaticText4.Top+135;
StaticText5.Top:=StaticText5.Top+135;
StaticText8.Top:=StaticText8.Top+135;
StaticText9.Top:=StaticText9.Top+135;
BitBtn2.Top:=BitBtn2.Top+157;
BitBtn3.Top:=BitBtn3.Top+157;
BitBtn4.Top:=BitBtn4.Top+165;
BitBtn1.Top:=BitBtn1.Top+165;
BitBtn1.Height:=BitBtn1.Height+5;
BitBtn1.Width:=BitBtn1.Width+5;
BitBtn2.Height:=BitBtn2.Height+5;
BitBtn2.Width:=BitBtn2.Width+5;
BitBtn3.Height:=BitBtn3.Height+5;
BitBtn3.Width:=BitBtn3.Width+5;
BitBtn4.Height:=BitBtn4.Height+5;
BitBtn4.Width:=BitBtn4.Width+5;
Label16.Top:=Label16.Top+125;
Label17.Top:=Label17.Top+130;
Label18.Top:=Label18.Top+135;
Label9.Top:=Label9.Top+135;
Label11.Top:=Label11.Top+135;
Label14.Top:=Label14.Top+135;
Label15.Top:=Label15.Top+135;
Label12.Top:=Label12.Top+135;
end;
tend:=10;
fi0:=StrToFloat(LabeledEdit2.Text);
Chart2.BottomAxis.Maximum:=tend;
Chart2.LeftAxis.Maximum:=fi0;
Chart2.LeftAxis.Minimum:=-fi0;
Chart3.BottomAxis.Maximum:=tend;
Chart4.BottomAxis.Maximum:=tend;
fi0:=fi0*PI/180;
LVector:=2;
X_O:=5;
Y_O:=6;
OT := 0;
B_Close:=false;
X:=X_O+dl*sin(fi0);
Y:=Y_O-dl*cos(fi0);
if (fi
begin
fiFc:=90;
Xfc:=X+1*sin((fiFc*180)/PI);
Yfc:=Y-1*cos((fiFc*180)/PI);
end
else
begin
fiFc:=-90;
Xfc:=X+1*sin((fiFc*180)/PI);
Yfc:=Y-1*cos((fiFc*180)/PI);
end;
Series1.AddXY(4,6,'',clBlack);
Series1.AddXY(6,6,'',clBlack);
Series5.AddXY(X_O,Y_O,'',clBlack);
Series5.AddXY(5,0.5,'',clBlack);
Series2.AddXY(X_O,Y_O,'',clBlack);
Series2.AddXY(X,Y,'',clBlack);
Series3.AddXY(X,Y,'',clRed);
//Силы, действующие натело
X1:=X_O+LVector*sin(fi0);
Y1:=Y_O-LVector*cos(fi0);
Series6.AddArrow(X,Y,X1,Y1);
Series7.AddArrow(X,Y,X,Y-LVector);
Series8.AddXY(X1+0.5,Y1,'T');
Series9.AddXY(X+0.5,Y-LVector,'G');
Series13.AddArrow(X,Y,X,Y+1);
Series14.AddArrow(X,Y,Xfc,Yfc);
Series15.AddXY(X+0.5,Y+1,'Fa');
Series16.AddXY(Xfc+0.5,Yfc,'Fc');
end;
procedureTForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
B_Close:=true;
end;
procedureTForm1.Timer1Timer(Sender: TObject);
begin
OT:=1;
end;
procedureTForm1.BStopClick(Sender: TObject);
begin
Form4.LabeledEdit4.Enabled:=false;
Chart3.LeftAxis.RoundFirstLabel:=true;
Chart2.LeftAxis.RoundFirstLabel:=true;
BitBtn3.Enabled:=false;
if BitBtn3.Enabled=falsethen
begin
BitBtn2.Enabled:=true;
BitBtn4.Enabled:=false;
B_Close:=true
end else exit;
end;
procedureTForm1.LabeledEdit1KeyPress(Sender: TObject; var Key: Char);
begin
Case Key of
#8,'0'..'9',',':;
elseKey:=Chr(0);
end;
end;
procedureTForm1.LabeledEdit2KeyPress(Sender: TObject; var Key: Char);
begin
Case Key of
#8,'0'..'9',',':;
elseKey:=Chr(0);
end;
end;
procedureTForm1.LabeledEdit3KeyPress(Sender: TObject; var Key: Char);
begin
Case Key of
#8,'0'..'9',',':;
else Key:=Chr(0);
end;
end;
procedureTForm1.LabeledEdit4KeyPress(Sender: TObject; var Key: Char);
begin
Case Key of
#8,'0'..'9',',':;
elseKey:=Chr(0);
end;
end;
procedureTForm1.LabeledEdit5KeyPress(Sender: TObject; var Key: Char);
begin
Case Key of
#8,'0'..'9',',':;
elseKey:=Chr(0);
end;
end;
procedureTForm1.LabeledEdit6KeyPress(Sender: TObject; var Key: Char);
begin
Case Key of
#8,'0'..'9',',':;
elseKey:=Chr(0);
end;
end;
procedureTForm1.LabeledEdit7KeyPress(Sender: TObject; var Key: Char);
begin
Case Key of
#8,'0'..'9',',':;
elseKey:=Chr(0);
end;
end;
procedureTForm1.LabeledEdit8KeyPress(Sender: TObject; var Key: Char);
begin
Case Key of
#8,'0'..'9',',':;
elseKey:=Chr(0);
end;
end;
procedureTForm1.N10Click(Sender: TObject);
begin
ifMessageDlg('Вы действительно хотите выйти из программы?',MtConfirmation,[MbYes,mbNo],0)=MrYesthen Form1.Close;
end;
//очистить графики
procedureTForm1.BitBtn2Click(Sender: TObject);
begin
Form4.LabeledEdit4.Enabled:=true;
Chart3.LeftAxis.Maximum:=3;
Chart3.LeftAxis.Minimum:=-3;
Chart2.LeftAxis.Maximum:=85;
Chart2.LeftAxis.Minimum:=-85;
Chart4.LeftAxis.Maximum:=2;
Chart4.LeftAxis.Minimum:=0;
BitBtn2.Enabled:=false;
BitBtn3.Enabled:=true;
BitBtn4.Enabled:=false;
Timer1.Enabled:= false ;
Chart4.LeftAxis.AutomaticMaximum:=false;
Chart4.LeftAxis.AutomaticMinimum:=false;
Chart2.LeftAxis.AutomaticMaximum:=false;
Chart2.LeftAxis.AutomaticMinimum:=false;
LabeledEdit1.Enabled:=true;
LabeledEdit2.Enabled:=true;
LabeledEdit3.Enabled:=true;
LabeledEdit4.Enabled:=true;
LabeledEdit5.Enabled:=true;
LabeledEdit6.Enabled:=true;
LabeledEdit7.Enabled:=true;
LabeledEdit8.Enabled:=true;
Chart2.Series[0].Clear;
Chart3.Series[0].Clear;
Chart4.Series[0].Clear;
B_Close:=true;
LVector:=2;
fi0:=StrToFloat(LabeledEdit2.Text);
fi0:=fi0*PI/180;
X_O:=5;
Y_O:=6;
OT := 0;
B_Close:=false;
X:=X_O+dL*sin(fi0);
Y:=Y_O-dL*cos(fi0);
//очистить прошлый кадр
Series2.Clear; //нить
Series3.Clear;// шар
Series6.Clear;// стрелка красная
Series7.Clear;// стрелка синяя
Series8.Clear;// T
Series9.Clear; // G
// рисуем нить и шарик
Series2.AddXY(X_O,Y_O,'',clBlack);
Series2.AddXY(X,Y,'',clBlack);
Series3.AddXY(X,Y,'',clRed);
//Силы действующие натело
X1:=X_O+LVector*sin(fi0);
Y1:=Y_O-LVector*cos(fi0);
Series6.AddArrow(X,Y,X1,Y1);
Series7.AddArrow(X,Y,X,Y-LVector);
Series8.AddXY(X1+0.5,Y1,'T');
Series9.AddXY(X+0.5,Y-LVector,'G');
Series13.Clear;
Series14.Clear;
Series15.Clear;
Series16.Clear;
Series13.AddArrow(X,Y,X,Y+1);//Fa стрелка
Series15.AddXY(X+0.5,Y+1,'Fa');// Fa
fiFc:=-90;
Xfc:=X+1*sin((fiFc*180)/PI);
Yfc:=Y-1*cos((fiFc*180)/PI);
Series14.AddArrow(X,Y,Xfc,Yfc);
Series16.AddXY(Xfc+0.5,Yfc,'Fc');
end;
procedureTForm1.N2Click(Sender: TObject);
begin
ShellExecute(Handle,'open','теоретическая справка.htm',nil,nil,SW_RESTORE);
end;
procedureTForm1.N4Click(Sender: TObject);
begin
Form4.Show;
end;
procedureTForm1.N6Click(Sender: TObject);
begin
Form5.Show;
end;
procedureTForm1.Button1Click(Sender: TObject);
begin
withForm6.MediaPlayer1 do
begin
Filename :='Video.mpg';
Open;
Form6.Show;
Display :=Form6.Panel1;
DisplayRect :=Form6.Panel1.ClientRect;
end;
end;
end.
Приложение2 Методические рекомендации к выполнению лабораторной работы
При запуске программыперед пользователем открывается главное окно, содержащие поля ввода параметровфизического эксперимента, поля вывода посчитанных значений, поле для выводаграфика и кнопки.
/>
Внесём значения в поляввода физического эксперимента: диаметр шара, массу шара, длину стержня,плотность среды, вязкость среды, начальный угол, начальная угловая скорость,конечное время.
/>
В пункте меню в разделенастройки введём значение: предел угла /> награфике, предел угловой скорости /> награфике, нижний предел энергии Е на графике и шаг интегрирования, те значениякоторые вы считаете нужными. Нажмём ОК.
/>
Нажмём кнопку «Старт»,наблюдаем построение графиков:
1) графикзависимости угла от времени
2) графикзависимости угловой скорости от времени
3) графикзависимости полной энергии колебаний от времени
4) анимация движениямаятника
/>
А также в полях выводапосчитанных значений выводится значение: собственная частота, собственныйпериода, декремент затухания, частота, период, добротность, плотность шарика.
В любой момент мы можемостановить построение, нажав кнопку «Стоп».
При нажатии на кнопку«Очистить графики» происходит очищение графических полей:
· графиказависимости угла от времени
· графиказависимости угловой скорости от времени
· графиказависимости полной энергии колебаний от времени
· анимация движениямаятника возвращается в исходное начальное положение
/>
При нажатии на кнопку«Видео» воспроизводится демонстрационное видео. На данном видео можнопосмотреть порядок выполнения эксперимента.
/>
По завершению выполненияэксперимента нажимаем кнопку «Выход».
/>