- Введение в курс
- Тема 1. Понятие класса и объекта. Данные-члены и функции-члены (методы)
- Тема 2. Конструкторы и деструкторы классов
- Тема 3. Копирование и присваивание для объектов класса
- Тема 4. Принцип наследования и его реализация средствами языка программирования С++
- Тема 5. Виртуальные функции и классы. Множественное наследование
- Тема 6. Классы-контейнеры
- Тема 7. Обработка исключений
- Итоговая аттестация
«Закон Большой Тройки» или «Правило трёх» — правило в C++ гласит, что если класс или структура определяет один из следующих методов, то они должны явным образом определить все три метода. Какие три метода нужны?
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- деструктор, оператор, функция
- конструктор, деструктор, оператор присваивания
- конструктор, класс, объект
Алгоритмы в STL выполняют сложные операции, типа сортировки и поиска. Однако, для выполнения более простых операций, специфичных для конкретного контейнера, требуются методы. Установите соответствие между методом и назначением.
Тип ответа: Сопоставление
- A. begin()
- B. empty()
- C. max_size()
- D. возвращает итератор на начало контейнера (итерации будут производиться в прямом направлении)
- E. возвращает true, если контейнер пуст
- F. возвращает максимально допустимый размер контейнера
Библиотека стандартных шаблонов – это …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- набор согласованных, обобщённых алгоритмов, контейнеров, средств доступа к их содержимому и различных вспомогательных функций в C++
- … набор данных, которая уже является моделью динамического массива
- … библиотека функций, обеспечивающая хранение конечного количества однотипных величин в виде непрерывной последовательности
В объектно-ориентированной программе с применением классов, каждый объект является «экземпляром» некоторого конкретного класса, и других объектов не предусмотрено. То есть, «экземпляр класса» в данном случае означает не «пример некоторого класса» или «отдельно-взятый класс», а «объект, типом которого является какой-то класс». При этом, в разных языках программирования допускается, либо не допускается существование еще каких-то типов данных, экземпляры которых не являются объектами. Перед Вами код. Опишите его работу. @image003.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- в этом классе скрыты два поля – health и ammo, получить значения которых извне, можно с помощью методов get_health() и get_ammo()
- в этом классе скрыты четыре поля – int x, int y, int scale, int position, получить значения которых извне, можно с помощью методов void draw
- в этом классе скрыто одно поле – health, получить значения которых извне можно с помощью метода int get_ammo()
В обычном режиме компилятор автоматически формирует конструктор копирования для каждого класса, однако, в некоторых случаях, программист формирует конструктор копирования, называемый …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- … неявным конструктором копирования
- … явным конструктором копирования
- … конструктором по умолчанию
В определении класса члены класса с ключевым словом private доступны:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- любой функции программы
- в случае, если вам известен пароль
- методам этого класса
В представленной программе используются throw, try и catch вместе. Результат выполнения программы: We caught an int exception with value -1. Continuing our way! Опишите, как работают блоки программы: @image029.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- оператор try используется для генерации исключения -1 типа int. Затем блок throw обнаруживает оператор try и перемещает его в соответствующий блок catch, который обрабатывает исключения типа int. Блок catch типа int и выводит соответствующее сообщение об ошибке
- оператор throw используется для генерации исключения -1 типа int. Затем блок try обнаруживает оператор throw и перемещает его в соответствующий блок catch, который обрабатывает исключения типа int. Блок catch типа int и выводит соответствующее сообщение об ошибке
- оператор throw определяет тип объекта для генерации исключения -1 типа int. После блок try удаляет оператор throw и инициирует блок catch, который обрабатывает исключения
В процессе выполнения операции присваивания между существующими объектами одного типа обычно вызывается …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- конструктор по умолчанию
- конструктор копирования
- никакой конструктор не вызывается
В C ++ с помощью ключевого слова «throw» функция может …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- указывать исключения, которые она генерирует
- выполнять одну перестановку в последовательности выбранного диапазона
- обеспечивать объявления и другие данных библиотечных функций, перегружаемых операций и объектов
В C ++ функция может указывать исключения, которые она генерирует, с помощью ключевого слова:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
Важный момент при наследовании - это перегруженные функции - методы класса-потомка. Если в классе-родителе и в его классах-потомках встречаются методы с одинаковым именем, то для объектов класса-потомка, компилятор будет использовать методы именно класса-потомка. Перегруженные методы класса-потомка, могут вызывать методы класса-родителя. В таком случае, важно помнить, что необходимо правильно определить область действия с помощью оператора «::». Иначе, компилятор воспримет это, как вызов функцией самой себя. Наглядно, если бы мы перегрузили в классе функцию - это выглядело бы так. Опишите, что указывает данная запись кода: @image016.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- эта запись указывает компилятору — если значение FirstClass не равно нулю — вызвать метод show_value() класса value. А он, в свою очередь, отобразит это значение на экране
- эта запись указывает компилятору — если значение value не равно нулю — вызвать метод FirstClass класса show_value(). А он, в свою очередь, отобразит это значение на экране
- эта запись указывает компилятору — если значение value не равно нулю — вызвать метод show_value() класса FirstClass. А он, в свою очередь, отобразит это значение на экране
Варианты использования (кроме всего прочего) нужны для:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- получения сведений о проблемах, возникших в программном коде
- того, чтобы узнать, какие в классах могут быть конструкторы
- обеспечения выбора подходящих атрибутов класса
Векторы — это умные массивы. Они занимаются автоматическим размещением себя в памяти, расширением и сужением своего размера по мере вставки или удаления данных. Векторы можно использовать в какой-то мере как массивы, обращаясь к элементам, с помощью привычного оператора []. Случайный доступ выполняется очень быстро в векторах. Также, довольно быстро осуществляется добавление (или проталкиваниновых данных в конец вектора. Когда это происходит, размер вектора автоматически увеличивается для того, чтобы было куда разместить новое значение. Рассмотрим код программы. Выберете, что демонстрирует данный пример. @image023.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- заполнение данными методом insert(). Метод insert() имеет два параметра: будущее расположение нового элемента в контейнере и значение элемента. Прибавляем две позиции к результату выполнения метода begin(), чтобы перейти к элементу № 2 (третий элемент в контейнере, считая с нуля). Элементы от точки вставки до конца контейнера сдвигаются, чтобы было место для размещения вставляемого. Размер контейнера автоматически увеличивается на единицу
- для создания вектора v используется штатный конструктор вектора без параметров. Как с любыми контейнерами STL, для задания типа переменных, которые будут храниться в векторе, используется шаблонный формат (в данном случае это тип int). Мы не определяем размер контейнера, поэтому вначале он равен 0. Метод push_back() вставляет значение своего аргумента в конец вектора (конец располагается там, где находится самый большой индекс). Начало вектора (элемент с индексом 0), в отличие от списков и очередей, не может использоваться для вставки новых элементов
- если переменной main присвоить значение true, то push_back() никогда не будет удален, память никогда не будет освобождена и произойдет утечка памяти. Однако, если бы push_back() был вектором, то подобное никогда бы и не произошло, так как память освобождалась бы автоматически, при выходе push_back() из области видимости (независимо от того, выйдет ли функция раньше из области видимости или нет). Именно из-за этого, использование std::vector является более безопасным, чем динамическое выделение памяти через оператор v
Все контейнерные классы предоставляют …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- виртуальные методы
- стандартизованный интерфейс
- свойства функций
Деструктор – это…
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- специальный метод без параметров, имя которого состоит из символа ~ и имени класса
- специальная функция класса, которая вызывается при создании нового объекта этого класса, и предоставляет возможность инициализировать объекты во время их создания, и гарантировать, что все данные члены будут иметь корректные значения
- символ, который помогает выполнять определенные математические и логические вычисления с операндами
Для объявления функции как виртуальной используется ключевое слово…
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- … virtual
- … private
- … public
Если есть два класса, один из которых базовый, а другой — унаследованный от базового, то последовательность вызовов следующая:
Тип ответа: Сортировка
- 1 вызов конструктора базового класса
- 2 вызов конструктора унаследованного класса
- 3 компиляция
Если существует два класса, один базовый, другой унаследованный от базового, то при необходимости вызова, последовательность будет следующая:
Тип ответа: Сортировка
- 1 вызов конструктора базового класса
- 2 вызов конструктора унаследованного класса
- 3 компиляция
Идея объектно-ориентированного программирования была основана на …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- представлении программы, как совокупности объектов
- представлении программы, как совокупности классов
- представлении программы, как совокупности методов
Иерархия классов …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- показывает те же взаимоотношения, что и схема организации
- описывает взаимоотношение типа «имеет»
- описывает взаимоотношения типа «является частью»
- показывает те же взаимоотношения, что и наследственное дерево
Исключение – это …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- стандартный заголовочный файл шаблонов, которые определяют контейнеры, алгоритмы и т. д.
- последовательность операторов, повторяемая многократно
- реакция на исключительное обстоятельство, которое возникает во время работы программы
Исключительные ситуации, возникающие при работе программы, можно разделить на два основных типа:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- простые и сложные
- с данными и без данных
- синхронные и асинхронные
Исключительные ситуации, возникающие при работе программы, можно разделить на два основных типа:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- целочисленные и символьные
- с данными и без данных
- асинхронные и синхронные
Использование виртуальных функций для полиморфной обработки родственных объектов относят к:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- элементам методологии наследования в ООП
- элементам абстрагирования
- элементам инкапсуляции данных
Итераторы – это …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- контейнеры, которые обеспечивают доступ к конструкторам
- сущности, использующиеся для получения доступа к отдельным данным в контейнере
- переменные, которые обеспечивают быстрый доступ к данным по ключу
Как решить вопрос о том, какой из спецификаторов использовать при наследовании? В большинстве случаев, производный класс представляет собой улучшенную или более специализированную версию базового класса. В случае, когда объект производного класса предоставляет доступ как к общим методам базового класса, так и к более специализированным методам своего класса, имеет смысл воспользоваться общим наследованием. Проставьте последовательность создания кода простого наследования: @image014.png
Тип ответа: Сортировка
- 1 в классе были определены только те члены, которые являются общими для всех объектов этого класса
- 2 ввели изменения, что каждый человек (независимо от пола, профессии и т.д.) имеет имя и возраст
- 3 для облегчения сортировки мы добавили в класс метод getName(), дающий доступ к именам из функции
Какой вид контейнеров обеспечивают хранение конечного количества однотипных величин в виде непрерывной последовательности?
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- последовательные контейнеры
- ассоциативные контейнеры
- множественные контейнеры
Классическим примером исключительной ситуации в С++ является:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- целочисленное деление на ноль
- создание нового блока кода
- уменьшение памяти
Классы, предназначенные для хранения данных, организованных определенным образом:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- … контейнерные классы
- … классы-операторы
- … классы-методы
Когда вызывается конструктор, автоматически создаются объекты при определенных условиях. Определите соответствие между объектами и условиями создания конструктора.
Тип ответа: Сопоставление
- A. для локальных объектов
- B. для глобальных статических объектов
- C. для объектов, создаваемых в динамической памяти
- D. при выполнении оператора, в котором они объявлены
- E. перед вызовом функции main, для своих статических значений функции – при начальном выполнении этой функции
- F. при выполнении операции new
Конструктор – это…
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- специальный метод без параметров, имя которого состоит из символа ~ и имени класса
- специальная функция класса, которая вызывается при создании нового объекта этого класса, и предоставляет возможность инициализировать объекты во время их создания, и гарантировать, что все данные члены будут иметь корректные значения
- символ, который помогает выполнять определенные математические и логические вычисления с операндами
Конструктор копирования вызывается…
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- при наследовании базового класса
- при описании нового объекта с инициализацией другим объектом этого же типа
- при присваивании объекта новому типу
Конструктор копирования должен иметь в качестве параметра ссылку, потому что …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- иначе, при передаче параметра по значению конструктор будет вызываться рекурсивно
- функция-член класса может иметь в качестве параметра только ссылку
- переменная, передаваемая по ссылке, может быть изменена
Конструктор является типом метода класса, который автоматически вызывается при создании объекта этого же класса, а деструктор — это тип метода класса, который выполняется при удалении объекта класса. Ниже представлен код, подумайте какой тип метода класса здесь используется. Опишите код программы: @image004.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- в данном коде описывается класс «date», он имеет переменные день и год. Здесь применен деструктор date(). Он удаляет с динамической памяти объект «month»
- в данном коде описывается класс «day» и «year», данные имеют открытый тип. Здесь применен конструктор date()
- в данном коде описывается класс «date», он имеет переменные месяц и год. Здесь применен деструктор date(). Он удаляет с динамической памяти объект «month»
Конструкторы подчиняются тем же правилам относительно типов параметров, что и …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- перегруженные функции
- деструкторы
- методы
Контейнеры бывают …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- последовательные и ассоциативные
- простые и множественные
- логические и придуманные
Контейнеры делятся на два вида - это …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- простые и множественные
- ассоциативные и последовательные
- придуманные и логические
Методу класса всегда доступны данные:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- объекта, членом которого он является
- класса, членом которого он является
- любого объекта класса, членом которого он является
Механизм исключений использует три слова C++: catch, throw и try. Установите соответствие между терминами и определениями:
Тип ответа: Сопоставление
- A. catch
- B. throw
- C. try
- D. блок, при котором программа перехватывает исключение с помощью обработчика исключения в том месте программы, где вы хотите обработать проблему
- E. блок, при котором программа выдает исключение при обнаружении проблемы
- F. блок, при котором определяется блок кода, для которого будут активированы определенные исключения
Механизм языков программирования, предназначенный для описания реакции программы на ошибки времени выполнения и другие возможные проблемы (исключения), которые могут возникнуть при выполнении программы, и приводят к невозможности дальнейшей отработки программой её базового алгоритма – это:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- … обработка исключительной ситуации
- … конструктор копирования
- … вызов функции
Множественное наследование – это …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- наследование, при котором создание производного класса основывается на использовании нескольких непосредственных базовых классов
- наследование, при котором создание производного класса основывается на использовании одного базового класса
- наследование, при котором удаление производного класса основывается на использовании нескольких непосредственных базовых классов
Модификаторы доступа в объектно-ориентированных языках являются …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- ключевые слова, которые задают параметры доступа для классов
- вариантами использования классов
- объектами класса, членами которого они являются
Модификаторы доступа являются ключевыми слова, которые задают параметры доступа для классов, методов и прочих элементов в …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- … объектно-ориентированных языках
- … функциональных языках
- … процедурных языках
На практике, объектно-ориентированное программирование сводится к созданию некоторого количества классов, включая интерфейс и реализацию, и последующему их использованию. Графическое представление некоторого количества классов и связей между ними называется диаграммой классов. Объектно-ориентированный подход, за время своего развития, накопил множество рекомендаций (паттернопо созданию классов и иерархий классов. Предсказать результат следующей программы. На экран выведется строка «Compiler Error», т.к. компилятор увидит ошибку в строке 1. @image001.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- на экран выведется «C»
- на экран выведется «B»
- на экран выведется строка «Garbage Value», т.к. компилятор не сможет запустить конструктор
Набор согласованных обобщённых алгоритмов, контейнеров, средств доступа к их содержимому и различных вспомогательных функций в C++
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- … библиотека типов данных
- … библиотека стандартных шаблонов
- … библиотека функций
Назначение наследования состоит в том, чтобы:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- передавать аргументы объектам классов
- создавать более общие классы в более специализированных
- улучшать сокрытие данных и их инкапсуляцию
Ниже представлен код, проставьте последовательность действий, которая произведена в этом коде: @image018.png
Тип ответа: Сортировка
- 1 создаем объект c класса C
- 2 указываем rparent ссылаться на часть A объекта c
- 3 вызываем метод rParent.getName()
- 4 вызываем rParent.GetName(), что приводит к вызову A::getName(). Однако, поскольку A::getName() является виртуальной функцией, то компилятор ищет «наиболее» дочерний метод между A и C. В этом случае — это C::getName()
Обработка исключений, возбужденных оператором throw, идет по следующей схеме:
Тип ответа: Сортировка
- 1 завершается выполнение защищенного try-блока: раскручивается стек подпрограмм, вызываются деструкторы для тех объектов, время жизни которых истекает и т.д.
- 2 создается статическая переменная со значением, заданным в операторе throw. Она будет существовать до тех пор, пока исключение не будет обработано. Если переменная-исключение является объектом класса, при ее создании работает конструктор копирования
- 3 выполняется поиск первого из catch-блоков, который пригоден для обработки созданного исключения
Общий синтаксис механизма наследования выглядит следующим образом:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- class имя: тип_наследования имя_базового_класса {// программный код производного класса}
- classname имя: имя_базового_класса {// программный код производного класса}
- class имя: тип_наследования {// программный код производного класса}
Объект - это …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- шаблон для создания объектов, обеспечивающий начальные значения состояний: инициализация полей-переменных и реализация поведения функций или методов
- специальная функция класса, которая вызывается при создании нового объекта этого класса и предоставляет возможность инициализировать объекты во время их создания и гарантировать, что все данные члены будут иметь корректные значения
- структурированная переменная, содержащая всю информацию о некотором физическом предмете или реализуемом в программе понятии
Обычно, компилятор автоматически создает конструктор копирования для каждого класса, но в некоторых случаях, программист создает конструктор копирования, называемый:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- … явным конструктором копирования
- … неявным конструктором копирования
- … конструктором по умолчанию
Оператор присваивания – это …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- … особый вид оператора, который выполняет пропуск оставшейся части кода тела цикла и переходит к следующей итерации цикла
- … особый вид оператора, используемый для присваивания объектов одного класса друг другу
- … оператор, который применяют для изменения управления в программе
Оператор простого присваивания ( = ) вызывает сохранение значения второго операнда в объекте, указанном первым операндом. Если оба объекта имеют арифметические типы, правый операнд преобразуется в тип слева перед сохранением значения. Посмотрите код и напишите алгоритм его создания. @image007.png
Тип ответа: Сортировка
- 1 перегрузка оператора присваивания
- 2 проверка на самоприсваивание
- 3 выполнение копирования значений
- 4 возвращаем текущий объект
Операторы присваивания хранят значение в объекте, указанном левым операндом. Существует два вида операций присваивания:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- простое присваивание, множественное присваивание
- логическое присваивание, составное присваивание
- простое присваивание, составное присваивание
Операторы присваивания хранят значение в объекте, указанном левым операндом. Установите соответствие между операторами и их значениями:
Тип ответа: Сопоставление
- A. =
- B. *=
- C. /=
- D. сохранение значения второго операнда в объект, указанный первым операндом
- E. умножение значения первого операнда на значение второго операнда, сохранение результата в объект, указанный первым операндом
- F. деление значения первого операнда на значение второго операнда, сохранение результата в объект, указанный первым операндом
Операторы присваивания хранят значение в объекте, указанном левым операндом. Установите соответствие между операторами и их значениями.
Тип ответа: Сопоставление
- A. ^=
- B. &=
- C. >>=
- D. выполнение операции побитового исключающего «ИЛИ» для значений первого и второго операндов, сохранение результата в объект, указанный первым операндом
- E. выполнение операции побитового «И» для значений первого и второго операндов, сохранение результата в объект, указанный первым операндом
- F. сдвиг значения первого операнда вправо на количество битов, заданное значением второго операнда, сохранение результата в объект, указанный первым операндом
Операторы присваивания хранят значение в объекте, указанном левым операндом. Установите соответствие между операторами и их значениями
Тип ответа: Сопоставление
- A. +=
- B. -=
- C. <<=
- D. сложение значения первого операнда со значением второго операнда, сохранение результата в объект, указанный первым операндом
- E. вычитание значения второго операнда из значения первого операнда, сохранение результата в объект, указанный первым операндом
- F. сдвиг значения первого операнда влево на количество битов, заданное значением второго операнда, сохранение результата в объект, указанный первым операндом
Операция присваивания копированием – это особый вид операции присваивания, используемый для присваивания объектов одного класса друг другу. Является одним из особых членов-функций и генерируется автоматически компилятором в случае, если нет явного объявления программистом. Код, сгенерированный компилятором и выполняет побитовое копирование. Операция присваивания копированием отличается от конструктора копирования тем, что должна очищать члены-данные цели присваивания (и правильно обрабатывать самоприсваивание), тогда как конструктор копирования присваивает значения неинициализированным членам-данным. Опишите работу кода программы: @image011.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- для начала защищаем от неправильного самоприсваивания, затем выделяем «новую» память и копируем элементы. Далее, освобождаем «старую» память и в конце присваиваем значения в «новой» памяти объекту
- для начала используем оператор выбора члена для выбора члена структуры. Затем выделяем новый массив данных, далее удаляем массив, а затем создаем новый
- для начала объявляем переменную типа класса, определяем функцию член. Затем связываем методы с объектами класса, далее возвращаем значения в «новой» памяти объекту
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- в коде описано открытое наследование. В результате, данные из базового класса остаются в производном классе
- в коде описано закрытое наследование. В результате, данные из производного класса закрыты от данных базового класса
- в коде описано защищенное наследование. В результате, данные из базового класса защищены от данных производного класса
Описать работу кода программы: @image010.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- здесь функция operator++() создает новый объект класса Counter, для использования его в качестве возвращаемого значения. Далее, функция возвращает объект temp. Получаем ожидаемый эффект. Выражение типа ++c1 теперь возвращает значение, которое можно использовать в других выражениях, таких, как: c2 = ++c1
- здесь функция operator++() создает новый объект класса Counter, названный temp, для использования его в качестве возвращаемого значения. Она сначала увеличивает переменную count в своем объекте, а затем создает объект temp и присваивает ему значение count, то же значение, что и в собственном объекте. В конце функция возвращает объект temp. Получаем ожидаемый эффект. Выражение типа ++c1 теперь возвращает значение, которое можно использовать в других выражениях, таких, как: c2 = ++c1
- здесь функция operator++() создает новый объект класса Counter, названный temp, для использования его в качестве возвращаемого значения. Она сначала увеличивает переменную count в своем объекте, а затем создает объект temp и присваивает ему значение count, то же значение, что и в собственном объекте. В конце функция возвращает объект temp. Получаем ожидаемый эффект. Выражение типа ++c2 теперь возвращает значение, которое можно использовать в других выражениях, таких, как: c1 = ++c2
Опишите процесс выполнения конструкторов при порождении из нескольких классов поэтапно.
Тип ответа: Сортировка
- 1 конструктор порожденного класса
- 2 конструкторы членов, являющихся объектами класса
- 3 конструкторы базовых классов в порядке их задания
Определите в исторической последовательности открытия в программировании:
Тип ответа: Сортировка
- 1 ткацкий станок с перфокартами
- 2 аналитическая машина
- 3 первая программа для аналитической машины
- 4 объектно-ориентированное программирование
Определите последовательность действий, если есть два класса, один из которых базовый, а другой — унаследованный от базового.
Тип ответа: Сортировка
- 1 выполняется компиляция
- 2 выполняется вызов конструктора унаследованного класса
- 3 выполняется вызов конструктора базового класса
Определите создание языков программирования в исторической последовательности (от старого до нового):
Тип ответа: Сортировка
- 1 C++
- 2 Simula
- 3 Java
- 4 Python
Определите соответствие между открытиями и их создателями:
Тип ответа: Сопоставление
- A. первая программа для аналитической машины
- B. sketchpad
- C. simula
- D. Ада Августа Лавлейс
- E. Иван Сазерленд
- F. Оле-Йохан Даль и Кристен Нюгорд
Определите соответствие между терминами и определениями:
Тип ответа: Сопоставление
- A. инкапсуляция
- B. полиморфизм
- C. абстрагирование
- D. наследование
- E. принцип быстрой и надёжной организации своей иерархической управляемости
- F. метод направлен на определение точки, где единое управление лучше разделить или наоборот, собрать воедино разделённые управления
- G. принцип, в котором учитывается все самое важное в предмете, для моделирования и решения конкретной задачи
- H. принцип создание класса на базе уже существующего, при этом, у нас есть возможность пользоваться функционалом (свойствами и методамбазового
Определите соответствия между языками и видами программирования.
Тип ответа: Сопоставление
- A. Python
- B. 1C
- C. Лисп
- D. объектно-ориентированное программирование
- E. процедурное программирование
- F. функциональное программирование
Особый вид оператора присваивания, используемый для присваивания объектов одного класса друг другу …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- функция
- оператор сложения
- оператор присваивания
Перегрузка методов это механизм, который позволяет создавать несколько методов с одним и тем же именем. В результате создается иллюзия, что можно вызывать метод с разными аргументами. Перед Вами код перегрузки функции. Выберите правильное описание работы кода. @image019.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- в данном примере описывается одна версия функции show().Функция не возвращает результат. В зависимости от того, передан ли функции аргумент при вызове, отображается сообщение о том, что у функции нет аргумента, или сообщение с указанием значения аргумента
- в данном примере описывается одна версия функции show(). У функции текстовый аргумент. В зависимости от того, передан ли функции аргумент при вызове, отображается сообщение о том, что у функции нет аргумента, или сообщение с указанием значения аргумента
- в данном примере описывается две версии функции show(). В одном случае функция описана без аргументов. Во втором случае у функции текстовый аргумент. Функция не возвращает результат в обоих случаях. В зависимости от того, передан ли функции аргумент при вызове, отображается сообщение о том, что у функции нет аргумента, или сообщение с указанием значения аргумента
Перед Вами код. Выберите, какой результат кода: @image020.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- Base NonVirtual called. Base Virtual called. Base NonVirtual called. Derived Virtual called
- Base NonVirtual called. Base Virtual called. Base NonVirtual called
- Base NonVirtual called. Derived Virtual called
Перед Вами код. Опишите его результат. @image006.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- код выведет на экран Hello world;. Согласно стандарту, выбор одной из перегруженных функций осуществляется по правилу «Наиболее подходящей функции»
- код выведет на экран int:1 bool:1 bool:1. . "Hello world" имеет тип const char* и приведение его к POD-типу bool целесообразней чем к типу std::string
- код ничего не выведет на экран. Приведения типов нет
Полиморфизм в объектно-ориентированном программировании реализуется:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- через механизмы перегрузки (функций и операций), виртуальные функции и шаблоны
- через механизмы перегрузки (функций и операции шаблоны
- через виртуальные функции и шаблоны
Посмотрите код и напишите алгоритм его создания @image008.png
Тип ответа: Сортировка
- 1 определение переменных
- 2 вывод на экран
- 3 увеличение значения
- 4 вывод на экран значений с1, с2
Посмотрите код и напишите алгоритм его создания: @image007.png
Тип ответа: Сортировка
- 1 перегрузка оператора присваивания
- 2 проверка на самоприсваивание
- 3 выполнение копирования значений
- 4 возвращаем текущий объект
Предположим, что класс Derv является частным производным класса Base. Мы определяем объект класса Derv, расположенный в функции main(). Через него мы можем получить доступ к:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- членам класса Derv, объявленным как public
- членам класса Derv, объявленным как protected
- членам класса Derv, объявленным как private
- членам класса Base, объявленным как public
Представлен код программы. Какой результат выполнения? @image002.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- на экран выведется «Garbage Values»
- на экран ничего не выведется
- на экран выведется «Compiler Error in line cout << t.getX() << " ";»
- на экран выведется «Compiler Error in line cout << t.getY();»
При автоматическом вызове деструктора, для объектов при определенных условиях, определите соответствие между объектами и условиями уничтожения.
Тип ответа: Сопоставление
- A. для локальных объектов
- B. для глобальных статических объектов
- C. для объектов, создаваемых в динамической памяти
- D. при выходе из блока, в котором они объявлены
- E. после завершения функции main
- F. при выполнении операции delete
При описании нового объекта с инициализацией другим объектом этого же типа вызывается …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- конструктор по умолчанию
- конструктор копирования
- конструктор с параметром-объектом
При передаче параметра по значению, конструктор будет вызываться рекурсивно, поэтому он должен иметь…
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- ссылку
- функцию-член
- переменную
При работе программ возникают исключительные ситуации, когда дальнейшее нормальное выполнение приложения становится невозможным. Чтобы справиться с этими ситуациями, программисту помогают средства С++ catch, try и throw. Установите соответствие между конструкцией и описанием ее функции.
Тип ответа: Сопоставление
- A. catch
- B. try
- C. throw
- D. обработчик ошибочной ситуации
- E. операторы защищенного блока
- F. оператор возбуждения собственных исключений
Пример работы с контейнером приведен ниже. В файле находится произвольное количество целых чисел. Программа считывает их в вектор и выводит на экран. Опишите последовательность кода: @image022.png
Тип ответа: Сортировка
- 1 с помощью метода push_back число заносится в вектор, размер которого увеличивается автоматически
- 2 организуется цикл до конца файла, в котором из него считывается очередное целое число
- 3 для создания вектора v применяется конструктор по умолчанию
- 4 записывается соответствующая специализация шаблона vector — vector
Проставьте историческую последовательность: как после появления объектно-ориентированного программирования развивалось это направление:
Тип ответа: Сортировка
- 1 компонентное программирование
- 2 прототипно-ориентированное программирование
- 3 класс-ориентированное программирование
Проставьте открытия в программировании в исторической последовательности:
Тип ответа: Сортировка
- 1 ткацкий станок с перфокартами
- 2 аналитическая машина
- 3 первая программа для аналитической машины
- 4 объектно-ориентированное программирование
Проставьте порядок выполнения кода поэтапно. @image021.png
Тип ответа: Сортировка
- 1 заменить новыми значениями
- 2 вывести содержимое
- 3 создать вектор
- 4 внести данные в конец вектора
Проставьте порядок выполнения кода поэтапно. @image022.png
Тип ответа: Сортировка
- 1 заменить новыми значениями
- 2 вывести содержимое
- 3 создать вектор
- 4 внести данные в конец вектора
Проставьте последовательность выполнения представленного кода: @image012.png
Тип ответа: Сортировка
- 1 в классе Child указываются значения
- 2 прописываются доступы к к члену класса Parent
- 3 описывается класс Parent
- 4 указывается, что класс Child наследуется от Parent
Проставьте последовательность действий программы при возникновении ошибки.
Тип ответа: Сортировка
- 1 управление переходит в блок повторных попыток
- 2 управление переходит к обработчику ошибок (улавливающему блоку), следующему сразу за блоком повторных попыток
- 3 какое-то выражение в этом блоке приводит к возникновению ошибки в методе
- 4 метод генерирует исключение
- 5 код нормально выполняется вне блока повторных попыток
Проставьте последовательность работы конструкций исключительных ситуации:
Тип ответа: Сортировка
Проставьте последовательность создания кода: @himage013.png
Тип ответа: Сортировка
- 1 прописываем значение переменной количества часов преподавателя
- 2 прописываем фамилию имя отчество учителя
- 3 прописываем вывод фамилии имени отчества учителя
- 4 прописываем вывод «Количества часов:»
Проставьте последовательность стандартных исключений в иерархии родительско-дочерних классов.
Тип ответа: Сортировка
- 1 std:runtime_error
- 2 std:exception
- 3 std:overflow_error
Проставьте последовательность функций классов-контейнеров в языке C++. @image023.png
Тип ответа: Сортировка
- 1 создание пустого контейнера (через конструктор)
- 2 удаление объекта из контейнера
- 3 добавление нового объекта в контейнер
- 4 доступ к сохраненным объектам
- 5 просмотр количества объектов, находящихся на данный момент в контейнере
- 6 очистка контейнера от всех объектов
- 7 сортировка объектов/элементов (не всегда)
Проставьте создание языков программирования в исторической последовательности (от старого до нового):
Тип ответа: Сортировка
- 1 C++
- 2 Simula
- 3 Java
- 4 Python
Процесс создания новых классов, называемых наследниками или производными классами, из уже существующих или базовых классов– это …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- наследование
- полиморфизм
- абстрагирование
Процесс целочисленного деления на ноль является
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- примером исключительной ситуации в С++
- примером создания нового блока кода
- примером уменьшения памяти
Рассмотрим программный код, представленный в листинге. Он очень простой. Каким будет результат, если после выполнения программы ввести отрицательное число? @image028.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- после выполнения программы на экран выведется: This application has requested the Runtime to terminate it in an unusual way. Please contact the application’s support team for more information. terminate called after throwing an instance of ‘std::bad_alloc’ what(): std::bad_alloc
- после выполнения программы на экран выведется: A part of conditional expression is always true: 0xff. babygrid.cpp 711
- после выполнения программы на экран выведется: Dereferencing of the null pointer 'cond_col' might take place
Роль наследования в объектно-ориентированном программировании заключается в:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- сохранении информации и обеспечении перегрузок
- сокращении размера кода, упрощении связи между элементами программы
- организации иерархической управляемости
Роль наследования в ООП такая же, как у функций в процедурном языке программирования, т.е. сократить размер кода и упростить связи между элементами программы. В определенных ситуациях могут появиться некоторые проблемы, связанные со множественным наследованием. Рассмотрим наиболее общую проблему. Допустим, что в обоих базовых классах существуют методы с одинаковыми именами, а в производном классе метода с таким именем нет. Рассмотрим пример. Как в этом случае объект производного класса определит, какой из методов базовых классов выбрать? @image017.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- проблема решается путем использования оператора разрешения, определяющего класс, в котором находится метод. Таким образом, «ObjC.A::show ( )» направляет нас к версии метода show(), принадлежащей классу A, а «objC.B::show ( )» направляет нас к методу, принадлежащему классу B, Б
- проблема решается путем использования перегрузки функций. Таким образом, «ObjC.A::show ( )» направляет нас к версии метода show(), принадлежащей классу С, а «objC.B::show ( )» направляет нас к методу, принадлежащему классу A
- проблема решается путем использования оператора наследования. Таким образом, «ObjC.A::show ( )» направляет нас к версии метода show(), принадлежащей классу B, а «objC.B::show ( )» направляет нас к методу, принадлежащему классу C
Синтаксис наследования выглядит так:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- class имя: тип_наследования имя_базового_класса {// программный код производного класса}
- classname имя: имя_базового_класса {// программный код производного класса}
- class имя: тип_наследования {// программный код производного класса}
Специальная функция класса, которая вызывается при создании нового объекта этого класса и предоставляет возможность инициализировать объекты во время их создания и гарантировать, что все данные члены будут иметь корректные значения это …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- конструктор
- … деструктор
- … процедура
Специальный конструктор в языке программирования C++, и в некоторых других языках программирования, применяемый для создания нового объекта, как копии уже существующего:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- конструктор копирования
- конструктор по умолчанию
- именованный конструктор
Стек – это динамическая структура сохранения данных, которая работает по принципу «последний пришел — первый вышел» (Last-In First-Out). В стеке добавление новых элементов и удаление существующих элементов производится с одного конца, который называется вершиной стека. Организация данных с помощью стека эффективна, когда нужно реализовать: - обмен данными между методами приложения с помощью параметров; - синтаксический анализ разнообразных выражений. Рассмотрим пример. Выберете, что будет результатом программы: @image026.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- программа попросит ввести шесть любых целых чисел. Например: 9 5 2 1 5 6. Затем выведет строку, где будет указан верхний элемент стека – 6. Далее, будет предложение удаления верхнего элемента. Затем, опять будет указан новый верхний элемент стека – 5. Далее, выведется строка – «Process returned 0 (0x0) execution time: 0.010 s. Press any key to continue
- программа попросит ввести шесть любых целых чисел. Например: 9 5 2 1 5 6. Затем выведет строку, где будет указан верхний элемент стека – 9. Далее, будет предложение удаления верхнего элемента. Затем, опять будет указан новый верхний элемент стека – 5
- программа попросит ввести пять любых целых чисел. Например: 5 2 1 5 6. Затем выведет строку, где будет указан верхний элемент стека – 6. Далее, будет предложение добавления верхнего элемента. Затем, опять будет указан новый верхний элемент стека. Далее, выведется строка – «Process returned 0 (0x0) execution time : 0.010 s. Press any key to continue
Стек – это динамическая структура сохранения данных, которая работает по принципу «последний пришел — первый вышел» (Last-In First-Out). В стеке добавление новых элементов и удаление существующих элементов производится с одного конца, который называется вершиной стека. Организация данных с помощью стека эффективна, когда нужно реализовать: обмен данными между методами приложения с помощью параметров; синтаксический анализ разнообразных выражений. Рассмотрим пример. Выберете, что будет результатом программы: @image024.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- программа попросит ввести шесть любых целых чисел. Например: 9 5 2 1 5 6. Затем выведет строку, где будет указан верхний элемент стека – 6. Далее, будет предложение удаления верхнего элемента. Затем, опять будет указан новый верхний элемент стека – 5. Далее, выведется строка – «Process returned 0 (0x0) execution time: 0.010 s. Press any key to continue
- программа попросит ввести шесть любых целых чисел. Например: 9 5 2 1 5 6. Затем выведет строку, где будет указан верхний элемент стека – 9. Далее, будет предложение удаления верхнего элемента. Затем, опять будет указан новый верхний элемент стека – 5
- программа попросит ввести пять любых целых чисел. Например: 5 2 1 5 6. Затем выведет строку, где будет указан верхний элемент стека – 6. Далее, будет предложение добавления верхнего элемента. Затем, опять будет указан новый верхний элемент стека. Далее выведется строка – «Process returned 0 (0x0) execution time : 0.010 s. Press any key to continue
Структурированная переменная, содержащая всю информацию о некотором физическом предмете или реализуемом в программе понятии – это …
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
Существует два вида операций присваивания – это…
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- простое присваивание и составное присваивание
- простое присваивание и множественное присваивание
- логическое присваивание и составное присваивание
Сущности, использующиеся для получения доступа к отдельным данным в контейнере.
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- итераторы
- классы
- переменные
Укажите первую строку описания класса Tire, который является производным классов Wheel и Rubber:
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- class Wheel: public Tire
- class Tire: public Wheel,public Rubber
- class Rubber: public Tire
Укажите последовательность написания кода: @image013.png
Тип ответа: Сортировка
- 1 пишем значение переменной количества часов преподавателя
- 2 пишем фамилию имя отчество учителя
- 3 пишем вывод фамилии имени отчества учителя
- 4 пишем вывод «Количества часов:»
Установите порядок выполнения конструкторов при порождении из нескольких классов:
Тип ответа: Сортировка
- 1 конструкторы базовых классов в порядке их задания
- 2 конструкторы членов, являющихся объектами класса
- 3 конструктор порожденного класса
Установите последовательность создания конструктора:
Тип ответа: Сортировка
- 1 прописывается конструктор
- 2 указываются аргументы
- 3 запускается компиляция
Установите соответствие между операторами и их значениями
Тип ответа: Сопоставление
- A. ^=
- B. &=
- C. >>=
- D. выполнение операции побитового исключающего ИЛИ для значений первого и второго операндов, сохранение результата в объект, указанный первым операндом
- E. выполнение операции побитового И для значений первого и второго операндов, сохранение результата в объект, указанный первым операндом
- F. сдвиг значения первого операнда вправо на количество битов, заданное значением второго операнда; сохранение результата в объект, указанный первым операндом
Установите соответствие между терминами и определениями:
Тип ответа: Сопоставление
- A. множественное наследование
- B. простое наследование
- C. виртуальное наследование
- D. когда у подкласса два или более суперкласса
- E. когда подкласс имеет одного родителя
- F. предотвращает появление множественных объектов базового класса в иерархии наследования
Установите соответствие между терминами и определениями:
Тип ответа: Сопоставление
- A. полиморфизм
- B. инкапсуляция
- C. абстрагирование
- D. наследование
- E. метод направлен на определение точки, где единое управление лучше разделить, или наоборот, собрать воедино разделённые управления
- F. принцип быстрой и надёжной организации своей иерархической управляемости
- G. принцип, в котором учитывается все самое важное в предмете, для моделирования и решения конкретной задачи
- H. принцип создания класса, на базе уже существующего, при этом, у нас есть возможность пользоваться функционалом (свойствами и методамбазового
Установите соответствие между терминами и определениями:
Тип ответа: Сопоставление
- A. чисто-виртуальная функция
- B. дружественная функция
- C. статическая функция
- D. делает свой класс абстрактным
- E. имеет доступ к скрытым данным класса, по отношению к которому она объявлена таковой
- F. работающая с классом в целом, а не над отдельными его объектами
Установите соответствие между терминами и определениями:
Тип ответа: Сопоставление
- A. public
- B. protected
- C. private
- D. открытое наследование
- E. защищенное наследование
- F. закрытое наследование
Установите соответствие между терминами и определениями
Тип ответа: Сопоставление
- A. конструктор копирования
- B. конструктор с параметрами
- C. конструктор перемещения
- D. конструктор, принимающий в качестве аргумента объект того же класса
- E. конструктор, принимающий один или более аргументов
- F. конструктор, принимающий на входе значение неконстантной ссылки на объект класса, и используется для передачи владения ресурсами этого объекта
Установите соответствие между типами наследования и их значениями
Тип ответа: Сопоставление
- A. public
- B. protected
- C. private
- D. все унаследованные данные становятся открытыми
- E. все унаследованные данные становятся защищенными
- F. все унаследованные данные становятся приватными
Установите соответствия между языками и видами программирования.
Тип ответа: Сопоставление
- A. С++
- B. 1C
- C. Haskell
- D. объектно-ориентированное программирование
- E. процедурное программирование
- F. функциональное программирование
Что реализуется через механизмы перегрузки (функций и операций), виртуальные функции и шаблоны?
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- полиморфизм
- абстрагирование
- инкапсуляция
Чтобы в блоке try сгенерировать исключительную ситуацию, нужно использовать оператор throw. Оператор throw может быть вызван внутри блока try или внутри функции, которая вызывается из блока try. Общая форма оператора throw: throw исключение; В результате выполнения оператора throw генерируется исключение некоторого типа. Это исключение должно быть обработано в блоке catch. Рассмотрим пример использования блока try…catch. Демонстрируется использование блока try…catch для обработки выражения. В данном выражении, в трех случаях может возникнуть исключительная ситуация: - корень из отрицательного числа a, если a<0, - корень из отрицательного числа b, если b<0, - деление на 0, если b=0. Поэтому, в блоке try…catch, нужно обработать эти три случая. Текст программы типа Console Application следующий. Какой будет результат программы? @image028.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- если пользователь введет a = 5 и b = 0, то ответ ошибки будет следующим: «Division by 0»
- если пользователь введет a = 5 и b = 0, то ответ ошибки будет следующим: «Negative root»
- если пользователь введет a = 2 и b = 0, то ответ ошибки будет следующим: «Out of range»
Чтобы в блоке try сгенерировать исключительную ситуацию, нужно использовать оператор throw. Оператор throw может быть вызван внутри блока try или внутри функции, которая вызывается из блока try. Общая форма оператора throw: throw исключение; В результате выполнения оператора throw генерируется исключение некоторого типа. Это исключение должно быть обработано в блоке catch. Рассмотрим пример использования блока try…catch. Демонстрируется использование блока try…catch для обработки выражения. В данном выражении, в трех случаях может возникнуть исключительная ситуация: - корень из отрицательного числа a, если a<0, - корень из отрицательного числа b, если b<0, - деление на 0, если b=0. Поэтому, в блоке try…catch, нужно обработать эти три случая. Текст программы типа Console Application следующий. Какой будет результат программы? @image028.png
Тип ответа: Одиночный выбор • с выбором одного правильного ответа из нескольких предложенных вариантов
- если пользователь введет a = 5 и b = 0, то ответ ошибки будет следующим: «Division by 0»
- если пользователь введет a = 5 и b = 0, то ответ ошибки будет следующим: «Negative root»
- если пользователь введет a = 2 и b = 0, то ответ ошибки будет следующим: «Out of range»