Планирование уроков на учебный год (по учебнику К.Ю. Полякова, Е.А. Еремина, полный углублённый курс, по 4 часа в неделю)



Урок 89
Создание объектов в программе
(§48. Создание объектов в программе)




Содержание урока

Класс Дорога

Класс Машина

Основная программа

Вопросы и задания

Задачи


Основная программа


В основной программе объявим массив объектов-машин:

const N=3;
var cars: array [1..N] of TCar;

Как вы помните, это ещё не объекты, а ссылки — переменные, в которые можно записать адреса объектов класса ТСаr. Теперь нужно создать сами объекты:

var i: integer;
...
for i:=1 to N do
cars[i]:=TCar.Create(road, i, 2.0*i);

При вызове конструктора задаются три параметра: адрес объекта «дорога» (его нужно создать до выполнения этого цикла), номер полосы и скорость. В приведённом варианте машина на полосе с номером i движется со скоростью 2i единиц за один интервал моделирования.

Сам цикл моделирования получается очень простой: на каждом шаге вызывается метод move для каждой машины:

repeat
for i:=1 to N do cars[i].move; 
until keypressed;

Этот цикл закончится тогда, когда пользователь нажмёт любую клавишу и функция keypressed, расположенная Е модуле Crt, вернёт значение True.

Полностью основная программа выглядит так:

uses Crt;
const N	=	3;
var road: Troad;
cars: array [1..N] of TCar;
i:integer
begin
road:=TRoad.Create(60, N); 
for i:=1 to N do
	cars[i]:=TCar.Create(road, i, 2.0*i); 
repeat
for i:=1 to N do cars[i].move; 
until keypressed; 
end.

Можно ли было написать такую же программу, не используя объекты? Конечно, да. И она получилась бы короче, чем наш объектный вариант (с учётом описания классов). В чём же преимущества ООП?

Мы уже отмечали, что ООП — это средство разработки больших программ, моделирующих работу сложных систем. В этом случае очень важно, что при использовании объектного подхода:

• основная программа, описывающая решение задачи в целом, получается простой и понятной; все команды напоминают действия в реальном мире («машина № 2, вперёд!»);
• разработку отдельных классов объектов можно поручить разным программистам, при этом каждый может работать независимо от других;
• если объекты классов Дорога и Машина понадобятся в других разработках, можно будет легко использовать уже готовые классы.

Следующая страница Вопросы и задания



Cкачать материалы урока






Наверх