Объект в программировании - некоторая сущность в цифровом пространстве, обладающая определённым состоянием и поведением, имеющая определённые свойства (атрибуты) и операции над ними (методы). Как правило, при рассмотрении объектов выделяется то, что объекты принадлежат одному или нескольким классам, которые определяют поведение (являются моделью) объекта. Термины «экземпляр класса» и «объект» взаимозаменяемы.
Тип данных определяет, что именно представляют собой данные, как они хранятся в памяти, какие операции с ними можно выполнять. Изначально, типы данных делятся на простые и составные. Простой - это тип данных, объекты (переменные или постоянные) которого не имеют доступной программисту внутренней структуры. Для объектов составного типа данных, в противовес простому, программист может работать с элементами внутренней его структуры.
Класс – это способ описания объекта (сущности), определяющий состояние и поведение, зависящее от этого состояния, а также правила для взаимодействия с данной сущностью (контракт). С точки зрения программирования класс можно рассматривать как набор данных (полей, атрибутов, членов класса) и функций для работы с ними (методов).
Интерфейс (англ. interface) — программная/синтаксическая структура, определяющая отношение между объектами, которые разделяют определённое поведенческое множество и не связаны никак иначе. При проектировании классов, разработка интерфейса тождественна разработке спецификации (множества методов, которые каждый класс, использующий интерфейс, должен реализовывать).
Коллекция - это структура данных (тип, класс или, еще лучше, интерфейс), предназначенная для хранения определенного количества объектов (в зависимости от языка и терминологии они должны быть одного типа или могут быть разных типов).
Различные типы коллекций могут быть статическими или динамическими, они могут изменять свой размер или оставаться постоянными, они могут быть упорядоченными (точнее, они учитывают порядок элементов) и неупорядоченными (соответственно, они не учитываются).
Наиболее часто используемые структуры: массив, список, набор, словарь, кортеж.
Граф - это совокупность точек, соединенных линиями. Точки называются вершинами или узлами, а линии называются ребрами или дугами.
Степень входа вершины - это количество ребер, входящих в нее, а степень выхода-количество исходящих ребер.
Граф, содержащий ребра между всеми парами вершин, является полным.
Существуют графы, ребра которых соответствуют определенному числовому значению. Они называются взвешенными графами, и это значение является весом ребра.
Когда у ребра оба конца совпадают, т. е. оно покидает вершину и входит в нее, такое ребро называется петлей.
Рис. Граф с петлей
Дерево - это связный граф без циклов. Корень - это самая верхняя вершина дерева. Лист-это вершина, у которой нет потомков. Обход дерева - систематический просмотр всех вершин, при котором каждая вершина встречается один раз.
Двоичное дерево – дерево, в котором у всех вершин не более двух ребер.
Двоичное дерево поиска - это двоичное дерево, удовлетворяющее следующим условиям:
дочерние узлы - это бинарные деревья поиска;
для произвольного узла:
все значения левого поддерева меньше значения родительского узла;
все значения правого поддерева больше значения родительского узла.
Рис. Двоичное дерево поиска
Конечный автомат (или просто FSM - Finite-state machine) - это вычислительная модель, основанная на гипотетической машине состояний. Одновременно может быть активным только одно состояние. Следовательно, для выполнения каких-либо действий машина должна изменить свое состояние.
Конечный автомат можно представить в виде графа, вершины которого являются состояниями, а ребра - переходами между ними. У каждого ребра есть метка, которая информирует вас о том, когда должен произойти переход.
Реализация конечного автомата начинается с определения его состояний и переходов между ними. Представьте себе конечный автомат, описывающий действия муравья, несущего листья в муравейник. Отправной точкой является состояние "искать лист", которое остается активным до тех пор, пока муравей не найдет лист. Когда это произойдет, состояние изменится на "домой с листом". То же самое состояние будет оставаться активным до тех пор, пока наш муравей не доберется до муравейника. После этого состояние снова изменится на " искать лист". При поиске листа возможно появление лисы. Тогда переход в состояние «прятаться». Лиса ушла, возврат в «искать лист».
Рис. Пример конечного автомата
Значения в моделировании:
дискретные (прерывистые) значения, которые принимают только разделенные значения, которые могут быть пронумерованы;
непрерывный (аналоговый), который может принимать любое значение с определенного интервала.