ݺߣ

ݺߣShare a Scribd company logo
Функції в 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 (20)

Україна презентувала план відновлення країни
Україна презентувала план відновлення країниУкраїна презентувала план відновлення країни
Україна презентувала план відновлення країни
ssuser3957bc1
Тетрацикліни
ТетрацикліниТетрацикліни
Тетрацикліни
Eugene Shorikov
продуктивність праці
продуктивність праціпродуктивність праці
продуктивність праці
cit-cit
Банкны нягтлан бодох бүртгэлийн багц материал
Банкны нягтлан бодох бүртгэлийн багц материалБанкны нягтлан бодох бүртгэлийн багц материал
Банкны нягтлан бодох бүртгэлийн багц материал
DOtgontsetseg
тютюннин н.а.перша допомога при астмі
тютюннин н.а.перша допомога при  астмітютюннин н.а.перша допомога при  астмі
тютюннин н.а.перша допомога при астмі
sansanych86
паралельність прямих і площин у просторі
паралельність прямих і площин у просторіпаралельність прямих і площин у просторі
паралельність прямих і площин у просторі
Юра Марчук
Дмитро Бортнянський
Дмитро Бортнянський Дмитро Бортнянський
Дмитро Бортнянський
Саша Данильченко
Поняття функції
Поняття функціїПоняття функції
Поняття функції
Oksana Bryk
презентація тема 4
презентація   тема  4презентація   тема  4
презентація тема 4
cit-cit
застосування похідної в різних сферах життя людини
застосування похідної в різних сферах життя людинизастосування похідної в різних сферах життя людини
застосування похідної в різних сферах життя людини
den2002
презентація алгоритми з розгалуженням
презентація   алгоритми з розгалуженнямпрезентація   алгоритми з розгалуженням
презентація алгоритми з розгалуженням
Сергій Каляфіцький
копия визначений інтеграл. формула ньютона лейбніца
копия визначений інтеграл. формула ньютона лейбніцакопия визначений інтеграл. формула ньютона лейбніца
копия визначений інтеграл. формула ньютона лейбніца
Veselovwww
7. оборотні активи
7. оборотні активи7. оборотні активи
7. оборотні активи
Bilovus
урок координатна площина1
урок координатна площина1урок координатна площина1
урок координатна площина1
Наталия Поддубная
Jishee bodlogo6
Jishee bodlogo6Jishee bodlogo6
Jishee bodlogo6
hicheel2020
графічні символи у медицині стаття к-пмп № 1
графічні символи у медицині   стаття к-пмп № 1графічні символи у медицині   стаття к-пмп № 1
графічні символи у медицині стаття к-пмп № 1
Babiy Oleg
Поняття моделi. Типи моделей. Моделювання
Поняття моделi. Типи моделей. МоделюванняПоняття моделi. Типи моделей. Моделювання
Поняття моделi. Типи моделей. Моделювання
dnzcpto1
MacroL 6. 2019- 2020
MacroL 6. 2019- 2020MacroL 6. 2019- 2020
MacroL 6. 2019- 2020
hicheel2020
Україна презентувала план відновлення країни
Україна презентувала план відновлення країниУкраїна презентувала план відновлення країни
Україна презентувала план відновлення країни
ssuser3957bc1
продуктивність праці
продуктивність праціпродуктивність праці
продуктивність праці
cit-cit
Банкны нягтлан бодох бүртгэлийн багц материал
Банкны нягтлан бодох бүртгэлийн багц материалБанкны нягтлан бодох бүртгэлийн багц материал
Банкны нягтлан бодох бүртгэлийн багц материал
DOtgontsetseg
тютюннин н.а.перша допомога при астмі
тютюннин н.а.перша допомога при  астмітютюннин н.а.перша допомога при  астмі
тютюннин н.а.перша допомога при астмі
sansanych86
паралельність прямих і площин у просторі
паралельність прямих і площин у просторіпаралельність прямих і площин у просторі
паралельність прямих і площин у просторі
Юра Марчук
Поняття функції
Поняття функціїПоняття функції
Поняття функції
Oksana Bryk
презентація тема 4
презентація   тема  4презентація   тема  4
презентація тема 4
cit-cit
застосування похідної в різних сферах життя людини
застосування похідної в різних сферах життя людинизастосування похідної в різних сферах життя людини
застосування похідної в різних сферах життя людини
den2002
презентація алгоритми з розгалуженням
презентація   алгоритми з розгалуженнямпрезентація   алгоритми з розгалуженням
презентація алгоритми з розгалуженням
Сергій Каляфіцький
копия визначений інтеграл. формула ньютона лейбніца
копия визначений інтеграл. формула ньютона лейбніцакопия визначений інтеграл. формула ньютона лейбніца
копия визначений інтеграл. формула ньютона лейбніца
Veselovwww
7. оборотні активи
7. оборотні активи7. оборотні активи
7. оборотні активи
Bilovus
графічні символи у медицині стаття к-пмп № 1
графічні символи у медицині   стаття к-пмп № 1графічні символи у медицині   стаття к-пмп № 1
графічні символи у медицині стаття к-пмп № 1
Babiy Oleg
Поняття моделi. Типи моделей. Моделювання
Поняття моделi. Типи моделей. МоделюванняПоняття моделi. Типи моделей. Моделювання
Поняття моделi. Типи моделей. Моделювання
dnzcpto1

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...
Social Frame
Swimming klaudia
Swimming klaudiaSwimming klaudia
Swimming klaudia
stabal1960
Social Media Marketing. Belhard
Social Media Marketing. BelhardSocial Media Marketing. Belhard
Social Media Marketing. Belhard
Вячеслав Русаков
Aran dance
Aran  danceAran  dance
Aran dance
angelinacases1972
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. PR
Social Frame
Mblt 2013 v5
Mblt 2013 v5Mblt 2013 v5
Mblt 2013 v5
Olga Padulosi
Elaboración de horariosElaboración de horarios
Elaboración de horarios
Camilo_Rodriguez
Пакет Яровой
Пакет ЯровойПакет Яровой
Пакет Яровой
Михаил Климарёв
Статистические методы анализа клиентских данных
Статистические методы анализа клиентских данныхСтатистические методы анализа клиентских данных
Статистические методы анализа клиентских данных
Andrei Kulinich
Regresi nonlinear&amp;ganda
Regresi nonlinear&amp;gandaRegresi nonlinear&amp;ganda
Regresi nonlinear&amp;ganda
lennygoru
проект QR СМАРТС
проект QR СМАРТСпроект QR СМАРТС
проект QR СМАРТС
MM2B
Продвижение отеля в Сети: работающие методики и устаревшие подходы
Продвижение отеля в Сети: работающие методики и устаревшие подходыПродвижение отеля в Сети: работающие методики и устаревшие подходы
Продвижение отеля в Сети: работающие методики и устаревшие подходы
TravelLine
Aula05 - os 8 ps do marketing digitalAula05 - os 8 ps do marketing digital
Aula05 - os 8 ps do marketing digital
Marcio Nunes
Marketing strategy
Marketing strategy Marketing strategy
Marketing strategy
AMP – Digital Organic Agency
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
Genaro 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 - 2020
ECPAT Indonesia
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
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. PR
Social Frame
Elaboración de horariosElaboración de horarios
Elaboración de horarios
Camilo_Rodriguez
Статистические методы анализа клиентских данных
Статистические методы анализа клиентских данныхСтатистические методы анализа клиентских данных
Статистические методы анализа клиентских данных
Andrei Kulinich
Regresi nonlinear&amp;ganda
Regresi nonlinear&amp;gandaRegresi nonlinear&amp;ganda
Regresi nonlinear&amp;ganda
lennygoru
проект QR СМАРТС
проект QR СМАРТСпроект QR СМАРТС
проект QR СМАРТС
MM2B
Продвижение отеля в Сети: работающие методики и устаревшие подходы
Продвижение отеля в Сети: работающие методики и устаревшие подходыПродвижение отеля в Сети: работающие методики и устаревшие подходы
Продвижение отеля в Сети: работающие методики и устаревшие подходы
TravelLine
Aula05 - os 8 ps do marketing digitalAula05 - os 8 ps do marketing digital
Aula05 - os 8 ps do marketing digital
Marcio Nunes
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
Genaro 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 - 2020
ECPAT Indonesia

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

Lecture 08 for distance courses "Fundamentals of Informatics"
Lecture 08 for distance courses "Fundamentals of Informatics"Lecture 08 for distance courses "Fundamentals of Informatics"
Lecture 08 for distance courses "Fundamentals of Informatics"
kostyanik-irina
Лекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptxЛекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptx
ssuserf57884
передача параметрів в функції
передача параметрів в функціїпередача параметрів в функції
передача параметрів в функції
Людмила Булыгина
06 Pointers To Class Members
06 Pointers To Class Members06 Pointers To Class Members
06 Pointers To Class Members
olegapster
Funkciji1
Funkciji1Funkciji1
Funkciji1
Ольга Рыбак
09 Static Polymorphism
09 Static Polymorphism09 Static Polymorphism
09 Static Polymorphism
olegapster
05 Operations And Utilities
05 Operations And Utilities05 Operations And Utilities
05 Operations And Utilities
olegapster
Урок 54 8 клас
Урок 54 8 класУрок 54 8 клас
Урок 54 8 клас
ssuser737e7f
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
Олег Вілігурський
Lecture 03 for distance courses "Fundamentals of Informatics"
Lecture 03 for distance courses "Fundamentals of Informatics"Lecture 03 for distance courses "Fundamentals of Informatics"
Lecture 03 for distance courses "Fundamentals of Informatics"
kostyanik-irina
Урок №23 8 клас
Урок №23 8 класУрок №23 8 клас
Урок №23 8 клас
Nikolay Shaygorodskiy
лекції 4 7
лекції 4 7лекції 4 7
лекції 4 7
cit-cit
Знайомство з програмуванням на мові C++
Знайомство з програмуванням на мові C++Знайомство з програмуванням на мові C++
Знайомство з програмуванням на мові C++
Alexander Kuzmenko
Lecture 08 for distance courses "Fundamentals of Informatics"
Lecture 08 for distance courses "Fundamentals of Informatics"Lecture 08 for distance courses "Fundamentals of Informatics"
Lecture 08 for distance courses "Fundamentals of Informatics"
kostyanik-irina
Лекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptxЛекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptx
ssuserf57884
06 Pointers To Class Members
06 Pointers To Class Members06 Pointers To Class Members
06 Pointers To Class Members
olegapster
09 Static Polymorphism
09 Static Polymorphism09 Static Polymorphism
09 Static Polymorphism
olegapster
05 Operations And Utilities
05 Operations And Utilities05 Operations And Utilities
05 Operations And Utilities
olegapster
Lecture 03 for distance courses "Fundamentals of Informatics"
Lecture 03 for distance courses "Fundamentals of Informatics"Lecture 03 for distance courses "Fundamentals of Informatics"
Lecture 03 for distance courses "Fundamentals of Informatics"
kostyanik-irina
лекції 4 7
лекції 4 7лекції 4 7
лекції 4 7
cit-cit
Знайомство з програмуванням на мові C++
Знайомство з програмуванням на мові C++Знайомство з програмуванням на мові C++
Знайомство з програмуванням на мові C++
Alexander Kuzmenko

More from Alexander Kuzmenko (10)

Робота з файлами в 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
Ukraine cinema
Ukraine cinemaUkraine cinema
Ukraine cinema
Alexander Kuzmenko
Тиждень біології 2014
Тиждень біології   2014Тиждень біології   2014
Тиждень біології 2014
Alexander Kuzmenko
календарно тематичне планування з хімії
календарно тематичне планування з хіміїкалендарно тематичне планування з хімії
календарно тематичне планування з хімії
Alexander Kuzmenko
календарно тематичне планування з біології
календарно тематичне планування з біологіїкалендарно тематичне планування з біології
календарно тематичне планування з біології
Alexander Kuzmenko
олімпіади з біології
олімпіади з біологіїолімпіади з біології
олімпіади з біології
Alexander Kuzmenko
Правила прийому до музичного училища в 2014 році
Правила прийому до музичного училища в 2014 роціПравила прийому до музичного училища в 2014 році
Правила прийому до музичного училища в 2014 році
Alexander Kuzmenko
Робота з файлами в C++
Робота з файлами в C++Робота з файлами в C++
Робота з файлами в C++
Alexander Kuzmenko
Використання класу string для роботи з рядками в C++
Використання класу string для роботи з рядками в C++Використання класу string для роботи з рядками в C++
Використання класу string для роботи з рядками в C++
Alexander Kuzmenko
Циклічні оператори в C++
Циклічні оператори в C++Циклічні оператори в C++
Циклічні оператори в C++
Alexander Kuzmenko
Тиждень біології 2014
Тиждень біології   2014Тиждень біології   2014
Тиждень біології 2014
Alexander Kuzmenko
календарно тематичне планування з хімії
календарно тематичне планування з хіміїкалендарно тематичне планування з хімії
календарно тематичне планування з хімії
Alexander Kuzmenko
календарно тематичне планування з біології
календарно тематичне планування з біологіїкалендарно тематичне планування з біології
календарно тематичне планування з біології
Alexander Kuzmenko
олімпіади з біології
олімпіади з біологіїолімпіади з біології
олімпіади з біології
Alexander Kuzmenko
Правила прийому до музичного училища в 2014 році
Правила прийому до музичного училища в 2014 роціПравила прийому до музичного училища в 2014 році
Правила прийому до музичного училища в 2014 році
Alexander Kuzmenko

Recently uploaded (10)

«ЧАРІВНА СКРИНЬКА КАЗОК МИКОЛИ ЗІНЧУКА»: віртуальна книжкова виставка до 100-...
«ЧАРІВНА СКРИНЬКА КАЗОК МИКОЛИ ЗІНЧУКА»: віртуальна книжкова виставка до 100-...«ЧАРІВНА СКРИНЬКА КАЗОК МИКОЛИ ЗІНЧУКА»: віртуальна книжкова виставка до 100-...
«ЧАРІВНА СКРИНЬКА КАЗОК МИКОЛИ ЗІНЧУКА»: віртуальна книжкова виставка до 100-...
Чернівецька обласна бібліотека для дітей
458549.pptx fhffujikgibhikfloflodlesdelsdekidj
458549.pptx fhffujikgibhikfloflodlesdelsdekidj458549.pptx fhffujikgibhikfloflodlesdelsdekidj
458549.pptx fhffujikgibhikfloflodlesdelsdekidj
ssuserfed972
«Шевченкова весна під сонцем шани і любові»
«Шевченкова весна під сонцем шани і любові»«Шевченкова весна під сонцем шани і любові»
«Шевченкова весна під сонцем шани і любові»
Бібліографи ОДБ ім. Т. Г. Шевченка
День відкритих дверей_presentation_6.pptx
День відкритих дверей_presentation_6.pptxДень відкритих дверей_presentation_6.pptx
День відкритих дверей_presentation_6.pptx
artemschoolacc1
Особливості економіки країн Америки. Первинний сектор економіки..pptx
Особливості економіки країн Америки. Первинний сектор економіки..pptxОсобливості економіки країн Америки. Первинний сектор економіки..pptx
Особливості економіки країн Америки. Первинний сектор економіки..pptx
JurgenstiX
Наказатестаціядон61470峦564359岹4ڳ93131.
Наказатестаціядон61470峦564359岹4ڳ93131.Наказатестаціядон61470峦564359岹4ڳ93131.
Наказатестаціядон61470峦564359岹4ڳ93131.
ssuser46127c
Презентація Інституту геодезії 2025 НУЛП
Презентація Інституту геодезії 2025 НУЛППрезентація Інституту геодезії 2025 НУЛП
Презентація Інституту геодезії 2025 НУЛП
Anatoliy13
Румунія у міжвоєнний дададад період.pptx
Румунія у міжвоєнний дададад період.pptxРумунія у міжвоєнний дададад період.pptx
Румунія у міжвоєнний дададад період.pptx
dedkenzo
Дослідження № 4. Традиційні продукти харчування в Україні та країнах-сусідах....
Дослідження № 4. Традиційні продукти харчування в Україні та країнах-сусідах....Дослідження № 4. Традиційні продукти харчування в Україні та країнах-сусідах....
Дослідження № 4. Традиційні продукти харчування в Україні та країнах-сусідах....
JurgenstiX
Дослідження № 4. Традиційні продукти харчування в Україні та країнах-сусідах....
Дослідження № 4. Традиційні продукти харчування в Україні та країнах-сусідах....Дослідження № 4. Традиційні продукти харчування в Україні та країнах-сусідах....
Дослідження № 4. Традиційні продукти харчування в Україні та країнах-сусідах....
JurgenstiX
458549.pptx fhffujikgibhikfloflodlesdelsdekidj
458549.pptx fhffujikgibhikfloflodlesdelsdekidj458549.pptx fhffujikgibhikfloflodlesdelsdekidj
458549.pptx fhffujikgibhikfloflodlesdelsdekidj
ssuserfed972
День відкритих дверей_presentation_6.pptx
День відкритих дверей_presentation_6.pptxДень відкритих дверей_presentation_6.pptx
День відкритих дверей_presentation_6.pptx
artemschoolacc1
Особливості економіки країн Америки. Первинний сектор економіки..pptx
Особливості економіки країн Америки. Первинний сектор економіки..pptxОсобливості економіки країн Америки. Первинний сектор економіки..pptx
Особливості економіки країн Америки. Первинний сектор економіки..pptx
JurgenstiX
Наказатестаціядон61470峦564359岹4ڳ93131.
Наказатестаціядон61470峦564359岹4ڳ93131.Наказатестаціядон61470峦564359岹4ڳ93131.
Наказатестаціядон61470峦564359岹4ڳ93131.
ssuser46127c
Презентація Інституту геодезії 2025 НУЛП
Презентація Інституту геодезії 2025 НУЛППрезентація Інституту геодезії 2025 НУЛП
Презентація Інституту геодезії 2025 НУЛП
Anatoliy13
Румунія у міжвоєнний дададад період.pptx
Румунія у міжвоєнний дададад період.pptxРумунія у міжвоєнний дададад період.pptx
Румунія у міжвоєнний дададад період.pptx
dedkenzo
Дослідження № 4. Традиційні продукти харчування в Україні та країнах-сусідах....
Дослідження № 4. Традиційні продукти харчування в Україні та країнах-сусідах....Дослідження № 4. Традиційні продукти харчування в Україні та країнах-сусідах....
Дослідження № 4. Традиційні продукти харчування в Україні та країнах-сусідах....
JurgenstiX
Дослідження № 4. Традиційні продукти харчування в Україні та країнах-сусідах....
Дослідження № 4. Традиційні продукти харчування в Україні та країнах-сусідах....Дослідження № 4. Традиційні продукти харчування в Україні та країнах-сусідах....
Дослідження № 4. Традиційні продукти харчування в Україні та країнах-сусідах....
JurgenstiX

Функції в 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 }