Sav sadržaj programskog jezika C++ koji smo do sada prošli ima nekog smisla. Dao vam je osnove da napišete svoj program, sa koliko god kompleksnom logikom. Zamislite koliko jedno programsko rješenje ima linija koda. Možda ćete dobiti sliku o tome ako pročitate ovaj članak https://interestingengineering.com/lists/whats-the-biggest-software-package-by-lines-of-code . Radi se o milijunima redaka koda u jednom softverskom rješenju. To su sve rješenja koja mi svakodnevno koristimo.
No kako sav taj programski kod organizirati? Kako napisati program, cijeli u main funkciji? Gdje je tu red i organizacija? Prva stvar kada je u pitanju organizacija koda koju možete koristiti su funkcije. Funkcija predstavlja modularni dio programa koji izvršava određeni zadatak. Funkcije možemo podijeliti na korisničke i ugrađene. Korisničke su one koje smo mi pisali, a ugrađene su one koje smo uzeli od drugih korištenjem njihovih biblioteka (libraries). Na primjeru ćemo vidjeti što je to funkcija i od čega se sastoji.
#include<iostream> //ukljucujemo biblioteku za unos i ispis sadržaja
using namespace std;
int zbroji(int, int); //deklaracije funkcije
void main()
{
int a, b; // deklariramo varijable
cout << "Unesite prvi broj:" << endl;
cin >> a;
cout << "Unesite drugi broj:" << endl;
cin >> b;
int d;
d = zbroji(a, b); // pozivanje funkcije, prosljeđivanje parametara, spremanje rezultata u varijablu
cout << "Zbroj dva broj je " << d << endl;
}
int zbroji(int prviBroj, int drugiBroj) // definicija funkcije
{
int zbroj = prviBroj + drugiBroj;
return zbroj;
}
Prva nova stvar koju vidimo je:
int zbroji(int, int); //deklaracije funkcije
Deklaracija funkcije počinje sa definicijom povratnog tipa podataka. U ovom slučaju mi znamo da će ova funkcija uvijek vraćati int, tj. cijeli broj. Njen naziv je zbroji. Ova funkcija ima dva ulazna parametra, to jest u nju možemo proslijediti dvije varijable za uporabu. Funkcija će primiti samo dva parametra tipa int.
Unutar main funkcije je nam manje-više sve poznato do ovog dijela:
d = zbroji(a, b);
U tom dijelu pozivamo funkciju zbroji koju smo ranije deklarirali i u nju prosljeđujemo dvije popunjene varijable. Rezultat funkcije će se spremiti unutar varijable d.
Sama definicija funkcije je opisana u ovom dijelu.
int zbroji(int prviBroj, int drugiBroj) // definicija funkcije
{
int zbroj = prviBroj + drugiBroj;
return zbroj;
}
Tu definiramo njene operacije i to što će ona raditi sa varijablama koje primi. U ovom našem slučaju funkcija zbraja dva cijela broja i vraća rezultat. Taj rezultat se vraća u već opisano mjesto pozivanja, sprema u posebnu varijablu te nakon toga ispisuje.
Postavlja se pitanje moramo li sve funkcije koje trebamo sami pisati? Možemo li iskoristiti nešto što je već netko drugi napisao? Tu dolazimo do biblioteka, koje sadrže nama potrebne funkcije. Najbolje ćemo opet vidjeti na primjeru.
#include<iostream> //ukljucujemo biblioteku za unos i ispis sadržaja
#include<cmath> //ukljucujemo biblioteku za matematičke operacije
using namespace std;
void main()
{
int a; // deklariramo varijable
cout << "Unesite broj:" << endl;
cin >> a;
cout << "Korijen broja je " << sqrt(a) << endl; //poziv funkcije za korijen
cout << "Kvadrat broje je " << pow(a, 2) << endl; //poziv funkcije za potenciranje
}
U ovom primjeru smo uključili biblioteku cmath. Ona u sebi sadrži brojne funkcije koje nam mogu pomoći za razne matematiče operacije. U kodu možete vidjeti kako smo izračunali korijen unesenog broja i njegovu drugu potenciju.
Na taj način možete uključiti mnoge druge biblioteke koje možete koristiti za svoje programe.
Ovo je sve za ovu lekciju. Naučili ste što su funkcije i vidjeli neke primjere upotrebe. Za sva pitanja koja imate možete pisati u našu redakciju na info@bajtbox.com. Osim nas, Internet, Google i ChatGPT su vaši prijatelji u učenju programiranja. Do idućeg čitanja.
Davor Škobić