Функции Функция – именованная последовательность описаний и операторов, выполняющая некоторое действие. Может иметь параметры и возвращать значение. Функция.

Презентация:



Advertisements
Похожие презентации
Практическое занятие 6. Функции. Большинство языков программирования используют понятия функции и процедуры. C++ формально не поддерживает понятие процедуры,
Advertisements

Лекция 6 Функции. Объявления и определения Объявление функции – указание имени функции, а также входных и выходных параметров Определение функции – указание.
Лекция 6 Функции. Объявления и определения Объявление функции – указание имени функции, а также входных и выходных параметров Определение функции – указание.
УКАЗАТЕЛИ. Переменная - это именованная область памяти с заданным типом. [=значение]; int a; //Переменная типа integer с именем a int b=2;// Переменная.
Структуры и объединения Structures and unions НГТУ ИРИТ кафедра ИСУ Ольга Пронина.
Преобразования типов В языке C/C++ имеется несколько операций преобразования типов. Они используются в случае, если переменная одного типа должна рассматриваться.
Лекция 9 Приведение типов. Классификация типов Типы С++ Пользовательские Встроенные (Фундаментальные) Адресные Арифтметические void Указатели Ссылки Массивы.
Лекция 7 Приведение типов. Классификация типов Типы С++ Пользовательские Встроенные (Фундаментальные) Адресные Арифтметические void Указатели Ссылки Массивы.
Информационные технологии Классы памяти auto static extern register Автоматические переменные создаются при входе в функцию и уничтожаются при.
Основы информатики Классы Заикин Олег Сергеевич zaikin.all24.org
Основы информатики Лекция. Функции Заикин Олег Сергеевич
Статические поля класса Статические поля хранят данные, общие для всех элементов класса. Статическое поле существует в единственном экземпляре для всех.
ПРОЦЕДУРЫ И ФУНКЦИИ CPascal Подпрограмма – группа операторов реализующая законченный алгоритм и оформленная как самостоятельная синтаксическая единица.
Подпрограммы: процедуры и функции Информатика. 1. Подпрограммы При решении различных задач часто возникает необходимость проводить вычисления по одним.
Обработка исключительных ситуаций Исключительная ситуация (исключение) – это ошибка, возникающая во время выполнения программы. Например, ошибка работы.
Инструкции C++ Условная инструкция Формат: if (условие) оператор; else оператор; Пример: if (i!=0) { if (j) j++; if(k) k++; else if(p) k--; } else i--;
МАССИВЫ 4 Определение 4 Описание 4 Обращение к элементам массива 4 Связь массивов с указателями 4 Примеры программ.
Лабораторная работа 4. Подпрограммы. Задание на лабораторную работу Написать программу, реализующую хранение информации, указанной в вариантах индивидуальных.
Лекция 8 Область видимости Время жизни. Область видимости Область видимости – характеристика именованного объекта Область видимости - часть текста программы,
Лекция 10 Структуры. Классификация типов данных Простые Целые, вещественные, void, перечисления Являются атомарными не состоят из других типов Адресные.
Транксрипт:

Функции Функция – именованная последовательность описаний и операторов, выполняющая некоторое действие. Может иметь параметры и возвращать значение. Функция должна быть объявлена и определена. Объявление функции (прототип, заголовок) задает имя, тип значения и список формальных параметров. Определение содержит кроме объявления тело функции в фигурных скобках. Вложенность функций в С++ не допускается!

Формат определения функции [класс] [inline] тип имя ( [список параметров] ) { тело функции } Класс определяет видимость функции extern - во всех файлах программы (по умолчанию) static – только в файле, в котором ф-ция определена Модификатор inline определяет функцию как встроенную. Компилятор по мере возможности будет вместо вызова функции помещать в точку вызова ее код. Тип может быть любым кроме массива (но может быть указателем на массив). Если значение не возвращается, используется void Список параметров определяет величины, значения которых передаются в функцию при ее вызове. Элементы списка разделяются запятыми. Для каждого параметра указывается тип и имя. В объявлениях имена можно опускать. Для возврата значения используется оператор return выражение

Вызов функции имя (список фактических параметров) Круглые скобки в С++ - операция с максимальным приоритетом // максимум трех чисел #include int max(int a, int b); int main() { int a, b, c; cout > a >> b >> c; cout b) return a; else return b; } Вызов функции без параметров: f()

Локализация имен Все величины, описанные внутри функции, а также ее параметры – локальные. Область видимости и жизни – тело функции (кроме статических переменных). Величины, описанные вне тела функций – глобальные. Локальные объекты перекрывают глобальные

Типы параметров Функции в С++ работают только с параметрами – значениями. Только массивы и функции передаются по адресу. Для передачи параметров по адресу используется либо указатель, либо ссылка. #include void f(int i, int* j, int& k) { i++; (*j)++; k++; } int main() { int i = 1, j = 1, k = 1; f( i, &j, k); cout

Параметры-константы. Значения по умолчанию. Указание перед именем параметра const запрещает его изменение. В заголовке у параметров могут быть указаны значения по умолчанию void f( const int n = 10);

Массивы как параметры Передается указатель на первый элемент. Если размер массива не является константой, то он должен передаваться внутрь функции. #include int sum(int mas[], const int n) { int s = 0; for (int i = 0; i < n; i++ ) s += mas[i]; return s; } int main() { const int n = 5; int marks[5] = { 1, 2, 3, 4, 5}; cout

Многомерные массивы Многомерные массивы передаются как двойные указатели ( int ** a). #include int sum(int **a, const int m, const int n) { int s = 0; for (int i = 0; i < m; i++ ) for (int j = 0; j < n; j++ ) s += a[i][j]; return s; } int main() { int m, n; cin >> m >> n; int **a, i, j; a = new int * [m]; for ( i = 0; i < m; i++) a[i] = new int [n]; for ( i = 0; i < m; i++) for (int j = 0; j > a[i][j]; cout

Рекурсивные функции long fact (long n) { return (n > 1) ? n * fact(n - 1) : 1; }

Перегрузка функций Одинаковые имена, но разные типы параметров. int max (int, int) char* max (char*, char*) Автоматическое преобразование типов может привести к неоднозначности Функции не могут быть перегружены, если отличаются только модификатором const или использованием ссылки.

Типы данных, определяемые пользователем typedef тип новое_имя [размер] Примеры: typedef unsigned long Cardinal; typedef char String [100]; Использование: const Cardinal p = ; String a,b,c;

Перечислимые типы Перечисления – способ определения числовых констант с различными значениями. Константы, не имеющие явно указанных значений, получают их в порядке возрастания. enum { список констант } Пример: enum {a, b, c=5, d} // a=0, b=1, c=5, d=6 Можно указать имя типа. Тогда переменной этого типа можно присваивать только одну из указанных констант Пример: enum year {winter, spring, summer, autumn}; year t; t = winter; cout

Структуры Аналог записей Паскаля. Содержат элементы разных типов. struct [имя типа] { тип1 имя1; тип2 имя2; … } [список_переменных];

Пример описания структуры #include struct student { char name[30], fam[30], gr[10]; int age; } vasya, group[25], *s; /* Для инициализации структуры значения полей берут в фигурные скобки */ student masha = {Mary", Ivanova", "05MOS1",18}; int main() { s = &masha; cout fam; // обращение к полям }

Структуры как параметры Структуры могут передаваться в функции и служить возвращаемым значением. struct ratio { int m,n; }; ratio add (ratio a, ratio b) { ratio c; c.m = a.m * b.n + a.n * b.m; c.n = a.n * b.n; return c; }

Битовые поля Поля структуры с размером в битах. Размер указывается через двоеточие после имени. struct flags { bool iszero:1; bool isgreat:1; int palette:6; };

Объединения Аналог записей с вариантами. Все поля располагаются по одному и тому же адресу. Длина объединения равна длине наибольшего поля. Используются для экономии памяти. Часто включаются внутрь структур. Пример: enum typeworker {student, teacher}; struct worker{ char fam[100]; typeworker wtype; union department{ char chair[100]; int group; };