
- •7)Понятие структурного программирования. Базовые конструкции структурного программирования. Оператор «выражения».
- •8)Операторы ветвления. Условный оператор if. Оператор switch.
- •10)Операторы передачи управления. Оператор goto. Оператор break. Оператор continue. Оператор return.
- •11) Указатели. Инициализация указателей. Операции с указателями. Ссылки.
- •12)Массивы. Динамические массивы. Строки.
- •13)Типы данных, определяемые пользователем. Переименование типов. Перечисление.
- •14)Типы данных, определяемые пользователем. Структуры. Битовые поля. Объединения.
- •15)Функции. Объявление и определение функций.
- •16)Способы обмена данными между функциями. Глобальные переменные. Возвращаемое значение. Параметры функции. Передача массивов в качестве параметров. Параметры со значениями по умолчанию.
- •17)Рекурсивные функции. Функция main().
- •18)Перегрузка функций.
- •19)Шаблоны функции.
- •20)Директивы препроцессора. Директива #include. Директива #define. Директива #undef.
- •21)Директива препроцессора. Директивы условной компиляции.
- •22)Основные свойства объектно-ориентированного программирования. Понятие класса.
- •23)Классы. Описание класса. Описание объекта. Константные методы. Указатель this.
- •24)Конструкторы. Конструктор копирования. Статические элементы класса.
- •25)Деструкторы. Дружественные функции и классы.
- •26)Перегрузка операций. Перегрузка бинарных и унарных операций.
- •27)Перегрузка операций. Перегрузка операции присваивания. Перегрузка операции приведения типа. Перегрузка операции индексирования.
- •28)Наследование. Ключи доступа к элементам базового класса. Простое наследование.
- •29)Виртуальные методы. Механизм позднего связывания.
- •30)Абстрактные классы. Множественное наследование.
- •31)Шаблоны классов. Создание шаблонов. Использование шаблонов класса.
- •35)Форматирование данных при вводе - выводе в поток. Флаги и манипуляторы.
- •38)Модель программирования для os Windows. Механизм обработки сообщений в Windows. Группы сообщений.
16)Способы обмена данными между функциями. Глобальные переменные. Возвращаемое значение. Параметры функции. Передача массивов в качестве параметров. Параметры со значениями по умолчанию.
Способы взаимодействия функций:
- через глобальные переменные
- через возвращаемое значение
Механизм возврата из функции в вызывающую ее функцию реализуется оператором: return [выражение];
- через параметры функции
Формальные параметры – перечисленные в заголовке описания функции.
Фактические параметры – указанные при вызове функции.
При вызове:
а) вычисляются выражения стоящие на месте аргументов
б) выделяется память под формальные параметры и каждому присваивается значение соответствующего аргумента.
3 способа передачи параметра:
- по значению (функция получает копию значения аргументов)
- по адресу (функции передаются копии адресов аргументов)
- по ссылке 9передается адрес указанного при вызове параметра, а внутри функции обращения к параметру неявно разадресовываются)
void func(int i, int *j, int &k)
{cout<<++i<<++(*j)<<++k<<endl;}
void main()
{int a=1, b=2, c=3;
func(a, &b, c);
cout<<a<<b<<c;}
int func(const char*);
Параметры со значениями по умолчанию:
int f1(int a, int b=0);
f1(1,2); f1(100);
void f2( int i, int j=100, char *k=NULL);
f2(10); f2(4,5); f2(4,10,”Vasia”);
17)Рекурсивные функции. Функция main().
-рекурсивной называется функция, которая вызывает саму себя
n!=n*(n-1)!; 0!=1; 1!=1
long func(long n)
{if (n==0 || n==1) return 1;
return (n*func(n-1));}
Функция main():
1) тип main()
2) тип main(int argc, char *argv[])
int argc – количество параметров
char *argv[] – текстовое описание параметров
тип – void или int
18)Перегрузка функций.
Перегрузка функций - использование нескольких функций с одним и тем же именем, но с различными параметрами.
- компилятор определяет, какую именно функцию требуется вызвать, по типу фактических параметров (аргументов).
Если точного соответствия аргументов и параметров перегруженной функции не найдено:
1) производится попытка преобразования коротких типов в более длинные в соответствии с общими правилами (bool, char=>int; float=>double)
2) выполняется стандартное преобразование типов (int=>double, указатели=>void)
3) преобразование типов заданное пользователем
Неоднозначность может появиться:
- при преобразовании типов аргументов
- при использовании параметров-ссылок
- при использовании параметров со значениями по умолчанию
19)Шаблоны функции.
Шаблон – средство параметризации.
С помощью шаблонов функции можно определить алгоритм, который будет применяться к данным различных типов, а конкретный тип данных передается функции в виде параметра на этапе компиляции.
формат:
teamplate <class Type> заголовок функции {тело функции}
Сортировка методом выбора:
template <class T> void sort(T *b, int n)
{for(int i=0; i<n-1; i++)
{int min=i;
for(int j=i+; j<n; j++)
{if(b[j]<b[min]) min=j;}
T a=b[i];
b[i]=b[min];
}
}
Вызов шаблона:
const int n=20;
int b[n];
sort (b, n);
……..
double a[5];
sort(a, 5);