- •Кафедра «Информационные и управляющие системы»
- •Содержание
- •Текст программы
- •I: integer;
- •Velo.Draw(r2,r3,X,y,0,angvelp); { делает тоже самое }
- •Velo.Draw(r2,r3,X,y,20,angvelp); { рисует 2 – корпус, педалька }
- •If keypressed then { условие – кнопка нажата }
- •Initgraph(gd,gm,'');
- •VelVelo(X,y,Wheel.R1,Velo.R2,Velo.R3,Wheel.N,u,up,Velo,Wheel);
- •Скриншоты программы.
- •Velo: VeloT;
- •X,y: integer; { позиция }
Содержание
Оглавление
1. Задание 6
2. Инструкция программиста 6
3. Инструкция оператора 6
4. Текст программы 6
5. Скриншоты программы. 10
Задание
Велосипед. Дано d1,d2,d3 (диаметры колеса, ведущей и ведомой шестерен) и число спиц N. Имитировать движение велосипеда с переменной скоростью, вплоть до остановки. Управление скоростью проводить по нажатию двух клавишей.
Инструкция программиста
Программа работает в среде Turbo Pascal 7.0 .
Хранится с названием «QU_EX11»
Для корректной работы требуются модули:
Graph - обеспечивает управление графическим режимом в Turbo Pascal 7.0
Crt – позволяет работать с окном программы
Инструкция оператора
После запуска программы, на экране появится «красный» велосипед, который будет находиться в состоянии покоя. А так же мини-инструкция для пользователя.
С помощью этой мини-инструкции можно осуществлять движения данного велосипеда, при нажатии клавиш ‘a’, ‘d’. При этом, клавиша ‘d’ – осуществляет начало движения, а так же регулирует увеличение скорости. А клавиша ‘a’ – предназначена для уменьшения скорости велосипеда и его остановки.
Для выхода из программы нужно нажать клавишу - ‘e’.
Текст программы
program qu_zv11;
uses
crt, graph;
type
VeloT = object
r2,r3: integer; { радиус шестерёны }
procedure Draw(rad2, rad3, x1, y1,c1: integer; angp: real);
end;
WheelT = object
r1,n: integer; { радиус колеса и кол-во спиц }
procedure DrawW(rad1, spic, x2, y2,c2: integer; ang: real);
end;
procedure VeloT.Draw(rad2, rad3, x1, y1,c1: integer; angp: real);
begin
setcolor(c1); { цвет }
setlinestyle(4,4,4); { стиль линии }
{ КОРПУС }
line(x1 + 50, y1, x1 + 35, y1 - 50);
line(x1 + 35, y1 - 50, x1 + 25, y1 - 50);
line(x1 + 38, y1 - 40, x1, y1);
line(x1, y1, x1 - 45, y1);
line(x1, y1, x1 - 30, y1 - 50);
line(x1 - 25, y1 - 40, x1 - 45, y1);
line(x1 - 25, y1 - 40, x1 + 35, y1 - 40);
line(x1 - 15, y1 - 50, x1 - 35, y1 - 50);
circle(x1, y1, rad2);
circle(x1-45, y1, rad3);
{ ПЕДАЛЬ }
setlinestyle(4,4,4); { стиль }
line(x1-round((rad2+5)*cos(angp)),
y1+round((rad2+5)*sin(angp)),
x1+round((rad2+5)*cos(angp)),
y1-round((rad2+5)*sin(angp)));
end;
procedure WheelT.DrawW(rad1,spic,x2,y2,c2: integer; ang: real);
var
