
- •1.Системы счисления.
- •2.Принцип программного управления.
- •3. Назначение и классификация языков программирования.
- •4.Понятие и состав систем программирования.
- •5. Понятие информации и алгоритмов.
- •6.Блок-схемы разветвляющихся алгоритмов.
- •7.Блок-схемы циклических алгоритмов.
- •8.Потоковый ввод/вывод данных.
- •9.Использование манипуляторов при вводе/выводе данных.
- •10.Управляющие коды-символы. Отображение специальных символов на экране монитора.
- •11.Форматированный ввод/вывод данных.
- •12.Строковый и символьный ввод-вывод информации.
- •14.Пространство имен. Ключевое слово using как директива.
- •15. Процессор и имена заголовочных файлов
- •16.Средства отладки программ ms vs
- •17.Выполнение приложения с использованием средств интерактивной отладки.
- •18.Выполнение приложения с использованием средств планируемой отладки.
- •20.Определение переменных. Переменные и константы.
- •Описание и инициализация переменных
- •Int k; // это переменная целого типа int
- •Задание и использование констант
- •21.Логические переменные и примеры их использования в программах.
- •22.Операции присваивания. Особенности выполнения. Условная операция ?:
- •Пример конструкции ветвления
- •25.Оператор перехода goto. Оператор return. Оператор return
- •Оператор goto
- •26.Особенности синтаксиса и выполнения операторов перехода continue, break.
- •Цикл for
- •Описание синтаксиса
- •30.Время существования и область видимости переменных (auto, static, extern, register).
- •31.Создание исполняемого файла.
- •32.Массив. Определение и инициализация массива.
- •Пример инициализации массива
- •33.Символы, строки (инициализация, алгоритмы). Символьный тип char
- •34.Стандартные функции работы со строками. Функции работы со строками c
- •35.Обработка символьной информации.
- •36.Инициализация многомерных массивов.
- •37.Матрицы. Инициализация, ввод, вывод, алгоритмы поиска в матрице.
- •38.Ввод, вывод двумерных массивов.
- •39.Операции над указателями. Типы указателей.
- •40. Указатели на указатели.
- •41.Указатели и строки.
- •42.Ссылочный тип данных.
- •43. Указатели на многомерные массивы.
- •44.Массивы и указатели. Понятие индекса. Инициализация. Доступ к компонентам.
- •45.Многомерные массивы. Связь между указателями и массивами. Связь между массивами и указателями
- •46.Объявление и определение функций.
- •47.Вызов и использование функций.
- •Возврат в вызывающую функцию
- •48.Способ передачи аргументов в функции. Массивы как параметры функций.
- •49.Перегрузка функций. Функции с переменным числом аргументов. Задание параметров функции по умолчанию.
- •50.Указатели как формальные параметры и как результат функций.
- •51.Ссылки как формальные параметры и как результат функций.
- •52.Использование указателей на функцию.
- •53.Передача указателя на функцию.
- •54.Использование макроопределений.
- •55.Динамические переменные. Основные свойства динамических переменных.
- •56.Динамические массивы.
- •57.Формирование динамических переменных с использованием библиотечных функций.
- •58.Формирование динамических переменных с использованием операций new и delete.
- •59.Массивы указателей как структура данных.
- •Типы данных, используемые при работе с массивами указателей
- •60.Многоуровневые указатели.
- •61.Динамические матрицы.
- •62.Передача параметров функции main. Передача параметров в функцию
- •Тип имя_функции (const тип_переменной* имя_переменной, …) Пример
Возврат в вызывающую функцию
По окончании выполнения вызываемой функции осуществляется возврат значения в точку ее вызова. Это значение присваивается переменной, тип которой должен соответствовать типу возвращаемого значения функции. Функция может передать в вызывающую программу только одно значение. Для передачи возвращаемого значения в вызывающую функцию используется оператор return в форме
return(ВозвращаемоеЗначение);
Действие оператора следующее: значение выражения, заключенного в скобки, вычисляется и передается в вызывающую функцию. Возвращаемое значение может использоваться в вызывающей программе как часть некоторого выражения. Оператор return также завершает выполнение функции и передает управление следующему оператору в вызывающей функции. Оператор return не обязательно должен находиться в конце тела функции.
Функции могут и не возвращать значения, а просто выполнять некоторые вычисления. В этом случае указывается пустой тип возвращаемого значения void, а операторreturn может либо отсутствовать, либо не возвращать никакое значение:
48.Способ передачи аргументов в функции. Массивы как параметры функций.
Передача собственно значения аргумента
При передаче в функцию параметров по значению в стек заносятся копии значений аргументов, и операторы функции работают с копиями, которые присваиваются соответствующим формальным параметрам. Формальный параметр, передаваемый по значению, равносилен локальной переменной функции – ему отводится место в локальной памяти функции, и изменение его значения в теле функции никак не влияет на значение аргумента (фактического параметра). Доступа к значениям аргументов у функции нет, а, следовательно, нет и возможности их изменить.
При вызове функции аргумент может задаваться константой, переменной или даже выражением и должен иметь тип, совместимый по присваиванию с типом формального параметра. Для аргументов запрещен файловый тип.
Передача адреса аргумента (передача по указателю)
При передаче по указателю в стек заносятся копии адресов аргументов, и функция осуществляет доступ по этим адресам, поэтому любые изменения значения формального параметра в теле функции приводят к изменению значения аргумента. Для этого при вызове функции аргумент задается в виде адреса переменной, а все обращения к параметру внутри функции должны явно разыменовываться. Формальныйпараметр, передаваемый по указателю, может иметь любой тип, однако тип аргумента должен совпадать с типом формального параметра.
Передача по ссылке
При передаче по ссылке обеспечивается непосредственный доступ из тела функции к соответствующему аргументу. При вызове функции аргумент задается в виде переменной (без указания символа адреса &), а все обращения к параметру внутри функции разыменовываются неявно.
49.Перегрузка функций. Функции с переменным числом аргументов. Задание параметров функции по умолчанию.
Под перегрузкой функции понимается, определение нескольких функций (две или больше) с одинаковым именем, но различными параметрами. Наборы параметров перегруженныхфункций могут отличаться порядком следования, количеством, типом.
Как уже обсуждалось ранее, по умолчанию параметры передаются функции через стек. Поэтому, технически, нет ограничения на количество передаваемых параметров – “запихать” можно сколько угодно. Проблема в том, как потом функция будет разбирать переданные параметры. Функции с переменным числом параметров объявляются как обычные функции, но вместо недостающих аргументов ставится многоточие. Пусть мы хотим сделать функцию, которая складывает переданные ей числа, чисел может быть произвольное количество. Необходимо каким-то образом передать функции число параметров. Во-первых, можно явно передать число параметров обязательным аргументом. Во-вторых, последний аргумент может иметь некоторое «терминальное» значение, наткнувшись на которое функция закончит выполнение. Общий принцип работы следующий: внутри функции берём указатель на аргумент, далее двигаемся к следующему аргументу, увеличивая значение указателя.
Язык С++ позволяет присваивать параметрам функции значения по умолчанию в том случае, когда при вызове функции не указываются параметры. Значения по умолчанию задаются синтаксически сходным образом с инициализацией переменных. Например, ниже объявляется функция f(), имеющая аргументом целую переменную, значением которой по умолчанию является величина 1: void f (int i = 1){...}
Теперь функция f() может вызываться двумя способами, как показано ниже: f(10); // явная передача значения f (); // функция использует значение по умолчанию
В первом случае аргументу i будет присвоено значение 10. Во втором случае i получит значение по умолчанию, равное 1.
Аргументы по умолчанию в языке С++ позволяют программисту писать более простой код. Для того, чтобы охватывать множество ситуаций, часто функция содержит больше параметров, чем это необходимо при ее наиболее типичном использовании. Используя аргументы по умолчанию, можно указать только аргументы, которые отличаются от значений по умолчанию в каждой конкретной ситуации.
Чтобы лучше представить себе причины использования аргументов по умолчанию, рассмотрим следующий практический пример. Он содержит следующую полезную функцию xyout(): // выводит строку в позиции X, Y void xyout (char *str, int x = 0, int у = 0) { if (!x) x = wherex (); if (!y) у = wherey(); gotoxy(x, y); cout << str; }