Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции_полный_часть1 (Восстановлен).docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1.68 Mб
Скачать

Тема: Основные алгоритмические конструкции. Сложность алгоритмов.

Вопросы:

  1. Линейный алгоритм

  2. Разветвляющийся алгоритм

  3. Циклический алгоритм

Несмотря на многообразие алгоритмов все они строятся из 3-х типов алгоритмических структур.

Линейным алгоритмом называется алгоритмом, в котором все указанные в последствии действия исполняются и притом только один раз.

Схема представляет собой последовательность блоков, которые располагаются сверху вниз в порядке их выполнения. Первичные и промежуточные данные не оказывают влияния на направление процесса вычисления.(действие1 … действиеN)

\Линейный алгоритм:

Разветвляющимся алгоритмом называется алгоритм, в котором выполняется одна из ветвей действий при заданных значениях параметра.

На практике часто встречаются задачи, в которых в зависимости от первоначальных условий или промежуточных результатов необходимо выполнить вычисления по одним или другим формулам.

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

  1. если – то

  2. если – то иначе

  3. выбор

условие1: действие1

условиеN: действиеN

Р азветвляющийся алгоритм:

нет

да

Циклический алгоритм – алгоритм, в котором какая-то совокупность действий повторяется несколько раз при изменяющихся значениях параметра.

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

а) Пока <условие> делай<тело цикла>

б) для i от i1 до i2 делай<тело цикла>.

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

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

Существуют циклы с известным числом повторений и итерационные циклы. При итерационном цикле выход из тела цикла, как правило, происходит при достижении заданной точности вычисления.

Алгоритм любой сложности может быть представлен комбинацией трех базовых структур:

  • следование;

  • ветвление (в полной и сокращенной форме);

  • цикл (с предусловием или постусловием).

Характерной особенностью этих структур является наличие у них одного входа и одного выхода.

Циклический алгоритм:

да

нет

Лекция 5

Тема: Базовые понятия ООП: объект, его свойства и методы, класс, интерфейс.

Вопросы:

1.Базовые понятия ООП

2.Создание и инициализация объекта класса.

3. Форма как объект класса TForm

 

OOП включает лучшие идеи, воплощённые как в структурном программировании, так и в модульном. «Является еще более структурным программированием, еще более модульным» (ДжефДантеманн).

Процедурный подход не всегда соответствует пониманию реального мира, моделируемого в программе.

  • Пример.

Мы говорим: «Машина едет», а не говорим, что есть функция «ехать», которая применяется к машине.

Предполагается, что у машины есть способность перемещаться, которая является ее неотъемлемой частью.

Требуется объединить данные (машину) и функции (способность ехать и т. п.).

Такое объединение – в основе объектно-ориентированного программирования

  Объектно-ориентированное программирование позволяет разложить проблему на составные части.

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

Таким образом, ООП – «это методология, основанная на представлении программы в виде совокупности объектов, каждый из которых является реализацией собственного класса» (А.Д. Александровский).

Объектно-ориентированное программирование (ООП) – это методика разработки программ, в основе которой лежит понятие «объект».

Объект – некоторая структура, соответствующая объекту реального мира, его поведению.

Программа при таком подходе представляет собой набор объектов и связей между ними.

  Основным понятием ООП является понятие класса.

Для реализации интерфейса Delphi использует обширную библиотеку разнообразных классов, поддерживающих форму и ее компоненты (поля ввода и редактирования, командные кнопки и т. п.).

Каждый класс Delphi является потомком класса TObject, даже если это не указано явно.

Поэтому у каждого класса есть встроенные методы и свойства (унаследованные от родительского класса).

  • Класс – это сложная структура, включающая, помимо описания данных, описание процедур и функций, которые могут быть выполнены над представителями класса.

  • Объект – это экземпляр (представитель) класса.

  • Данные класса называются полями, процедуры и функции - методами.

Описание класса помещается в программе в раздел описания типов (type).

Класс – множество объектов, связанных общностью структуры и поведения (класс содержит описание структуры и поведение всех объектов, связанных отношением общности). Любой объект является экземпляром класса.

      • Пример.

Объявление простого класса:

type

TPerson = class

private

fname: string[15];

faddress: string[50];

public

procedureShow;

end;

Объекты как представители класса объявляются в программе в разделе var.

      • Пример.

var

student: Tperson;

Переменная-объект содержит не данные, а ссылку на данные объекта. Необходимо позаботиться о выделении памяти для этих данных.

Выделение памяти осуществляется с помощью специального метода класса – конструктора.

Объявление конструктора:

constructorИмя_конструктора (<параметры>);

Обычно конструктору присваивается имя Create

После выполнения инструкции

student :=TPerson.Create;

будет выделена необходимая память для данных объекта student.

Кроме выделения памяти конструктор часто осуществляет инициализацию объекта – присваивание полям объекта начальных значений.

      • Пример.

Реализация конструктора для объекта класса TPerson:

constructorTPerson.Create;

begin

fname := ‘’;

faddress := ‘’;

end;

Если объект больше не используется в программе, то можно освободить память, занимаемую полями данного объекта.

Для этого используется метод-деструктор Free.

  • Пример.

Освобождение памяти, занимаемой полями объекта student:

student.Free;

Методы класса определяются в программе так же, как обычные процедуры и функции,

за исключением того, что имя процедуры или функции, являющейся методом, состоит из двух частей:

имени класса, которому принадлежит метод, и имени метода:

Имя_класса.имя_метода

В инструкциях метода доступ к полям объекта осуществляется без указания имени объекта

Определение метода Show класса TPerson:

ProcedureTPerson.Show;

begin

ShowMessage(‘Имя ‘ + fname + #13 + ‘Адрес ‘ + faddress);

end;

Инструкция

student.Show;

вызовет применение метода Show

к объекту student.

При добавлении компонентов на форму Delphi автоматически формирует описание класса формы и объявление необходимых объектов;

При создании процедуры-обработчика события в описание класса формы добавляется объявление соответствующего метода.

  • Пример.

Описание класса формы, сгенерированное Delphi:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, StdCtrls;

type

TForm1 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

Edit2: TEdit;

GroupBox1: TGroupBox;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

Button1: TButton;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure RadioButton2Click(Sender: TObject);

procedureFormCreate(Sender: TObject);

end;

Объявление объекта – формы приложения (объект класса TForm1):

var

Form1: TForm1;

Лекция 6

Тема: Основные принципы ООП: инкапсуляция, наследование, полиморфизм.

Вопросы:

  1. Инкапсуляция

  2. Наследование

  3. Полиморфизм