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

VIII.

,
.
. , ,
.
.

, o ce
, .
.
.
. ,
, .
, if n.
if (alpha > 3)
{
int n;
cin >> n;
beta = beta + n;
}
, n &

.

.
.

.

. C++
. ,
. C++
.. .

78


. :
int gama;

// Globalna promenliva

int main ( )
{
gama = 3;
.
.
}
void SomeFunc ( )
{
gama = 5;
.
.
}
, gama &
main SomeFunc.
,
. :
#include <iostream>
using namespace std;
void SomeFunc( float );
const int a = 17;

// Globalna konstanta

int b;

// Globalna promenliva

int c;

// Globalna promenliva

int main ( )
{
b = 4;

// Dodeluvanje vrednost na globalna b

c = 6;

// Dodeluvanje vrednost na globalna c

SomeFunc(42.8);
return 0;
}
void SomeFunc( float c )
{
float b;

79

b = 2.3;

// Dodeluvanje vrednost na lokalna promenliva b

cout << a = << a;

// Pecati globalno a (17)

cout << b = << b; // Pecati lokalno b (2.3)


cout << c = << c; // Pecati lokalno c formalen parameter (42.8)
, SomeFunc & a,
b c. :
a = 17 b = 2.3 c = 42.8
b b
c c.
, C++
.
.
.
.

:
1. .
.
2.
.
3.
, 5.
4.
.
, 5.
5.
.
.
:
#include <iostream>
using namespace std;
void Block1( int, char& );

80

void Block2( );
int a1;

// Globalna promenliva

char a2;

// Druga globalna promenliva

int main( )
{
.
.
}
// **********************************************************************
void Block1( int a1,
char& b2 );

// Sprecuva pristap na globalnata a1


// Ima ist domen kako c1 i d2

{
int c1;

// Lokalna promenliva za Block1

int d2;

// Druga lokalna promenliva za Block1

}
// **********************************************************************
void Block2( )
{
int a1;

// Go sprecuva pristapot kon globalnata a1

int b2;

// Lokalna promenliva za Block2; nema konflikt


// so b2 vo Block1

while ()
{

// Block3
int c1;

// Lokalna promenliva za Block3; nema konflikt so


// c1 vo Block1

int b2;

// Go sprecuva nelokalniot pristap kon b2 vo Block2


// Nema konflikt so b2 vo Block1

.
.
}
}

81




.

. ,
.

, &

. ,
( )
( ).
C++ & (allocate)
, (deallocate)
.
. ,
static, :
void SomeFunc( )
{
float SomeFloat;

// Se unistuva koga izvr[uvaweto na funkcijata zavrsuva

static int someInt;

// Ja zadrzuva vrednosta pri sekoj povik na funkcijata

.
.
}
,
. ,
.
,
& .

, ,
& . C++
.
. :

82

int sum = 0;

. :
Void SomeFunc( int someParam )
{
int i = 0;

// Se inicijalizira sekojpat pri vlez na kontrolata

int n = 2 * someParam+3

// Se inicijalizira sekojpat pri vlez na kontrolata

.
.
}
, ,
, static,

.
( ).
Void AnotherFunc( int param )
{
static char ch = A;

// Se inizijalizira samo pri prviot vlez

static int m = param + 1;

// Se inizijalizira samo pri prviot vlez

.
.
}

&

.
(interface)
(
) :
-

- () .

.
( -)

83

.
- .
,
:


( )
( )
- (

, )

- (, cin,
cout) .
,
.

.
,
. ,
, .

.
,
& .
(side effect) ,
,
.
,

(. 8.1).

,
.

84

main i drugi f unkci i

strani ~ni
({tetni )
ef ekti

Li stanaparametri

Komuni kaci ski


i nterf ejs

ti pi ~naf unkci ja
sl . 8.1


,
. ,
. ,
, .

85

(Value-Returning Functions)
.
C++: sqrt, abs, fabs .
-, void
. void
, .
,
.

1-365 1-366
.
int Day( /* in */ int month,

// Broj na mesecot 1-12

/* in */ int dayOfMonth
/* in */ int year

// Den vo mesecot 1-31


)

// Godina na pr. 2007

{
int correction = 0;

// korekcionen faktor za prestapna godina i za


// meseci so razlicna dolzina

// Test za prestapna godina


if (year % 4 == 0 && (year % 100 != 0 | | year % 400 == 0)
if (month >= 3)
correction = 1;

// Ako datumot e po 29 fevruari


// dodaj eden za prestapna godina

// Korekcija za meseci so razlicna dolzina


if (month == 3)
correction = correction 1;
else if (month == 2 | | month == 6 | | month == 7)
correction = correction + 1;
else if (month == 8)
correction = correction + 2;
else if (month == 9 | | month == 10)
correction = correction + 3;
else if (month == 11 | | month == 12)

86

correction = correction + 4;
return (month 1) * 30 + correction + dayOFMonth;
}

void , (heading)
( int) void.
return ,
. return
integer return.
, ,
return.

.
(template) :
- ( )
{
.
.
.
}
, ()
, default int.
.
, void . , ,
. .
. x n
x n .
int Power ( /* in */ int x,
/* in */ int n)

// Osnova na stepen
// Eksponent

// Ovaa funkcija presmetuva x na stepen n.


// Preduslov:

n >= 0 && ( x na n ) <= INT_MAX

// Rezultat: Vrednosta na funkcijata == x na n

87

{
int result;

// Cuva rezultat

result = 1;
while (n > 0)
{
result = result * x;
n--;
}
return result;
}

. n! = 1 2 ... n 0! = 1
Int Factorial( /* in */ int n )

// Broj cij faktoriel sakame da go presmetame

// Ovaa funkcija presmetuva n!


// Preduslov: n >=0 && n! <= INT_MAX
// Rezultat: Vrednost na funkcijata == n!
{
int result;

// Cuva proizvodi

result = 1;
while (n > 0)
{
result = result * n;
n--;
}
return result;
}
Factorial :
combinations = Factorial (n) / (Factorial (m) * Factorial (n-m));

88

(interface)
,
. .

.
, void .

(stream) . C++ (
) .
,
void . :
1.
(caller) void ;
2. I/O ;
3. bool,
;
4.
, ;
5. , void a;.
6. void a a ,
.

89

You might also like