SlideShare a Scribd company logo
1 of 4
Download to read offline
Функції в C++
Використання функцій в C++................................................................................1
Оголошення функцій............................................................................................1
Тип функції............................................................................................................2
Аргументи і параметри функції............................................................................2
Передача аргументів по значенню......................................................................2
Передача аргументів по посиланню....................................................................3
Локальні змінні.....................................................................................................3
Значення параметрів по замовчуванню..............................................................3
Функції типу void...................................................................................................4
Різні способи виклику функцій.............................................................................4
Використання функцій в C++
Функції – відокремлені програмні структури, які мають свою назву, виконують деякі дії та
повертають результат. Функції створюються для розв’язування певних задач. Їх застосування
оптимізує програмний код, поліпшує його читання, забезпечує уникання повторюваних
фрагментів. Для виклику функції ми звертаємось до неї, вказуючи назву та передаємо значення
величин в круглих дужках (змінні, константи, числа, рядки, масиви тощо). Наприклад, в функцію
sqrt(x) передаємо деяке конкретне значення змінної x (аргумент x). Функція обчислює та
повертає квадратний корінь числа x. Функція max(a, b) отримує змінні a і b, обчислює та
повертає максимальне серед цих величин:
double r = sqrt(x); //Функція, що обчислює квадратний корінь x
int m = max(a, b); //Функція, що обчислює максимум серед a і b
Функцій в бібліотеках C++ є багато: математичні функції, функції для роботи з рядками, функції
конвертації даних тощо. Використання функцій дає можливість оптимізувати код нашої програми,
уникнувши багаторазових повторень.
До речі головний метод програми main() є також функцією, яка виконує код програми та
повертає результат 0, якщо програма успішно завершила свою роботу, або код помилки при
неуспішному завершенні.
Оголошення функцій
Для створення функції її потрібно оголосити. Оголошення функції здійснюється перед методом
main() за таким синтаксисом:
/*Заголовок функції*/
Тип_функції Назва_функції(Параметри_функції)
/*Тіло функції*/
{
//Оператори функції
return Результат_функції; //Значення, що повертається функцією.
}
Тип функції
Тип функції – тип даних, значення якого дана функція повертає. Наприклад, якщо функція
обчислює факторіал числа n, то тип цієї функції int або long long. Функція sqrt() має тип double або
float.
Аргументи і параметри функції
При виклику функції в неї передаються аргументи – це конкретні значення. Аргументи
записуються у відповідні параметри, вказані в заголовку функції. Часто аргументи називають
фактичними параметрами, а параметри – формальними параметрами. А інколи аргументи і
параметри вважаються синонімами. Проте ми будемо відрізняти їх:
 Аргументи функції – дані, що передаються в функцію при її конкретному виклику.
 Параметри функції – змінні, що вказуються при оголошенні функції.
Наведемо приклад функції, яка знаходить найбільше серед трьох чисел:
//Функція max3 приймає аргументи та записує їх в параметри a, b, c
int max3(int a,int b, int c) {
/* В тілі функції знаходимо найбільше …*/
int m = a;
if (b > m) m = b;
if (c > m) m = c;
return m; /* …та повертаємо результат */
}
int main() {
//Код
m = max3(x1, x2, x3); //Викликаємо функцію з передачею аргументів
//Код
}
Передача аргументів по значенню
При передачі змінних як аргументів по значенню, функція приймає ці значення та записує їх в
відповідні параметри, для яких відводяться окремі комірки пам’яті. Іншими словами створюються
локальні копії змінних, при зміні значень яких в середині функції, значення відповідних змінних за
межами функції не змінюються.
#include <cstdlib>
#include <iostream>
using namespace std;
//Функція
int dupl(int a) { //a – локальна копія змінної x
a = 2 * a; //Значення x не змінюється
return a;
}
int main(){
int x = 1;
/*Виклик функції з передачею аргументу по значенню*/
int y = dupl(x); //Результат функції записуємо в y
cout<<x<<endl; //Функція не змінила значення x
return 0;
}
Передача аргументів по посиланню
При передачі аргументів по значенню, функція не впливає на дані аргументи, створюючи їх
локальні копії. Для отримання результату функції ми використовуємо команду return. В багатьох
випадках зручніше було б, щоб функція не створювала локальну копію, а одразу могла
модифікувати аргумент. Наприклад, коли ми передаємо великі структури даних, нам
нераціонально створювати локальну копію і перевантажувати пам'ять. Для цього передаємо
аргумент по посиланню:
#include <cstdlib>
#include <iostream>
using namespace std;
//Функція
int dupl(int &a) { //a – посилання на змінну x
a = 2 * a; //Значення x змінюється
}
int main(){
int x = 1;
dupl(x); //Передача аргументу по посиланню
cout<<x<<endl; //Функція змінила значення x
system("pause");
return 0;
}
Локальні змінні
З попереднього прикладу бачимо, в функції можуть бути оголошені змінні, які називаються
локальними. Звертатись до них за межами функції не можна. Проте в різних функціях можна
оголошувати локальні змінні з однаковими назвами. Область видимості цих змінних буде лише в
межах даних функцій:
int summa(int a, int b) {
int m = a + b; //Локальна змінна функції summa
return m;
}
int substract(int a, int b) {
int m = a - b; //Локальна змінна функції substract
return m;
}
Використання функції в коді програми забезпечується викликом функції. При виклику функції після
її назви в круглих дужках через кому можна вказувати величини, що передаються в функцію.
Виклик функції здійснюємо в методі main() або в іншій функції, оголошеній після даної функції:
int x = summa(5, 5); //В x запишеться результат функції
Значення параметрів по замовчуванню
В заголовку функції всім або деяким параметрам можна присвоювати значення по замовчуванню:
//Функція приймає три величини.
//Якщо в функцію передати дві величини,
//аргумент c приймає значення по замовчуванню
int multiple(int a, int b, int c = 2) {
return a * b * c;
}
int main() {
cout << multiple(3, 4, 5) << endl;; //60
cout << multiple(3, 5) << endl; //30
return 0;
}
Функції типу void
Функції можуть виконувати деякі операції, не повертаючи результат. Часто їх називають
процедурами. В основному це функції, що здійснюють введення масиву або рядка, виводять дані
на екран, роблять перевірку на коректність введених даних тощо. Для таких функцій ми вказуємо
тип void. Наприклад:
#include <iostream>
using namespace std;
//Функція приймає масив та заповнює його даними
void input_array(int &arr[], int l) {
for(int i=0; i<l; i++) arr[i] = 2 * i;
}
//Функція приймає масив та виводить його в командному рядку
void output_array(int arr[], int l) {
for(int i=0; i<l; i++) cout<<arr[i]<<" ";
}
int main() {
int a[100];
int n = 10;
input_array(a, n);
output_array(a, n);
return 0;
}
Різні способи виклику функцій
#include <iostream>
using namespace std;
int subtraction(int a, int b){
return a - b;
}
int main(){
int x = 5, y = 3, z;
z = subtraction(7, 2);
cout << z << endl; //5
cout << subtraction (7, 2) << endl; //5
cout << subtraction (x, y) << endl; //2
z = 4 + subtraction (x, y);
cout << z << endl; //6
}

More Related Content

What's hot

C++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプC++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプKohsuke Yuasa
 
Python Dictionaries and Sets
Python Dictionaries and SetsPython Dictionaries and Sets
Python Dictionaries and SetsNicole Ryan
 
Popcntによるハミング距離計算
Popcntによるハミング距離計算Popcntによるハミング距離計算
Popcntによるハミング距離計算Norishige Fukushima
 
порядок виконання лр 1 лінійна регресія
порядок виконання лр 1 лінійна регресіяпорядок виконання лр 1 лінійна регресія
порядок виконання лр 1 лінійна регресіяСергій Побігун
 
Pointer in c program
Pointer in c programPointer in c program
Pointer in c programRumman Ansari
 
私を SKI に連れてって
私を SKI に連れてって私を SKI に連れてって
私を SKI に連れてってSusisu
 
Множини та дії над ними
Множини та дії над нимиМножини та дії над ними
Множини та дії над нимиDaria Zadorozhna
 
Inserindo em Ordem Crescente na Lista Encadeada
Inserindo em Ordem Crescente na Lista EncadeadaInserindo em Ordem Crescente na Lista Encadeada
Inserindo em Ordem Crescente na Lista EncadeadaElaine Cecília Gatto
 
5.1 3o φυλλάδιο ΕΚΘΕΤΙΚΕΣ ΕΞΙΣΩΣΕΙΣ.pdf
5.1 3o φυλλάδιο ΕΚΘΕΤΙΚΕΣ ΕΞΙΣΩΣΕΙΣ.pdf5.1 3o φυλλάδιο ΕΚΘΕΤΙΚΕΣ ΕΞΙΣΩΣΕΙΣ.pdf
5.1 3o φυλλάδιο ΕΚΘΕΤΙΚΕΣ ΕΞΙΣΩΣΕΙΣ.pdfBig Brain's Team Big Brain's Team
 
Презентація:Розв"язування вправ
Презентація:Розв"язування вправПрезентація:Розв"язування вправ
Презентація:Розв"язування вправsveta7940
 
Pointers in c v5 12102017 1
Pointers in c v5 12102017 1Pointers in c v5 12102017 1
Pointers in c v5 12102017 1tanmaymodi4
 
рівняння нерівності з параметрами
рівняння нерівності з параметрамирівняння нерівності з параметрами
рівняння нерівності з параметрамиTamara tamara
 
有限モデル理論入門:MSOとオートマトン
有限モデル理論入門:MSOとオートマトン有限モデル理論入門:MSOとオートマトン
有限モデル理論入門:MSOとオートマトンRyoma Sin'ya
 
масиви в С++ презентация
масиви в С++ презентациямасиви в С++ презентация
масиви в С++ презентацияAnna Kalinichenko
 

What's hot (20)

C++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプC++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプ
 
Вимірювання кутів.
Вимірювання  кутів.Вимірювання  кутів.
Вимірювання кутів.
 
Python Dictionaries and Sets
Python Dictionaries and SetsPython Dictionaries and Sets
Python Dictionaries and Sets
 
Popcntによるハミング距離計算
Popcntによるハミング距離計算Popcntによるハミング距離計算
Popcntによるハミング距離計算
 
POINTERS IN C
POINTERS IN CPOINTERS IN C
POINTERS IN C
 
порядок виконання лр 1 лінійна регресія
порядок виконання лр 1 лінійна регресіяпорядок виконання лр 1 лінійна регресія
порядок виконання лр 1 лінійна регресія
 
Pointer in c program
Pointer in c programPointer in c program
Pointer in c program
 
私を SKI に連れてって
私を SKI に連れてって私を SKI に連れてって
私を SKI に連れてって
 
Множини та дії над ними
Множини та дії над нимиМножини та дії над ними
Множини та дії над ними
 
Inserindo em Ordem Crescente na Lista Encadeada
Inserindo em Ordem Crescente na Lista EncadeadaInserindo em Ordem Crescente na Lista Encadeada
Inserindo em Ordem Crescente na Lista Encadeada
 
функції
функціїфункції
функції
 
5.1 3o φυλλάδιο ΕΚΘΕΤΙΚΕΣ ΕΞΙΣΩΣΕΙΣ.pdf
5.1 3o φυλλάδιο ΕΚΘΕΤΙΚΕΣ ΕΞΙΣΩΣΕΙΣ.pdf5.1 3o φυλλάδιο ΕΚΘΕΤΙΚΕΣ ΕΞΙΣΩΣΕΙΣ.pdf
5.1 3o φυλλάδιο ΕΚΘΕΤΙΚΕΣ ΕΞΙΣΩΣΕΙΣ.pdf
 
71
7171
71
 
圏とHaskellの型
圏とHaskellの型圏とHaskellの型
圏とHaskellの型
 
Презентація:Розв"язування вправ
Презентація:Розв"язування вправПрезентація:Розв"язування вправ
Презентація:Розв"язування вправ
 
Pointers in c v5 12102017 1
Pointers in c v5 12102017 1Pointers in c v5 12102017 1
Pointers in c v5 12102017 1
 
Java Class Design
Java Class DesignJava Class Design
Java Class Design
 
рівняння нерівності з параметрами
рівняння нерівності з параметрамирівняння нерівності з параметрами
рівняння нерівності з параметрами
 
有限モデル理論入門:MSOとオートマトン
有限モデル理論入門:MSOとオートマトン有限モデル理論入門:MSOとオートマトン
有限モデル理論入門:MSOとオートマトン
 
масиви в С++ презентация
масиви в С++ презентациямасиви в С++ презентация
масиви в С++ презентация
 

Viewers also liked

Pouczająca opowiastka o tym, jak odrzucić motykę i wyruszyć na wojnę z przebr...
Pouczająca opowiastka o tym, jak odrzucić motykę i wyruszyć na wojnę z przebr...Pouczająca opowiastka o tym, jak odrzucić motykę i wyruszyć na wojnę z przebr...
Pouczająca opowiastka o tym, jak odrzucić motykę i wyruszyć na wojnę z przebr...Social Frame
 
Swimming klaudia
Swimming klaudiaSwimming klaudia
Swimming klaudiastabal1960
 
Prórroga de Estado de Emergencia declarado en la Provincia Constitucional del...
Prórroga de Estado de Emergencia declarado en la Provincia Constitucional del...Prórroga de Estado de Emergencia declarado en la Provincia Constitucional del...
Prórroga de Estado de Emergencia declarado en la Provincia Constitucional del...ACADEMIA DE CIENCIA PRÁCTICA JURÍDICA
 
Public Relations dla klubów Toastmasters w Polsce: wiceprezes ds. PR
Public Relations dla klubów Toastmasters w Polsce: wiceprezes ds. PRPublic Relations dla klubów Toastmasters w Polsce: wiceprezes ds. PR
Public Relations dla klubów Toastmasters w Polsce: wiceprezes ds. PRSocial Frame
 
Prez‑relacje
Prez‑relacjePrez‑relacje
Prez‑relacjestabal1960
 
Статистические методы анализа клиентских данных
Статистические методы анализа клиентских данныхСтатистические методы анализа клиентских данных
Статистические методы анализа клиентских данныхAndrei Kulinich
 
Regresi nonlinear&amp;ganda
Regresi nonlinear&amp;gandaRegresi nonlinear&amp;ganda
Regresi nonlinear&amp;gandalennygoru
 
проект QR СМАРТС
проект QR СМАРТСпроект QR СМАРТС
проект QR СМАРТСMM2B
 
Продвижение отеля в Сети: работающие методики и устаревшие подходы
Продвижение отеля в Сети: работающие методики и устаревшие подходыПродвижение отеля в Сети: работающие методики и устаревшие подходы
Продвижение отеля в Сети: работающие методики и устаревшие подходыTravelLine
 
Aula05 - os 8 ps do marketing digital
Aula05 - os 8 ps do marketing digitalAula05 - os 8 ps do marketing digital
Aula05 - os 8 ps do marketing digitalMarcio Nunes
 
Guia de actividades de la comision de seguridad e higiene
Guia de actividades de la comision de seguridad e higieneGuia de actividades de la comision de seguridad e higiene
Guia de actividades de la comision de seguridad e higieneGenaro Mendez Mancilla
 
Strategi Nasional Penghapusan Kekerasan Terhadap Anak 2016 - 2020
Strategi Nasional Penghapusan Kekerasan Terhadap Anak 2016 - 2020Strategi Nasional Penghapusan Kekerasan Terhadap Anak 2016 - 2020
Strategi Nasional Penghapusan Kekerasan Terhadap Anak 2016 - 2020ECPAT Indonesia
 

Viewers also liked (18)

Pouczająca opowiastka o tym, jak odrzucić motykę i wyruszyć na wojnę z przebr...
Pouczająca opowiastka o tym, jak odrzucić motykę i wyruszyć na wojnę z przebr...Pouczająca opowiastka o tym, jak odrzucić motykę i wyruszyć na wojnę z przebr...
Pouczająca opowiastka o tym, jak odrzucić motykę i wyruszyć na wojnę z przebr...
 
Swimming klaudia
Swimming klaudiaSwimming klaudia
Swimming klaudia
 
Social Media Marketing. Belhard
Social Media Marketing. BelhardSocial Media Marketing. Belhard
Social Media Marketing. Belhard
 
Aran dance
Aran  danceAran  dance
Aran dance
 
Prórroga de Estado de Emergencia declarado en la Provincia Constitucional del...
Prórroga de Estado de Emergencia declarado en la Provincia Constitucional del...Prórroga de Estado de Emergencia declarado en la Provincia Constitucional del...
Prórroga de Estado de Emergencia declarado en la Provincia Constitucional del...
 
Public Relations dla klubów Toastmasters w Polsce: wiceprezes ds. PR
Public Relations dla klubów Toastmasters w Polsce: wiceprezes ds. PRPublic Relations dla klubów Toastmasters w Polsce: wiceprezes ds. PR
Public Relations dla klubów Toastmasters w Polsce: wiceprezes ds. PR
 
Mblt 2013 v5
Mblt 2013 v5Mblt 2013 v5
Mblt 2013 v5
 
Elaboración de horarios
Elaboración de horariosElaboración de horarios
Elaboración de horarios
 
Prez‑relacje
Prez‑relacjePrez‑relacje
Prez‑relacje
 
Пакет Яровой
Пакет ЯровойПакет Яровой
Пакет Яровой
 
Статистические методы анализа клиентских данных
Статистические методы анализа клиентских данныхСтатистические методы анализа клиентских данных
Статистические методы анализа клиентских данных
 
Regresi nonlinear&amp;ganda
Regresi nonlinear&amp;gandaRegresi nonlinear&amp;ganda
Regresi nonlinear&amp;ganda
 
проект QR СМАРТС
проект QR СМАРТСпроект QR СМАРТС
проект QR СМАРТС
 
Продвижение отеля в Сети: работающие методики и устаревшие подходы
Продвижение отеля в Сети: работающие методики и устаревшие подходыПродвижение отеля в Сети: работающие методики и устаревшие подходы
Продвижение отеля в Сети: работающие методики и устаревшие подходы
 
Aula05 - os 8 ps do marketing digital
Aula05 - os 8 ps do marketing digitalAula05 - os 8 ps do marketing digital
Aula05 - os 8 ps do marketing digital
 
Marketing strategy
Marketing strategy Marketing strategy
Marketing strategy
 
Guia de actividades de la comision de seguridad e higiene
Guia de actividades de la comision de seguridad e higieneGuia de actividades de la comision de seguridad e higiene
Guia de actividades de la comision de seguridad e higiene
 
Strategi Nasional Penghapusan Kekerasan Terhadap Anak 2016 - 2020
Strategi Nasional Penghapusan Kekerasan Terhadap Anak 2016 - 2020Strategi Nasional Penghapusan Kekerasan Terhadap Anak 2016 - 2020
Strategi Nasional Penghapusan Kekerasan Terhadap Anak 2016 - 2020
 

Similar to Функції в C++

Лекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptxЛекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptxssuserf57884
 
General Functors
General FunctorsGeneral Functors
General FunctorsDzendzula
 
06 Pointers To Class Members
06 Pointers To Class Members06 Pointers To Class Members
06 Pointers To Class Membersolegapster
 
09 Static Polymorphism
09 Static Polymorphism09 Static Polymorphism
09 Static Polymorphismolegapster
 
05 Operations And Utilities
05 Operations And Utilities05 Operations And Utilities
05 Operations And Utilitiesolegapster
 
02 Copying Objects
02 Copying Objects02 Copying Objects
02 Copying Objectsolegapster
 
Урок 54 8 клас
Урок 54 8 класУрок 54 8 клас
Урок 54 8 класssuser737e7f
 
лекції 4 7
лекції 4 7лекції 4 7
лекції 4 7cit-cit
 
01 Incapsulation
01 Incapsulation01 Incapsulation
01 Incapsulationolegapster
 
Знайомство з програмуванням на мові C++
Знайомство з програмуванням на мові C++Знайомство з програмуванням на мові C++
Знайомство з програмуванням на мові C++Alexander Kuzmenko
 
07 Localisation
07 Localisation07 Localisation
07 Localisationolegapster
 
урок 19 цикли Складання програм
урок 19 цикли Складання програмурок 19 цикли Складання програм
урок 19 цикли Складання програмHelen Pat
 

Similar to Функції в C++ (20)

Лекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptxЛекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptx
 
передача параметрів в функції
передача параметрів в функціїпередача параметрів в функції
передача параметрів в функції
 
General Functors ...
General Functors                                                             ...General Functors                                                             ...
General Functors ...
 
General Functors
General FunctorsGeneral Functors
General Functors
 
08 Functions
08 Functions08 Functions
08 Functions
 
06 Pointers To Class Members
06 Pointers To Class Members06 Pointers To Class Members
06 Pointers To Class Members
 
Funkciji1
Funkciji1Funkciji1
Funkciji1
 
09 Static Polymorphism
09 Static Polymorphism09 Static Polymorphism
09 Static Polymorphism
 
05 Operations And Utilities
05 Operations And Utilities05 Operations And Utilities
05 Operations And Utilities
 
02 Copying Objects
02 Copying Objects02 Copying Objects
02 Copying Objects
 
Урок 54 8 клас
Урок 54 8 класУрок 54 8 клас
Урок 54 8 клас
 
Coding for Future in Lutsk. JavaScript. Part 6
Coding for Future in Lutsk. JavaScript. Part 6Coding for Future in Lutsk. JavaScript. Part 6
Coding for Future in Lutsk. JavaScript. Part 6
 
Урок №23 8 клас
Урок №23 8 класУрок №23 8 клас
Урок №23 8 клас
 
лекції 4 7
лекції 4 7лекції 4 7
лекції 4 7
 
01 Incapsulation
01 Incapsulation01 Incapsulation
01 Incapsulation
 
04 Operators
04 Operators04 Operators
04 Operators
 
Знайомство з програмуванням на мові C++
Знайомство з програмуванням на мові C++Знайомство з програмуванням на мові C++
Знайомство з програмуванням на мові C++
 
07 Localisation
07 Localisation07 Localisation
07 Localisation
 
урок 19 цикли Складання програм
урок 19 цикли Складання програмурок 19 цикли Складання програм
урок 19 цикли Складання програм
 
tsql
tsqltsql
tsql
 

More from Alexander Kuzmenko

Структури даних в C++
Структури даних в C++Структури даних в C++
Структури даних в C++Alexander Kuzmenko
 
Робота з файлами в C++
Робота з файлами в C++Робота з файлами в C++
Робота з файлами в C++Alexander Kuzmenko
 
Використання класу string для роботи з рядками в C++
Використання класу string для роботи з рядками в C++Використання класу string для роботи з рядками в C++
Використання класу string для роботи з рядками в C++Alexander Kuzmenko
 
Циклічні оператори в C++
Циклічні оператори в C++Циклічні оператори в C++
Циклічні оператори в C++Alexander Kuzmenko
 
Розгалуження в мові C++
Розгалуження в мові C++Розгалуження в мові C++
Розгалуження в мові C++Alexander Kuzmenko
 
Тиждень біології 2014
Тиждень біології   2014Тиждень біології   2014
Тиждень біології 2014Alexander Kuzmenko
 
календарно тематичне планування з хімії
календарно тематичне планування з хіміїкалендарно тематичне планування з хімії
календарно тематичне планування з хіміїAlexander Kuzmenko
 
календарно тематичне планування з біології
календарно тематичне планування з біологіїкалендарно тематичне планування з біології
календарно тематичне планування з біологіїAlexander Kuzmenko
 
олімпіади з біології
олімпіади з біологіїолімпіади з біології
олімпіади з біологіїAlexander Kuzmenko
 
Правила прийому до музичного училища в 2014 році
Правила прийому до музичного училища в 2014 роціПравила прийому до музичного училища в 2014 році
Правила прийому до музичного училища в 2014 роціAlexander Kuzmenko
 

More from Alexander Kuzmenko (12)

Структури даних в C++
Структури даних в C++Структури даних в C++
Структури даних в C++
 
Робота з файлами в C++
Робота з файлами в C++Робота з файлами в C++
Робота з файлами в C++
 
Використання класу string для роботи з рядками в C++
Використання класу string для роботи з рядками в C++Використання класу string для роботи з рядками в C++
Використання класу string для роботи з рядками в C++
 
Масиви в C++
Масиви в C++Масиви в C++
Масиви в C++
 
Циклічні оператори в C++
Циклічні оператори в C++Циклічні оператори в C++
Циклічні оператори в C++
 
Розгалуження в мові C++
Розгалуження в мові C++Розгалуження в мові C++
Розгалуження в мові C++
 
Ukraine cinema
Ukraine cinemaUkraine cinema
Ukraine cinema
 
Тиждень біології 2014
Тиждень біології   2014Тиждень біології   2014
Тиждень біології 2014
 
календарно тематичне планування з хімії
календарно тематичне планування з хіміїкалендарно тематичне планування з хімії
календарно тематичне планування з хімії
 
календарно тематичне планування з біології
календарно тематичне планування з біологіїкалендарно тематичне планування з біології
календарно тематичне планування з біології
 
олімпіади з біології
олімпіади з біологіїолімпіади з біології
олімпіади з біології
 
Правила прийому до музичного училища в 2014 році
Правила прийому до музичного училища в 2014 роціПравила прийому до музичного училища в 2014 році
Правила прийому до музичного училища в 2014 році
 

Recently uploaded

upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfupd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfssuser54595a
 
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...JurgenstiX
 
Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»tetiana1958
 
Р.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповіданняР.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповіданняAdriana Himinets
 
О.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяО.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяAdriana Himinets
 
Хімічні елементи в літературних творах 8 клас
Хімічні елементи в літературних творах 8 класХімічні елементи в літературних творах 8 клас
Хімічні елементи в літературних творах 8 класkrementsova09nadya
 
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»tetiana1958
 

Recently uploaded (10)

upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfupd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
 
Її величність - українська книга презентація-огляд 2024.pptx
Її величність - українська книга презентація-огляд 2024.pptxЇї величність - українська книга презентація-огляд 2024.pptx
Її величність - українська книга презентація-огляд 2024.pptx
 
Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»
Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»
Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»
 
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
Принципові відмінності досконалої (повної) конкуренції від інших форм організ...
 
Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»
 
Віртуальна виставка нових надходжень 2-24.pptx
Віртуальна виставка нових надходжень 2-24.pptxВіртуальна виставка нових надходжень 2-24.pptx
Віртуальна виставка нових надходжень 2-24.pptx
 
Р.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповіданняР.Шеклі "Запах думки". Аналіз оповідання
Р.Шеклі "Запах думки". Аналіз оповідання
 
О.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяО.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. Біографія
 
Хімічні елементи в літературних творах 8 клас
Хімічні елементи в літературних творах 8 класХімічні елементи в літературних творах 8 клас
Хімічні елементи в літературних творах 8 клас
 
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
Відкрита лекція на тему «Контроль бур'янів в посівах соняшника»
 

Функції в C++

  • 1. Функції в C++ Використання функцій в C++................................................................................1 Оголошення функцій............................................................................................1 Тип функції............................................................................................................2 Аргументи і параметри функції............................................................................2 Передача аргументів по значенню......................................................................2 Передача аргументів по посиланню....................................................................3 Локальні змінні.....................................................................................................3 Значення параметрів по замовчуванню..............................................................3 Функції типу void...................................................................................................4 Різні способи виклику функцій.............................................................................4 Використання функцій в C++ Функції – відокремлені програмні структури, які мають свою назву, виконують деякі дії та повертають результат. Функції створюються для розв’язування певних задач. Їх застосування оптимізує програмний код, поліпшує його читання, забезпечує уникання повторюваних фрагментів. Для виклику функції ми звертаємось до неї, вказуючи назву та передаємо значення величин в круглих дужках (змінні, константи, числа, рядки, масиви тощо). Наприклад, в функцію sqrt(x) передаємо деяке конкретне значення змінної x (аргумент x). Функція обчислює та повертає квадратний корінь числа x. Функція max(a, b) отримує змінні a і b, обчислює та повертає максимальне серед цих величин: double r = sqrt(x); //Функція, що обчислює квадратний корінь x int m = max(a, b); //Функція, що обчислює максимум серед a і b Функцій в бібліотеках C++ є багато: математичні функції, функції для роботи з рядками, функції конвертації даних тощо. Використання функцій дає можливість оптимізувати код нашої програми, уникнувши багаторазових повторень. До речі головний метод програми main() є також функцією, яка виконує код програми та повертає результат 0, якщо програма успішно завершила свою роботу, або код помилки при неуспішному завершенні. Оголошення функцій Для створення функції її потрібно оголосити. Оголошення функції здійснюється перед методом main() за таким синтаксисом: /*Заголовок функції*/ Тип_функції Назва_функції(Параметри_функції)
  • 2. /*Тіло функції*/ { //Оператори функції return Результат_функції; //Значення, що повертається функцією. } Тип функції Тип функції – тип даних, значення якого дана функція повертає. Наприклад, якщо функція обчислює факторіал числа n, то тип цієї функції int або long long. Функція sqrt() має тип double або float. Аргументи і параметри функції При виклику функції в неї передаються аргументи – це конкретні значення. Аргументи записуються у відповідні параметри, вказані в заголовку функції. Часто аргументи називають фактичними параметрами, а параметри – формальними параметрами. А інколи аргументи і параметри вважаються синонімами. Проте ми будемо відрізняти їх:  Аргументи функції – дані, що передаються в функцію при її конкретному виклику.  Параметри функції – змінні, що вказуються при оголошенні функції. Наведемо приклад функції, яка знаходить найбільше серед трьох чисел: //Функція max3 приймає аргументи та записує їх в параметри a, b, c int max3(int a,int b, int c) { /* В тілі функції знаходимо найбільше …*/ int m = a; if (b > m) m = b; if (c > m) m = c; return m; /* …та повертаємо результат */ } int main() { //Код m = max3(x1, x2, x3); //Викликаємо функцію з передачею аргументів //Код } Передача аргументів по значенню При передачі змінних як аргументів по значенню, функція приймає ці значення та записує їх в відповідні параметри, для яких відводяться окремі комірки пам’яті. Іншими словами створюються локальні копії змінних, при зміні значень яких в середині функції, значення відповідних змінних за межами функції не змінюються. #include <cstdlib> #include <iostream> using namespace std; //Функція int dupl(int a) { //a – локальна копія змінної x a = 2 * a; //Значення x не змінюється return a; } int main(){ int x = 1;
  • 3. /*Виклик функції з передачею аргументу по значенню*/ int y = dupl(x); //Результат функції записуємо в y cout<<x<<endl; //Функція не змінила значення x return 0; } Передача аргументів по посиланню При передачі аргументів по значенню, функція не впливає на дані аргументи, створюючи їх локальні копії. Для отримання результату функції ми використовуємо команду return. В багатьох випадках зручніше було б, щоб функція не створювала локальну копію, а одразу могла модифікувати аргумент. Наприклад, коли ми передаємо великі структури даних, нам нераціонально створювати локальну копію і перевантажувати пам'ять. Для цього передаємо аргумент по посиланню: #include <cstdlib> #include <iostream> using namespace std; //Функція int dupl(int &a) { //a – посилання на змінну x a = 2 * a; //Значення x змінюється } int main(){ int x = 1; dupl(x); //Передача аргументу по посиланню cout<<x<<endl; //Функція змінила значення x system("pause"); return 0; } Локальні змінні З попереднього прикладу бачимо, в функції можуть бути оголошені змінні, які називаються локальними. Звертатись до них за межами функції не можна. Проте в різних функціях можна оголошувати локальні змінні з однаковими назвами. Область видимості цих змінних буде лише в межах даних функцій: int summa(int a, int b) { int m = a + b; //Локальна змінна функції summa return m; } int substract(int a, int b) { int m = a - b; //Локальна змінна функції substract return m; } Використання функції в коді програми забезпечується викликом функції. При виклику функції після її назви в круглих дужках через кому можна вказувати величини, що передаються в функцію. Виклик функції здійснюємо в методі main() або в іншій функції, оголошеній після даної функції: int x = summa(5, 5); //В x запишеться результат функції Значення параметрів по замовчуванню В заголовку функції всім або деяким параметрам можна присвоювати значення по замовчуванню: //Функція приймає три величини. //Якщо в функцію передати дві величини, //аргумент c приймає значення по замовчуванню
  • 4. int multiple(int a, int b, int c = 2) { return a * b * c; } int main() { cout << multiple(3, 4, 5) << endl;; //60 cout << multiple(3, 5) << endl; //30 return 0; } Функції типу void Функції можуть виконувати деякі операції, не повертаючи результат. Часто їх називають процедурами. В основному це функції, що здійснюють введення масиву або рядка, виводять дані на екран, роблять перевірку на коректність введених даних тощо. Для таких функцій ми вказуємо тип void. Наприклад: #include <iostream> using namespace std; //Функція приймає масив та заповнює його даними void input_array(int &arr[], int l) { for(int i=0; i<l; i++) arr[i] = 2 * i; } //Функція приймає масив та виводить його в командному рядку void output_array(int arr[], int l) { for(int i=0; i<l; i++) cout<<arr[i]<<" "; } int main() { int a[100]; int n = 10; input_array(a, n); output_array(a, n); return 0; } Різні способи виклику функцій #include <iostream> using namespace std; int subtraction(int a, int b){ return a - b; } int main(){ int x = 5, y = 3, z; z = subtraction(7, 2); cout << z << endl; //5 cout << subtraction (7, 2) << endl; //5 cout << subtraction (x, y) << endl; //2 z = 4 + subtraction (x, y); cout << z << endl; //6 }