Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика / inf-ka_shpory.doc
Скачиваний:
67
Добавлен:
13.02.2015
Размер:
642.56 Кб
Скачать

4)Реализация алгоритмических структур в языках программирования. Примеры.

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

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

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

Реализация в программировании (Pascal):

Вычислительный процесс (алгоритм), в котором команды выполняются последовательно, наз-ся линейным. При исполнении такой программы микропроцессор выполняет команды последовательно одну за другой. Точку входа (оператор с которого начинается выполнение программы), в Pascal-программе определяет служебное слово Begin, с которого начинается тело программы, заканчивается тело программы словом end. Начало и конец подпрограмм также выделяется этими словами.

2. Базовая структура ветвление. Обеспечивает в зависимости от результата проверки условия (да или нет) выбор одного из альтернативных путей работы алгоритма. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран.

Структура ветвление существует в четырех основных вариантах:

А) если-то

Реализация в программировании (Pascal): if <условие> then <действия>

Б) если-то-иначе

Реализация в программировании (Pascal)if <условие> then <действия 1>else<действия 2>;

В) выбор

Реализация в программировании (Pascal):

case <выражение> of

<условие 1>: <действия 1>;

  <условие 2>: <действия 2>;

  . . . . . . . . . . . .

  <условие N>: <действия N>;

end;

Г) выбор-иначе

Реализация в программировании (Pascal):

case <выражение> of

<условие 1>: <действия 1>;

  <условие 2>: <действия 2>;

  . . . . . . . . . . . .

  <условие N>: <действия N>;

else

<другие действия>; end;

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

Основные разновидности цикла:

А) Цикл с параметром

Реализация в программировании (Pascal):

for <переменная цикла>=<начальное значение> to <конечное значение> do <действия>

Также можно использовать слово downto вместо to:

for <переменная цикла>=<начальное значение> downto <конечное значение> do <действия>

При этом происходит уменьшение значения параметра от начального значения до конечного значения на 1.

Б) Цикл с предусловием

Тело цикла выполняется, пока выполняется условие.

Реализация в программировании (Pascal):

while <условие продолжения цикла> do <действия>

В) Цикл с постусловием

Тело цикла выполняется, пока не выполнится условие. Гарантирует выполнение тела цикла хотя бы один раз (в отличие от цикла с предусловием).

Реализация в программировании (Pascal):

repeat <действия> until <условие окончания цикла>.

5) Понятие класса. Процедуры и функции, статические методы класса и особенности работы с ними.

1. Понятие класса.

Объект с точки зрения ООП это переменная, тип которой определяется последователем. Тип объекта называется классом, а объект принято называть экземпляром своего класса. Синтаксис объявления класса в языке OP (Object Pascal) следующий:

type

<имя класса> = class (<имя родителя класса>);

//(раздел по умолчанию)

private

//поля, методы, свойства, события

protected

//…

public

//…

published

//…

end;

<имя класса> - это любой возможный идентификатор языка Pascal (общепринятым является использование буквы Т перед именем класса. Это буква поясняет, что переменная является типом.). После директивы класс в круглых скобках задается имя родительского класса. По умолчанию этот класс можно опустить. В этом случае компилятор считает, что данный класс является наследником базового класса TObject. Однако для удобства читаемости программы родительский класс лучше указывать:

TMyClass = class (TObject) | TMyClass = class - Эти объявления эквивалентны.

Процедуры и функции, статические методы класса и особенности работы с ними.

Статические методы (static) объявляются внутри класса, также как и процедуры и функции в языке Pascal. Синтаксис их объявления:

procedure: <имя метода> (<список параметров>);

function: <имя метода> (<список параметров>): <тип возвращаемого значения>;

<имя метода> - любой разрешенный идентификатор языка Pascal. Общепринято, что имена выбираются в соответствии с выполняемыми действиями.

<список параметров> - необязательный элемент, предназначен для передачи параметров. В нем передаются имена переменных, предназначенных для выполнения соответствующих действий данному методу. Синтаксис:

<раздел> <имя параметра>:<тип параметра>;

<раздел> - необязательный элемент, предназначенный для указания способа передачи параметра.

1. Если он отсутствует, то значение параметра передается по значению, т.е. в стеке программы помещается копия данного параметра, с которым и работает сам метод. В этом случае любые сделанные им изменения не приведут к изменению внешнего параметра. (Изменяется только копия в стеке).

Index : Integer – передача по значению.

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

Var Index : Integer – передача по значению

3. Если раздел const, то параметр передается по ссылке, но компилятор запрещает любые изменения этой переменной. При попытке ее модифицировать выдается сообщение об ошибке.

const Index : Integer – передача как const

После того, как все методы будут объявлены внутри класса, их необходимо определить в разделе implementation соответствующего:

implementation

procedure <имя класса>.<имя метода>(<список параметров>);

var

<cписок локальных переменных>;

begin

<тело метода>;

end

function <имя метода>(<список параметров>): <тип

возвращаемого значения>;

var

<cписок локальных переменных>;

begin

<тело метода>;

end

В отличие от обычных процедур и функций языка Pascal методам класса неявно передается специальный указатель (Self) на вызвавший их объект. За счет этого метод узнает данные какого конкретного объекта ему необходимо использовать. Этот механизм позволяет значительно сократить затраты памяти так как методы принадлежат только классу, а не всем его объектам.

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