You are on page 1of 3

Функции во С++ декларирање на функции

1. Концепт „раздели па владеј“ при решавање посложен проблем

Алгоритмите за посложени задачи може да бидат многу долги и непрегледни. Затоа и


програмите што ќе се напишат според тие алгоритми може да бидат тешко разбирливи. За
решавање на посложените задачи најдобро е тие да се разбијат на помали и поедноставни
задачи, наречени подзадачи. Ако е потребно, и тие подзадачи понатаму се разделуваат на уште
ПРОГРАМИРАЊЕ

поедноставни задачи На пример, задачата за степенување може да се расчлени на три речиси


независни целини:
ВО С++

1. да се вчитаат броевите x и n;
2. да се пресмета степенот xn;
3. да се отпечати добиениот резултат.
Секоја подзадача може да се разгледува како посебна целина, односно за секоја подзадача
може да се напише посебна програма која се нарекува потпрограма (sub- program).
Потпрограмите се независни именувани програмски целини наменети за решавање на
одредени задачи. Наредбите во потпрограмата се пишуваат како и во секоја друга програма.
Во неа може да се декларираат променливи, да се дефинираат типови и константи, да се
внесуваат и печатат податоци, да се доделуваат вредности на променливи, да се извршуваат
различни пресметувања и слично.
Една потпрограма може повеќе- пати да се искористи во главната програма. На пр. во
програмата за наоѓање на најголемиот од три броја a,b и c двапати се бара одредување на
поголемиот од два броја. Овој дел може да се напише како потпрограма и да се искористи еднаш
за одредување на поголемиот од броевите а и b и вторпат за одредување на поголемиот од
броевите p и c.

2. Модули. Пристап од врвот надолу


Секоја потпрограма е независна целина и може да биде напишана од друг човек.
Потпрограмите што најчесто се користат при програмирањето, наречени стандардни
потпрограми, се зачувани во посебни програмски модули кои се составен дел на соодветниот
програмски јазик. Кога е потребно, овие потпрограми може да се повикаат и да се извршат во
главната програма. Притоа доволно е да се знае што работи потпрограмата, не е многу важно
како тоа го работи. На тој начин програмерите се ослободуваат од пишување исти програми за
проблемите со кои често се среќаваат (на пр. наоѓање квадратен корен, решавање квадратна
равенка и сл.). Ваквата техника на програмирање се нарекува модуларно програмирање
(modular programming).
Сите потпрограми логички се поврзуваат и на тој начин се формира главната програма за
решавање на поставената задача. Ваквата техника на програмирање, во која се врши
расчленување на подзадачите, се нарекува програмирање од врвот надолу (top-down
programming).
Во C++ модулите се наречени библиотеки.

3. Функции во С++
Потпрограмите се издвоени целини во програма кои решаваат некоја задача. За разлика од
1
некои програмски јазици (на пр. Pascal) кои разликуваат процедури и функции, во C++ се
користат само функции. Кај сите програми кои ги разгледавме досега, наредбите кои требаше да
се извршат ги пишувавме во една функција – main(). Тоа е основниот дел кој го содржат сите
програми, а main() e првата функција која се повикува при стартот на една програма напишана во
програмскиот јазик C++.
Функциите претставуваат множества наредби кои се извршуваат при секој нивен повик.
Можно е:
- да се напишат сопствени функции па тие да се користат во програма или
- да се користат веќе постоечки функции кои се подготвени за користење и зачувани во
библиотеки.

ПРОГРАМИРАЊЕ
Функцијата треба да изврши една добро дефинирана задача. За да го направи тоа, функцијата

ВО С++
може, но не мора да побарува вредности кои ѝ се доставуваат кога таа ќе се повика. Откако
функцијата ќе ја заврши задачата, таа во повикувачката функција најчесто враќа некоја
вредност.
Што значи враќање на вредноста од страна на функцијата ќе објасниме преку едноставен
математички пример.
Променливата c во изразот c=a+b за a=2 и b=3 ќе добие вредност c=2+3=5. Оваа задача
може да ја изврши и некоја функција, на пр. soberi(a,b) која собира два броја. Името на функцијата
е soberi, а нејзините параметри се променливите a и b. Ако на параметрите на функцијата
soberi(a,b) им се доделат вредности a=2 и b=3, нејзиниот резултат ќе биде 5. Токму овој резултат
претставува „повратна вредност“. Значи, кога се вели дека функцијата враќа вредност, тоа значи
дека функцијата ја извршила задачата која ѝ е доделена (во овој случај собирање два броја) и
го вратила резултатот со кој може да се работи нешто друго или да се прикаже на екранот.
Вредностите коишто ѝ се доделуваат на некоја функција се нарекуваат аргументи на
функцијата, а вредноста којашто функцијата ја враќа се нарекува повратна вредност на
функцијата. Повратната вредност во повикувачката функција може да се користи во која било
наредба.
Во C++ постојат функции кои враќаат една вредност и функции кои не враќаат
вредност (на пр. печатење 10 ѕвездички), но не постои функција која враќа повеќе од една
вредност.

4. Декларирање функци
Исто како променливите, и функциите треба да се декларираат, т.е. да се најават и еднозначно
определат. При декларирањето на функцијата се наведува нејзиното име, тип и листа на параметри.
Името на функцијата треба да биде такво за да означува што таа точно работи. Типот на податокот
што функцијата го враќа (повратна вредност) го определува типот на функцијата. Листата на
параметри содржи имиња и типови на променливи преку кои функцијата добива вредности при
нејзиното повикување

Функциите во С++ се декларираат со наредбата која има форма:


tip_na_funkcija ime_na_funkcija(листа на параметри);

Оваа наредба се нарекува прототип на функција.


Пример. Во декларацијата:
float pogolem (float a, float b);
Името на функцијата е pogolem, типот на функцијата е float (резултатот е реален број),
параметрите се променливите a и b, двете од типот float (реални променливи). Имињата на
параметрите може да се изостават, па функцијата pogolem може да се декларира и на
следниов начин:
float pogolem (float, float);
Кога се декларира некоја функција, треба да се одговори на следниве прашања: колку
параметри (влезни податоци) има функцијата, од кој тип се тие податоци и каков тип ќе
има резултатот (повратната вредност).
На пр., функцијата soberi со која се собираат два реални броја, има два параметри и тие се
2
од типот float. Резултатот на функцијата е збир на два реални броја, а тоа значи дека резултатот
исто така ќе биде од типот float. Конечно, прототип на функцијата soberi ќе биде:
float soberi (float a, float b);

Примери на прототипи на функции


float plostina (float a, float b); реална функција со два реални параметри
bool prost (int n); логичка функција со параметар цел број
void pecati(int broj) функција која не враќа вредност со параметар цел број.
Ако функцијата не враќа вредност, таа се декларира со
типот void.

Сите C++ програми ја користат главната функција наречена main. Одговори на следниве
прашања:
- Како се декларира и од кој тип е главната функција? Кои се нејзини параметри? Со која
наредба и која вредност ја враќа главната функција?
Функциите се декларираат на почетокот од програмата (пред да се повика главната функција
main) за да може да се повикуваат во главната програма.
Пр. Напиши прототип за функцијата множење на два цели броја x и y.
int proizvod (int a, int b);

Домашна работа:

1. Одреди ги типот и параметрите на функцијата во следниве прототипови:


int dvojnavrednost (int x);
float srednavrednost (float a, float b);
float plostina (float r);
bool paren (int n);

2. Напиши прототип за следниве финкции:


- наоѓање на апсолутната вредност на бројот x,
float abs(float x)
- наоѓање на бројот на цифрите на природен број n,
int broj(int b)
- проверка дали природниот број n е парен.
bool paren(int b)

You might also like