- •Программирование
- •1.Функции и процедуры в языках программирования.Передача параметров по значению и по ссылке.
- •3. Переменные в языках программирования. Имя, тип и значение переменной. Область видимости и время жизни переменной.
- •4. Среда вводв/вывода в современных языках программирования. Текстовые и двоичные файлы. Чтение, запись и позиционирование файлов.
- •5. Рекурсивные функции и алгоритмы. Примеры рекурсивных алгоритмов и программ
- •6. Основные структуры данных – линейные, односвязные и двусвязные списки. Основные операции. Примеры использования.
- •7. Основные структуры данных – деревья, бинарные деревья. Основные операции Примеры использования
- •8. Основные структуры данных – стек, очередь. Операции над ними.
- •9. Основные принципы ооп. Инкапсуляция, полиморфизм, наследование.
- •10. Статические и виртуальные методы класса. Иерархические библиотеки классов.
- •Базы данных
- •Основные понятия баз данных. Роль и место систем управления базами данных (субд). Этапы развития субд.
- •Субд должна удовлетворять выявленным и вновь возникающим требованиям конечных пользователей.
- •Основные функции и возможности субд. Наиболее распространенные сегодня субд и области их использования.
- •Реляционная модель данных. Понятия таблица, ключ, кортеж, атрибут, домен. Фундаментальные свойства отношений.
- •Фундаментальные свойства отношений
- •Основы реляционной алгебры. Операторы реляционной алгебры. Нормализация отношений. Операторы реляционной алгебры
- •Классификация моделей данных. Модель «Объект – свойство – отношение». Проектирование схемы базы данных.
- •Обеспечение целостности данных. Архитектура и модели "клиент-сервер" в технологии бд.
- •Язык sql. Назначение и основные операторы языка sql. Представления.
- •Понятие транзакции и ее свойства. Операторы commit, rollback.
- •Операционные системы, среды и оболочки
- •Назначение и основные функции операционных систем. Основные понятия – процесс, файл, пользователь.
- •Классификация операционных систем. Наиболее важные современные ос, их области использования.
- •Файловые системы ос. Основные функции и требования к файловым системам.
- •Управление процессами в ос. Жизненный цикл процесса. Рождение процесса, состояние ожидания, выполнение, окончание процесса. Виртуальная память процесса.
- •5. Механизмы синхронизации и обмена информацией между процессами (ipc). Разделяемая память, семафоры, именованные и неименованные каналы.
- •Пользователи компьютера. Имена, пароли, права пользователей. Управление доступом к компьютеру.
- •Пользовательский интерфейс ос. Командная строка, графический пользовательский интерфейс (gui). Основные элементы gui – окно, меню, кнопки, списки и т.Д.
- •Поддержка сетевых технологий в ос. Сетевые операционные системы. Сетевые службы – экспортируемые файловые системы, электронная почта, www-серверы.
- •Безопасность и надежность операционных систем. Способы создания информационных систем высокой надежности.
- •«Проектирование информационных систем»
- •Жизненный цикл программного изделия – анализ требований, проектирование, программирование, тестирование, эксплуатация и сопровождение. Модели жизненного цикла.
- •Сущность структурного и объектно-ориентированного подходов к проектированию информационных систем.
- •Диаграммы потоков данных (dfd). Основные и вспомогательные объекты диаграмм. Построение функциональной модели в виде иерархии диаграмм потоков данных.
- •Диаграммы потоков данных (dfd)
- •Объекты диаграмм.
- •Диаграммы «сущность – связь» (erd). Типы отношений (один к одному, один ко многим, многие ко многим). Построение схемы базы данных на основе erd диаграмм.
- •Теория систем и системный анализ
- •Основные понятия, характеризующие строение и функционирование системы
- •Понятие общесистемных закономерностей.
- •Основные преимущества и принципы системного подхода.
- •Методика системного анализа
- •Качественные методы описания систем. Метод мозговой атаки или коллективной генерации идей. Метод экспертных оценок. Метод «Дельфи».
- •Кибернетический подход к описанию систем.
- •Особенности анализа и синтеза технических систем.
- •Особенности анализа и синтеза эргатических систем.
- •Особенности анализа и синтеза организационных систем.
- •Основы теории управления
- •Понятие об управляемой системе. Примеры управляемых систем.
- •Функции управления.
- •Управление в технических системах. Задачи стабилизации и слежения.
- •Управление в человеко-машинных системах. Понятие о человеческом факторе.
- •Понятие об оптимальном управлении. Показатели и критерии управления.
3. Переменные в языках программирования. Имя, тип и значение переменной. Область видимости и время жизни переменной.
Переменная — это именованная область памяти, в которой хранятся данные определенного типа. У переменной есть имя и значение. Имя служит для обращения к области памяти, в которой хранится значение. Во время выполнения программы значение переменной можно изменять. Перед использованием любая переменная должна быть описана.
Область видимости и время жизни. Под областью видимости переменной понимается та часть исходного текста программы, где возможно использовать переменную (например, писать ее идентификатор в выражениях).
Возможны следующие варианты области видимости:
вся программа, как совокупность файлов. Т.е. после определения (definition), переменную можно использовать в любом файле программы, описав ее (declaration)
все функции файла
все блоки функции
некоторый блок и вложенные в него
Под временем жизни переменной понимается период выполнения программы, начиная с момента выделения для переменной места в оперативной памяти и заканчивая моментом освобождения этой памяти.
Область видимости и время жизни переменных определяется их описанием в соответствии со следующей таблицей.
Локальная(хранится в стеке, область видимости блок, время жизни от создания до конца)
статическая (хранится в область данных, область видимости блок, время жизни от создания до конца)
глобальная (вне функции) (хранится область данных, область видимости программа (extern), время жизни от создания до конца)
динамическая(хранится в куче, область видимости переменная-указатель, время жизни от создания до удаления)
Тип Описание типа Размер(байты)
Integer Целое (со знаком) 4
Boolean Логический тип 1
Single Вещественный(дробный) 4
Double Вещественный(дробный 8
Char символ 1
String строковый тип
Byte однобайтовое поле знака 1
Динамические переменные – это переменные, которые создаются (и уничтожаются) во время выполнения программы. В зависимости от того, кто отвечает за работу с такими переменными – компилятор или программист – различают языки с динамическим или статическим управлением памятью.
В языках С/С++ используется статическое управление памятью (в отличие, например, от таких языков прошлого, как ALGOL-60 или PL/I, где было реализовано динамическое управление памятью). Заметим, что Pascal тоже язык со статическим управлением памятью, как С/С++.
В С/С++ динамические переменные должен создавать и следить за их корректным использованием и уничтожением программист. Динамические переменные создаются в куче (heap) - специально отведенной для этой цели области оперативной памяти, которая располагается между стеком и статической областью команд и данных.
Для создания и уничтожения динамических переменных в С++ используются операторы new и delete, соответственно. В Си для этих целей используются функции стандартной библиотеки (malloc, calloc, и др. – для создания, и free для уничтожения). Значением оператора new (или функций стандартной библиотеки Си) является адрес созданной переменной, а в случае неудачи NULL.
