- •Раздел 1 программирование || объектно-ориентированное программирование
- •Раздел 1 программирование || объектно-ориентированное программирование
- •9. Создание и обработка исключений на пример с#.
- •1. Общая структура программы на языке с. Роль и задача заголовочных файлов.
- •3. Принципы работы операторов ветвления и циклов, на примере языка с. (проверить)
- •(Проверить, не доделан)
- •Стандартные функции динамического выделения памяти
- •Динамическое выделение памяти для одномерных массивов
- •Динамическое выделение памяти для двумерных массивов
- •N·m·(размер элемента)
- •Умные указатели
- •Класс auto_ptr
- •Класс shared_ptr
- •New/delete и классы
- •Альтернативы new/delete
- •6. Понятие класса, типы классов, члены классов, на примере языка с#.
- •7. Перегрузка операторов и функций на примере языка с#. (проверить, не доделан)
- •9. Создание и обработка исключений на пример с#.
- •11. Стандартные типы данных языка с, операции над ними.
- •12. Стандартные типы данных языка с#, операции над ними.
- •Abstract Class Example:
- •Динамическое приведение указателя
- •Динамическое приведение ссылки
- •Const_cast — константное приведение типов данных
- •Reinterpret_cast — операция приведения типов данных
- •Неявные преобразования
- •Явные преобразования
- •Исключения преобразования типов во время выполнения
- •17. Понятие класса Object в языке c#.
- •Особенности производительности
- •18. Понятие коллекции и принцип работы в с#.
- •(Http://professorweb.Ru/my/csharp/charp_theory/level12/12_1.Php)
- •Раздел 2 базы данных
- •Раздел 2 базы данных
- •Раздел 2 базы данных
- •1. Файловые формы хранения данных. Преимущества и недостатки
- •2. [Done] Сетевые формы хранения данных. Преимущества и недостатки
- •3. Языки разметки как структуры хранения. Преимущества и недостатки
- •4. [Done] Основные понятия реляционных бд и используемая терминология
- •5. Модель данных – определение, реализация в разных формах хранения.
- •6. [Done] Многоуровневая архитектура бд. Субд, ее назначение.
- •7. [Done] Реляционные ключи – назначение, типы, примеры применения
- •8. [Done] Оператор select – формат, последовательность обработки
- •9. Теоретико-множественное описание и характеристические функции отношений. Аксиомы Армстронга
- •10. [Done] Содержание процесса нормализации бд
- •11. [Done] Содержательная трактовка первой нормальной формы бд
- •1Nf tables as representations of relations
- •12. [Done] Содержательная трактовка второй нормальной формы бд
- •13. Унарные операции реляционной алгебры
- •14. Бинарные операции реляционной алгебры
- •15. [Done] Классификация и содержательный смысл различных операций соединения
- •16. [Done]Особенности применения конструкций where, order by, group by, having и агрегирующих функций в языке sql
- •17. [Done] Подзапрос в языке sql: типы, особенности применения
- •18. [Done] Процедурные расширения языка sql – курсоры, подпрограммы, триггеры.
- •19. [Done] Механизм представлений в языке sql
- •20. [Done] Средства поддержки целостности данных в языке sql
- •Раздел 3 операционные системы || администрирование в операционных системах linux
- •Раздел 4 основы проектирования информационных систем || практические вопросы автоматизации предприятий
- •Раздел 4 основы проектирования информационных систем || практические вопросы автоматизации предприятий
- •1. Понятие автоматизации. Основные термины и определения. Цели автоматизации. Основные требования к автоматизации. Процессы автоматизации.
- •3. Анализ объекта автоматизации. Понятие методологии анализа объекта автоматизации. Основные методологии анализа.
- •4. Стандартизация систем. Классификация ис.
- •Раздел 5 анализ и проектирование на uml
- •Раздел 6 теория систем и системный анализ || теория информационных процессов и систем
- •1. Определения системы. Классификации систем, место ит-систем в этих классификациях.
- •2. Основные закономерности систем. (Лекции Гусаровой)
- •3. Модели систем – определение, классификации, содержательные примеры. (лекции Гусаровой)
- •4. Связи в системах – определение, классификации, содержательные примеры.
- •5. Связи в информационных моделях систем – реляционные, онтологические, по управлению; их особенности и содержательные примеры.
- •6. Процессы в теории систем – определения, примеры, содержательная трактовка (Лекции Гусаровой)
- •7. Основные информационные процессы – определения, содержательная трактовка, примеры.
- •8. Процесс обработки данных. Основные постановки задач. Классификация методов реализации процесса обработки данных
- •9. Задачи машинного обучения в обработке данных. Примеры содержательной постановки
- •10. Основные понятия машинного обучения – решающая функция, метод обучения, функция потерь, переобучение. Содержательные примеры.
- •11. Методы регрессионного анализа в обработке данных.
- •12. Статистические методы классификации в обработке данных.
- •13. Метрические методы классификации в обработке данных.
- •14. Линейные методы классификации в обработке данных.
- •15. Нейросетевые методы в обработке данных.
- •16. Методы кластерного анализа в обработке данных.
- •17. Отбор признаков-регрессоров в обработке данных
- •18. Метод главных компонент и его модификации в обработке данных
- •19. Сингулярное разложение матриц в обработке данных
- •Раздел 7
9. Создание и обработка исключений на пример с#.
(Туривный С.)
Функции обработки исключений на языке C# помогают обрабатывать любые непредвиденные или исключительные ситуации, происходящие при выполнении программы. При обработке исключений используются ключевые слова try, catch и finally для попыток применения действий, которые могут не достичь успеха, для обработки ошибок, если предполагается, что это может быть разумным, и для последующего освобождения ресурсов. Исключения могут генерироваться средой CLR, платформой .NET Framework или внешними библиотеками, либо кодом приложения. Исключения создаются при помощи ключевого слова throw.
Во многих случаях исключение может инициироваться не методом, вызванным непосредственно кодом, а другим методом, расположенным ниже в стеке вызовов. Когда это происходит, среда CLR выполняет откат стека в поисках метода с блоком catch для определенного типа исключения. При обнаружении первого такого блока catch этот блок выполняется. Если среда CLR не находит соответствующего блока catch где-либо в стеке вызовов, она завершает процесс и отображает пользователю сообщение.
Исключения имеют следующие свойства.
Исключения имеют типы, в конечном счете являющиеся производными от System.Exception.
Следует использовать блок try для заключения в него инструкций, которые могут выдать исключения.
При возникновении исключения в блоке try поток управления немедленно переходит к первому соответствующему обработчику исключений, присутствующему в стеке вызовов. В языке C# ключевое слово catch используется для определения обработчика исключений.
Если обработчик для определенного исключения не существует, выполнение программы завершается с сообщением об ошибке.
Не перехватывайте исключение, если его нельзя обработать, и оставьте приложение в известном состоянии. При перехвате System.Exception вновь инициируйте это исключение с использованием ключевого слова throw в конце блока catch.
Если в блоке catch определяется переменная исключения, ее можно использовать для получения дополнительной информации о типе произошедшего исключения.
Исключения могут явно генерироваться программной с помощью ключевого слова throw.
Объекты исключения содержат подробные сведения об ошибке, такие как состояние стека вызовов и текстовое описание ошибки.
Код в блоке finally выполняется, даже при возникновении исключения. Блок finally используется для освобождения ресурсов, например для закрытия потоков или файлов, открытых в блоке try.
Примеры:
try { // Code to try goes here. } catch (SomeSpecificException ex) { // Code to handle the exception goes here. // Only catch exceptions that you know how to handle. // Never catch base class System.Exception without // rethrowing it at the end of the catch block. }
try { // Code to try goes here. } finally { // Code to execute after the try block goes here. }
try { // Code to try goes here. } catch (SomeSpecificException ex) { // Code to handle the exception goes here. } finally { // Code to execute after the try (and possibly catch) blocks // goes here. }
(https://msdn.microsoft.com/ru-ru/library/ms173160.aspx, https://msdn.microsoft.com/ru-ru/library/ms173162.aspx)
10. Понятие шаблонов, и работа с шаблонами на примере С++.
(Туривный С.)
Шабло́ны (англ. template) — средство языка C++, предназначенное для кодирования обобщённых алгоритмов, без привязки к некоторым параметрам (например, типам данных, размерам буферов, значениям по умолчанию).
В C++ возможно создание шаблонов функций и классов.
Шаблоны позволяют создавать параметризованные классы и функции. Параметром может быть любой тип или значение одного из допустимых типов (целое число, enum, указатель на любой объект с глобально доступным именем, ссылка). Например, нам нужен какой-то класс:
class SomeClass{ int SomeValue; int SomeArray[20]; ... };
Для одной конкретной цели мы можем использовать этот класс. Но, вдруг, цель немного изменилась, и нужен еще один класс. Теперь нужно 30 элементов массива SomeArray и вещественный тип SomeValue элементов SomeArray. Тогда мы можем абстрагироваться от конкретных типов и использовать шаблоны с параметрами. Синтаксис: в начале перед объявлением класса напишем слово template и укажем параметры в угловых скобках. В нашем примере:
template < int ArrayLength, typename SomeValueType > class SomeClass{ SomeValueType SomeValue; SomeValueType SomeArray[ ArrayLength ]; ... };
Тогда для первой модели пишем:
SomeClass < 20, int > SomeVariable;
для второй:
SomeClass < 30, double > SomeVariable2;
Хотя шаблоны предоставляют краткую форму записи участка кода, на самом деле их использование не сокращает исполняемый код, так как для каждого набора параметров компилятор создаёт отдельный экземпляр функции или класса. Как следствие, исчезает возможность совместного использования скомпилированного кода в рамках разделяемых библиотек.
Шаблон функции начинается с ключевого слова template, за которым в угловых скобках следует список параметров. Затем следует объявление функции:
template< typename T > void sort( T array[], int size ); // прототип: шаблон sort объявлен, но не определён template< typename T > void sort( T array[], int size ) // объявление и определение { T t; for (int i = 0; i < size - 1; i++) for (int j = size - 1; j > i; j--) if (array[j] < array[j-1]) { t = array[j]; array[j] = array[j-1]; array[j-1] = t; } } template< int BufferSize > // целочисленный параметр char* read() { char *Buffer = new char[ BufferSize ]; /* считывание данных */ return Buffer; }
Ключевое слово typename появилось сравнительно недавно, поэтому стандарт[1] допускает использование class вместо typename:
template< class T >
Вместо T допустим любой другой идентификатор.
В классе, реализующем связный список целых чисел, алгоритмы добавления нового элемента списка, поиска нужного элемента не зависят от того, что элементы списка — целые числа. Те же алгоритмы применялись бы и для списка символов, строк, дат, классов игроков, и так далее.
template< class T > class List { /* ... */ public: void Add( const T& Element ); bool Find( const T& Element ); /* ... */ };
Параметрами шаблонов могут быть: параметры-типы, параметры обычных типов, параметры-шаблоны.
Для параметров любого типа можно указывать значения по умолчанию.
template< class T1, // параметр-тип typename T2, // параметр-тип int I, // параметр обычного типа T1 DefaultValue, // параметр обычного типа template< class > class T3, // параметр-шаблон class Character = char // параметр по умолчанию >
(https://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B_C%2B%2B)
