- •Раздел 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
Альтернативы new/delete
Как альтернативой можно воспользоваться С функциями (объявлены в stdlib.h) как malloc и free. Эти функции нельзя смешивать с операторами динамической памяти, то есть нельзя выделить память оператором new и освободить ее функцией free или наоборот.
Также не следует забывать системные возможности управления памятью, например в Windows API есть функции для управления кучей (HeapCreate, HeapAlloc, HeapFree,...) и виртуальной памятью (VirtualAlloc, VirtualFree,...).
(http://prog-cpp.ru/c-alloc/, http://darkraha.com/rus/cpp/cpp27.php)
6. Понятие класса, типы классов, члены классов, на примере языка с#.
(Туривный С.)
Класс — это логическая структура, позволяющая создавать свои собственные пользовательские типы путем группирования переменных других типов, методов и событий. Класс подобен чертежу. Он определяет данные и поведение типа. Если класс не объявлен статическим, то клиентский код может его использовать, создав объекты или экземпляры, назначенные переменной. Переменная остается в памяти, пока все ссылки на нее не выйдут из области видимости. В это время среда CLR помечает ее пригодной для сборщика мусора. Если класс объявляется статическим, то в памяти остается только одна копия и клиентский код может получить к ней доступ только посредством самого класса, а не переменной экземпляра.
Класс является ссылочным типом. При создании объекта класса переменная, к которой назначается объект, сохраняет только ссылку на память. При назначении ссылки на объект к новой переменной новая переменная ссылается на исходный объект. Изменения, внесенные через одну переменную, отображаются в другой переменной, поскольку обе они ссылаются на одни данные.
Структура является типом значения. При создании структуры переменная, к которой она назначается, сохраняет фактические данные структуры. При назначении структуры новой переменной выполняется ее копирование. Поэтому новая переменная и исходная переменная содержат две отдельных копии одних данных. Изменения, внесенные в одну копию, не влияют на другую копию.
Как правило, классы используются для моделирования более сложного поведения или данных, которые, как предполагается, будут изменены после создания объекта класса.Структуры лучше всего подходят для небольших структур данных, которые содержат преимущественно те данные, которые не предназначены для изменения после создания структуры.
Классы объявляются с помощью ключевого слова class, как показано в следующем примере.
public class Customer { //Fields, properties, methods and events go here... }
Ключевому слову class предшествует уровень доступа. Поскольку в данном случае используется public, любой может создавать объекты из этого класса. Имя класса указывается после ключевого слова class. Оставшаяся часть определения является телом класса, в котором задаются данные и поведение. Поля, свойства, методы и события в классе обозначаются термином члены класса.
Данные-члены — это те члены, которые содержат данные класса — поля, константы, события. Данные-члены могут быть статическими (static). Член класса является членом экземпляра, если только он не объявлен явно как static. Давайте рассмотрим виды этих данных:
Поля (field)
Это любые переменные, ассоциированные с классом.
Константы
Константы могут быть ассоциированы с классом тем же способом, что и переменные. Константа объявляется с помощью ключевого слова const. Если она объявлена как public, то в этом случае становится доступной извне класса.
События
Это члены класса, позволяющие объекту уведомлять вызывающий код о том, что случилось нечто достойное упоминания, например, изменение свойства класса либо некоторое взаимодействие с пользователем. Клиент может иметь код, известный как обработчик событий, реагирующий на них.
Функции-члены
Функции-члены — это члены, которые обеспечивают некоторую функциональность для манипулирования данными класса. Они включают методы, свойства, конструкторы, финализаторы, операции и индексаторы:
Методы (method)
Это функции, ассоциированные с определенным классом. Как и данные-члены, по умолчанию они являются членами экземпляра. Они могут быть объявлены статическими с помощью модификатора static.
Свойства (property)
Это наборы функций, которые могут быть доступны клиенту таким же способом, как общедоступные поля класса. В C# предусмотрен специальный синтаксис для реализации чтения и записи свойств для классов, поэтому писать собственные методы с именами, начинающимися на Set и Get, не понадобится. Поскольку не существует какого-то отдельного синтаксиса для свойств, который отличал бы их от нормальных функций, создается иллюзия объектов как реальных сущностей, предоставляемых клиентскому коду.
Конструкторы (constructor)
Это специальные функции, вызываемые автоматически при инициализации объекта. Их имена совпадают с именами классов, которым они принадлежат, и они не имеют типа возврата. Конструкторы полезны для инициализации полей класса.
Финализаторы (finalizer)
Вызываются, когда среда CLR определяет, что объект больше не нужен. Они имеют то же имя, что и класс, но с предшествующим символом тильды. Предсказать точно, когда будет вызван финализатор, невозможно.
Операции (operator)
Это простейшие действия вроде + или -. Когда вы складываете два целых числа, то, строго говоря, применяете операцию + к целым. Однако C# позволяет указать, как существующие операции будут работать с пользовательскими классами (так называемая перегрузка операции).
Индексаторы (indexer)
Позволяют индексировать объекты таким же способом, как массив или коллекцию.
Класс создается с помощью ключевого слова class. Ниже приведена общая форма определения простого класса, содержащая только переменные экземпляра и методы:
class имя_класса { // Объявление переменных экземпляра. доступ тип переменная1; доступ тип переменная2; //... доступ тип переменнаяN; // Объявление методов. доступ возращаемый_тип метод1 (параметры) { // тело метода } доступ возращаемый_тип метод2 (параметры) { // тело метода } //. . . доступ возращаемый_тип методN(параметры) { // тело метода } }
Обратите внимание на то, что перед каждым объявлением переменной и метода указывается доступ. Это спецификатор доступа, например public, определяющий порядок доступа к данному члену класса. Члены класса могут быть как закрытыми (private) в пределах класса, так открытыми (public), т.е. более доступными. Спецификатор доступа определяет тип разрешенного доступа. Указывать спецификатор доступа не обязательно, но если он отсутствует, то объявляемый член считается закрытым в пределах класса. Члены с закрытым доступом могут использоваться только другими членами их класса.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class UserInfo { // Поля класса public string Name, Family, Adress; public byte Age; // Метод, выводящий в консоль контактную информацию public void writeInConsoleInfo(string name, string family, string adress, byte age) { Console.WriteLine("Имя: {0}\nФамилия: {1}\nМестонахождение: {2}\nВозраст: {3}\n", name, family, adress, age); } } class Program { static void Main(string[] args) { // Создаем объект типа UserInfo UserInfo myInfo = new UserInfo(); myInfo.Name = "Alexandr"; myInfo.Family = "Erohin"; myInfo.Adress = "ViceCity"; myInfo.Age = 26; // Создадим новый экземпляр класса UserInfo UserInfo myGirlFriendInfo = new UserInfo(); myGirlFriendInfo.Name = "Elena"; myGirlFriendInfo.Family = "Korneeva"; myGirlFriendInfo.Adress = "ViceCity"; myGirlFriendInfo.Age = 22; // Выведем информацию в консоль myInfo.writeInConsoleInfo(myInfo.Name, myInfo.Family, myInfo.Adress, myInfo.Age); myGirlFriendInfo.writeInConsoleInfo(myGirlFriendInfo.Name,myGirlFriendInfo.Family,myGirlFriendInfo.Adress,myGirlFriendInfo.Age); Console.ReadLine(); } } }
(https://msdn.microsoft.com/ru-ru/library/x9afc042.aspx, https://msdn.microsoft.com/ru-ru/library/ms173109.aspx, http://professorweb.ru/my/csharp/charp_theory/level5/5_1.php)
