Функции Короче, всё, что надо знать о функциях, поясню…
В математике • • y=f(x)=3*x Допустим x=2, тогда y=6 x=2, f(2)=3*2=6, y=6; Допустим x=5, тогда y=15 x=5, f(5)=3*5=15, y=15 Рассмотрим пока с x=2
Из чего состоит функция #include #include #include int f(int x); int main () { } Объявление функции f (Всё, что отмечено красным) Указываем, что она есть, то есть объявляем ее (принцип похож на объявление переменной). int y; y=f(2); cout<<"x = 2; y = 3*x = 3*2 = "<
Объявление можно опустить С объявлением: объявление; Здесь определение идёт после main int main () {…} определение {…} Без объявления: определение {…} Здесь определение идёт перед main int main () {…}
Из чего состоит функция #include #include #include int f(int x); int main () { } int y; y=f(2); cout<<"x = 2; y = 3*x = 3*2 = "<
Вызов функции #include #include #include int f(int x); int main () { int y; y=f(2) ; } int f(int x) { } Вызов функции (Всё, что отмечено оранжевым) Это место, где мы пользуемся функцией. cout<<"x = 2; y = 3*x = 3*2 = "<
Процесс #include #include #include Создаем переменную y, которая отвечает за int f(int x); значение функции при некотором значении x. int main () { Присваиваем y значение переменной. int y; y=f(2); cout<<"x = 2; y = 3*x = 3*2 = "<
#include #include #include int f(int x); int main () { Происходит вызов функции, где x =2. int y; y=f(2); cout<<"x = 2; y = 3*x = 3*2 = "<
#include #include #include int f(int x); int main () { Происходит вызов функции, где x =2. int y; y=f(2); cout<<"x = 2; y = 3*x = 3*2 = "<
#include #include #include int f(int x); int main () Возвращаем 6 или же значение { функции при x=2 (то есть int y; подставляем 6 вместо f(2) ) y=f(2); cout<<"x = 2; y = 3*x = 3*2 = "<
#include #include #include int f(int x); int main () Возвращаем 6 или же значение { функции при x=2 (то есть int y; подставляем 6 вместо f(2) ) y=6; cout<<"x = 2; y = 3*x = 3*2 = "<
Результат
В математике • • y=f(x)=3*x Допустим x=2, тогда y=6 x=2, f(2)=3*2=6, y=6; Допустим x=5, тогда y=15 x=5, f(5)=3*5=15, y=15 Теперь рассмотрим оба примера сразу
#include #include #include Процесс int f(int x); int main () { int y; y=f(2); cout<<"x = 2; y = 3*x = 3*2 = "<
#include #include #include X=2 int f(int x); int main () { int y; y=f(2); cout<<"x = 2; y = 3*x = 3*2 = "<
#include #include #include f(x)=f(2) int f(int x); int main () { int y; y=f(2); cout<<"x = 2; y = 3*x = 3*2 = "<
#include #include #include f(2)=3*2 int f(int x); int main () { int y; y=f(2); cout<<"x = 2; y = 3*x = 3*2 = "<
#include #include #include f(2)=6 int f(int x); int main () { int y; y=f(2); cout<<"x = 2; y = 3*x = 3*2 = "<
#include #include #include y=6 int f(int x); int main () { int y; y=6; cout<<"x = 2; y = 3*x = 3*2 = "<
#include #include #include X=5 int f(int x); int main () { int y; y=f(2); cout<<"x = 2; y = 3*x = 3*2 = "<
#include #include #include f(x)=f(5) int f(int x); int main () { int y; y=f(2); cout<<"x = 2; y = 3*x = 3*2 = "<
#include #include #include f(5)=3*15 int f(int x); int main () { int y; y=f(2); cout<<"x = 2; y = 3*x = 3*2 = "<
#include #include #include f(5)=15 int f(int x); int main () { int y; y=f(2); cout<<"x = 2; y = 3*x = 3*2 = "<
#include #include #include y=15 int f(int x); int main () { int y; y=f(2); cout<<"x = 2; y = 3*x = 3*2 = "<
Результат
Рассмотрим пример посложнее • • • y=f 1(m, n) – здесь уже не 1, а 2 переменных y=f 2(m, n) – здесь тоже f 1(m, n)=(m+n)/2 – найдём среднее арифметическое f 2(m, n)=(m-n)/2 – найдем полуразность Будем подставлять не просто числа, а числа в буквенном виде. То есть не f 1(8, 4), а a=8, b=4, f 1(a, b)
• • • • • • • #include #include int f 1(int m, int n); int f 2(int m, int n); int main () { int y; int a=8, b=4; y=f 1(a, b); cout<
• • • • • • • #include #include int f 1(int m, int n); int f 2(int m, int n); int main () { int y; int a=8, b=4; y=f 1(a, b); cout<
• • • • • • • #include #include int f 1(int m, int n); int f 2(int m, int n); int main () { int y; int a=8, b=4; y=f 1(a, b); cout<
• • • • • • • #include #include int f 1(int m, int n); int f 2(int m, int n); int main () { int y; int a=8, b=4; y=f 1(8, 4); cout<
• • • • • • • #include #include int f 1(int m, int n); int f 2(int m, int n); int main () { int y; int a=8, b=4; y=f 1(8, 4); cout<
• • • • • • • #include #include int f 1(int m, int n); int f 2(int m, int n); int main () { int y; int a=8, b=4; y=6; cout<
• • • • • • • #include #include int f 1(int m, int n); int f 2(int m, int n); int main () { int y; int a=8, b=4; y=f 1(a, b); cout<
• • • • • • • #include #include int f 1(int m, int n); int f 2(int m, int n); int main () { int y; int a=8, b=4; y=f 1(a, b); cout<
• • • • • • • #include #include int f 1(int m, int n); int f 2(int m, int n); int main () { int y; int a=8, b=4; y=f 1(a, b); cout<
• • • • • • • #include #include int f 1(int m, int n); int f 2(int m, int n); int main () { int y; int a=8, b=4; y=f 1(a, b); cout<
• • • • • • • #include #include int f 1(int m, int n); int f 2(int m, int n); int main () { int y; int a=8, b=4; y=f 1(a, b); cout<
• • • • • • • #include #include int f 1(int m, int n); int f 2(int m, int n); int main () { int y; int a=8, b=4; y=f 1(a, b); cout<
• • • • • • • #include #include int f 1(int m, int n); int f 2(int m, int n); int main () { int y; int a=8, b=4; y=f 1(a, b); cout<
• • • • • • • #include #include int f 1(int m, int n); int f 2(int m, int n); int main () { int y; int a=8, b=4; y=f 1(a, b); cout<
• • • • • • • #include #include int f 1(int m, int n); int f 2(int m, int n); int main () { int y; int a=8, b=4; y=f 1(a, b); cout<
• • • • • • • #include #include int f 1(int m, int n); int f 2(int m, int n); int main () { int y; int a=8, b=4; y=f 1(a, b); cout<
• • • • • • • #include #include int f 1(int m, int n); int f 2(int m, int n); int main () { int y; int a=8, b=4; y=f 1(a, b); cout<
• • • • • • • #include #include int f 1(int m, int n); int f 2(int m, int n); int main () { int y; int a=8, b=4; y=f 1(a, b); cout<
• • • • • • • #include #include int f 1(int m, int n); int f 2(int m, int n); int main () { int y; int a=8, b=4; y=f 1(a, b); cout<
• • • • • • • #include #include int f 1(int m, int n); int f 2(int m, int n); int main () { int y; int a=8, b=4; y=f 1(a, b); cout<
• • • • • • • #include #include int f 1(int m, int n); int f 2(int m, int n); int main () { int y; int a=8, b=4; y=f 1(a, b); cout<
Результат
• • • • • • • #include #include int f 1(int m, int n); int f 2(int m, int n); int main () { int y; int a=8, b=4; y=f 1(a, b); cout<
Void • Тип void не возвращает значение, то есть в теле функции не нужно писать return, а сама функция является набором команд. void f(){… return значение; } void f(int x){… return значение; }
Совет • Нужно проверить, не стоит ли точка с запятой после имени в определении функции: int f 1(int m, int n); Компилятор выдаёт следующую ошибку: error C 2447: missing function header (old-style formal list? )
Чем полезны функции • Они помогают сократить программу. • Вот программа без функций: #include int main() { cout<<“======---======“<
cout<<“======---======“<
cout<<“======---======“<
• То же самое, но код короче, так как присутствует функция: #include void f(int i, int j, int k) { cout<<“======---======“<