Uvod U Programiranje Predavanja 2

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 77

C

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

else, if else if ... lse

: switch
: break,

continue

: goto,

10

if else -
if (izraz1)
{
naredbe
}
else if (izraz2)
{
naredbe
}
...
else
{
naredbe
}
11

12

if,

if - else,

if - else 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

scanf( %f, &broj );

"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

ost = broj MOD 2

"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

printf (%d %c %d = %d, x,op,y,rez);


}

while -
For -
do while -
35

while
:
while(izraz) naredba;

while(izraz){naredba_1; ...; naredba_N;}

while(izraz)
{
naredba_1;
naredba_2;
...
naredba_N;
}
36

while
izraz .
izraz , (
)
.
izraz 0.
B izraz while
ce
c .
37

while -
!

while (izraz) iskaz;

while (izraz)
{
iskaz1;
...
iskazN;
}


()

izraz (!=0)
()

( )

izraz (==0)

38

while
( 0 120) .

float faren, celz;


int maks, korak;
maks = 120;
korak = 20;
faren = 0;

39

0, -17.8
20,
40,
60,
80,
100,
120,

-6.7
4.4
15.6
26.7
37.8
48.9

while (faren <= maks)


{
celz= (5.0/9.0) * (faren-32.0);
printf("%3.0f,%6.1f\n",faren, celz);
faren += korak;
}

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

printf(Faktorijel broja %d je%d,n, f);


n, f

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

|xN - xS | > eps


LA
xN
KRAJ

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

for (poc_izraz; uslov; izraz_petlje)


{
iskaz1;
...
iskazN;
}
while :

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

for (i=1 ; i<=n ; i++)


printf(Algoritam\n);
}

#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);

broj = A+1, B-1


broj

KRAJ

for ( broj=a+1 ; broj<=b-1 ; broj++ )


printf( %d, broj);
}
#include <stdio.h>
main()
{
int a, b, broj;


,
printf( %d, broj++);
!!!

printf(Unesite granice intervala: );


scanf(%d %d,&a, &b);
for ( broj=a+1 ; broj<=b-1 ; )
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 = broj MOD D


LA

ost = 0
ISTIN
S=S+D A

for ( s=1, d=2 ; d<=broj/2 ; d+


+ )
s += (broj%d) ? 0 : d;
if (broj==s)
printf( %d, broj);

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
.
.
.

for ( red=1 ; red<=n ; red++ )


{
for ( broj=1 ; broj<=n-red ; broj++ )
printf( );

for ( broj=red ; broj<=2*red-1 ; broj++ )


printf(%d, broj%10);
for ( broj=2*red-2 ; broj>=red ; broj-- )
printf(%d, broj%10);
printf(\n);
}
66



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)

{ printf(Nije prirodan!\n); goto kraj; }



printf(%d%s paran\n,broj,(broj%2)? nije:je);
lab1
goto lab1;
kraj: printf(KRAJ...);
}

75


return
:

( return)
main


:
return (vrednost);

return (izraz);
76


?
77

You might also like