Объектное программирование

Лекция

Объектно-ориентированное программирование

Теоретические основы ООП

В основе любого языка лежит некоторая идея, оказывающая существенное влияние на стиль программ. Исторически первой была идея процедурного программирования.

 

Процедурное программирование

Подпрограммы – совокупность операторов, к которым можно обращаться несколько раз. (Пример, одного из первых языков – фортран)

 

Структурное программирование (стиль программирования) – совокупность рекомендуемых технологических приемов.

Контроль на этапе разработки, Метод пошаговой детализации с использованием 3 базовых структур (следование, альтернатива, повторение)

Следующий этап - повышение роли организации данных (Паскаль).

Логическим следствием развития этого этапа стал модульный подход к разработки программ

 

Модульное программирование предполагает выделение групп подпрограмм, использующие одни и те же глобальные данные (типы данных).

Например, System

В виде модулей реализованы также библиотеки классов и компонент (VCL – VisuallibraryComponent), которая была разработана для Делфи и используется в С++ Builder

Windows,Messages, Dialogs, Forms

SysUtils – содержит библиотеку классов стандартных исключений;

Graphics – содержит библиотеку графических компонент.

 

Модуль – это автономно компилируемая коллекция программных ресурсов, предназначенная для использования другими модулями и программами. Программные ресурсы – это константы, типы, переменные, процедуры и функции.

 

Свойства модулей:

1. Информационная независимость

2. Функциональная завершенность

3. Логическая независимость (модулей друг от друга)


 

<структура модуля >::= Unit<имя>;

Interface

<интерфейсная секция>

Implementation

<секция реализации>

[ Initialization

<секция инициализации>]

[ Finalization

<завершающая секция>]

End.


 

{модуль для работы с комплексными числами}

Unit Complex;

Interface

Type Tcomplex = record

Re, Im: Real;

end;

Procedure In_Complex(var z:Tcomplez);

Procedure Out_Complex(z:Tcomplez);

Function Sum_Complex(z1,z2:Tcomplex; var z3:Tcomplez);

Function Abs_Complex(Z:Tcomplex):real;

Function Eq_Complex(z1,z2:Tcomplex):boolean;

Implementation

Procedure In_Complex(var z:Tcomplez);

Begin

Write(‘ Введите действительную часть комплексного числа = ‘);

Readln(z.re);

Write(‘ Введите мнимую часть комплексного числа = ‘);

Readln(z.im);

end;

 

Procedure Out_Complex(z:Tcomplez);

Begin

Write(‘ Комплексноечисло = ‘);

Writeln(z.re, ‘ + ‘,z.im, ’ i ‘);

end;

 

 

Function Sum_Complex(z1,z2:Tcomplex; var z3:Tcomplez);

Begin

z3.re:=z1.re + z2.re;

z3.im:=z1.im + z2.im;

end;


 

Function Abs_Complex(Z:Tcomplex):real;

Begin

Abs_Complex:= Sqrt(Sqr(z.re) + Sqr(z.im));

End;

 

Function Eq_Complex(z1,z2:Tcomplex):boolean;

{z1>z2}

Begin

If Abs_Complex(z1) > Abs_Complex(z2) then Eq_Complex:=true

Else Eq_Complex:=false;

End;

End.

 

{Cохранить модуль в файле рабочего каталога с именем Complex.pas и откомпилировать его. В результате компиляции получите файл с именем Complex.tpu}


{ программа, которая будет использовать ресурсы модуля Complex}

Program Test_Complex;

Uses Complex;

Const n=10;

Type TarrComplex=Array[1..n] of Tcomplex;

Var z:TarrComlex; I:1..n;

BEGIN

For I:=1 to n div 2 do In_Complex(z[I]);

For I:=1 to n div 2-1 do Sum_Complex(z[I], z[I+1), z[I +n div 2);

Sum_Complex(z[1], z[n div 2], z[n]);

For I:=1 to n do Out_Complex(z[I]);

For I:=1 to n do Abs_Complex(z[I]);

IfEq_Complex(z[1],z[n]) Thenwriteln (‘ Первоечислобольшепоследнего’) elsewriteln (‘ Первоечисломеньшепоследнего’);

End.


Объектное программирование

Технология создания сложного ПО, основанная на представлении программы в виде совокупности объектов (классов).

Идея заключается в стремлении связать данные с обрабатываемыми эти данные процедурами и функциями в единое целое – класс.

Фактически его можно рассматривать как модульное программирование нового уровня.

Библиотека классов Делфи и С++ - это фактически набор «кирпичиков» для построения программ.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: