Объектно-ориентированное программирование
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Лекция

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

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

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

 

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

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

 

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

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

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

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

 

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

Например, System

В виде модулей реализованы также библиотеки классов и компонент (VCL – Visual library Component), которая была разработана для Делфи и используется в С++ 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]);

If Eq_Complex(z[1],z[n]) Then writeln (‘ Первое число больше последнего’)   else writeln (‘ Первое число меньше последнего’);

End.





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

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

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

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

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

Поля X1, Y1, X2, Y2, Color

Метод Изобразить

Конец описания

Пример задание класса:

Type TPoint = class {класс точка на плоскости}

                        X,Y: Integer;

                            Visible:Boolean;

                              Color:word;

                             Procedure Init(InitX, InitY, Col:integer);

        Procedure Show; ;   {нарисовать }

                             Procedure MoveTo(StepX, StepY: integer); {переместить }

                             Function IsVisible:boolean; {сделать видимой }

                         End;

var X1,X2:Tpoint;

 

Пример. Код программы при создании Приложения в Делфи

unit Unit1;

Interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics,   

Controls, Forms, Dialogs;

type

TForm1 = class(TForm)

private

{ Private declarations }

public

{ Public declarations }

end;

 

var Form1: TForm1;

Implementation

{$R *.dfm}

End.

 

Код проекта

program Project1;

Uses

Forms,

Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

Begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;

End. .


OnClick – щелчек мыши

RAD Studio XE8-10

Embarcadero® RAD Studio XE — это комплексное решение для разработки программного обеспечения, ускоряющее создание нативных приложений для Windows, OS X, iOS и Android на базе единого исходного кода.

Для пользователя нативными являются приложения, которые требуют установки. В целом, это верно, как и то, что такие приложения разрабатываются специально под мобильные платформы (iOS, Android, Windows Phone). Поэтому от разработчика требуются навыки программирования в конкретной среде разработки (xCode для iOS, eclipse для Android).

На выходе это дает приятный внешний вид и беспроблемное взаимодействие приложения с мобильной ОС. Нативные приложения также намного опережают и гибридные и веб-приложения в вопросах безопасности. Такие приложения с наименьшим поглощением ресурсов используют камеру, микрофон, акселерометр, плеер и прочие функции. Условно нативные приложения можно поделить на две группы: приложения, которым необходимо интернет-соединение, и оффлайн приложения.

На смену библиотеки классов VCL пришла кроссплатформенная библиотека FireMonkey (один из ее разработчиков Евгений Крюков из Улан-Удэ) сейчас работает в Embarcadero.

 

Embarcadero Technologies — американская компания, занимающаяся разработкой программного обеспечения для создания средств управления базами данных и самих баз данных. Компания была основана в октябре 1993 года

Компания имеет офисы в Торонто, Мельбурне, Мюнхене, Мейденхед (Великобритания), Яссах (Румыния), Санкт-Петербурге (Россия).

7-го мая 2008 года корпорация Borland объявила о продаже своей дочерней компании CodeGear. CodeGear занималась созданием популярных средств разработки программного обеспечения: Delphi, C++Builder и другими. В итоге, Embarcadero приобрела CodeGear за $23 млн и с обязательством погашения $7 млн долгов Borland.

 


1.


LAZARUS

 

Одним из общепринятых языков программирования, используемых для обучения, является язык Pascal. Практическая его реализация осуществляется посредством различных компиляторов: Turbo Pascal, TMT Pascal, Free Pascal, GNU Pascal и т.д. На базе этого языка была построена и первая система визуального программирования Delphi, предназначенная для создания Windows – приложений. Однако указанная система является коммерческим программным продуктом и ее использование предполагает определенные финансовые затраты. Альтернативой Delphi является Lazarus - система программирования с открытым исходным кодом.

www.lazarus-ide.org

Платформы

· Разработка Android

· Lazarus для Linux

· Lazarus для Mac OS X

· Lazarus для iOS

· Lazarus для Windows

 

Особенности

· Открытый исходный код

· Написано в Паскале для Паскаля

· Кросс-платформенная

· Более 200 компонентов

· Много рамок

· Расширяемый через пакеты

· Преобразует из кода Delphi

· Регулярные релизы

 

Литература

1. Г.С. Иванова, и др. Объектно–ориентированное программирование.-М. Изд-во МГТУ им. Н.Э. Баумана, 2001.-320с.

2. Д. Осипов. Delphi Программирование для Windows, OS X, iOS и Android. - СПб: БХВ-Петербург, 2014

3. Мансуров К.Т. Основы программирования в среде Lazarus, 2010.- 772c. [Электронный ресурс] Режим доступа: URL http://www.freepascal.ru/download/pdf/osnovy_programmirovanija_v_srede_lazarus.pdf

4. Гурин С.Р. Программирование в среде Lazarus для школьников и студентов: Учебное пособие. М.: ФОРУМ, 2016, - 336с.

5. Вишневская Т.И., Терентьев Ю.И. Решение инженерных задач в среде LASARUS : М.: Изд-во МГТУ им. Н.Э. Баумана, 2017.-69c  Режим доступа: Режим доступа: http://ebooks.bmstu.ru/ catalog/xxx/book15xx.html


ЭКЗАМЕН  


Начало в 9 00 или 14

Час письменный экзамен

· 3 вопроса «конкретных» по 10 баллов

· 1 - обязательно алгоритм

5. Для тех у кого 1 долг по модулю ( по практике) – письменно задача!!!

                                                                                       (1 час)

БАЛЛЫ

 

Практика мин – 42 (все модули) мах – 70

Теория    мин - 18   мах - 30

 

ИТОГО

С 70 баллов – хорошо

С 85 баллов – отлично

 

ПЕРЕСДАЧА

1. Только по направлению деканата

· В сессию – 24 декабря 9 час (только теория) 25 декабря в 9 час

· Практику пересдавать своему преподавателю по графику пересдач

· В каникулы по графику пересдач  дежурному преподавателю

Лекция

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

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

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

 

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

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

 

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

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

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

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

 

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

Например, System

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

Дата: 2019-02-02, просмотров: 218.