Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Pascal.doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
1 Мб
Скачать
☆

Занятие № 35. Элементы объектно-ориентированного программирования.

Современное программирование

Понятие объектно-ориентированного программирования.

(первое использование ООП в языке Симула (70-е) в Pascal с 1989 (5.5))

Понятие класса объектов. Описание классов.

Класс – определенный пользователем тип данных, включающий в себя состояние (представление класса) и некие операции (поведение класса). Класс имеет: внутренние данные; методы в виде процедур и функций. Назначение класса: описание общего поведения и характеристик набора аналогичных друг другу объектов.

Объект – экземпляр класса (м.б. переменная, тип которой является классом). Объекты реальны, т.е. во время выполнения программы хранятся в памяти. Соотношения между объектом и классом аналогичны соотношениям между переменной типом.

Объект – нечто существенное и определённое, для которого существует способ отличить один подобный объект от другого.

Объект – объединение подпрограмм и данных, предназначенных для их обработки. Объект – абстрактное понятие; экземпляр объекта – конкретное.

Принципы: инкапсуляция (объединение данных и обрабатывающих их методов внутри класса; объект скрывает в себе детали, которые несущественны для использования объекта), наследование (порождение новых объектов-потомков от предков, наследование всех свойств; определение новых объектов, используя свойства старых, дополняя или изменяя их), полиморфизм (методы различных объектов могут иметь одинаковые имена, но различные свойства).

type TCalendar=object

constructor init;

function GetDay: byte;

private

day, month: byte;

year: word;

end;

Свойства, методы, события объекта.

program ob_demo;

uses crt, dos;

type TCalendar=object

day,month,year,wday: word;

procedure Init;

procedure SetSystemDate;

procedure ShowDate;

procedure SetMyDate(d,m,y: word);

function LeapYear: boolean;

procedure NextDay;

end;

procedure TCalendar.Init;

begin

SetSystemDate;

end;

procedure TCalendar.SetSystemDate;

begin

getdate(year, month, day, wday);

end;

procedure TCalendar.ShowDate;

begin

if day<10 then write('0',day) else write(day);

if month<10 then write('-0',month) else write('-',month);

writeln('-',year);

end;

procedure TCalendar.SetMyDate;

begin

day:=d; month:=m; year:=y;

end;

function TCalendar.LeapYear: boolean;

begin

if (year mod 100<>0) and (year mod 4=0) or

(year mod 100=0) and (year mod 400=0) then LeapYear:=true

else LeapYear:=false;

end;

procedure TCalendar.NextDay;

const d31=[1,3,5,7,8,10]; d30=[4,6,9,11];

begin

if (month in d31) and (day<31) or (month in d30) and (day<30) then

begin inc(day); exit; end;

if (month in d31) and (day=31) or (month in d30) and (day=30) then

begin inc(month); day:=1; exit; end;

if (month=12) and (day<31) then begin inc(day); exit; end;

if (month=12) and (day=31) then

begin day:=1; month:=1; inc(year); exit; end;

if LeapYear and (day<29) or not LeapYear and (day<28) then

begin inc(day); exit; end else begin day:=1; month:=3; exit; end;

end;

var a: TCalendar;

BEGIN

clrscr;

a.init;

a.SetMyDate(28,2,2001);

a.ShowDate;

a.NextDay;

a.ShowDate;

readkey;

END.

Список литературы:

Дагане В.А., Григас Г.К., Аугутис К.Ф. 100 задач по программированию. – М.: Просвещение, 1993 – 255с.: ил.

Каймин В.А., Щёголев А.Г., Ерохина Е.А., Федюшин Д.П. Основы информатики и вычислительной техники 10-11. – М.: Просвещение, 1990 – 273 с.: ил.

Кнут, Дональд, Эрвин. Искусство программирования, том 1. Основные алгоритмы, 3-е изд.: Пер. с англ. – М.: Издательский дом «Вильямс», 2000. – 720 с.: ил.

Семакин И.Г., Шестаков А.П. Лекции по программированию. – Пермь: Издательство Пермского университета, 2000 – 189 с.