В школуСуббота, 28.06.2025, 00:43

Приветствую Вас Гость | RSS
Главная | Каталог статей | Регистрация | Вход
Меню сайта

Категории раздела
Анализы уроков [10]
Анализы проыеденных уроков для разных предметов
Конспекты [41]
Планы конспекты и просто конспекты уроков разных тематик
Документация [12]
Примеры заполнений разного рода документов
Мероприятия [13]
Тексты, планы и сценарии мероприятий
Контроль знаний [117]
Контрольные и самостоятельные работы, вопроссы, тесты, лабораторные работы и т.д
Литература [84]
Статьи и другая образовательная литература
Рефераты и Доклады [25]
Рефераты, доклады, дипломные проекты и т.д
Разное [10]
Статьи с других сайтов предоставленніе нам.

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » Статьи » Контроль знаний

ЛР Моделирование движения объектов.
Лабораторная работа № 5 
Тема. Моделирование движения объектов. 

Цель: - изучить основные формулы для моделирования движения объектов - написать программу моделирования стрелочных часов Ход работы 

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

2. Напишите отчет, содержащий исходные тексты программ РЕШЕНИЕ 
var Form1: TForm1; implementation 
{$R *.dfm} 
uses DateUtils; // dlya dostupa k SecondOf, // MinuteOf è HourOf const R = 200; // radius chasov 
var x0,y0: integer; // centr tsiferblada ahr,amin,asec,dub: integer; // ïugol polozheniya strelok // initialization form procedure TForm1.FormCreate(Sender: TObject); var t: TDateTime; begin dub:=1; form1.Color:=clred; // Razmer forms zavisit ot chasov (razmera) ClientHeight := (R+30)*2; ClientWidth := (R+30)*2; x0 := R+30; y0 := R+30; t := Now(); // polozheniye strelok ahr := 90 - HourOf(t)*30-(MinuteOf(Today)div 12)*6; amin := 90 - MinuteOf(t)*6; asec := 90 - SecondOf(Today)*6; Timer1.Interval := 1000; // period 1 sek Timer1.Enabled := True; // strat timer end; // draw vector s zadannoy dlinnoy (x0,y0) procedure TForm1.Vector(x0,y0: integer; a, l: integer); // x0,y0 - start vectora // a - ugol mezhdu osyu x // l - dlin vectora const GRAD = 0.0174532; // pereschet gradusov var x,y: integer; // end vektora begin Canvas.MoveTo(x0,y0); x := Round(x0 + l*cos(a*GRAD)); y := Round(y0 - l*sin(a*GRAD)); Canvas.LineTo(x,y); end; // draw strelki procedure TForm1.DrawClock; var t: TDateTime; i,x,y:integer; a:real; begin Canvas.Brush.Color := rgb(255,0,0); Canvas.Pen.Color := rgb(255,0,0); Canvas.FillRect((rect(0,0,10000,10000))); Canvas.Brush.Color := rgb(255,0,0); Canvas.Pen.Color := rgb(255,0,0); for i:=1 to 24 div dub do begin a:=i*360/(24/dub)-90; x:=x0+Round( (R+15) * cos(a*2*pi/360)); y:=x0+Round( (R+15) * sin(a*2*pi/360)); Canvas.TextOut(x-5,y-7,IntToStr(i)); end; for i:=R downto 0 do begin Canvas.Brush.Color := clwhite; Canvas.Pen.Color := clwhite; Canvas.Ellipse(x0-i,y0-i,x0+i,y0+i); end; Canvas.Brush.Color := rgb(0,0,0); Canvas.Pen.Color := rgb(0,0,0); for i:=0 to 60 do begin a:=i*360/60; x:=x0+Round( (R) * cos(a*2*pi/360)); y:=x0+Round( (R) * sin(a*2*pi/360)); Canvas.Ellipse(x-2,y-2,x+2,y+2); end; t := Now(); // new polozheniye strelok ahr := 90 - HourOf(t)*30 div 2*dub-(MinuteOf(t)div 12)*6; amin := 90 - MinuteOf(t)*6; asec := 90 - SecondOf(t)*6; // strelki // hour Canvas.Pen.Width := 3; Canvas.Pen.Color := clBlack; Vector(x0,y0, ahr, R-20); // minuts Canvas.Pen.Width := 2; Canvas.Pen.Color := clBlue; Vector(x0,y0, amin, R-15); // second Canvas.Pen.Width := 1; Canvas.Pen.Color := clRed; Vector(x0,y0, asec, R-7); end; // prorisovka tsiferblada procedure TForm1.FormPaint(Sender: TObject); var x,y: integer; // êîîðäèíàòû ìàðêåðà íà öèôåðáëàäå a: integer; // óãîë ìåæäó OX è ïðÿìîé (x0,yo) (x,y) h,i: integer; // ìåòêà ÷àñîâîé ðèñêè bs: TBrushStyle; // ñòèëü êèñòè pc: TColor; // öâåò êàðàíäàøà pw: integer; // øèðèíà êàðàíäàøà begin bs := Canvas.Brush.Style; pc := Canvas.Pen.Color; pw := Canvas.Pen.Width; Canvas.Brush.Style := bsClear; Canvas.Pen.Width := 1; Canvas.Pen.Color := clBlack; Canvas.Font.Color := clBlack; a:=0; // metki ot 3-õ hour, protiv // hour strelka h:=3; // ugol 0 gradusov - its 3 hour // vosstanovleniye karandasha Canvas.Brush.Style := bs; Canvas.Pen.Width := pw; Canvas.Pen.Color := pc; DrawClock; end; // prorisovka tekushih strelok chasov procedure TForm1.Timer1Timer(Sender: TObject); begin DrawClock; end; procedure TForm1.Button1Click(Sender: TObject); begin form1.Close; end; procedure TForm1.Button2Click(Sender: TObject); begin if(dub=2)then dub:=1 else dub:=2; end; end.
Категория: Контроль знаний | Добавил: Armageddets (26.10.2012)
Просмотров: 514 | Теги: Лабораторная работа Моделирование д | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Мини-чат

Форма входа

Поиск


Copyright MyCorp © 2025
Сделать бесплатный сайт с uCoz