Вход

Компьютерное моделирование физических процессов.

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 126960
Дата создания 2009
Страниц 20
Мы сможем обработать ваш заказ (!) 29 марта в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
2 000руб.
КУПИТЬ

Содержание

Введение……………………………………………………………………….
Задание на выполнение курсовой работы…………………………………...
1 Теоретическая часть………………………………………………………...
1.1 Задачи моделирования физических процессов……………………
1.2 Программные продукты моделирования физических процессов..
2 Практическая часть…………………………………………………………
2.1 Физическая модель задачи………………………………………….
2.2 Математическая модель задачи…………………………………….
2.3 Описание программы «Гантель у стены»………………………….
2.4 Результаты работы программы «Гантель у стены»……………….
Заключение……………………………………………………………………
Литература…………………………………………………………………….
Приложение 1 Листинг программы «Гантель у стены»……………………
Приложение 2 Скриншоты программы «Гантель у стены»………………..

Фрагмент работы для ознакомления

dfm}
// При запуске
procedure TForm1.FormCreate(Sender: TObject);
begin
x_max:=Image1.Width; // Для переноса координатной сетки
y_max:=Image1.Height-50;
Button1.Click; // Ввод исходных данных и начальная прорисовка
end;
// Ввод исходных данных и начальная прорисовка
procedure TForm1.Button1Click(Sender: TObject);
begin
m1:=StrToFloat(Edit1.Text); // Масса 1-го шара
m2:=StrToFloat(Edit2.Text); // Масса 2-го шара
L:=StrToFloat(Edit3.Text); // Длина стержня
dT:=StrToFloat(Edit11.Text); // Масштаб времени
M:=m1+m2; // Масса гантели
L1:=m2*L/m; // Плечо 1-го шара
L2:=m1*L/m; // Плечо 2-го шара
ac:=m2/M*g; // Ускорение ЦМ
x1:=0; y2:=0; // Координаты 1-го шара
x2:=0; y2:=l; // Координаты 2-го шара
xc:=0; yc:=l1; // Координаты ЦМ
// Вывод параметров
Edit4.Text:=IntToStr(Round(x1)); Edit4.Repaint;
Edit6.Text:=IntToStr(Round(x2)); Edit6.Repaint;
Edit7.Text:=IntToStr(Round(y2)); Edit7.Repaint;
Edit9.Text:=IntToStr(Round(yc)); Edit9.Repaint;
Edit10.Text:='0'; Edit10.Repaint;
// Радиусы шаров для рисования
r1:=Round(10*Power(m1,1/3));
r2:=Round(10*Power(m2,1/3));
// Реальные координаты
x1_:=Round(x_max/2+x1);
y1_:=Round(y_max-y1);
x2_:=Round(x_max/2+x2);
y2_:=Round(y_max-y2);
xc_:=Round(x_max/2+xc);
yc_:=Round(y_max-yc);
// Очистка окна и прорисовка осей
Image1.Canvas.Rectangle(0,0,Image1.Width,Image1.Height);
Image1.Canvas.Pen.Style:=psDot;
Image1.Canvas.MoveTo(0,y_max);
Image1.Canvas.LineTo(x_max,y_max);
Image1.Canvas.MoveTo(x_max div 2,0);
Image1.Canvas.LineTo(x_max div 2,y_max);
Image1.Canvas.Pen.Style:=psSolid;
// Начальное положение гантели
Image1.Canvas.Pen.Width:=2;
Image1.Canvas.Pen.Color:=clBlue;
Image1.Canvas.Ellipse(x1_-r1,y1_-r1,x1_+r1,y1_+r1);
Image1.Canvas.Pen.Color:=clGreen;
Image1.Canvas.Ellipse(x2_-r2,y2_-r2,x2_+r2,y2_+r2);
Image1.Canvas.Pen.Color:=clRed;
Image1.Canvas.Ellipse(xc_-3,yc_-3,xc_+3,yc_+3);
Image1.Canvas.Pen.Color:=clBlack;
Image1.Canvas.MoveTo(x1_,y1_);
Image1.Canvas.LineTo(x2_,y2_);
Image1.Canvas.Pen.Width:=1;
end;
// Пуск
procedure TForm1.Button2Click(Sender: TObject);
var napr: integer; // Направление толчка (+-1)
t: integer; // Время
begin
if RadioButton1.Checked then napr:=-1 // Направление толчка
else napr:=1;
ac:=m2/M*g; // Ускорение ЦМ
Edit10.Text:=FloatToStr(Round(ac*100)/100); Edit10.Repaint;
t:=0;
repeat
// Физические координаты
yc:=L1-ac*sqr(t/dT);
x1:=napr*sqrt(sqr(L1)-sqr(yc));
x2:=-L2/L1*x1;
y2:=yc+sqrt(sqr(L2)-sqr(x2));
// Вывод параметров
Edit4.Text:=IntToStr(Round(x1)); Edit4.Repaint;
Edit6.Text:=IntToStr(Round(x2)); Edit6.Repaint;
Edit7.Text:=IntToStr(Round(y2)); Edit7.Repaint;
Edit9.Text:=IntToStr(Round(yc)); Edit9.Repaint;
// Реальные координаты
x1_:=Round(x_max/2+x1);
y1_:=Round(y_max-y1);
x2_:=Round(x_max/2+x2);
y2_:=Round(y_max-y2);
xc_:=Round(x_max/2+xc);
yc_:=Round(y_max-yc);
// Очистка окна и прорисовка осей
Image1.Canvas.Rectangle(0,0,Image1.Width,Image1.Height);
Image1.Canvas.Pen.Style:=psDot;
Image1.Canvas.MoveTo(0,y_max);
Image1.Canvas.LineTo(x_max,y_max);
Image1.Canvas.MoveTo(x_max div 2,0);
Image1.Canvas.LineTo(x_max div 2,y_max);
Image1.Canvas.Pen.Style:=psSolid;
// Текущее положение гантели
Image1.Canvas.Pen.Width:=2;
Image1.Canvas.Pen.Color:=clBlue;
Image1.Canvas.Ellipse(x1_-r1,y1_-r1,x1_+r1,y1_+r1);
Image1.Canvas.Pen.Color:=clGreen;
Image1.Canvas.Ellipse(x2_-r2,y2_-r2,x2_+r2,y2_+r2);
Image1.Canvas.Pen.Color:=clRed;
Image1.Canvas.Ellipse(xc_-3,yc_-3,xc_+3,yc_+3);
Image1.Canvas.Pen.Color:=clBlack;
Image1.Canvas.MoveTo(x1_,y1_);
Image1.Canvas.LineTo(x2_,y2_);
Image1.Canvas.Pen.Width:=1;
Image1.Repaint; // Перерисовка
t:=t+1; // Увеличение времени
until (y2<=0) or (yc<=0); // Пока ЦМ или 2-й шар не достигнет пола
end;
end.
Приложение 2
Скриншоты программы «Гантель у стены»
Рис. П1
Рис. П2
2
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00461
© Рефератбанк, 2002 - 2024