Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 12

Прашања

• Што е параметар на функција?


• Дали функција мора да има параметри?
• Дали функција мора да има наредба
return?
• Што ако функција треба да врати повеќе
вредности?
Функции без параметри и
функции без повратни вредности
Функции без параметри
Функции без параметри обично не враќаат вредност туку извршуваат
некоја наредба. На пр. функција со која се печатат три празни линии:
void skipthree()
{
cout << endl << endl << endl;
}
• Типот на функцијата мора да биде void што на компајлерот му
кажува дека таа не враќа вредност.
• Бидејќи оваа функција нема параметри, листата со параметри е
празна, но заградите мора да се наведат.
• Бидејќи функцијата не враќа вредност, таа не може да се користи
во израз и се повикува како наредба:
skipthree();
(грешка а=skipthree();)
Задача: Отвори го фајлот  house.cpp. Недостасуваат декларации на трите
функции што се користат во програмата. Вметни ги нивните прототипови
на означеното место. Компајлирај ја и изврши ја програмата. 
//File: house.cpp cout << "| |" << endl;
//Ovaa programa pecati kukja. return;
#include <iostream> }
using namespace std; void PecatiPresek() // Pecati dve linii sto se secat
// ovde deklariraj prototipovi na site funkcii {
int main() cout << " $ " << endl;
{ cout << " $ $ " << endl;
PecatiPresek(); //crta krov cout << " $ $ " << endl;
PecatiHorizontala(); //crta osnova na krovot cout << " $ $ " << endl;
PecatiParaleli(); //crta strani na kukjata cout << " $ $ " << endl;
PecatiHorizontala(); //crta osnova na kukjata return;
return 0; }
} void PecatiHorizontala() // Pecati horizontalna
void PecatiParaleli() // Pecati dve paralelni linii linija
{
cout << "| |" << endl; {
cout << "| |" << endl; cout << "-----------" << endl;
cout << "| |" << endl; return;
cout << "| |" << endl; }
Домашна задача: Модифицирај ја програмата
house.cpp така што ќе добиеш следниов излез:

• Чекор 1: Напиши нова функција


PecatiKrug() со која ќе се отпечати
кругот.
• Чекор 2: Промени го редоследот
на повикување на функциите
Локални и глобални променливи
• Област на важење (scope) управува со видливост и со
животниот век на променливите.
• Може да биде локален и глобален.
#include <iostream>
using namespace std;
void pecati()
{
cout<<x;
} Грешка - променливата не е
декларирана во оваа област на важење
int main()
{
int x=9; // x e lokalna promenliva za main
pecati();
return 0;
}
#include <iostream>
using namespace std;
int x=9; // x e globalna promenliva
void pecati()
{
cout<<x;
}

int main() Ќе отпечати 9


{
pecati();
return 0;
}
Локални променливи

• Локален опсег се дефинира во блок (помеѓу големите


загради) – најчесто функција
• Променлива која е декларирана во блок се нарекува
локална променлива
• Сите локални променливи за еден блок не се висливи ниту
се достапни надвор од него
• Локални променливи „се живи“ само додека се извршува
блок во кој тие се декларирани
Глобални променливи

• Глобален опсег е област на декларирање која се наоѓа


надвор од сите функции
• Глобални променливи се достапни во цела програма и ја
задржуваат нивната вредност цело време додека
програмата се извршува
• Најдобро е глобалните променливи да се декларираат
пред функцијата main()
• Доколку не се иницијализирани, глобалните променливи
добиваат почетна вредност 0.
Функции без повратни вредности
• Ако функција пресметува повеќе
вредности, таа не може да ги врати
резултатите во главната функција со
наредвата return. Наместо тоа се користи
наредбата cout, а функцијата е од типот
void.
• Овие функции можат да имат влезни
параметри.
// perimetar I plostina na krug
#include <iostream>
using namespace std;
void krug(int);
int i; //mora da bide globalna promenliva, se koristi vo main() i vo krug()
int main()
{
for (i=1; i<=5;i++)
krug(i); // se povikuva kako naredba
}
void krug( int r)
{
const float pi=3.1415; //definirana konstanta pi
cout<< "za r="<<i<<" plostina e "<<pi*i*i<<", a perimetarot e "<<2*pi*i<<endl;
return; //moze da se izostavi
}
Задачи:
Функција за пресметување на плоштина и
периметар на правоаголник со страни a и b

Домашна задача
За природните броеви од 1 до 20 да се отпечатат
количникот и остатокот при целобројното
делење со бројот m (се внесува преку
тастатурата во main)

You might also like