Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
14
Добавлен:
10.05.2015
Размер:
238.59 Кб
Скачать

4.2 Технологии программирования

Для написания программ можно использовать следующие способы программирования:

  1. Нисходящее, линейное, «непосредственное» программирование или программирование сверху вниз. При программировании данным методом пишут программу без использования процедур и функций. Данный метод подходит для написания простых программ, в противном случае можно получить программу с запутанной последовательностью операторов, которую сложно будет модифицировать.

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

Пример. Процедура, вычисляющая сумму двух чисел a и b:

procedure Summing (var sum: integer; a, b: integer);

begin

sum:=a+b;

end;

Функция, вычисляющая сумму двух чисел a и b:

function Sum (a, b: integer): integer;

begin

Sum:=a+b;

end;

Вызов процедуры Summing производится следующим образом:

Summing (Sum_a_b, a, b);

Вызов функции Sum:

Sum_a_b:= Sum (a, b);

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

  1. Модульное программирование. Созданные программы помещаются в некоторый блок – модуль (UNIT), а затем его подключают к основной программе. Модуль – это программная единица, текст которой компилируется независимо (автономно). Модуль характеризуют:

  • принцип IPO (Input – Process – Output) – один вход – один выход;

  • функциональная завершенность;

  • логическая независимость.

Каждый модуль состоит из спецификации (правила использования модуля) и тела (способ реализации процесса обработки). Данный вид программирования позволяет отдельно отлаживать программы-модули и создавать из них библиотеки.

  1. Объектно-ориентированное программирование. Является самым современным способом программирования. В отличие от выше приведенных способов программирования, в основе которых лежит алгоритм (процедура обработки данных), объектно-ориентированное программирование – это методика разработки программ, в основе которой лежит понятие объекта, как некой структуры, описывающей объект реального мира, его поведение. Задача, решаемая с использованием методики объектно-ориентированного программирования, в терминах объектов и операций над ними, а программа при таком подходе представляет собой набор объектов и связей между ними. Программирование основывается на:

  • модели построения системы как совокупности объектов абстрактного типа данных;

  • модульной структуре программ;

  • нисходящим проектированием.

Базовые понятия объектно-ориентированного программирования:

  • объект – совокупность свойств (параметров) определенных сущностей и методов их обработки;

  • свойство объекта – характеристика объекта, его параметр. Все объекты наделены определенными свойствами, которые в совокупности выделяют объект из множества других объектов;

  • метод обработки – программа действия над объектом или его свойствами;

  • событие – изменение состояния объекта;

  • класс объектов – совокупность объектов, характеризующих общность применяемых методов обработки или свойств;

  • инкапсуляция – скрытие полей объекта с целью обеспечения доступа к ним посредством методов класса;

  • наследование – определение объекта и дальнейшее использование всех его свойств для построения иерархии порожденных объектов с возможностью для каждого порожденного объекта доступа к коду и данным всех порождающих объектов;

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

Пример. Персоны университета делятся на категории: студенты и преподаватели. Класс персоны будет базовым (родительским) для двух других:

type

{базовый класс персоны}

TPerson=class

fname: string; {личное имя персоны}

constructor Create(name: string); {выделение памяти при помощи специального метода класса - constructor (конструктора) с именем Create (создать)}

function info: string; virtual; {метод класса info объявлен виртуальным, чтобы дочерний класс смог заменить его своим}

end;

{класс студенты - производный от базового класса TPerson}

TStud=class(TPerson)

fgroup: integer; {номер группы}

constructor Create(name: string; group: integer);

function info: string; override; {метод порожденного класса, замещающий виртуальный метод родительского класса (помечен директивой override}

end;

{класс преподаватели - производный от базового класса TPerson}

TPrep=class(TPerson)

fdep: string; {название кафедры}

constructor Create(name: string; dep: string);

function info: string; override;

end;

Выше приведенная часть программы дает представление о классах, объектах, наследовании. Свойства полиморфизма поясняет определение метода info для каждого класса.

function TPerson.info: string;

begin

result:=’’;

end;

function TStud.info: string;

begin

result:=fname+’ гр. ’+IntToStr(fgroup); {функция IntToStr превращает номер группы заданный числом в строку}

end;

function TPrep.info: string;

begin

result:=fname+’ каф. ’+fdep;

end;

Соседние файлы в папке Информатика_ 1 семестр