
- •Раздел 1. Вопросы по общепрофессиональным дисциплинам
- •1)Понятие программирования. Жизненный цикл по. Восходящее и нисходящее проектирование по.
- •2) Основные структуры программирования. Операторы языка си Базовые структуры программирования
- •3)Функции. Шаблоны функций, перегрузка функций.
- •4) Пользовательские типы данных: назначение, ввод-вывод.
- •5)Статические и динамическое распределение памяти.
- •6) Динамические структуры данных (стек, очередь, список).
- •7)Объектно-ориентированное программирование. Классы. Конструкторы. Деструкторы.
- •8)Паттерны проектирования и программирования
- •9) Общая классификация видов информационных технологий и их реализация в технических областях.
- •10)Процессы передачи, обработки и накопления данных в информационных системах.
- •11) Фон Неймановская архитектура вычислительных машин. Принципы фон Неймана. Состав и устройство персонального компьютера.
- •12)Чипсет и шинно-мостовая архитектура системной платы.
- •13)Микроархитектура процессоров Intel Core. Исполнение программного кода на основе конвейерной обработки
- •14)Архитектура оперативного запоминающего устройства на основе динамической памяти с произвольным доступом
- •15)Принцип работы электронной памяти различных типов. Параметры микросхем памяти.
- •16)Архитектура графической подсистемы. Принцип расчета трехмерного изображения. Рендеринг.
- •17)Структура и принцип действия накопителя на жестких магнитных дисках. Последовательная шина sata.
- •18)Структура и принцип действия оптических приводов cd и dvd.
- •19) Внутренние и внешние параллельные и последовательные компьютерные шины
- •20) Средства передачи информации – кабельные и беспроводные каналы связи
- •21)Основы теории управления. Общие принципы системной организации.
- •22)Рабочие операции и операции управления.
- •23 ) Характеристики объекта управления: устойчивость, управляемость, наблюдаемость.
- •24)Использование микропроцессоров и эвм в системах управления.
- •25)Общее информационное представление системы управления.
- •26)Понятие операционной системы, основные функции и назначение. Классификация ос.
- •27)Файловые системы: примеры, функции и назначение. Методы физической организации файлов
- •28) Архитектура операционной системы. Ядро и вспомогательные модули, функции и назначение. Загружаемые модули ядра.
- •29) Концепции построения структур хранилищ данных
3)Функции. Шаблоны функций, перегрузка функций.
Функция - это независимая совокупность объявлений и операторов, обычно предназначенная для решения определенной задачи. Программы на С++ состоят по крайней мере из одной функции main, но могут содержать и больше функций.
Различают полное и неполное объявление функции. Полное объявление, или определение, состоит из заголовка, в который входит тип возвращаемого значения, имя, формальные параметры, и тела, заключаемого в фигурные скобки. После закрывающейся фигурной скобки точка с запятой не ставится.
При неполном объявлении используется заголовок, после которого стоит точка с запятой (прототип функции).
В программе может быть только одно полное объявление и сколько угодно не полных. Последние, как правило, помещаются перед вызовом функции в программе, если определение расположено ниже по тексту, или в другом файле с исходным кодом.
При использовании большого количества функций неполные объявления помещают в т.н. “заголовочные“ файлы, которые включаются в начало текста программой директивой препроцессора #include.
Вызов функции передает управление из вызывающей функции к вызванной. Фактические аргументы, если они есть, передаются в вызванную функцию. Если в функцию передается копия объекта, то это передача по значению. Если в функцию передается адрес объекта, то это передача по ссылке (или указателю). При выполнении оператора return в вызванной функции управление и, возможно, возвращаемое значение передаются в вызывающую функцию.
Определение функции
Синтаксис определения функции следующий:
[<sc-specifier>][<type-specifier>]<declarator>
([<parameter-list>])
<function-body>
Спецификатор класса памяти <sc-specifier> задает класс памяти функции, который может быть или static или extern. Спецификатор типа <type-specifier> и декларатор <declaration> определяют тип возвращаемого значения и имя функции. Список параметров <parameter-list> - это список (возможно пустой) формальных параметров, которые используются функцией.
Тело функции <function-body> - это составной оператор, содержащий объявления локальных переменных и операторы.
Или:
тип <имя функции>(список параметров) { тело функции }
Шаблоны функций. Шаблоны позволяют создавать (конструировать) семейства родственных функций и классов. Цель введения шаблонов функций - автоматизация создания функций, которые могут обрабатывать разнотипные данные. Параметризовать в шаблоне функций можно тип возвращаемого функцией значения и типы любых параметров, количество и порядок размещения которых должны быть фиксированы.
Для параметризации используется список формальных параметров шаблона, который заключается в скобки <>. Каждый формальный параметр шаблона обозначается служебным словом class, за которым следует имя параметра (идентификатор).
Шаблон семейства функций состоит из двух частей - заголовка шаблона template <список_параметров_шаблона> и из определения функции, в котором тип возвращаемого значения и типы любых параметров обозначаются именами параметров шаблона, введенных в его заголовке. Те же имена параметров шаблона могут использоваться и в теле определения функции для обозначения типов локальных объектов. Механизм шаблонов функций позволяет автоматизировать подготовку переопределений перегруженных функций. При использовании шаблонов уже нет необходимости готовить заранее все варианты функций с перегруженным именем. Компилятор автоматически, анализируя вызовы функций в тексте программы, формирует необходимые определения именно для таких типов параметров, которые использованы в обращениях.
Перегрузка функций. При определении функций в своих программах вы должны указать тип возвращаемого функцией значения, а также количество параметров и тип каждого из них. В прошлом (если вы программировали на языке С), когда у вас была функция с именем add_values, которая работала с двумя целыми значениями, а вы хотели бы использовать подобную функцию для сложения трех целых значений, вам следовало создать функцию с другим именем. Например, вы могли бы использовать add_two_values и add_three_values. Аналогично если вы хотели использовать подобную функцию для сложения значений типа float, то вам была бы необходима еще одна функция с еще одним именем. Чтобы избежать дублирования функции, C++ позволяет вам определять несколько функций с одним и тем же именем. В процессе компиляции C++ принимает во внимание количество аргументов, используемых каждой функцией, и затем вызывает именно требуемую функцию. Предоставление компилятору выбора среди нескольких функций называется перегрузкой. В этом уроке вы научитесь использовать перегруженные функции. К концу данного урока вы освоите следующие основные концепции:
• Перегрузка функций позволяет вам использовать одно и то же имя для нескольких функций с разными типами параметров.
• Для перегрузки функций просто определите две функции с одним и тем же именем и типом возвращаемого значения, которые отличаются количеством параметров или их типом.
Перегрузка функций является особенностью языка C++, которой нет в языке С. Как вы увидите, перегрузка функций достаточно удобна и может улучшить удобочитаемость ваших программ.
Перегрузка функций позволяет вашим программам определять несколько функций с одним и тем же именем и типом возвращаемого значения. Например, следующая программа перегружает функцию с именем add_values. Первое определение функции складывает два значения типа int. Второе определение функции складывает три значения. В процессе компиляции C++ корректно определяет функцию, которую необходимо использовать:
Перегрузка
При определении функции необходимо указывать тип возвращаемого значения а также количество параметров и тип каждого из них. Допустим мы имеем функцию для сложения двух целых чисел, пусть имя её будет add1, она в программе потребовалась ещё как функция сложения трех чисел, тогда необходимо ввести новую функцию с именем add2. При использовании таких имен можно запутаться в параметрах, язык С++ позволяет создавать функции, с одним именем, но для различного числа параметров. Компилятор сам будет выбирать ту функцию которая ему подходит.
Int add (int a, int b)
{ return (a+b); }
Int add (int a, int b, int c)
{ return (a+b+c); }
Int main()
{ int a,b,c;
Float d,e ;
Count<<”a=”;
Cin>>a>>endl;
Cout<<”b=”;
Cin>>b>>endl;
Cout<<”c=”;
Cin>>c>>endl;
Cout<<”add(a,b)=”<<”add(a,b)”<<”\t”<<”add(a,b,c)=”<<add(a,b,c)<<endl;
D=add(d,e); }