Программа дисциплины Программирование для направления 231000. 62 «Программной инженерии» подготовки бакалавра Автор программы
Вид материала | Программа дисциплины |
Содержание8.Образовательные технологии программирование алгоритмов обработки данных в виде массивов 9.2. Вопросы для оценки качества освоения дисциплины |
- Факультет Бизнес Информатика Отделение программной инженерии программа дисциплины, 257.29kb.
- Программа дисциплины Вычислительные системы и телекоммуникации для направления 080700., 173.01kb.
- Вопросы, выносимые на экзамен по курсу пис, 26.43kb.
- Программа дисциплины Спецкурс «Конфигурации гиперплоскостей: их комбинаторика, геометрия,, 94.05kb.
- Программа дисциплины Спецкурс «Многообразия флагов» для направления 010100. 62 «Математика», 96.12kb.
- Программа дисциплины Спецкурс «Теория Галуа 1» для направления 010100. 62 «Математика», 100.92kb.
- Программа дисциплины Спецкурс «Дополнительные главы теории чисел 2» для направления, 149.76kb.
- Программа дисциплины Спецкурс «Дополнительные главы теории чисел 1» для направления, 137.49kb.
- Программа дисциплины "Программирование" для направления, 488.76kb.
- Программа дисциплины Дифференциальная геометрия и общая теория относительности для, 218.93kb.
8.Образовательные технологии
На каждом не контрольном занятии проводится разбор кодов конкретных программ, написанных на современном языке программирования. По существу, каждое занятие является мастер-классом по соответствующей теме дисциплины.
Задачи в тестовой форме применяются для обучения студентов и проведения промежуточных и итогового контролей.
9. Оценочные средства для текущего контроля и аттестации студента
9.1. Тематика заданий текущего контроля
Тематика контрольных работ:
- программирование ветвящихся и циклических алгоритмов;
-
программирование алгоритмов обработки данных в виде массивов;
- использование методов, определяемых программистом-пользователем;
- обработка данных, организованных в виде массивов и строк;
- обработка исключений;
- объекты классов, определяемых программистом-пользователем;
- отношения между классами;
- обработка массива объектов классов определяемых пользователем;
- классы, производные от библиотечного класса Form, и элемены управления;
- работа с потоками ввода-вывода;
- основы компьютерной графики.
Тематика контрольных домашних заданий:
- работа с массивами объектов пользовательских классов и потоками ввода-вывода;
- разработка Windows-приложения с развитым пользовательским интерфейсом и графическим выводом.
9.2. Вопросы для оценки качества освоения дисциплины
Введение и тема 1. Принципы программирования на основе платформы .Net Framework
- Приведите примеры языков высокого уровня, поддерживающих процедурно-ориентированный подход.
- Приведите примеры языков высокого уровня, поддерживающих объектно-ориентированный подход.
- Приведите примеры языков высокого уровня, поддерживающих как процедурно-ориентированный подход, так и объектно-ориентированный подход.
- Назовите виды приложений, создаваемых на основе платформы .Net Framework.
- Назовите этапы преобразований исходного кода программы на языке C# в ехе-модуль.
- Какова роль среды исполнения кода на общем языке (Common Language Runtime – CLR) при выполнении программ на платформе .Net Framework
- Что такое общий промежуточный язык (Common Intermediate Language – CIL)?
- Назовите возможности и роли проектов (Project) и решений (Solution).
Тема 2. Основные элементы программ (данные, выражения, операторы)
- Объясните, что такое тип.
- Как можно определить понятие "переменная"?
- Приведите примеры классов и объектов.
- Перечислите признаки объектов.
- В чём отличия членов класса от членов объекта?
- Дайте определение идентификатора.
- Объясните назначение отдельных частей простейшей программы на C#.
- Каково назначение статического метода Main()?
- Возможно ли написать программу на C#, не применяя классов?
- Что такое тип void?
- Какие методы класса Console применяются для ввода и вывода данных?
- В какой момент (после какого действия пользователя) выполняется чтение вводимых с клавиатуры данных?
- В чём различие методов Console.Write() и Console.WriteLine()?
- Что такое пространство имён?
- Какой из идентификаторов конструкции System.Console.ReadLine() является именем пространства имён?
- Для каких целей применяется директива using?
- Чем решение (solution) в Visual Studio отличается от проекта (Progect)?
- Перечислите базовые типы данных и укажите особенности представления их кодов.
- Назовите две основные части платформы .NET Framework.
- Что такое CIL (Common Intermediate Language)?
- Укажите назначение общеязыковой спецификации CLS – Common Language Specification?
- Какие члены могут присутствовать в классе в соответстви с требованиями общей системы типов CTS?
- Какую функциональность обеспечивает класс Object объектам всех типов языка C# ?
- Приведите названия типов CTS, которые представлены в языке C# базовыми типами, например, double.
- Какие базовые типы языка C# не соответствуют CLS?
- Назовите три метода, унаследованные любым типом языка C# от базового класса Object?
- Объясните возможности и ограничения метода Parse().
- Объясните возможности метода TryParse().
- Назовите члены базовых типов, позволяющие оценивать их предельные значения.
- Укажите правила образования имен переменных.
- Какими средствами регулируется очередность выполнения операций в выражении.
- Какими средствами объявляются именованные константы.
- Назовите тип CTS, соответствующий типу int языка C#.
- Чем отличаются типы знаковых арифметических данных от беззнаковых?
- Приведите примеры констант-литералов всех числовых (арифметических) типов.
- Укажите назначение десятичного типа и правила записи его констант.
- Назовите способы записи символьных констант.
- Приведите примеры эскейп-последовательносетй.
- Назовите размеры (в битах) представления в памяти констант базовых типов.
- Какие символы допустимы в идентификаторах C#?
- Приведите примеры служебных слов языка C#.
- Является ли идентификатор Main служебным словом?
- Что такое инициализация переменной?
- Чем именованная константа отличается от константы-литерала?
- Перечислите первичные операции языка C#.
- Перечислите названия групп операций в порядке возрастания их приоритетов (рангов).
- Знаки каких бинарных операций могут использоваться в составных операциях присваивания?
- В чём отличия префиксных форм операций декремента и инкремента от постфиксных.
- К каким операндам применимы операции ++ и --?
- В чём особенность операции деления целочисленных операндов?
- Назовите правила выполнения операций %.
- Какому действию эквивалентен сдвиг влево разрядов битового представления целого числа?
- Получите дополнительный код отрицательного числа типа sbyte, модуль которго не превышает 127.
- Объясните механизм возникновения переполнения при вычислениях с целочисленными операндами.
- Что такое автоматическое приведение (преобразование) типов?
- К каким типам может быть автоматически приведено значение типа int?
- Что такое "расширяющее преобразование" типов?
- При каких сочетаниях типов автоматическое приведение невозможно?
- В каких случаях два операнда разных типов приводятся к типу int?
- Назовите особые ситуации, которые могут возникнуть при вычислении арифметических выражений.
- Какие значения может принимать переменная типа bool?
- Назовите условные логические бинарные операции языка C#.
- Что такое отношение?
- Каковы ранги операций отношений?
- В выражениях с какими операциями могут использоваться символьные данные?
- Каков результат применения операции ++ к переменной типа char?
- Какой тип имеет результат суммирования переменной символьного типа с единицей (тип int)?
- Сколько операндов должно входить в выражение с операцией "?:"?
- Какой тип должен иметь первый (левый) операнд операции "?:"?
- Каков приоритет (ранг) операции "?:" по отношению к операции присваивания?
- Каково назначение оператора в программах на C#?
- Перечислите встроенные операторы языка C#.
- Каков обязательный признак отличного от блока оператора в C#?
- Что такое оператор-выражение?
- Где может использоваться пустой оператор?
- Что такое метка?
- Дайте определение блока.
- Какими правилами регламентируются вход в блок и выход из него?
- Назовите операторы выбора (ветвлений).
- Какие операторы не могут входить в условный оператор?
- Что такое сокращённая форма условного оператора?
- Как устанавливается соответствие между if и else при вложениях условных операторов?
- Назовите виды операторов циклов в C#.
- Какой оператор не может быть телом цикла?
- Какой тип имеет выражение-условие в операторе цикла?
- Сколько элементов в заголовке цикла общего вида (цикла for) и как они разделяются?
- Что такое инициализатор цикла общего вида (цикла for)?
- Когда вычисляется завершающее выражение цикла for?
- Укажите область существования объектов, объявленных в инициализаторе цикла for.
- Как выполняется вложение циклов?
- Какие операторы могут прервать выполнение цикла до его завершения, запланированного выражением-условием?
- Каково минимальное количество итераций в цикле с постусловием?
- Назовите назначение оператора break. Где его можно применять?
- Укажите возможности оператора goto при вложениях циклов.
- Где и когда употребляется оператор continue?
- Какого типа может быть значение переключающего выражения в переключателе?
- Что называют меткой переключателя?
- Каким оператором должна завершиться ветвь переключателя?
- Какая конструкция вводит ветвь переключателя?
100.В каких случаях выполняется ветвь переключателя, введённая меткой (служебным словом) default?
Тема 3. Массивы и строки
- К какой разновидности типов языка C# относятся типы массивов?
- Что такое класс массивов?
- Как нумеруются элементы массива?
- Что сравнивается при выполнении операций отношений применяемых к массивам?
- Сравните варианты реализации прямоугольной таблицы в виде двумерного массива и массива ссылок на массивы.
- Являются ли типы массивов типами значений?
- Какое значение имеет индексирующее выражение при обращении к первому элементу одномерного массива?
- Какой тип может иметь индексирующее выражение?
- Где размещается (в стеке или в управляемой куче) ссылка на массив?
- При выполнении какой операции создаётся объект класса массивов?
- Какие значения принимают элементы массива при отсутствии в его определении инициализатора?
- Какова структура инициализатора массива?
- Чем определяется и что определяет количество инициализирующих выражений в инициализаторе массива?
- Объясните назначение всех элементов цикла foreach.
- Каково назначение и возможности переменной цикла foreach.
- Можно ли изменить размер массива-объекта после его создания?
- Можно ли динамически задать размер массива-объекта в процессе выполнения программы?
- Назовите свойства массивов, унаследованные ими от класса Array.
- Приведите примеры не статических методов одномерных массивов.
- Приведите примеры статических методов одномерных массивов.
- В чём различия методов Copy() и Clone()?
- Что такое размерность массива?
- Что такое спецификатор размерности массива?
- Допустимо ли динамическое определение размеров многомерных массивов?
- Чему равно свойство Length для многомерного массива?
- С помощью каких средств можно получить размер многомерного массива по нужному измерению?
- Сколько спецификаторов размерности в объявлении типа четырёхмерного массива?
- Перечислите синтаксические отличия массива массивов от двумерного массива.
- Сколько операций new в определении объекта трёхмерного массива?
- Чему равно свойство Rank массива массивов?
- В каком случае при клонировании массива проявляется эффект поверхностного копирования?
- Объясните различия между регулярным и буквальным строковыми литералами.
- Каким образом в буквальный строковый литерал поместить символ кавычки?
- Перечислите способы создания объектов типа string.
- Перечислите операции над строками.
- В чём особенность операции индексирования для строк?
- В чём отличия и в чём сходство строк и массивов типа char[]?
- Можно ли элементу (символу) строки присвоить новое значение?
- Как выполняется операция присваивания для строк?
- Какие операции сравнения применимы к строкам?
- Перечислите особенности конкатенации строк со значениями других типов.
- В каких случаях метод ToString() вызывается неявно?
- Чем определяется значение свойства Length для регулярного строкового литерала, содержащего эскейп-последовательности?
- Как выполняется сравнение строк?
- Как выполняется метод Join()?
- Как выполняется метод Split()?
- Объясните правила применения метода Format().
- Назовите назначения всех элементов поля подстановки строки форматирования.
- Перечислите спецификаторы формата поля подстановки.
- Какой тип должна иметь переменная цикла foreach, применяемого к строке?
- Как инициализировать массив строк?
- Как получить строку, символы которой представляют значение типа long?
- Какими средствами можно получить код значения базового типа, символьная запись которого находится в строке.
- Как при запуске программы задать аргументы?
- Как в теле программы получить аргументы из командной строки?
- Справедливо ли утверждение, что все строки являются объектами?
- Каким образом можно получить значение длины строки?
- Возможно ли непосредственное изменение значений элементов (символов) строки?
Тема 4. Методы как основа процедурного программирования
- Какие элементы входят в заголовок метода?
- Что такое тело метода?
- Назовите особенности метода-процедуры.
- В каких случаях метод, возвращающий отличие от void значение, играет роль процедуры?
- В каком случае в теле метода может отсутствовать оператор return?
- Перечислите возможные источники данных, получаемых методом при его выполнении.
- Назовите глобальные по отношению к методу объекты.
- Перечислите модификаторы параметров методов.
- Укажите область видимости параметра метода.
- Назовите виды параметров.
- В чём особенности статических методов?
- Справедливо ли утверждение, что статические методы вызываются через имя класса?
- Может ли статический метод играть роль процедуры?
- Укажите правила соответствия между параметрами и аргументами.
- Назовите требования к аргументам метода, заменяющим фиксированные параметры.
- В чём отличия передачи параметров по значениям от передачи по ссылкам?
- Какие ограничения накладываются на аргументы, заменяющие передаваемые по ссылке параметры.
- В чём отличия модификаторов out и ref?
- Может ли параметр с типом ссылки передаваться методу по значению?
- Может ли параметр с типом ссылки снабжён модификатором ref?
- Может ли аргумент с типом ссылки, замещающий передаваемый по значению параметр, изменить внешний для метода объект?
- В каком случае можно подставить аргумент типа long вместо параметра типа Object?
- Какими средствами можно сделать доступным вне метода объект, созданный в его теле?
- Как специфицируется параметр представляетющий в теле метода список аргументов не фиксированной длины?
- Как в теле метода выполняются обращения к аргументам, количество которых переменно?
- Можно ли за счёт выполнения метода изменить значения аргументов, представляемых в методе параметром с модификатором params?
- Приведите примеры полиморфизма.
- Что входит в сигнатуру метода?
- Что такое перегрузка методов?
- Какой метод называют рекурсивным?
- В чём отличие косвенной рекурсии от прямой?
- Назовите требования к корректному рекурсивному методу и правила удовлетворения этих требований.
- Как определяется сигнатура метода?
- Перечислите способы передачи данных в методы и укажите их достоинства и недостатки.
Тема 5. Класс как контейнер статических членов
- Перечислите члены класса, которые могут быть объявлены статическими.
- Какие члены класса являются статическими без применения модификатора static?
- Назовите модификаторы доступа.
- Можно ли в объявлении одного члена класса использовать два модификатора доступа?
- Приведите формат имени, используемого для обращения к статическому члену класса извне класса.
- Что такое поле класса?
- Когда статическое поле размещается (получает место) в памяти?
- Можно ли в объявлении статического поля использовать модификатор доступа?
- Что такое список объявлений поля?
- Назовите формы инициализаторов полей.
- Что разрешено использовать в инициализирующем выражении статического поля?
- Как выполняется инициализация статических полей при отсутствии инициализаторов?
- Объясните последовательность инициализации статических полей.
- Какой статус доступа у статического поля при отсутствии в его объявлении модификатора доступа?
- Как объявляются константы, принадлежащие классу?
- Сформулируйте правила инициализации констант класса.
- В чём отличие статических констант от статических полей с модификатором readonly.
- Что такое статические константы и как они получают значения?
- Перечислите возможные применения и ограничения статических методов.
- Что такое статический конструктор?
- Сколько статических конструкторов допустимо в классе?
- Какова спецификация параметров статического конструктора?
- Как и когда вызывается статический конструктор?
- Какие члены объявления класса доступны в теле статического конструктора?
- Перечислите особенности статических классов.
- Какие модификаторы не могут входить в объявление статического класса?
- Какие модификаторы могут входить в объявления членов статического класса?
- Может ли в статический класс входить нестатический рекурсивный метод?
- В каком случае статические методы вызываются с использованием имени класса?
- Перечислите правила инициализации статических членов класса.
- Перечислите элементы декларации (объявления) статического конструктора.
Тема 6. Класс как тип
- Назовите модификаторы класса, применяемые при отсутствии наследования.
- Назовите известные вам виды членов класса.
- Какие элементы являются обязательными в объявлении нестатического поля.
- Когда выполняется инициализация нестатических полей?
- Каков статус доступа нестатического поля при отсутствии в его объявлении модификаторов доступа?
- Можно ли объявить статическое поле с типом класса, которому оно принадлежит?
- В каком случае в классе могут одновременно присутствовать одноименные статический и нестатический методы?
- В каких случаях телом нестатического метода может быть пустой оператор?
- В каком случае конструктор умолчания (конструктор без параметров) создаётся автоматически?
- Назовите возможные применения ссылки this.
- В каких методах ссылка this отсутствует?
- Опишите формат объявления нестатического конструктора.
- Перечислите модификаторы конструктора.
- Объясните назначение инициализатора конструктора.
- Перечислите виды конструкторов.
- Каков статус доступа у конструктора умолчания, встраиваемого в класс автоматически?
- Что такое конструктор копирования?
- Объясните назначение конструктора и укажите отличие вызова конструктора от вызова обычных методов.
- Каким образом конструктор может обратиться к другому конструктору своего класса?
- Объясните назначение деструктора.
- Сколько деструкторов может быть в одном классе?
- Что такое финализатор?
- Чем определяется доступность членов класса?
- Укажите назначение служебного слова this.
- Назовите виды конструкторов объектов класса.
- Что такое свойства объектов класса?
- Можно ли объявить свойство статическим?
- Укажите назначение индексаторов и их форматы.
- Объясните принципы инкапсуляции и её применения к классам.
- Опишите графическое изображение класса в UML.
- В чём отличия свойств от полей?
- Приведите формат объявления свойства.
- Что такое тип свойства?
- Что такое тело аксессора в объявлении свойства?
- Каким идентификатором представлено в set-аксессоре новое значение свойства?
- Объясните назначение механизма автореализуемых свойств.
- Что такое скрытые поля?
- Объясните роль служебного слова this в индексаторе.
- Может ли в одном классе быть несколько индексаторов?
- Какой тип допустим для параметра индексатора?
Тема 7. Отношения между классами.
- Объясните различие между агрегацией и композицией классов.
- Какого типа параметр должен быть у конструктора класса, находящегося в отношении агрегации с включаемым классом?
- Какие члены внешнего класса доступны для вложенного класса?
- Какой статус доступа должен иметь вложенный класс, чтобы он был доступен в области видимости внешнего класса?
- Как обратиться к члену вложенного класса вне внешнего класса?
- В чём отличия вложения классов от агрегации и композиции?
- Сколько прямых базовых классов допустимо для производного класса?
- Какова роль инициализатора конструктора в конструкторе производного класса?
- Что такое спецификация базы класса?
- Какие члены базового класса наследуются производным классом?
- Объясните правила доступа к членам базового класса из методов производного класса.
- Объясните правила доступа к членам базового класса для объектов производного класса.
- Что такое защищённый член класса?
- Как различаются при внешних обращениях одноимённые члены базового и производного классов?
- Как различаются одноимённые члены базового и производного классов в обращениях из производного класса?
- Каково назначение модификатора new в производном классе?
- Как и где вызывается конструктор базового класса из конструктора производного класса?
- Какие действия выполняются автоматически при отсутствии в конструкторе производного класса обращения к конструктору базового класса?
- В каком отношении могут находиться одноимённые методы базового и производного классов?
- Что такое экранирование при наследовании классов?
- Должны ли совпадать типы возвращаемых значений при экранировании методов?
- Что такое виртуальный метод?
- В каком случае ссылке с типом базового класса доступен метод производного класса?
- В каком случае применяется модификатор override?
- Какой статус доступа должен быть у виртуального метода?
- Может ли быть виртуальным свойство?
- Объясните различия между динамическим и статическим связыванием.
- Что такое статический и динамический типы ссылки?
- Чем должно быть тело абстрактного метода?
- Назовите особенности абстрактного метода.
- Где должен быть объявлен абстрактный метод?
- Что такое опечатанный класс?
- Приведите примеры опечатанных классов из .NET Framework.
- Каковы возможности массивов ссылок с типом абстрактного класса?
- Перечислите элементы декларации производного класса.
- Укажите назначение служебных слов base и this при наследовании.
- Приведите формат конструктора производного класса.
- Каким образом из конструктора производного класса вызывается конструктор базового класса?
- Укажите порядок передачи аргументов конструкторам при создании объекта производного класса.
- К каким членам базового класса имеют доступ объекты производного класса?
- В каком порядке вызываются конструкторы в иерархии наследования классов?
- Какой принцип объектно-ориентированного программирования поддерживают виртуальные методы.
- Объясните возможности и назначение абстрактных классов.
- Может ли производный класс получить доступ к закрытым членам базового класса?
Тема 8. Потоковый ввод-вывод
- Что понимается под потоком ввода-вывода?
- Назовите стандартные потоки данных.
- Каким образом определяется конец потока ввода?
- Для каких целей используется буферизация потоков ввода-вывода.
- В каких случаях используется принудительный сброс буферов потоков.
- Укажите средства, с помощью которых выполняется перенаправление потоков.
- Укажите особенности представления строк в символьных и двоичных потоках.
- Что такое текущая позиция потока?
- Назовите основные потоковые классы.
- Перечислите методы класса Stream.
- Перечислите свойства класса Stream.
- В каком отношении находятся классы Stream и FileStream.
- Что нужно указать при создании объекта класса FileStream?
- Как можно использовать объект класса FileInfo при создании объекта класса FileStream?
- Назовите возможности метода Seek().
- Как выполняются обмены с объектами (потоками) класса FileStream?
- Назовите классы для представления текстовых потоков.
- Назовите несколько методов записи в текстовый поток.
- Перечислите методы объектов класса StreamReader.
- В каких случаях для объектов класса может выполняться сериализация?
Тема 9. Визуальное проектирование приложений
- В чем отличие событийного управления от директивного управления?
- Какими средствами поддерживается механизм управления по событиям?
- Что такое обработчик события?
- Каким образом можно изменить свойства элементов управления?
- Каким образом связываются элементы управления и обработчики событий?
- Какими средствами можно организовать передачу данных в подчиненную форму?
- Каким образом организовать прием данных из подчиненной формы?
- Укажите типовые отображаемые элементы управления пользовательского интерфейса.
- Укажите типовые неотображаемые элементы управления.
Тема 10. Исключения
- Что такое исключение?
- В чём различия синхронных и асинхронных ситуаций?
- Для обработки каких ситуаций применяется механизм исключений?
- Назовите классы системных исключений.
- Объясните назначение try-блока и приведите его форматы.
- Перечислите форматы обработчиков (ловушек) исключений.
- Когда выполняется блок завершения обработки исключений?
- В чем отличие исключения от прерывания?
- Какими средствами поддерживается перехват исключений?
- Что происходит в случае, если исключение не перехвачено?
- Какими средствами могут обрабатываться ошибки времени исполнения программ?
- Каким образом можно перехватывать все исключения?
- Каким образом можно перехватить конкретное исключение?
- Почему возникает необходимость в генерировании исключений в коде программы?
- Может ли исключение генерироваться повторно, после того, как оно было перехвачено?
- Каким образом отображается трассировка событий, предшествовавших возникновению исключения?
- В каком случае обработка исключения может прекратить выполнение программы?
- Назовите свойства класса System.Exception, которые полезны при обработке исключений.
- Как применять исключения для управления программой?
- Объясните назначение и возможности операции checked.
- Перечислите конструкторы класса Exception.
- Объясните правила применения двух форм оператора throw.
Тема 11. Интерфейсы
- Для чего предназначен интерфейс?
- Что такое наследование реализации?
- Что такое наследование специфицированной функциональности?
- Какие механизмы C# обеспечивают реализацию наследования специфицированной функциональности?
- Что такое интерфейс?
- Какие объявления могут входить в декларацию интерфейса?
- В чём отличия интерфейса от класса?
- Как проявляется принцип полиформизма при использовании интерфейсов?
- Что такое прототип метода и где прототипы используются?
- Назовите правила реализации классом интерфейса.
- Что такое принцип подстановки Лискова?
- Можно ли объявить интерфейс с модификатором static?
- Что такое спецификация базы интерфейса?
- Какие модификаторы допустимы для члена интерфейса?
- Какой статус доступа имеют члены интерфейса?
- Приведите формат объявления свойства в интерфейсе.
- Какие поля допустимы в объявлении интерфейса?
- В чём различия прототипа метода в абстрактном классе от прототипа метода в интерфейсе?
- В чём различия и сходства интерфейса и абстрактного класса?
- Что такое реализация члена интерфейса?
- Является ли интерфейс типом?
- К какому виду типов относится интерфейс?
- Доступ к каким членам класса, реализующего интерфейс, обеспечивает ссылка с типом интерфейса?
- Как с помощью интерфейсов обеспечивается динамическое связывание?
- Что такое наследование интерфейсов?
- Какие элементы могут быть членами интерфейса?
- Каким образом реализуются интерфейсы с помощью класса?
Тема 12. Перечисления и структуры – типы значений
- В чем заключается отличие объектов, создаваемых на базе классов и на базе структур?
- Как можно определить свой тип значений?
- Приведите формат объявления перечисления.
- Что такое базовый тип перечисления?
- Что такое список перечисления?
- Как инициализируются константы перечисления?
- Приведите правила обращения к константам перечисления.
- Какой тип имеет константа перечисления?
- Когда константа перечисления воспринимается как значение с базовым типом перечисления?
- Перечислите операции, применимые к константам перечислений.
- Назовите операции, не применимые к константам перечислений.
- Где допустимо применять константы перечисления?
- Назовите статические методы типов перечислений.
- Как можно получить тип перечисления?
- В чём различия структур и классов?
- Назовите допустимые модификаторы структур.
- Почему в структурах отсутствует финализатор?
- Объясните особенности копирования структур.
- Что называют упаковкой?
- Когда выполняется упаковка при работе со структурами?
- Объясните особенности и возможности класса ArrayList.
- Что определяет интерфейс, реализованный структурой?
- В каком интерфейсе размещён прототип метода CompareTo()?
- Какой метод используется в методе ArraySort() для сравнения элементов сортируемого массива?
Тема 13. Делегаты, события и таймеры
- В чём основное назначение делегата?
- Назовите этапы применения делегатов.
- Члены каких видов могут присутствовать в делегате-типе?
- Объясните назначение элементов объявления делегата-типа.
- Как объявить ссылку с типом делегата?
- Как определяется конструктор делегата?
- Как создать экземпляр делегата?
- Какие аргументы можно использовать при обращении к конструктору делегата?
- Где может размещаться объявление делегата-типа?
- Каковы возможности свойств Method и Target?
- Для чего применяются массивы делегатов?
- Что такое многоадресный экземпляр делегата?
- Какие средства поддерживают работу с многоадресными экземплярами делегатов?
- Как получить массив делегатов из многоадресного делегата?
- Что такое механизм обратного вызова?
- Как используются делегаты для организации обратных вызовов?
- Что такое анонимный метод?
- Как специфицируется сигнатура анонимного метода?
- Приведите пример размещения анонимного метода в обращении к методу, требующему обратных вызовов.
- Что такое событие в языке C# ?
- Объясните синтаксис оператора посылки сообщения о событии.
- Приведите формат объявления события.
- Что такое переменная события?
- Что определяет делегат, указанный в объявлении события?
- Какие действия предусматривает подписка на события?
- Назовите этапы работы с событиями
Тема 14. Основы графики и работа с внешними устройствами
- Что понимается под контекстом отображения?
- Какими средствами можно получить контекст отображения?
- На каких элементах формы можно выполнять рисование?
- Каким образом решается проблема перерисовки изображения стандартных элементов управления?
- Каким образом решается проблема перерисовки изображения, сформированного программой?
- Сформулируйте отличия растрового и векторного изображений.
- Укажите типы шрифтов, используемых при графическом выводе.
Тема 15. Коллекции и параметризация библиотечных классов
- В чем отличие динамических структур данных от массивов?
- Каким образом определить тип извлеченного из стека элемента?
- Чем отличается стек от динамического массива?
- Чем отличается очередь от динамического массива?
Тема 16. Средства для работы с файловой системой
- Назовите принципиальные особенности файла.
- Укажите составные части полного имени файла в MS Windows.
- Как задать относительное имя файла?
- Назовите основные классы .NET Framework для работы с файловой системой.
- В каком пространстве имен находятся классы для работы с файловой системой?
- Перечислите основные методы класса FileStreamInfo.
- Какими средствами можно читать данные из файла, не применяя потоков ввода-вывода?
- Какими средствами можно записывать данные в файл, не применяя потоков ввода-вывода?
- Перечислите свойства класса Text.Encoding, определяющие выбор кодовых таблиц.
- Можно ли определить время изменения файла?
- Укажите типовые атрибуты файла.
- Какими средствами можно изменить атрибуты файла?
- Укажите типовые атрибуты каталога.
- Какими средствами можно изменить атрибуты каталога?
- Что такое текущий каталог?
- Можно ли изменить текущий каталог?
Тема 17. Перегрузка операций
- Приведите примеры современных языков программирования, в которых отсутствует механизм перегрузки операций.
- Что понимается под интеграцией типа, определяемого программистом-пользователем, в систему типов языка?
- Укажите, как формируется имя операции-функции при ее определении.
- Можно ли определить нестатическую операцию-функцию?
- Перечислите те унарные операции языка C#, для которых разрешена перегрузка.
- Перечислите те бинарные операции языка C#, для которых разрешена перегрузка.
- Назовите особенности перегрузки операций сравнения.
- В чем особенности перегрузки операций присваивания?
- Назовите основные требования к параметрам операции-функции.
- Сколько параметров у операции-функции приведения типов?
- В чем синтаксические различия операций-функций явного и неявного приведения типов?
- Как формируется имя операции-функции приведения типов?
- Какая операция-функция и когда вызывается автоматически?
- Назовите общие требования к операциям-функциям.
- Перечислите ограничения, наложенные на операции-функции приведения типов.
- В чем особенности операций-функций перегрузки унарных операций декремента и инкремента?
Тема 18. Обобщенное программирование
- Что такое обобщение?
- Какие объявления могут быть параметризованы типами?
- Приведите формат декларации обобщенного класса.
- Что такое типизирующий параметр?
- Как и когда выполняется замещение типизирующих параметров типизирующими аргументами?
- Что такое специализированный (иначе – сконструированный) тип?
- Какое количество типизирующих параметров допустимо в декларации?
- Какова роль списка ограничений типизирующих параметров?
- Приведите формат списка ограничений типизирующих параметров.
- Перечислите все виды ограничений типизирующих параметров.
- Что такое свободные типизирующие параметры?
- Перечислите требования к свободным типизирующим параметрам.