Разработка компьютерной программы «Конструктор обработки данных для решения теоретических и

advertisement
II конкурс научно-исследовательских работ
учащихся в области физики и информатики
Разработка компьютерной программы «Конструктор
обработки данных для решения теоретических и
практических задач по физике»
Работу выполнил:
Агафонов Игорь Михайлович
10 класс ”А”
МОУ «ОГ № 6»
Научный руководитель:
Харлова Елена Викторовна
учитель информатики
высшей квалификационной
категории
г. Архангельск
2011 год
Содержание
1. Введение …………………………………………………………………………
3
2. Значение технологии электронной обработки информации в современном
обществе………………………………………………………………………….
5
3. Объектно-ориентированный подход в программировании ……………….
6
4. Назначение программы «Конструктор обработки статистических данных
по физике»……………………………………………………………………..…
7
5. Разработка алгоритма программы ……………………………………………
8
6. Описание структуры программы …………………………………………….
9
7. Заключение ……………………………………………………………..……...
11
8. Библиографический список ……………………………………………………
12
Приложение 1 ……………………………………………………………………..
13
Приложение 2 ……………………………………………………………………..
15
Приложение 3 ……………………………………………………………………..
16
Приложение 4 ……………………………………………………………………..
17
2
Введение:
Одним из обязательных этапов любого научного исследования вне зависимости от
того, в какой области оно проводится, будь то естественные науки, экономика,
социология, политика, психология или любые другие научные отрасли является
обработка большого количества данных. Главные проблемы почти любого проводимого
эксперимента - достоверность, точность и независимость результатов исследования. С
этой целью обычно анализируют и обрабатывают достаточно много исходных данных.
В наши дни с бурным развитием электронной технологии, сбор, хранение и анализ
большого числа информационных данных стал возможным, в первую очередь, благодаря
цифровым вычислительным машинам. Если первоначально, в 1940-х годах, компьютеры
создавались исключительно для вычислений (что отражено в названиях «компьютер» и
«ЭВМ»), то уже с середины прошлого века ученые стали использовать электронные
вычислительные машины в качестве устройств для обработки статистических данных,
полученных в ходе научных исследований, опытов и наблюдений.
Сегодня в распоряжение специалистов имеются вычислительные машины,
значительно
превосходящие
по
своим
техническим
параметрам
большинство
существующих компьютеров (так называемые суперкомпьютеры). С их помощью ученые
и обрабатывают огромное количество информации. Но зачастую, многие из этих задач
способны выполнить даже обычные персональные компьютеры. Возможности и
мощности домашних ПК позволяют нам использовать их как средство для обработки
данных, в том числе при проведении лабораторных работ и различных исследований.
В связи с этим у нас возникла идея разработки компьютерной программы для
начальной
обработки
статистических
данных
при
проведении
исследований
и
лабораторных работ, а также при решении задач по физике.
При изучении предмета «Физика» прорешивается большое число задач, а также
для проверки физических законов, формул проводятся экспериментальные исследования и
лабораторные работы. Для получения достоверных результатов при проведении данных
работ, облегчения
«рутинных» вычислений, наглядности и необходима данная
компьютерная программа.
Цель работы – разработка компьютерной программы «Конструктор обработки
данных для решения теоретических и практических задач по физике».
Для достижения поставленной цели были сформулированы следующие задачи
работы:
1.
изучить возможности применения специальных компьютерных
программ для проведения лабораторных работ и различных исследований;
3
2.
помочь учащимся общеобразовательных школ в изучении физики, а
именно, в решении задач;
3.
изучить области применения объектно-ориентированных сред для
разработки различных программ по обработке данных;
4.
изучить
и
применить
процесс
создания
специализированных
приложений в объектно-ориентированной среде разработки Lazarus.
Объект исследования: сбор статистических данных при проведении исследований
по физике.
Предмет исследования: использование программы для обработки статистических
данных при проведении лабораторных работ по физике и различных исследований в
области механики.
Гипотеза: программа «Конструктор обработки статистических данных на примере
изучения учебного предмета «Физика» облегчит обработку статистических данных при
проведении различных исследований в области физики, а также окажет помощь в
решении физических задач.
При создании приложения были использованы:
 Язык программирования: Object Pascal.
 Среда разработки программного обеспечения: Lazarus v0.9.28.2 бета
 Компилятор: FreePascal IDE.
4
Значение технологии электронной обработки информации в современном обществе.
Технология электронной обработки информации, широко применяемая в последнее
время при исследованиях в различных областях деятельности, включает в себя человекомашинный процесс исполнения взаимосвязанных операций, протекающих в
установленной последовательности с целью преобразования исходной (первичной)
информации в результатную. Операция представляет собой комплекс совершаемых
технологических действий, в результате которых информация преобразуется.
Технологические операции разнообразны по сложности, назначению, технике реализации,
выполняются на различном оборудовании, многими исполнителями. В условиях
электронной обработки данных преобладают операции, выполняемые автоматически на
машинах и устройствах, которые считывают данные, выполняют операции по заданной
программе в автоматическом режиме без участия человека или сохраняя за пользователем
функции контроля, анализа и регулирования.
Построение технологического процесса определяется следующими факторами:
особенностями обрабатываемой информации, ее объемом, типами, количеством и
характеристиками применяемых технических средств. Они ложатся в основу организации
технологии, которая включает установление перечня, последовательности и способов
выполнения операций, порядка работы специалистов и средств автоматизации,
организацию рабочих мест, установление временных регламентов взаимодействия и т.п.
Интерактивный режим электронной обработки данных предусматривает
непосредственное взаимодействие пользователя с информационно-вычислительной
системой, может носить характер диалога с ЭВМ.
Диалоговый режим открывает пользователю возможность непосредственно
взаимодействовать с вычислительной системой в допустимом для него темпе работы,
реализуя повторяющийся цикл выдачи задания, получения и анализа ответа. При этом
ЭВМ сама может инициировать диалог, сообщая пользователю последовательность шагов
(предоставление меню) для получения искомого результата.
Преимущества компьютерной обработки данных:
1. быстрота обработки данных;
2. статистическая достоверность;
3. возможность получить результат, располагая только входными данными;
4. возможность анализа по различным критериям;
5. компьютерная обработка предполагает использование одних и тех же команд при
выполнении идентичных операций, что практически исключает появление
случайных ошибок, обыкновенно присущих ручной обработке.
5
Объектно-ориентированный подход в программировании.
Изучение основ алгоритмизации и программирования в курсе информатики нашей
гимназии осуществляется на структурном языке программирования PASCAL.
Отметим главные достоинства языка Pascal:

простота (в языке всего несколько операторов);

гибкая система типов данных (практически любая структура может быть
описана на Pascal);

четкая идеология структурного программирования.

возможность эффективной реализации и пригодность с точки зрения
формальных методов отладки программ;
Главный недостаток:

из-за необходимости описаний несколько завышен объем программы.
В начале 90-х годов стало ясно, что будущее за визуальными системами
вроде Windows. Borland решает кардинально изменить свой Turbo Pascal, чтобы он
позволял легко создавать программы под Windows. Было решено придерживаться
принципов так называемого «визуального» программирования: все элементы, из которых
можно строить программу, должны быть показаны на экране, а программист с помощью
мыши перетаскивает их в свою программу.
Оказалось, однако, что визуальное программирование очень трудно реализовать в
рамках структурного подхода. Поэтому стали придерживаться другого подхода –
объектно-ориентированного. В результате внесения элементов объектноориентированного программирования в язык Pascal получился Object Pascal. Кроме этого,
программы сделали событийно-ориентированными, что достаточно естественно при
работе в графической операционной системе, какой является Windows. Созданная
визуальная система программирования получила название Delphi.
Поэтому, с развитием новых информационных технологий, основанных на
принципах объектно-ориентированного программирования, становится актуальным
вопрос изучения объектно-ориентированного программирования.
Объектно-ориентированное программирование (ООП) – это методика
разработки программ, в основе которой лежит понятие объекта как некоторой структуры,
описывающий объект реального мира, его поведение. Задача, решаемая с использованием
методики ООП, описывается в терминах объектов и операций над ними, а программа при
таком подходе представляет собой набор объектов и связей между ними. Другими
словами можно сказать, что объектно-ориентированное программирование представляет
собой метод программирования, который во многом напоминает наше поведение.
6
Для создания конструктора обработки статистических данных на примере изучения
учебного предмета «Физика» мы использовали объектно-ориентированную среду
программирования Lazarus , которая является свободной средой разработки
программного обеспечения для компилятора Free Pascal Compiler.
Назначение программы «Конструктор обработки статистических данных по
физике»
Программа
создана для работы в среде Windows и представляет собой
интерактивную среду для проведения лабораторных работ и различных исследований с
целью обработки статистических данных на примере изучения учебного предмета
«Физика» с возможностью просмотра физической формулы в зависимости от входных
данных.
Численное значение или аналитическая формула, а также сообщения системы
выводится на экран в виде текстовой строки. Основное назначение конструктора
статистической обработки данных – технические расчеты, автоматизация «рутинных»
расчетов, вывод формулы при заданных физических величинах.
Программа Физика 0.9 выполняет следующие функции:
1. Вычисления (кинематика, динамика, механика жидкостей и газов)
2. Перевод величин из внесистемных единиц измерения в международную
систему единиц измерения СИ;
3. Возможность увидеть формулу, которая используется программой при
введенных с клавиатуры данных, при этом показ формулы возможен только
после нажатия кнопки «Найти». Пользователь сам решает, нужен ему показ
формулы, или нет.
4. Возможность создать файл статистики, куда заносятся все нужные
пользователю расчеты, для дальнейшей работы с этими данными, а также
возможность изменения опций записи данных в файл;
5. Формирование научного мировоззрения.
7
Разработка алгоритма программы.
Данное приложение позволяет находить значение неизвестной физической
величины при уж заданных известных «попутных» величинах. При разработке программы
был составлен алгоритм, состоящий из определённой последовательности шагов.
Алгоритм – это точный набор инструкций, описывающих порядок действий
исполнителя для достижения результата решения задачи за конечное время. Он является
неотъемлемой частью любой компьютерной программы, даже самой примитивной.
Данный конструктор обработки данных состоит из нескольких схожих алгоритмов,
заключённых в процедурах. Разберём работу одного из алгоритмов на примере процедуры
TForm1.Button5Click, которая запускается при нажатии на кнопку (button) «найти» в
разделе «Механика жидкостей и газов», в подразделе «Давление жидкости»:
1 шаг: Присвоение всем переменным (плотности, массе, объёму, глубине,
ускорению свободного падения, давлению) величин введенных в соответствующее поле
пользователем. Если каких-либо данных нет, то величины этих переменных будут
равняться нулю.
2 шаг: Перевод всех величин (если таковые были заданы) из внесистемных единиц
измерения в единицы измерения СИ.
3 шаг: Определение величины, которую требуется найти.
4 шаг: Определение формулы, по которой нужно находить запрашиваемую
величину. Все формулы представлены в приложении 3.
5 шаг: Нахождение запрашиваемой величины по имеющимся данным, и если
данных недостаточно (т.е. они равны нулю), то ей будет присвоен нуль.
6 шаг: Вывод величины, которую требовалось найти по имеющимся данным. Для
удобства пользователя, вывод осуществляется в двух системах единиц.
7 шаг. Если было выбрана опция сохранения статистики, то ответ будет
записываться в специальный текстовой файл статистики.
8 шаг. После нажатия кнопки «Найти» в меню становится активной кнопка
«Показать формулу».
Блок-схема алгоритма представлена в приложении 4.
При несоответствии каких-либо заданных величин, например, частоты вращения и
периода или диаметра и радиуса, будет выведено предупреждение, указывающее на
ошибку, а сам алгоритм будет прерван на 2 шаге.
Хотелось бы отметить, что процедуры запускаются при изменении какого-либо
объекта на форме (form, окне программы). Т.е. изменению определенного объекта
8
соответствует определенная процедура, при том объект может быть не только кнопка, но
и «флажок», выпадающий список и т.д.
Почти все процедуры данной программы, включающие в себя основные
алгоритмы, схожи между собой, если не считать некоторых небольших различий, в
частности это касается главного меню, его подпунктов, таких как «Помощь» или «О
программе», статистики и функции «показать формулу».
Пример кода программы представлен в приложении 1.
Описание структуры программы.
Вся программы представляет собой одну единственную форму (окно). Высота
формы 580 пикселей, ширина равна 542 пикселей. На форме размещено три раздела
механики с соответствующими подразделами:
1. Кинематика.
1.1.
Прямолинейное движение.
1.2.
Вращательное движение (движение по окружности).
2. Динамика.
2.1.
Всемирное тяготение.
3. Механика жидкостей и газов.
3.1.
Давление.
3.2.
Давление жидкости.
3.3.
Плавание тел.
Разделы и подразделы представляют собой вкладки (PageControl). В каждой
вкладке содержится:

Поля ввода известных данных (Edit).

Поля с выпадающим списком (ComboBox), в которых можно выбрать
определенные данные, постоянные и т.д. (например, вещество, из которого состоит
тело или космическое объект, такой как Земля или Марс, взаимодействующий с
этим телом).

Поля с выпадающим списком, в которых можно выбрать единицы, в
которых вводятся те или иные данные.

Переключатели
(RadioButton,
радиокнопка).
Включается
переключатель, соответствующий той физической величине, которую требуется
узнать.

Кнопка (Button), при нажатии на которую будет найдена нужная
физическая величина.
9

2 поля вывода ответа. Одно для вывода ответа в стандартных
единицах, другое в дополнительных (внесистемных) единицах.
Также в подразделе «Плавание тел» есть специальное поле, где выводится
состояние тела (тело всплывает, тело плавает или тело тонет). Во всём остальном все
вкладки программы практически идентичны, если не считать количества полей ввода
выпадающих списков.
На основном окне располагается главное меню, которое состоит из трёх пунктов:
«Справка», «Показать формулу» и «Дополнительно».
В «Справке» имеется два подменю: «О программе» и «Помощь». При нажатии на
эти две кнопки будут показываться модальные окна. Пункт «О программе» содержит
краткую характеристику данного приложения и о его назначении. В подменю «Помощь»
можно получить небольшую справку об использовании программы.
Пункт «Показать формулу» будет активен только после нажатия на кнопку
«Найти». А уже после нажатия на «Показать формулу» появится новое окно с нужной
формулой.
При выборе пункта «Дополнительно»/«Статистика»
появится подменю самой
статистики со следующими опциями:

«Сохранять файл статистики». При активации этого пункта, ответы будут
сохраняться в файл Statistic.txt, находящийся в той же директории, в которой
находится сама программа. При выходе из приложения статистика будет
сохраняться. Если же файл будет удалён, то при повторном запуске программы,
он будет создан автоматически.

«Писать время и дату». Опция позволяет записывать в файл статистики вместе с
ответом также текущую дату и точное время в формате «дд/мм/гггг» и
«чч/мм/сс» (по желанию пользователя).

«Очистить файл статистики». При нажатии на этот пункт вся предыдущая
статистика удалится и файл Statistic.txt станет пустым.
Чтобы просмотреть статистику достаточно просто открыть файл Statistic.txt (он
находится в той же директории, что и сама программа).
Эскизы программы представлены в приложении 2.
10
Заключение
Программу «Конструктор обработки данных при решении теоретических и
практических задач по физике»
можно использовать на уроках для решения
разнообразных задач, при проведении лабораторных работ, в исследовательской
деятельности.
Физика относится к учебным предметам естественно-математического цикла.
Особая трудность у учащихся возникает при решении физических задач и проведения
различного рода исследований, в том числе лабораторных работ.
Сложность заключается:
1. в подборе необходимой формулы;
2. в обработке большого числа исходных данных;
3. в получении зависимости одной физической величины от другой.
Наша программа позволяет решить все перечисленные проблемы.
Разработанная нами программа может найти применение в любом учебном
предмете для обработки статистических данных, при обучении решению задач, например,
по химии, геометрии, тригонометрии и т.д.
11
Библиографический список
1. Джим Кьоу, Марио Джеанини Объектно-ориентированное программирование.
Просто и понятно. - "Питер", 2005 г. С. 240
2. Хореев П. Технологии объектно-ориентированного программирования . "Academia", 2004 г. С.448
Ресурсы сети Интернет:
1. http://www.xserver.ru/user/infth/3.shtml
2. http://delphiplus.org/
12
Приложение 1. Пример программного кода (представлен не полностью)
procedure TForm1.Button1Click(Sender: TObject);
form1.fileform:='формула 4.bmp'; end;
var sel:integer;
poi,poi2,p:string;
if (r4<>0) and (r2<>0) then begin
begin
r1:= r4*r2+r5 ;
self.fileform:='';
form1.fileform:='формула 2.bmp';end;
label6.Caption:='';
if Edit1.Text='' then r1:=0 else
r1:=StrToFloat(Edit1.Text);
if Edit2.Text='' then r2:=0 else
if (r4<>0) and (r3<>0) then begin
r1:= sqrt(r3*2*r3+r5*r5) ;
form1.fileform:='формула 1.bmp'; end;
end;
r2:=StrToFloat(Edit2.Text);
if Edit3.Text='' then r3:=0 else
r3:=StrToFloat(Edit3.Text);
if Edit4.Text='' then r4:=0 else
r4:=StrToFloat(Edit4.Text);
if Edit5.Text='' then r5:=0 else
r5:=StrToFloat(Edit5.Text);
2:begin
if (Edit3.Text='0') and (r4<>0) and (r5<>0) then
begin
r2:= (2*r5)/(-1*r4);
form1.fileform:='формула 2.bmp'; end;
if (Edit1.Text='0') and (r4<>0) and (r5<>0) then
begin
r2:= r5/(-1*r4);
form1.fileform:='формула 3.bmp'; end;
if ComboBox4.text= 'км/ч' then r1:= r1/3.6;
if (r5<>0) and (r3<>0) and (r4<>0) then
if ComboBox6.text= 'км/ч' then r5:= r5/3.6;
r2:= (sqrt(r5*r5+2*r4*r3)-r5)/r4;
if ComboBox7.text= 'мин' then r2:= r2*60;
form1.fileform:='формула 2.bmp'; end;
if ComboBox7.text= 'ч' then r2:= r2*3600;
begin
if (r4<>0) and (r1<>0) then begin
r2:= (r1-r5)/r4;
if r2<0 then label6.Caption:='ОШИБКА:
отрицательное время!' else
form1.fileform:='формула 3.bmp'; end;
if (r1<>0) and (r3<>0) then begin
begin
r2:= r3/r1 ;
if RadioButton1.Checked then begin sel:=1;
form1.fileform:='формула 4.bmp'; end;
poi:='Скорость = '; poi2:=' м/c'; end else
end;
if RadioButton2.Checked then begin sel:=2;
poi:='Время = '; poi2:=' c'; end else
if RadioButton3.Checked then begin sel:=3;
poi:='Перемещение = '; poi2:=' м'; end else
if RadioButton4.Checked then begin sel:=4;
poi:='Ускорение = '; poi2:=' м/c^2'; end else
if RadioButton5.Checked then begin sel:=5;
poi:='Начальная скорость = '; poi2:=' м/c'; end ;
3:begin
if (r2<>0) and (r4<>0) and (r5<>0) then
begin
r3:= r5*r2+(r4*r2*r2)/2 ;
form1.fileform:='формула 2.bmp'; end;
if (r2<>0) and (r4<>0) and (r5=0) then begin
r3:= r4*r2*r2/2 ;
form1.fileform:='формула 2.bmp'; end;
if (r2<>0) and (r1<>0) and (r4=0) then begin
case sel of
r3:= r2*r1;
1: begin
form1.fileform:='формула 4.bmp'; end;
if (r3<>0) and (r2<>0) and (r4=0) then begin
r1:= r3/r2;
if (r1<>0) and (r4<>0) then begin
r3:= (r1*r1-r5*r5)/(r4*2);
13
form1.fileform:='формула 1.bmp'; end;
case sel of
end;
1: begin
4:begin
edit6.Caption:= FloatToStr(r1);
if (Edit3.Text='0') and (r2<>0) and (r5<>0) then begin
label8.Caption:= 'м/c';
r4:= (2*r5)/(-1*r2);
edit7.Caption:= FloatToStr(r1*3.6);
form1.fileform:='формула 2.bmp'; end;
label9.Caption:= 'км/ч';
if (Edit1.Text='0') and (r2<>0) and (r5<>0) then begin
end;
r4:= r5/(-1*r2);
2:begin
form1.fileform:='формула 3.bmp'; end;
edit6.Caption:= FloatToStr(r2);
if (r1<>0) and (r2<>0) then begin
label8.Caption:= 'c';
r4:= (r1-r5)/r2 ;
edit7.Caption:= FloatToStr(r2/3600);
form1.fileform:='формула 3.bmp'; end;
label9.Caption:= 'ч';
if (r3<>0) and (r2<>0) then
end;
begin
r4:= (2*r3-2*r5*r2)/(r2*r2);
3:begin
form1.fileform:='формула 2.bmp'; end;
edit6.Caption:= FloatToStr(r3);
if (r3<>0) and (r1<>0) then
label8.Caption:= 'м';
begin
r4:= (r1*r1-r5*r5)/(2*r3);
edit7.Caption:= FloatToStr(r3/1000);
form1.fileform:='формула 1.bmp'; end;
label9.Caption:= 'км';
end;
end;
4:begin
5:begin
edit6.Caption:= FloatToStr(r4);
if (Edit3.Text='0') and (r2<>0) and (r4<>0) then begin
label8.Caption:= 'м/c^2';
r5:= (-1*r2*r4)/2;
edit7.Caption:= '';
form1.fileform:='формула 2.bmp'; end;
label9.Caption:= '';
if (Edit1.Text='0') and (r2<>0) and (r4<>0) then begin
end;
r5:= -1*r2*r4;
5:begin
form1.fileform:='формула 3.bmp'; end;
edit6.Caption:= FloatToStr(r5);
if (r2<>0) and (r3<>0) then begin
label8.Caption:= 'м/c';
r5:= (r3-r4*r2*r2/2)/r2 ;
edit7.Caption:= FloatToStr(r5*3.6);
form1.fileform:='формула 2.bmp'; end;
label9.Caption:= 'км/ч';
if (r2<>0) and (r4<>0) and (r3=0) then begin
end;
r5:= (r3-r4*r2*r2/2)/r2 ;
end;
form1.fileform:='формула 2.bmp'; end;
end;
if (r4<>0) and (r2<>0) then
begin
self.MenuItem4.Enabled:=self.fileform<>'';
r5:= -1*(r4*r2-r1) ;
if MenuItem7.Checked=true then begin
form1.fileform:='формула 3.bmp'; end;
assignfile(f,'Statistic.txt');
if (r3<>0) and (r4<>0) then
begin
append(f);
r5:= sqrt(r1*r1-r3*2*r4) ;
form1.fileform:='формула 1.bmp'; end;
if MenuItem9.Checked=true then begin p:=
DateTimeToStr(Now); write(f,'[',p,']
end;
end;
'); end;
writeln(f,poi,edit6.Caption,poi2);
closefile(f);
end;
14
end;
Приложение 2. Эскизы программы.
15
Приложение 3. Формулы.
1. a 
v  v0
t
2. S  v 0 t 
at 2
2
3. S 
v 2  v 02
2a
4.  
v
R
5.  
2
T
6. v 
2 R
T
7.  
1
T
8. aц   v
9. a ц 
v2
R
10. aц 
4 2 R
T2
11. F  G
m1 m2
R2
12. g  G
mпланеты
Rпланеты
13. v  mпл G


14. F  ma
15. FA  g жидVтела
16.  
m
V
17. p  gh
18. p 
Fдавл
S
16
Приложение 4. Блок-схема.
Ввод всех
имеющихся данных
и указание того, что
требуется найти.
В начало
алгоритма
Перевод величин в СИ.
Вывод ошибки
Обнаружено
несоответствие
данных.
Проверка на
соответствие
данных.
Проверка
прошла
успешно
Подбор нужной формулы.
Вычисления.
Запоминание
используемой
формулы
Формула
Да
Включена ли
статистика?
Нет
Записывать
ли дату и
время?
Вывод формулы
(при желании
пользователя)
Нет
Да
Запись
Вывод ответа
17
Download