
- •Программирование
- •1.Функции и процедуры в языках программирования.Передача параметров по значению и по ссылке.
- •3. Переменные в языках программирования. Имя, тип и значение переменной. Область видимости и время жизни переменной.
- •4. Среда вводв/вывода в современных языках программирования. Текстовые и двоичные файлы. Чтение, запись и позиционирование файлов.
- •5. Рекурсивные функции и алгоритмы. Примеры рекурсивных алгоритмов и программ
- •6. Основные структуры данных – линейные, односвязные и двусвязные списки. Основные операции. Примеры использования.
- •7. Основные структуры данных – деревья, бинарные деревья. Основные операции Примеры использования
- •8. Основные структуры данных – стек, очередь. Операции над ними.
- •9. Основные принципы ооп. Инкапсуляция, полиморфизм, наследование.
- •10. Статические и виртуальные методы класса. Иерархические библиотеки классов.
- •Базы данных
- •Основные понятия баз данных. Роль и место систем управления базами данных (субд). Этапы развития субд.
- •Субд должна удовлетворять выявленным и вновь возникающим требованиям конечных пользователей.
- •Основные функции и возможности субд. Наиболее распространенные сегодня субд и области их использования.
- •Реляционная модель данных. Понятия таблица, ключ, кортеж, атрибут, домен. Фундаментальные свойства отношений.
- •Фундаментальные свойства отношений
- •Основы реляционной алгебры. Операторы реляционной алгебры. Нормализация отношений. Операторы реляционной алгебры
- •Классификация моделей данных. Модель «Объект – свойство – отношение». Проектирование схемы базы данных.
- •Обеспечение целостности данных. Архитектура и модели "клиент-сервер" в технологии бд.
- •Язык sql. Назначение и основные операторы языка sql. Представления.
- •Понятие транзакции и ее свойства. Операторы commit, rollback.
- •Операционные системы, среды и оболочки
- •Назначение и основные функции операционных систем. Основные понятия – процесс, файл, пользователь.
- •Классификация операционных систем. Наиболее важные современные ос, их области использования.
- •Файловые системы ос. Основные функции и требования к файловым системам.
- •Управление процессами в ос. Жизненный цикл процесса. Рождение процесса, состояние ожидания, выполнение, окончание процесса. Виртуальная память процесса.
- •5. Механизмы синхронизации и обмена информацией между процессами (ipc). Разделяемая память, семафоры, именованные и неименованные каналы.
- •Пользователи компьютера. Имена, пароли, права пользователей. Управление доступом к компьютеру.
- •Пользовательский интерфейс ос. Командная строка, графический пользовательский интерфейс (gui). Основные элементы gui – окно, меню, кнопки, списки и т.Д.
- •Поддержка сетевых технологий в ос. Сетевые операционные системы. Сетевые службы – экспортируемые файловые системы, электронная почта, www-серверы.
- •Безопасность и надежность операционных систем. Способы создания информационных систем высокой надежности.
- •«Проектирование информационных систем»
- •Жизненный цикл программного изделия – анализ требований, проектирование, программирование, тестирование, эксплуатация и сопровождение. Модели жизненного цикла.
- •Сущность структурного и объектно-ориентированного подходов к проектированию информационных систем.
- •Диаграммы потоков данных (dfd). Основные и вспомогательные объекты диаграмм. Построение функциональной модели в виде иерархии диаграмм потоков данных.
- •Диаграммы потоков данных (dfd)
- •Объекты диаграмм.
- •Диаграммы «сущность – связь» (erd). Типы отношений (один к одному, один ко многим, многие ко многим). Построение схемы базы данных на основе erd диаграмм.
- •Теория систем и системный анализ
- •Основные понятия, характеризующие строение и функционирование системы
- •Понятие общесистемных закономерностей.
- •Основные преимущества и принципы системного подхода.
- •Методика системного анализа
- •Качественные методы описания систем. Метод мозговой атаки или коллективной генерации идей. Метод экспертных оценок. Метод «Дельфи».
- •Кибернетический подход к описанию систем.
- •Особенности анализа и синтеза технических систем.
- •Особенности анализа и синтеза эргатических систем.
- •Особенности анализа и синтеза организационных систем.
- •Основы теории управления
- •Понятие об управляемой системе. Примеры управляемых систем.
- •Функции управления.
- •Управление в технических системах. Задачи стабилизации и слежения.
- •Управление в человеко-машинных системах. Понятие о человеческом факторе.
- •Понятие об оптимальном управлении. Показатели и критерии управления.
Программирование
1.Функции и процедуры в языках программирования.Передача параметров по значению и по ссылке.
Функция—это именованная последовательность описаний и операторов, выполняющая какое-либо законченное действие. Функция может принимать параметры и возвращать значение.
Использование функций ведет к повышению степени абстракции программы и упрощению структуры программы; позволяет избежать избыточности кода, т. к. функцию записывают один раз, а вызвать ее выполнение можно многократно из различных точек программы.
Процесс отладки программы, содержащей функции можно лучше структурировать. Часто используемые функции можно помещать в библиотеки.
Тип функции определяется типом возвращаемого значения и списком типов её формальных параметров.
Однако для того, чтобы компилятор мог осуществить проверку соответствия типов передаваемых фактических параметров типам формальных параметров до вызова функции нужно поместить объявление (прототип) функции.
[спецификатор-класса-памяти] [спецификатор-типа] имя-функции
([список-формальных-параметров])
{ тело-функции }
Передача параметров по значению и по ссылке.
Механизм параметров является основным способом обмена информацией между вызываемой и вызывающей функциями. Параметры в процедуры и функции можно передавать 2 способами - по значению и по ссылке. Отличия между этими двумя способами следующие - при передаче параметра по значению в процедуру (функцию) передается копия переменной, а при передаче по ссылке - оригинал (сама переменная)
2. Перегрузка операций и функции в языке С ++
Часто бывает удобно, чтобы функции, реализующие один и тот же алгоритм для различных типов данных, имели одно и то же имя. Если это имя мнемонично, то есть несет нужную информацию, это делает программу более понятной, поскольку для каждого действия требуется помнить только одно имя. Использование нескольких функций с одним и тем же именем, но с различными типами параметров, называется перегрузкой.
Компилятор определяет, какую именно функцию требуется вызвать, по типу фактических параметров. Этот процесс называется разрешением перегрузки (resolution). Тип возвращаемого функцией значения в разрешении не участвует. Механизм разрешения основан на достаточно сложном наборе правил, смысл которых сводится к тому, чтобы использовать функцию с наиболее подходящими аргументами и выдать сообщение, если такой не найдется.
Пример (варианты функций, определяющие наибольшее значение):
//возвращает наибольшее из двух целых: int max(int, int);
// возвращает подстроку наибольшей длины: char* max(char*, char*);
//возвращает наибольшее из первого параметра и длины второго: int max(int, char*);
// возвращает наибольшее из второго параметра и длины первого: int max(char*, int);
При вызове функции max компилятор выбирает соответствующий типу фактических параметров вариант функции (в приведенном примере будут последовательно вызваны все четыре варианта).
Если точного соответствия не найдено, выполняются продвижения порядковых типов в соответствии с общими правилами, например, bool и char в int, float в double и т. п. Далее выполняются стандартные преобразования типов, например, int в double или указателей в void*. Следующим шагом является выполнение преобразований типа, заданных пользователем, а также поиск соответствий за счет переменного числа аргументов функций. Если соответствие на одном и том же этапе может быть получено более чем одним способом, вызов считается неоднозначным и выдается сообщение об ошибке.
Неоднозначность может проявиться при:
-преобразовании типа;
-Использовании параметров-ссылок;
-использовании аргументов по умолчанию.
-Правила описания перегруженных функций:
перегруженные функции должны находиться в одной области видимости, иначе произойдет сокрытие аналогично одинаковым именам переменных во вложенных блоках;
перегруженные функции могут иметь параметры по умолчанию, при этом значения одного и того же параметра в разных функциях должны совпадать. В различных вариантах перегруженных функций может быть различное количество параметров по умолчанию.
Функции не могут быть перегружены, если описание их параметров отличается только модификатором const или использованием ссылки (например, int и const in t или int и int&).
Перегрузка операций
С ++ позволяет переопределить действие большинства операций так, чтобы при использовании с объектами конкретного класса они выполняли заданные функции, Это дает возможность использовать собственные типы данных точно так же, как стандартные. Обозначения собственных операций вводить нельзя. Можно перегружать любые операции, существующие в С ++, за исключением:
. .* ?: :: # ## sizeof
Перегрузка операций осуществляется с помощью методов специального вида (функций-операций) и подчиняется следующим правилам:
при перегрузке операций сохраняются количество аргументов, приоритеты операций и правила ассоциации (справа налево или слева направо), используемые в стандартных типах данных;
для стандартных типов данных переопределять операции нельзя;
функции-операции не могут иметь аргументов по умолчанию;
функции-операции наследуются (за исключением =);
функции-операции не могут определяться как ststic.
Функцию-операцию можно определить 3 способами: она должна быть либо методом класса, либо дружественной функцией класса, либо обычной функцией. В двух последних случаях функция должна принимать хотя бы один аргумент, имеющий тип класса, указателя или ссылки на класс.
Функция-операция, первый параметр которой имеет стандартный тип, не может определяться как метод класса.
Функция-операция содержит ключевое слово operator, за которым следует знак переопределяемой операции:
тип operator операция (список параметров) {тело функции}