Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция по информатике №9.doc
Скачиваний:
0
Добавлен:
25.11.2019
Размер:
153.6 Кб
Скачать

Лекция 9

Процедуры и функции для работы со строками string

function Length(S: string): byte;

Возвращает длину строки S. Значение длины равноценно значению Ord(s[0]), поскольку код «нулевого» байта строки есть её текущая длина.

function Copy(S: string; iStart, iLength: byte): string;

Возвращает подстроку строки S – набор из iLength символов, начинающийся с символа с номером iStart. Нумерация символов в строке начинается с единицы.

Замечание: Copy(S, n, 1) равноценно S[n].

procedure Delete(S: string; iStart, iLength: byte);

Удаляет из строки S её подстроку – набор из iLength символов, начинающийся с символа с номером iStart. Нумерация символов в строке начинается с единицы.

function Index(S, SWhat: string): byte;

Ищет первое вхождение подстроки sWhat в строку S. Результат – номер символа, начиная с которого найдено вхождение. Результат – ноль, если вхождение не найдено.

function Str(X: <числовой тип>): string;

Возвращает строковое выражение числа X.

procedure Val(S: string; var X: <числовой тип>; IER: integer);

Пытается преобразовать строку S в число и занести его в параметр-переменную X. Если попытка завершается удачно, IER=0, в противном случае IER<>0.

Граф. Основные понятия и определения

(http://ru.wikipedia.org/wiki/%D0%93%D1%80%D0%B0%D1%84_(%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0))

Граф, или неориентированный граф – это упорядоченная пара , для которой выполнены следующие условия:

  • – это непустое множество вершин, или узлов,

  • – это множество пар (в случае неориентированного графа – неупорядоченных) вершин, называемых рёбрами.

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

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

Вершины и называются концевыми вершинами (или просто концами) ребра . Ребро, в свою очередь, соединяет эти вершины. Две концевые вершины одного и того же ребра называются соседними.

Два ребра называются смежными, если они имеют общую концевую вершину.

Два ребра называются кратными, если множества их концевых вершин совпадают.

Ребро называется петлёй, если его концы совпадают, то есть .

Степенью вершины называют количество инцидентных ей рёбер(при этом петли считают дважды).

Вершина называется изолированной, если она не является концом ни для одного ребра; висячей (или листом), если она является концом ровно одного ребра.

Ориентированный граф

Ориентированный граф (сокращённо орграф) – это упорядоченная пара , для которой выполнены следующие условия:

  • – это непустое множество вершин или узлов,

  • – это множество (упорядоченных) пар различных вершин, называемых дугами или ориентированными рёбрами.

Дуга – это упорядоченная пара вершин , где вершину называют началом, а – концом дуги. Можно сказать, что дуга ведёт от вершины к вершине .

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

Понятие класса – дополнение к понятию типа.

Тип [обычной] переменной определяет множество значений, которые она способна принимать, и множество операций, которые над ней можно производить.

Класс [объектной] переменной определяет и множество значений, которые она способна принимать, и множество операций, которые над ней можно производить, и множество операций, которые она сама над собой способна производить.

Три принципа ООП:

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

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

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

Инкапсуляция – соединение в единой структуре данных и программных кодов (т.н. методов), предназначенных для обработки именно этих данных.

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

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

Объектом, или объектной переменной принято называть конкретный экземпляр переменной заданного класса.

По сути (но не по синтаксису), объектная переменная есть указатель на первый байт области памяти, выделенной под поля объекта. Эта область памяти предоставляется объекту тогда, когда он «начинает жить», и высвобождается тогда, когда он свою жизнь завершает.

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

Три группы атрибутов объекта:

  1. Методы

  2. Свойства

  3. События

Методы – процедуры и функции, описываемые при описании класса, предназначенные для приема объектом данных извне, изменения данных внутри объекта (модификации полей), подачи данных от объекта внешним «потребителям».

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

Свойства (для программиста класса) – процедуры и функции, назначение которых совпадает с назначением методов. В среде программистов не утихают споры о праве свойств на существование.

События – это то, что с объектом «может произойти», и на что можно предусмотреть реакцию кода класса.