Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отвкты на ГОСЫ.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
4.89 Mб
Скачать

1. Абстрактні класи. Призначення і способи використання. Приведіть приклад абстрактного класу на мові програмування C++.

Абстрактный класс в объектно-ориентированном программировании — класс, содержащий хотя бы один абстрактный метод. Абстрактный метод не реализуется для класса, в котором описан, однако должен быть реализован для его неабстрактных потомков. Абстрактные классы представляют собой наиболее общие абстракции, такие что имеют бо́льший объем и меньшее содержание.

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

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

На языке программировния C++ абстрактный класс объявляется включением хотябы одной чистой виртуальной фукцией, типа virtual _сигнатура_функции_ =0;, которая как и другие может быть заменена. Пример на языке программирования C++:

В ООП абстрактные классы предназначены для того, чтобы создать суперкласс, который будет определять абстрактные характеристики его классов-наследников. На самом деле абстрактные классы могут содержать в себе какой-либо код, а могут быть вообще без кода; кроме этого, на их основе нельзя создать экземпляр напрямую.

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

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

Копировать

class Swimmer abstract

{ virtual void swim();

void dive(); };

Также можно объявить класс как абстрактный, включив по крайней мере одну чисто виртуальную функцию:

Копировать

class Swimmer

{ virtual void swim() = 0;

void dive(); };

2. Алгоритм и его свойства. Методы записи алгоритмов.

Алгоритм – это система формальных правил, однозначно приводящая к решению поставленной задачи. В программировании, алгоритм – это последовательность арифметических и логических действий над данными, приводящая к получению решения поставленной задачи.

Свойства:

Дискретность – алгоритм состоит из отдельных пунктов или шагов.

Определённость – каждый шаг алгоритма должен быть строго сформулирован (иметь точный смысл).

Связанность – на каждом следующем шаге используются результаты предыдущего.

Конечность – алгоритм должен завершаться после конечного числа шагов.

Результативность – алгоритм должен приводить к получению конечных результатов.

Массовость – пригодность для решения широкого класса задач.

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

Выбор средств и методов для записи алгоритма зависит прежде всего от назначения (природы) самого алгоритма, а также от того, кто (что) будет исполнителем алгоритма.

Алгоритмы записываются в виде:

словесных правил, блок-схем, программ.

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

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

Недостатки словесного способа описания алгоритмов:

отсутствие наглядности, недостаточная точность.

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

В блок-схеме можно использовать строго определенные типы блоков:

1) начало/конец 2) Вычислительное действие 3) проверка условия 4)ввод/вывод

да нет

Алгоритмический язык - это система обозначений и правил для единообразной и точной записи алгоритмов и их исполнения.

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

Алгоритм, записанный на языке программирования, называется программой. Словесная и графическая формы записи алгоритма предназначены для человека. Алгоритм, предназначенный для исполнения на компьютере, записывается на языке программирования (языке, понятном ЭВМ).

3.Булева алгебра и вопросы, связанные с ее применением

Булева алгебра – непустое множество, для которого определены три операции: две бинарные операции, представленные знаками , и одна унарная операция, представленная чертой, ставящейся перед элементом множества(дополнение).

Элементы непустого множества(обозн. чер. U) принято обозначать буквами , ,… В результате бинарных операций из произвольных элементов  и  из U получаются более сложные элементы:  и , кот. соотв.-но наз. объединением и пересечением и . По определению для каждого элемента  из мн. U однозначно представлен элемент -, кот. наз. дополнением к . Для непустого множества U характерно следующее:

  1. вместе с элементами  и  в нем содержатся их теоретико-множественное пересечение () и их теоретико-множественное объединение ();

  2. если элемент  содержится в множестве U, то в U содержится и теоретико-множественное дополнение к , т. е. множество всех подэлементов из U, кот. не принадлежат . При этом каждый элемент имеет только одно дополнение.

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

  1. законы коммутативности :    =   ,    =   

  2. законы ассоциативности: (С) = ()С , (С) = ()С

  3. законы поглощения: () = , () = 

  4. законы дистрибутивности: (С) = ()(С), (С) = ()(С)

  5. (-) = , (-) = . Из этих аксиом следует, что -  и  -, где  - знак включения.

Элемент - наз. нулевым элементом, или нулем бул. алгебры и обознач. .

Элемент - наз. единичным элементом, или единицей бул. алгебры и обозн. .

При этом считается, что когда бул. алгебра явл. полем подмножеств простр.-ва Х, нулевым элементом U явл. пустое множество, а единичным элементом – все пространство Х.

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

 = ,  = .

Бул. алгебра наз. вырожденной алгеброй, если в ней имеется только один элемент. Необходимым и достаточным условием вырожденности бул. алгебры счит.-ся рав.-во =, т.е. совпадение нуля и единицы.

Принятая в бул. алгебре система аксиом основана на принципе двойственности. Запас выводимых в ней формул остается без изменений, если всюду соот.-но заменить  на , а  на .

В булевой логике действительны законы де Моргана, согласно кот.

-(  ) = -  -, -(  ) = -  - . Из этих законов следует, что    тогда и т. т., когда -  -, а также то, что  = - (- -),  = - (- -).

Когда для непустого подмн-ва счит.-ся выполненными след. два условия:

  1. из того, что , , следует, что  ,

  2. из того, что  и   , следует, что ,то такое непустое мн.-во наз. идеалом и обознач. гр. бук. ( дельта).

В том случае, когда для непустого подмн.-ва оказ.-ся выполненными след. условия:

  1. из ,  , следует, что   ,

  2. из   и   , следует, что , то такое непуст. подмн.-во наз фильтром и обозн. переверн. гр. бук. . Понятие фильтра двойственно к понятию идеала.

Если непустое подмн.-во U0 бул. алгебры U замкнуто относительно операций , ,-, т.е. удовлетворяет след. усл.:

    1. если ,   U0 , то    U0

    2. если ,   U0, то    U0

    3. если   U0, то -   U0, то оно U0 наз. подалгеброй алгебры U.

Отображение (обозн. его ) алгебры U в алгебру U наз. гомоморфизмом, если оно сохраняет операции объединения, пересеч.-я, взятия дополнения, т.е.

( )=  ()  (), ( )=  ()  (), (- )= - ().

Взаимно однозначный гомоморфизм наз. изоморфизмом.

Бул. алгебра U наз. атомной, если для каждого эл.-та  (U) существует атом а . Безатомной бул. алгебра наз. тогда, когда она не содержит ни одного атома. Атомом бул. алгебры наз. эл.-т а, если для любого U включение а  означает, что или =, или = а. Понятие атома явл. бул. аналогией одноточечного мн.-ва. Изоморфизм  бул. алгебры U на себя наз. автоморфизмом.

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

Определения:

Бинарная операция – такая операция мат. логики, когда связ.-ся два высказыв.-я в новое, более сложное высказывания.(конъюнкция, дизъюнкция, импликация, эквив.-ть)

Унарная операция – так. операция, в кот. участвует одна пропорциональная связка и одно высказывание. Такими операциями явл.: операция отрицания  или , операция необходимости , операция возможности .

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

  М = М   М =   \ М= М \  = М.

Непустое мн.-во – такое мн.-во, кот имеет хотя бы один элемент.(обозн. М ).