Лекция
Объектно-ориентированное программирование
Теоретические основы ООП
В основе любого языка лежит некоторая идея, оказывающая существенное влияние на стиль программ. Исторически первой была идея процедурного программирования.
Процедурное программирование
Подпрограммы – совокупность операторов, к которым можно обращаться несколько раз. (Пример, одного из первых языков – фортран)
Структурное программирование (стиль программирования) – совокупность рекомендуемых технологических приемов.
Контроль на этапе разработки, Метод пошаговой детализации с использованием 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.
Объектное программирование
Технология создания сложного ПО, основанная на представлении программы в виде совокупности объектов (классов).
Идея заключается в стремлении связать данные с обрабатываемыми эти данные процедурами и функциями в единое целое – класс.
Фактически его можно рассматривать как модульное программирование нового уровня.
Библиотека классов Делфи и С++ - это фактически набор «кирпичиков» для построения программ.