САЙТ УЧИТЕЛЯ ИНФОРМАТИКИ |
|||||||||||||||
МОУ СОШ №3 г. Осташков Тверская обл. | |||||||||||||||
|
Мини-проекты в Delphi Проект «Решение задачи по физике» В этом проекте будут использованы для рисунка TPaintBox, ввода данных, TEdit, а TTextLabel для пояснений и вывода результата. Задача: На столе находится груз массой m1, соединенный переброшенным через блок с грузом массой m2. С каким ускорением будут двигаться грузы? Чему равна сила натяжения? Чертеж тела, силы оси координат предварительно необходимо сделать на бумаге. Пропускаем решение. Его результат: procedure Form1OnCreate; begin With PaintBox1 do begin Brush.Style:=bsBDiagonal; Brush.Color:=33333; Rectangle(0,125,275,300); Brush.Color:=ClWhite; Rectangle(75,25,175,125); Circle(300,100,25); Circle(300,100,5); Line(175,75,300,75); Line(325,100,325,150); Rectangle(300,150,350,200); Pen.Width:=3; Line(275,125,300,100); TextOut(80,30,'m'); TextOut(90,35,'1'); TextOut(305,155,'m'); TextOut(315,160,'2'); end; end; Объявляем глобальную константу перед этой процедурой const g=9.8; procedure Button1OnClick; var m1,m2,mu,a,T:real; code: integer; begin With PaintBox1 do begin Pen.Width:=2; Line(50,75,250,75); Line(50,75,60,77);Line(50,75,60,73); Line(250,75,240,77);Line(250,75,240,73); TextOut(30,50,'F'); TextOut(36,55,'тр');TextOut(250,50,'T'); Line(125,5,125,145);Line(125,5,123,15);Line(125,5,127,15); Line(125,145,123,135); Line(125,145,127,135); TextOut(135,5,'N'); TextOut(135,135,'m g');TextOut(145,145,'1'); Line(325,125,325,225);Circle(325,175,3); Line(325,125,323,135);Line(325,125,327,135); Line(325,225,323,215);Line(325,225,327,215); TextOut(340,225,'m g');TextOut(348,235,'2');TextOut(340,125,'T'); end; Val(m1wind.Text,m1,code); Val(m2wind.Text,m2,code); Val(trwind.Text,mu,code); a:=(m2-mu*m1)/(m1+m2)*g; a:=Round(a*100)/100; T:=m2*(g-a); T:=Round(T*100)/100; if a>0 then Answer.Caption:='a='+FloatToStr(a)+' м/с^2, T='+FloatToStr(T)+' H' else Answer.Caption:='Тела не будут двигаться!'; end; Стандартная процедура Round и коэффициент 100 позволяют округлить результаты до двух знаков после запятой, Pen.Width – устанавливает толщину линии (пера), процедура TextOut выводит в указанные координаты нужный текст.
|
||||||||||||||