Содержание
- 2. Содержание лекции Функции. Простые функции Передача аргументов в функции Значения, возвращаемые функцией Ссылки на аргументы Перегруженные
- 3. Что такое функция? Функция – это именованное объединение группы операторов, которое может быть вызвано из других
- 4. Что такое функция?
- 5. Простые функции void starline() { for (int i=0; i cout cout } int main(){ starline(); cout
- 6. Объявление функции Как и переменные, функции нельзя использовать до указания необходимых атрибутов. Есть два способа описать
- 7. Пример void starline(); int main(){ starline(); cout starline(); cout starline(); } void starline() { // ...
- 8. Пример ************************************************** Username: Test User ************************************************** Password: ****** **************************************************
- 9. Определение функции Определение функции состоит из заголовка и тела функции. Заголовок функции должен соответствовать её прототипу.
- 10. Определение без объявления Объявление функции (прототип) может отсутствовать, если определение функции происходит раньше, чем первый её
- 11. Передача аргументов Аргумент – единица данных, передаваемая программой в функцию. Аргументы позволяют функции оперировать различными значениями
- 12. Передача констант в функцию void repchar(char, int); int main(){ repchar('-', 30); cout repchar('+', 30); cout repchar('-',
- 13. Передача констант в функцию ------------------------------ Username: Test User ++++++++++++++++++++++++++++++ Password: ****** ------------------------------
- 14. Передача аргументов Два правила: Важно соблюдать порядок следования аргументов Типы аргументов в объявлении и определении должны
- 15. Передача значений переменных void repchar(char symbol, int n); int main(){ char symbol_in; int n_in; cout cin
- 16. Передача аргументов по значению void square(int x) { x = x*x; } int main(){ int x
- 17. Прототипы float calc_dist(int, int, int, int); // Not bad! float calc_dist(int x1, int y1, int x2,
- 18. Возвращаемое значение Для того, чтобы вернуть вызывающей программе значение используется оператор return float calc_dist(int x1, int
- 19. Возвращаемое значение int main(){ int x1=1, y1=1; int x2=0, y2=-1; float dist1 = calc_dist(0, 0, x1,
- 20. Возвращаемое значение float calc_dist(int x1, int y1, int x2, int y2) { float dist = sqrt(pow(x2
- 21. Возвращаемое значение Количество аргументов функции может быть произвольным, но возвращаемое значение – всегда только одно. Есть
- 22. Ссылки на аргументы Ссылка является псевдонимом, или альтернативным именем переменной. Наиболее важное применение ссылок – передача
- 23. Ссылки на аргументы void increment(int& number) { number = number + 1; } int main(){ int
- 24. Пример void swap(int&, int&); int main(){ int a = 101, b = 202; swap(a, b); //
- 25. Передача по указателю void swap(int* x, int* y) { int temp = *x; *x = *y;
- 26. Что получим? void swap(int* x, int* y) { int* temp; temp = x; x = y;
- 27. Передача указатель/по ссылке Передача указателя в функцию в качестве аргумента похожа на передачу по ссылке. Но
- 28. Передача массивов void degrees2radians(int length, float arr[]) { for (int i = 0; i arr[i] *=
- 29. Передача массивов void degrees2radians(int length, float arr[]) { cout // ... } int main(){ float degrees[]
- 30. Немного сложнее void print_matrix(int matrix[][], int m_size) { for (int i = 0; i for (int
- 31. Немного сложнее void print_matrix(int matrix[3][3], int m_size) { for (int i = 0; i for (int
- 32. Объявление функции с аргументами в виде массива Можно использовать следующие форматы объявления: void print_matrix(int matrix[3][3], int
- 33. Почему?
- 34. Передача массивов: указатели void degrees2radians(int length, float* arr) { for (int i = 0; i arr[i]
- 35. Передача массивов: указатели void degrees2radians(int length, float* arr) { for (int i = 0; i arr[i]
- 36. Немного сложнее void print_matrix(int* matrix[], int m_size) { for (int i = 0; i for (int
- 37. Немного сложнее void print_matrix(int** matrix, int m_size) { for (int i = 0; i for (int
- 38. Перегрузка функций Перегруженная функция выполняет различные действия, зависящие от типов данных, передаваемых ей в качестве аргументов.
- 39. Пример void starline() { for (int i=0; i cout cout } void repchar(char symbol, int n)
- 40. Перегрузка функций Очевидный недостаток: разработчику нужно запомнить все имена функций и различия между действиями, выполняемыми функциями.
- 41. Улучшенная версия примера void repchar() { for (int i=0; i cout cout } void repchar(char symbol)
- 42. Улучшенная версия примера int main() { repchar(); repchar('#’); repchar('$', 15); // ************************************************** // ################################################## // $$$$$$$$$$$$$$$
- 43. Как это работает? Довольно просто: с помощью сигнатуры функции, которая позволяет различать между собой функции по
- 44. Различные типы аргументов void print(int i) { cout } void print(double f) { cout } void
- 45. Пример int main() { print(10); print(101.11); print("Hello World"); // It is an int: 10 // It
- 46. Рекурсия Рекурсия – это средство программирование, позволяющее функции вызывать саму себя на выполнение. Самые популярные примеры:
- 47. Простейший пример unsigned long fact(unsigned long n) { if (n > 1) return n * fact(n
- 48. Простейший пример int fact(int n) { if (n > 1) return n * fact(n-1); else return
- 49. Рекурсия
- 50. Рекурсия Каждая рекурсия должна включать в себя условие окончания рекурсии. В противном случае рекурсия будет происходить
- 51. Еще один пример // 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,
- 52. Встраиваемые функции Использование функций является экономичным с точки зрения использования памяти, т.к. вместо дублирования используется механизм
- 53. Встраиваемые функции
- 54. Когда использовать? Обычно встраиваемые функции представляют собой небольшой фрагмент кода. В этом случае дополнительные инструкции, необходимые
- 55. Когда использовать? Неочевидное решение: использовать встраиваемые функции (inline functions). Отличие встраиваемых функций от обычных заключается в
- 56. Пример inline void starline() { for (int i=0; i cout cout } int main(){ starline(); cout
- 57. Встраиваемые функции Важно: ключевое слово inline является рекомендацией компилятору, которая может быть проигнорирована. В случае игнорирования,
- 58. Аргументы по умолчанию В C++ можно организовать функцию так, чтобы ее можно было вызвать вообще не
- 59. Улучшенная версия примера void repchar() { for (int i=0; i cout cout } void repchar(char symbol)
- 60. Улучшенная версия примера void repchar(char symbol='*', int n=50) { for (int i=0; i cout cout }
- 61. Улучшенная версия примера void repchar(char symbol='*', int n=50); int main() { repchar(); repchar('#’); repchar('$', 10); }
- 62. Аргументы по умолчанию Опускать при вызове можно только аргументы, стоящие в конце списка при объявлении функции.
- 63. Область видимости и класс памяти Два аспекта, касающихся взаимодействия переменных и функций: Область видимости Класс памяти.
- 64. Типы области видимости Три типа области видимости: Локальная область видимости Область видимости файла (Область видимости класса)
- 65. Классы памяти Существует два класса памяти: automatic (автоматический) и static (статический). У переменных первого класса время
- 66. Локальные переменные Переменные, определяемые внутри функции (включая функцию main), называются локальными, поскольку их область видимости ограничивается
- 67. Локальные переменные Создаются и уничтожаются при входе и выходе из функции соответственно. Компилятор не инициализирует локальные
- 68. Глобальные переменные Глобальные переменные определяются вне каких-либо функций (а также вне классов). Глобальные переменные видимы из
- 69. Глобальные переменные Глобальные переменные имеют статический класс памяти, что означение их существование в течение всего времени
- 70. Статические переменные Существует два вида статических переменных: Статические локальные переменные Статические глобальные переменные Статическая локальная переменная
- 71. Пример float get_avg(float new_number) { static float total = 0; static int count = 0; count++;
- 72. Область видимости/Класс памяти
- 73. Возвращение значения по ссылке В функции можно не только передавать аргументы с помощью ссылок, но также
- 74. Пример int x; int& setx(); int main() { setx() = 92; cout // x = 92
- 75. Возвращение значения по ссылке Вызов функции интерпретируется как значение, получаемое при его выполнении: у = squareroot(x);
- 76. Еще примеры int x; int& setx(); int main() { setx() = 92; cout return 0; }
- 77. Зачем всё это? В процедурном программирование существует очень мало задач, в которых может понадобиться возвращать значение
- 78. Константные аргументы функции void aFunc(int& a, const int& b); int main() { int alpha = 7,
- 79. Пример вопроса на экзамене Значение аргумента по умолчанию: Может использоваться вызывающей программой Может использоваться функцией Должно
- 80. Пример вопроса на экзамене Каков результат работы этой программы?
- 81. Пример задачи на экзамене Написать функцию, которая принимает количество секунд, переводит их формат и выводит на
- 83. Скачать презентацию


























![Передача массивов void degrees2radians(int length, float arr[]) { for (int i =](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1037320/slide-27.jpg)
![Передача массивов void degrees2radians(int length, float arr[]) { cout // ... }](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1037320/slide-28.jpg)
![Немного сложнее void print_matrix(int matrix[][], int m_size) { for (int i =](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1037320/slide-29.jpg)
![Немного сложнее void print_matrix(int matrix[3][3], int m_size) { for (int i =](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1037320/slide-30.jpg)




![Немного сложнее void print_matrix(int* matrix[], int m_size) { for (int i =](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1037320/slide-35.jpg)













































Модель взаимодействия
Разбор задач ЕГЭ. Определение скорости передачи информации. В10
Внедрение программного обеспечения (лекция №7)
Структура проекта Delphi
Библиотека, как ресурс формирования гражданской и правовой культуры
Программирование на языке Паскаль
Носители информации (результаты анкетирования)
Структура каталогов операционных систем
Компьютерная помощница - мышь Урок 3. 5 класс
Язык запросов
Преобразование координат. Методическое указание для сотрудников УЗиМР
Толковый компьютерный словарь
Сетевое передающее оборудование
SimShop. Mobile version comment
Geometry Fin Interface
Komanda ATTRIB maina atribūtus failus un direktorijas
Логические основы компьютера
Решение задач в среде табличного процессора Excel
Программирование на языке C++
Практическая работа. Файлы и файловая структура
Библиографическое описание (БО)
Презентация на тему Алгоритм и алгоритмизация
Original graphic for inspiration
Опасности глобальной информатизации гуманитарной науки
4
嵌入式系统的Boot Loader技术
Классы эквивалентности
Диаметр, радиус и центр графа