240 likes | 464 Views
Uvod u programiranje I. jesen/zima 2008. Blok-naredba. Niz naredbi između { i }: { naredba 1 ; naredba 2 ; . . . naredba n ; }. Dejan Živković. Uvod u programiranje I. 2. Blok-naredba. Sekvencijalno izvršavanje naredbi unutar bloka:. naredba 1. naredba 2.
E N D
Uvod u programiranje I jesen/zima 2008
Blok-naredba Niz naredbi između { i }: { naredba1; naredba2; . . . naredban; } Dejan Živković Uvod u programiranje I 2
Blok-naredba Sekvencijalno izvršavanje naredbi unutar bloka: naredba1 naredba2 . naredban . . Dejan Živković Uvod u programiranje I 3
Blok-naredba • Sve naredbe deklaracija u bloku moraju biti ispred drugih naredbi • Blok se može koristiti na bilo kom mestu u programu gde se može nalaziti prosta naredba Uvod u programiranje I
{ int x, y; { x = 4; y = x + 3; } } { int x, y; { int i; i = 5; x = (i++) - 3; y = i + 4; } } Blok-naredba Uvod u programiranje I
Blok-naredba • Telo funkcije main je blok-naredba • Oblast važenja promenljive deklarisane u bloku je od tačke deklaracije do kraja bloka • Lokalne promenljive – ne mogu se koristiti u okolnim blokovima • Naredbe u bloku mogu koristiti promenljive iz okolnih blokova Uvod u programiranje I
{ int x, y; { int i; i = 5; x = (i++) - 3; y = i + 4; } i = 0; // GREŠKA } { int x = 3; { int x = 5; printf(”%d\n”,x); } printf(”%d\n”,x); } Blok-naredba Uvod u programiranje I
Blok-naredba • Lokalna promenljiva ima prednost kada su deklarisane promenljive sa istim imenom • Dobar stil programiranja: sve promenljive imaju različita imena i njihove deklaracije se nalaze na jednom mestu na početku prvog bloka Uvod u programiranje I
Naredbe grananja • if naredba • if-else naredba • složena if-else naredba • switch naredba Uvod u programiranje I
Naredbe grananja • ifnaredba if (izraz) naredba; • Primeri: • if (x > 0) y = 1; • if (x == 17) { y = 1; z = x * x; } Uvod u programiranje I
Naredbe grananja • Izvršavanje if naredbe izraz ≠ 0 = 0 naredba Uvod u programiranje I
Naredbe grananja • Primer: x = 0; if (x = 17) // GREŠKA: x == 17 { a = b; b = 1; c = a * a; } Uvod u programiranje I
Naredbe grananja • if-else naredba if (izraz) naredba1; else naredba2; • Primer: • if (x > 0) y = 1; else { y = 1; z = x * x; } Uvod u programiranje I
Naredbe grananja • Izvršavanje if-else naredbe izraz ≠ 0 = 0 naredba2 naredba1 Uvod u programiranje I
x = -17; a = 0; b = 0; if (x > 0) if (a == 0) b = 1; else b = 2; /* b = ? */ Naredbe grananja x = -17; a = 0; b = 0; if (x > 0) if (a == 0) b = 1; else b = 2; /* b = ? */ Uvod u programiranje I
x = -17; a = 0; b = 0; if (x > 0) { if (a == 0) b = 1; } else b = 2; /* b = 2 */ x = -17; a = 0; b = 0; if (x > 0) if (a == 0) b = 1; else ; else b = 2; /* b = 2 */ Naredbe grananja Uvod u programiranje I
Naredbe grananja • Složena if-else naredba if (p >= 91) ocena = 10; else if (p >= 82) ocena = 9; else if (p >= 73) ocena = 8; else if (p >= 64) ocena = 7; else if (p >= 55) ocena = 6; else ocena = 5; Uvod u programiranje I
Naredbe grananja • Naredba switch switch (izraz) { case vrednost1 : naredba1; case vrednost2 : naredba2; ... case vrednostn : naredban; [default : naredba;] } Uvod u programiranje I
Naredbe grananja • Izvršavanje naredbe switch • Izračunava se izraz • Izračunata vrednost se redom upoređuje sa vrednostima u casedelovima • Za prvu pronađenu istu vrednost vrednosti, izvršava se odgovarajuća naredba naredbai u nastavku • Ako nije pronađena nijedna ista vrednost, izvršava se naredba iza reči default, ako postoji Uvod u programiranje I
Naredbe grananja /* Demonstracija switch naredbe (sa greškom) */ #include <stdio.h> main() { int x, y; printf(”Unesite dva cela broja: ”); scanf(”%d %d”, &x, &y); switch (x + y) { case 0 : printf(”Njihov zbir je nula.\n”); case 1 : printf(”Njihov zbir je jedan.\n”); case 2 : printf(”Njihov zbir je dva.\n”); case 3 : printf(”Njihov zbir je tri.\n”); default : printf(”Njihov zbir je manji od 0 ili veći od 3.\n”); } } Uvod u programiranje I
Naredbe grananja /* Demonstracija switch naredbe */ #include <stdio.h> main() { int x, y; printf(”Unesite dva cela broja: ”); scanf(”%d %d”, &x, &y); switch (x + y) { case 0 : printf(”Njihov zbir je nula.\n”); break; case 1 : printf(”Njihov zbir je jedan.\n”); break; case 2 : printf(”Njihov zbir je dva.\n”); break; case 3 : printf(”Njihov zbir je tri.\n”); break; default : printf(”Njihov zbir je manji od 0 ili veći od 3.\n”); } } Uvod u programiranje I
Primer C programa • Sutrašnji datum Za dati datum nekog dana u formatu dan, mesec, godina, treba prikazati datum sledećeg dana • Primer izvršavanja: Unesite datum nekog dana (d m g): 16 4 2008 Datum sledećeg dana je 17.4.2008. Uvod u programiranje I