Professional Documents
Culture Documents
Uvod U Programiranje Predavanja 2
Uvod U Programiranje Predavanja 2
Uvod U Programiranje Predavanja 2
O
()
( )
2
.
je
:
if-else switch .
: break,
continue, goto, return
(,
) for, while d-while
.
4
:
.
{ } :
{ izraz1; izraz2; ... izrazN;}
{
izraz1;
izraz2;
...
izrazN;
5
-
- () ; ( )
- :
(): if, switch
(): while, do while, for
: break, continue, goto,
return
- ()
{}
: { iskaz1; ; iskazN ; }
{
iskaz1;
iskaz2;
iskazN;
}
-
()
PASCALU
BEGIN ... END
(scope)
, .
.
!
.
7
main( )
{
int prom1=1;
double prom3= prom2 + 5.92; /* GRESKA */
/*error C2065: 'prom2': undeclared identifier*/
double prom2=3.22;
...
}
C
8
main()
{
int prom1=1;
double prom2=3.22;
double prom3= prom2 + 5.92;
prom3= (double)prom1*54.76;
...
{
/* pocetak unutrasnjeg bloka*/
int prom1 =4;
/* lokalna promenljiva prom1*/
prom2= prom2*prom2;
...
printf("%d %f\n", prom1, prom3);
}
/* kraj unutrasnjeg bloka*/
prom1+=32;
printf("%d %f\n", prom1, prom3);
}
4 54.76
33 54.76
9
-: if , if
: switch
: break,
continue
: goto,
10
if else -
if (izraz1)
{
naredbe
}
else if (izraz2)
{
naredbe
}
...
else
{
naredbe
}
11
12
if,
if - else,
: if
if (uslov) iskaz;
13
if (uslov)
{
iskaz1;
...
iskazN;
}
: if
if(>5)b=3;
if(b>=3)
/* ; */
{
b=1;
count = 45.32;
slovo = 'A';
}
14
e: if
#include <stdio.h>
POETAK
main()
{
broj
ISTINA
broj>0
float broj;
printf(Unesite broj: );
LA
"pozitivan"
if ( broj>0 )
KRAJ
printf( Broj je
pozitivan\n, );
}
15
: if else
ISTINA
LA
ISTINA
uslov
iskaz 1
if (uslov)
iskaz1;
else
iskaz2;
16
LA
uslov
iskaz 2
sloeni
iskaz 1
if (uslov)
{
iskaz1;
...
iskazN;
}
else
{
iskaz1;
...
iskazN;
}
sloeni
iskaz 2
if else
if (x < 0)
if (y < 0)
broj_a=5;
else
broj_a=8;
17
if (x < 0)
if (y < 0)
broj_a=5;
else
broj_a=8;
if else
if (x < 0)
if (y < 0)
broj_a=5;
else
;
else
Broj_a=8;
18
if (x < 0)
{
if (y < 0)
broj_a=5;
}
else
Broj_a=8;
if else
if(br != 0) o if(br)
if(br == 0) o if(!br)
if(br_ == 0)
printf("broj a je jednak nuli\n");
else
printf("broj a je razlicit od nule\n");
19
: if else
.
POETAK
broj
ISTINA
LA
broj<=0
"GREKA"
ISTINA
"Paran"
KRAJ
20
ost = 0
LA
"Neparan"
#include <stdio.h>
main()
{
int broj, ost;
printf( Unesite broj: );
scanf( %d, &broj );
if ( broj<=0 )
printf(Nije prirodan\n);
else
{
ost = broj % 2;
if (broj % 2 == 0)
if (ost==0)
printf(Paran\n);
else
printf(Neparan\n);
}
}
: if-else if-else
Uslov 1
ISTINA
Blok 1
LA
Uslov 2
ISTINA
Blok 2
LA
Uslov N
LA
Blok 0
21
ISTINA
if (uslov1)
iskaz1;
else if (uslov2)
iskaz2;
else if (uslov3)
iskaz3;
...
Blok N
else if (uslovN)
iskazN;
[else
iskaz0;]
: if-elseif-else
if(izraz1)
{
naredbe
}
else if(izraz2)
{
naredbe
}
...
else
{
naredbe
}
22
ISTINA
LA
2
ISTINA
ISTINA
LA
N
LA
0
if-else if-else
if(>90)
ocena = 10;
else if(a>80)
ocena = 9;
else if(a>70)
ocena =8;
else if(a>60)
ocena =7;
else if(a>50)
ocena =6;
else
ocena = 5;
23
ocena=5;
if(>90)
ocena = 10;
else if(a>80)
ocena = 9;
else if(a>70)
ocena =8;
else if(a>60)
ocena =7;
else if(a>50)
ocena =6;
if-else if-else
#include <stdio.h>
main()
{
int ocena;
printf( Ocena? );
scanf( %d, &ocena );
if (ocena==5)
printf(Odlican\n);
else if (ocena==4)
printf(Vrlo dobar\n);
else if (ocena==3)
printf(Dobar\n);
else if (ocena==2)
printf(Dovoljan\n);
else if (ocena==1)
printf(Nedovoljan\n);
else
printf(GRESKA\n);
24
}
POETAK
ocena
ISTIN
A
ocena=5
LA
"Odlican"
ISTIN
A
ocena=4
LA
"Vrlo dobar"
ISTIN
A
ocena=3
LA
"Dobar"
ISTIN
A
ocena=2
LA
"Dovoljan"
ISTIN
A
"Nedovoljan"
KRAJ
ocena=1
LA
"GRESKA"
switch
switch if
:
switch(izraz)
{
case vrednost_1: niz_naredbi_1
case vrednost_2: niz_naredbi_2
...
case vrednost_N: niz_naredbi_N
[default: niz_naredbi]
}
25
:
switch
v1
v2
...
vn
switch (izraz)
{
case v1:
iskaz1;
...
iskazN;
case v2:
iskaz1;
...
iskazN;
.
.
.
case vN:
iskaz1;
...
iskazN;
[default:
iskaz0;]
26
switch
izraz.
vrednost_1,
vrednost_2,... vrednost_N.
case switch .
case ,
.
27
switch -
28
main()
Zbir je 3
{
int a = 1, b = 2; Zbir je 41
switch(a+b)
Zbir je nepoznat
{
case 12:
printf("Zbir je 12\n");
case 3:
printf("Zbir je 3\n");
case 41:
printf("Zbir je 41\n");
default:
printf("Zbir je nepoznat\n");
}
}
: switch -
29
main()
{
int a = 4; b=2;
switch(a+b)
{
case 12:
printf("Zbir je
case 3:
printf("Zbir je
default:
printf("Zbir je
case 41:
printf("Zbir je
}
}
Zbir je nepoznat
Zbir je 41
12\n");
3\n");
nepoznat\n");
41\n");
switch -
main()
{
int a = 1;
int b=2;
switch(a+b)
{
case 12:
printf("Zbir
case 3:
printf("Zbir
case 41:
printf("Zbir
default:
printf("Zbir
}
30 }
Zbir je 3
je 12\n"); break;
je 3\n"); break;
je 41\n"); break;
je nepoznat\n"); break;
: switch -
float double
: v1 .. vN
case
switch
switch (izraz)
{
case v1:
iskaz1;
...
iskazN;
case v2:
iskaz1;
...
iskazN;
.
.
.
case vN:
iskaz1;
...
iskazN;
[default:
iskaz0;]
,
default:
switch
case,
break
31
break;
break;
break;
switch
.
#include
32
<stdio.h>
main()
{
int ocena;
printf(Ocena? ); scanf(%d,&ocena);
switch (ocena)
{
case 5:
printf(Odlican\n); break;
case 4:
printf(Vrlo dobar\n); break;
case 3:
printf(Dobar\n); break;
case 2:
printf(Dovoljan\n); break;
case 1:
printf(Nedovoljan\n); break;
default:
printf(GRESKA\n);
}
}
switch
:
.
33
#include <stdio.h>
main()
{
int x,y,rez;
char op;
printf(Unesite izraz u obliku op1 operator op2: \n);
scanf(%d %c %d,&x,&op,&y);
switch (op)
{
case +:
rez=x+y; break;
case -:
rez=x-y; break;
case *:
rez=x*y; break;
case /:
rez=x/y; break;
default:
printf(Ne poznajem tu operaciju!\n);
return (0);
}
printf (%d %c %d = %d, x,op,y,rez);
}
#include <stdio.h>
main()
{
int x,y,rez;
char op;
printf(Unesite izraz u obliku br1 operacija br2: \n);
scanf(%d %c %d,&x,&op,&y);
switch (op)
{
case +:
rez=x+y; break;
case -:
rez=x-y; break;
case *:
rez=x*y; break;
case /:
if (y!=0) rez=x/y;
else
{ printf(deljenje sa 0 nije dozvoljeno!\n);
break;
default:
printf(Nepoznata operacija!\n);
return (0);
}
34
while -
For -
do while -
35
while
:
while(izraz) naredba;
while(izraz)
{
naredba_1;
naredba_2;
...
naredba_N;
}
36
while
izraz .
izraz , (
)
.
izraz 0.
B izraz while
ce
c .
37
while -
!
while (izraz)
{
iskaz1;
...
iskazN;
}
()
izraz (!=0)
()
( )
izraz (==0)
38
while
( 0 120) .
39
0, -17.8
20,
40,
60,
80,
100,
120,
-6.7
4.4
15.6
26.7
37.8
48.9
while
N "ALGORITAM.
POETAK
n
b=1
b <=n
LA
ISTINA
"ALGORITAM"
b=b+1
40
KRAJ
#include <stdio.h>
main()
{
int n, b=1;
printf(Unesite N: );
scanf(%d,&n);
while ( b<=n )
{
printf(Algoritam\n);
b++;
}
}
while
N "ALGORITAM.
POETAK
n
LA
ISTINA
"ALGORITAM"
n--
KRAJ
41
#include <stdio.h>
main()
{
int n;
printf(Unesite N:);scanf(%d,&n);
while (n)
{
printf(ALGORITAM\n);
n--;
}
printf(Poruka ispisana %d puta, n);
}
#include <stdio.h>
main()
{
int n;
printf(Unesite N: ); scanf(%d,&n);
while (n--) printf(ALGORITAM\n);
}
while -
n, n!
POETAK
#include <stdio.h>
main()
{
f=1
int n, f=1;
printf(Unesite N: );
LA
scanf(%d,&n);
printf(%d!=,n);
ISTINA
f=f*n
while (n)
f *= n--;
n = n -1
printf(%d,f);
f
42
KRAJ
while -
n, n!
POETAK
#include <stdio.h>
main()
{
f=1
int n, f=1;
printf(Unesite N: );
LA
scanf(%d,&n);
ISTINA
f=f*n
while (n)
f *= n--;
n = n -1
43
KRAJ
}
: n. ???!!!
while -
.
#include <stdio.h>
main()
{
ISTINA
int b, s=0;
printf(Unesite broj: );
"Nije
scanf(%d,&b);
prirodan"
if (b<1)
KRAJ
printf(Nije prirodan!);
else
{
while (b)
{
s += b % 10;
b /= 10;
}
printf(Zbir cifara je:%d,s);
}
}44
POETAK
b
b<1
LA
s=0
b>0
ISTINA
c = b MOD 10
s=s+c
b = b DIV 10
s
KRAJ
LA
while -
, .
POETAK
45
#include <stdio.h>
#include <math.h>
main()
{
int b, p, d=1;
printf(Unesite broj: );
scanf(%d,&b);
if (b<1)
printf(Nije prirodan!);
else
{
p = (b == 2) | (b % 2);
while (p && (d+=2)<=sqrt(b))
p = b % d;
printf(%d %s prost, b, p ?
je:nije);
}
}
b
ISTINA
"Nije
prirodan"
b<1
LA
p = (b==2) (b%2)
d=3
KRAJ
p && d <
LA
ISTINA
p = b%d != 0
d=d+2
ISTINA
JESTE"
LA
NIJE"
KRAJ
do while -
do while
( for while).
do while
,
.
46
: do...while
:
do
{
naredbe
}
while( izraz );
do while
(izraz 0)
47
do...while
#include <stdio.h>
main()
{
float num, suma=0;
do
{
printf(Unesite broj");
scanf ("%f",&num);
suma += num; /* suma =suma + num; */
printf (Zbir je %f\n\n", suma);
}
while (num!=0);
48 }
do...while
:
ISTINA
49
iskaz;
while (izraz);
LA
1.
2.
3.
4.
do
do ( )
ISTINIT (!=0) 1
LA (==0)
while
do
{
iskaz1;
...
iskazN;
}
while (izraz);
do...while
N "ALGORITAM.
POETAK
N
ISTINA
N<1
LA
b=1
"ALGORITAM"
b=b+1
ISTINA
b<=N
LA
KRAJ
50
#include <stdio.h>
main()
{
int n, b=1;
do do
{
printf(Unesite N: );
scanf(%d,&n);
}
while (n<1);
do
do
{
printf(Algoritam\n); b++;
}
(b<=n);
while (
++b <= n );
}
do...while
NZD .
POETAK
ISTINA
X,Y
ost=X MOD Y
X<1 v Y<1
X=Y
LA
ISTINA
X<Y
Y = ost
LA
ISTINA
P=X
X=Y
Y=P
Y>0
LA
X
51
KRAJ
#include <stdio.h>
main()
{
int x,y,p,ost;
do
{
printf(Unesite X i Y:);
scanf(%d %d,&x,&y);
}
while (x<1 || y<1);
if (x<y)
{ p=x; x=y; y=p; }
do
{
ost = x%y;
x = y;
y = ost;
}
while (y);
}
do...while
.
( )
#include <stdio.h>
main()
{
int x,y,bd;
do
{ printf(Unesite X i Y:); scanf(%d %d,&x,&y); }
while (x<1 || y<1);
do
{ printf(Broj decimala:); scanf(%d,&bd); }
while (bd<1);
printf(%d:%d=%d., x, y, x/y);
do
{
x = x%y * 10;
printf(%d, x/y);
}
while (--bd);
}
52
do...while
, , X,
- .
POETAK
x0
X 1
, xn 1
2
xn
X
xn
#include <stdio.h>
#include <math.h>
#define EPS 0.0001
main()
{
float x,xs,xn;
do
{ printf(X=); scanf(%f,&x);}
while (x<0);
xn = (x+1)/2;
do
{ xs = xn; xn = (xs + x/xs) / 2;}
while (fabs(xn-xs)>EPS);
printf(Koren je: %8.4f,xn);
}
53
, n 0, 1, 2...
X
ISTINA
X<0
LA
eps = 0.0001
xN = (X+1) / 2
xS = xN
xN = (xS + X/ xS) / 2
ISTINA
for-
for :
for (izraz_1; izraz_2; izraz_3 )
{
naredbe
}
izraz_1
,
izraz_2
izraz_3
,
izraz_2 .
54
for-
#include <stdio.h>
main()
{
int num;
for(num = 1; num <= 10 ; num ++)
{
printf(" %d ", num);
}
printf("\n");
}
: 1 2 3 4 5 6 7 8 9 10
55
for-
#include <stdio.h>
void main()
{
int num;
for(num = 10; num >= 0 ;
{
printf(" %d ", num);
}
printf("\n");
}
: 10 9 8 7 6 5
56
num--)
for-
#include <stdio.h>
void main()
{
int num;
for (num = 2; num <= 10 ;
{
printf(" %d ", num);
}
printf("\n");
}
: 2 4 6 8 10
57
num += 2)
for-
for (poc_izraz; uslov; izraz_petlje)
iskaz;
LA
ISTINA
58
pocetni_izraz;
while (uslov)
{
iskaz; izraz_petlje;
}
for-
N "ALGORITAM.
POETAK
N
#include <stdio.h>
main()
{
int n, i;
printf(Unesite N: ); scanf(%d,&n);
i = 1, N
"ALGORITAM"
KRAJ
#include <stdio.h>
main()
{
int n;
,
.
printf(Unesite N: ); scanf(%d,&n);
for ( ; n ; n--)
printf(Algoritam\n);
(n), (n>0)
}
59
for-
A,B, <A,B>.
POETAK
A,B
#include <stdio.h>
main()
{
int a, b, broj;
printf(Unesite granice intervala: );
scanf(%d %d,&a, &b);
KRAJ
,
printf( %d, broj++);
!!!
60
for- ( )
- n!
POETAK
ISTINA
N<0
LA
P= 1
b = 2, N
P= P* b
KRAJ
61
#include <stdio.h>
main()
{
int n, p;
do
{ printf(n=); scanf(%d,&n); }
while (n<0);
for ( p=1 ; n ; p*=n-- );
printf(%d, p);
}
#include <stdio.h>
main()
{
int n, b, p;
do
{ printf(n=); scanf(%d,&n); }
while (n<0);
for ( p=1, b=2 ; b<=n ; b++ )
p=p*b;
printf(%d!=%d, n, p);
}
for-
(= ).
POETAK
#include <stdio.h>
main()
{
int broj, d, s;
printf(Unesite prirodan broj:);
scanf(%d,&broj);
if (broj<1)
printf(Nije prirodan!);
else
{
for ( s=1, d=2 ; d<=broj/2 ; d++ )
s += (broj%d) ? 0 : d;
printf(%d %s savrsen, broj,
(broj==s) ? je : nije );
}
}
62
broj
ISTINA
LA
broj < 1
S=1
"Nije
prirodan"
D = 2, broj/2
KRAJ
ost = broj % D
LA
ost = 0
ISTINA
S=S+D
ISTINA
broj = S
JESTE"
LA
NIJE"
KRAJ
for-
1000.
POETAK
broj = 1, 999
S=1
#include <stdio.h>
main()
{
int broj, d, s;
for ( broj=1 ; broj<1000 ; broj++ )
D = 2, broj/2
ost = 0
ISTIN
S=S+D A
ISTIN
A
broj = S
broj
}
}
63
KRAJ
LA
for-
n :
*
**
***
****
*****
.
.
.
#include <stdio.h>
main()
{
int n, red, broj;
do
{ printf(n=? ); scanf(%d,&n); }
while (n<1 || n>20);
for ( red=1 ; red<=n ; red++ )
{
for ( broj=1 ; broj<=red ; broj++ )
printf(*);
printf(\n);
}
}
64
for-
n n :
1
12
123
1234
.
.
.
123456789
1234567890
12345678901
.
.
.
#include <stdio.h>
main()
{
int n, red, broj;
do
{ printf(n=? ); scanf(%d,&n); }
while (n<1 || n>20);
for ( red=1 ; red<=n ; red++ )
{
for ( broj=1 ; broj<=red ; broj+
+ )
printf(*); broj%10);
printf(%d,
printf(\n);
}
}
65
for-
n :
#include <stdio.h>
main()
{
int n, red, broj;
do
{ printf(n=); scanf(%d,&n); }
while (n<1 || n>20);
1
232
34543
4567654
.
.
.
890123454321098
90123456765432109
.
.
.
break
continue
goto
return
67
break
break
(while, for do-while),
switch
,
,
break
68
break
for(i=0; ; ++i)
{
...
x=i-3+12*i
if(x>=500) break;
...
}
...
69
break
#include <stdio.h>
main()
{
int c;
printf("Unesite karkter:\n( x za izlaz)");
while(1)
{
c = getc(stdin);
if (c == 'x') break;
}
printf("Prekid beskonacne petlje!\n");
}
70
break -
:
switch:
switch
switch
:
:
71
continue
continue,
break
(while, for
do-while)
() .
72
continue
2 4 6 8 10
#include <stdio.h>
main()
{
int x;
printf("Ispis parnih brojeva do 10\n");
for( x = 1; x <= 10; x++ )
{
if( x % 2 != 0 )/* Ako broj nije paran */
continue; /* Idi na poetak petlje */
printf( "\n%d", x );
}
}
73
goto
goto labela;
74
Labela ()
!
- goto
.
#include <stdio.h>
main()
{
int broj;
lab1: printf(Unesite prirodan broj: );
scanf(%d,&broj);
kraj
if (broj<1)
75
return
:
( return)
main
:
return (vrednost);
return (izraz);
76
?
77