You are on page 1of 22

KONTROLNA STRUKTURA

ZA POVTORUVAWE

PRA[AWA ZA VOVEDUVAWE?
[to e potrebno za da po~neme so
programirawe?
da se zapoznaeme so programskiot jazik
vo tekstualna datoteka ja pi{uvame
programata
ja preveduvame vo ma{inski jazik
ja izvr{uvame programata (testirame)

KONTROLNI STRUKTURI ZA
POVTORUVAWE

Kontrlnite strukturi za povtoruvawe se koristat koga e


potrebno edna grupa algoritamski ~ekori da se izvr{at
pove}e pati.
Edno izvr{uvawe na ~ekorite se narekuva ciklus.

.

~ekor-1;
~ekor-2;
....
~ekor-k;
kraj_

VIDOVI NA STRUKTURI ZA
POVTORUVAWE

POVTORUVAWE SO IZLEZ NA
PO^ETOKOT OD CIKLUSOT
Uslovot e logi~ki izraz koj mo`e da e to~en (true)
ili neto~en (false).
Dodeka e ispolnet uslovot (zadaden na po~etokot
na ciklusot) se izvr{uvaat ~ekorite od ciklusot
i se vra}a na po~etokot na ciklusot.

Usl ov
N e t o ~n o

T o ~n o
^ e k o r -1
...
^ e k o r -k

dodeka uslov
izvr{uvaj
~ekor-1;
~ekor-2;
...
~ekor-k;
kraj_uslov

while(uslov)
{
naredba-1;
naredba-2;
...
naredba-k;
}

Vo ciklusot obi~no se menuvaat vrednostite na


promenlivite od koi e sostaven uslovot.

Na toj na~in se ovozmo`uva da dojde situacija vo


koja uslovot nema da bide ispolnet i izvr{uvaweto }
e prodol`i posle ciklusot. Vo sprotivno se javuva
problemot na beskone~no povtoruvawe na ciklusot.

Pr.1 ,

a=3;
i=4;
while (i<6)
{
a=a+2;
i++;
}

=3
4<6 -> a=a+2=3+2=5
5<6 -> a=a+2=5+2=7
6<6

i=4
i=4+1=5
i=5+1=6

: ,
7.

Pr.2 ,

a=5;
i=3;
while (i<6)
{
a=a+3;
i++;
}
:
3<6
4<6
5<6
6<6

=5
i=3
-> a=5+3=8
i=3+1=4
-> a=8+3=11
i=4+1=5
-> a=11+3=14
i=5+1=6
.

: ,
14.

Pr.3. [to raboti ovoj del od programata?


s=0;
i=1;
while (i<=4)
{
s=s+i;
i++;
}

:
1<=4
2<=4
3<=4
4<=4
5<=4

s=0
s=s+i=0+1=1
s=s+i=1+2=3
s=s+i=3+3=6
s=s+i=6+4=10

i=1
i=i+1=1+1=2
i=i+1=2+1=3
i=i+1=3+1=4
i=i+1=4+1=5

: s=1+2+3+4. s - 4 , s=10.

Pr.1 Da se otpe~ati zbirot na prvite n


prirodni broevi (n go vnesuvame preku
tastaturata)!
#include <iostream>
using namespace std;
int main()
{
int i,n, s;
cout<<"Vnesi go brojot n= ";
cin>>n;
s = 0;
i=1;
while (i<=n)
{
s = s + i;
i++;
}
cout<<"Zbirot na prvite "<<n<<" broevi e:"<<s;
return 0;
}

Pr.1 Da se otpe~ati t na
prvite n prirodni broevi (n go
vnesuvame preku tastaturata)!
#include <iostream>
using namespace std;
int main()
{
int i,n, s;
cout<<"Vnesi go brojot n= ";
cin>>n;
s=1;
i=1;
while (i<=n)
{
s = s * i;
i++;
}
cout<<"Proizvodot na prvite "<<n<<" broevi e:"<<s;
return 0;
}

INKREMENTIRAWE I
DEKREMENTIRAWE

Inkrementirawe zna~i zgolemuvawe na vrednosta na


promenlivata za 1, a dekrementirawe zna~i
namaluvawe na vrednosta na promenlivata za 1.

++broj;

++broj;

broj++;

e isto so:

--broj;

broj = broj + 1;

broj--;

Pr.

broj+=1;

BROJ=8;
a) A=++BROJ+5;

- (A=14, BROJ=9)

b) A=5+BROJ++;

- (A=13, BROJ=9)

cin.get(znak1);

Ovaa komanda odgovara na


cin>>znak1;

samo {to ovde nema potreba posle vnesuvaweto da


pritisne{ na tastaturata na kop~eto ENTER.

PRIMER 2

Pr.2 Prebroj kolku znaci si pritisnal dodeka ne go


pritisne{ znakot 'n'.

PRIMER 3

Pr.3 Tabeliraj ja fukcijata


y=x*x+1

vo intervalot za x od -2 do 2 so ~ekor 1.

PRIMER 4

Pr.4 Tabeliraj ja fukcijata


y=x*x+1

vo intervalot za x od a do b, so ~ekor h.

PRIMER 5

Pr.5. Da se najde najgolem zaedni~ki delitel na


dva broja
// NZD NA DVA BROJA
#include <iostream>
using namespace std;
int a,b, nzd;
int main()
{
cout<<"Vnesi gi broevite a i b"<<endl;
cin>>a;
cin>>b;
if (a<b)
nzd=a;
else
nzd=b;
while (a%nzd!=0 || b%nzd!=0)
{
--nzd;
}
cout<<"NZD("<<a<<","<<b<<")="<<nzd;
return 0;
}

Pr.5. Da se najde najmal zaedni~ki sodr`atel


na dva broja
// NZS NA DVA BROJA
#include <iostream>
using namespace std;
int main()
{
int a,b,nzs;
cout<<"Vnesi gi broevite a i b"<<endl;
cin>>a;
cin>>b;
if (a>b)
nzs=a;
else
nzs=b;
while (nzs%a!=0 || nzs%b!=0)
{
++nzs;
}
cout<<"NZS("<<a<<","<<b<<")="<<nzs;
return 0;
}

.4

// IZDVOJUVANJE NA CIFRI OD PRIRODEN BROJ
#include <iostream>
using namespace std;
int main()
{
int n, m, m1;
cout<<"Vnesi go brojot n=";
cin>>n;
m=n;
while(m>0)
{
m1=m/10*10;
cout<<m-m1<<endl;
m = m / 10;
}
return 0;
}

.4
.
.


.

.4
// KVADRATI VO PRAVOAGOLNIK
#include <iostream>
using namespace std;
int main()
{
int x,y, d;
cout<<"Vnesi gi dimenziite";
cin>>x;
cin>>y;
d=0;
do
{
if(x>y)
x=x-y;
else
y=y-x;
d++;
}
while((x>0) && (y>0) );
cout<<d;
return 0;
}

Pr.7. Pogoduvawe na dvocifren broj (ispe~ati


sledniot pat da bara pogolem ili pomal broj).
// POGODUVANJE NA BROJ
#include <iostream>
using namespace std;
int main()
{
const int zam=34;
int broj, obid;
broj=0;
obid=0;
while(broj!=zam)
{
cout<<"Vnesi go brojot=";
cin>>broj;
if (broj>zam)
cout<<"Sledniot pat baraj pomal"<<endl;
if (broj<zam)
cout<<"Sledniot pat baraj pogolem"<<endl;
++obid;
}
cout<<"Bravo. Go pogodivte brojot "<<zam<<" vo "<<obid<<" obid";
return 0;
}

You might also like