3 2 PROMENLJIVE LEKCIJA II PROMJENLJIVE Promjenljive varijable
3. 2 PROMENLJIVE LEKCIJA II * PROMJENLJIVE ? ? ? Promjenljive (varijable) Promjenljiva je simboličko ime za neku memorijsku lokaciju Svaka promjenljiva mora da ima neko jedinstveno ime se formira od slova, cifara i znaka _ prvi znak ne može biti cifra maksimalno 31 znak razlikuju se velika i mala slova MEMORIJA 123 A podatak_1 Broj-1 BROJ broj * Materiala od Dražena Brđanina, Uvod u jezik C++, prezentacije, ETF Banjaluka, (sa dopustenjem)
3. 2 PROMENLJIVE… PROMJENLJIVE ? ? ? Promjenljiva mora biti tačno određenog tipa Tip promjenljive ne može se mijenjati tokom izvršavanja programa promjenljiva može biti nekog prostog ili složenog tipa Može da se mijenja samo vrijednost (sadržaj memorijske lokacije) zato se i zove promjenljiva (varijabla) MEMORIJA G A Z a x char 6 57 -6 13 2. 35 int AB C 13 2. 35 AB D C
3. 2 PROMENLJIVE… PROMJENLJIVE ? ? ? Svaka promjenljiva mora biti definisana!!! Prevodiocu (kompajleru) mora se ukazati na to da će se u programu koristiti neka promjenljiva, kako bi on mogao da rezerviše potreban prostor u memoriji Opšti oblik definicije promjenljive: tip imepromjenljive Npr. int i, j, n=10; float a, e=2. 71; char znak=’+’, c; [=vrijednost] Početna vrijednost početna vrijednost ne mora se dodjeljivati [ ] se koriste da bi se naglasilo da nije obavezno
3. 2 PROMENLJIVE… PROMJENLJIVE ? ? ? Primjer: 0100 0000 #include <stdio. h> main() { int i=9, j; float a, b; j=i/2; a=i/2. 0; b=a*2. 0/j; b 2. 25 0100 0000 a 1001 0000 4. 5 0000 printf( ”j=%d n”, , j ); ”j=%dn” printf( ”b=%6. 2 fn” , b ); b=%6. 2 fn”, 0000 printf( ”i=%d n”, , i ); ”i=%dn” printf( ”a=%6. 2 f n”, , a ); ”a=%6. 2 fn” 0001 0000 j } i 0000 0100 0000 1001 MEMORIJA 4 9
3. 2 PROMENLJIVE… PROMJENLJIVE ? ? ? Primjer: b #include <stdio. h> main() { a int i=9, j; float a, b; j j=i/2; a=i/2. 0; b=a*2. 0/j; printf( ”i=%dn”, , , ii ); ” printf( ”i=%dn” n”, ); ”i=%dn” printf( ”j=%dn”, , , jj ); ” printf( ”j=%dn” n”, ); ”j=%dn” printf( ”a=%6. 2 fn”, , , aa ” printf( ”a=%6. 2 fn” n”, ”a=%6. 2 fn” printf( ”b=%6. 2 fn”, ”b=%6. 2 fn” , bb b=%6. 2 fn”, } i 0100 0001 0000 2. 25 0000 0100 1001 0000 0000 0000 0100 0000 1001 MEMORIJA ); ); i=9 j=4 a= 4. 50 b= 2. 25 4. 5 4 9
3. 2 KONSTANTE ? ? ? Opšti oblik const tip ime = vrijednost ; Npr. const int DIM = 100; const char ODG = ’D’; const bool TACNO = 1; Vidi je kompajler, zauzima lokaciju u memoriji, ima tip i ime. Kod promenljivih je dozvoljena promjena vrijednosti int i 1=0, i 2=10, i 3=100; i 3=i 1+i 2; Kod konstanti to nije slucaj, Read only promenljiva const int i 1=0, i 2=10, i 3=100; i 3=i 1+i 2;
3. 2 KONSTANTE… • SIMBOLIČKE #define SIMBOL vrijednost #define PI 3. 14 # define slovo ‘A’ // umjesti simbola PI kompajler dobija vrijednost 3. 14 // Ne vidi je kompajler, ne zauzima lokaciju u memoriji, nema ima tip i ime. • NABROJANE enum ime {IME 1=vrednost 1, IME 2=vrednost 2, …, IMEn=vrednostn}; Ekvivalentno sa #define IME 1 vrednost 1 #define IME 2 vrednost 2 … #define IMEn vrednostn Primjer: enum stanje {OFF, ON}; // Podrazumijeva se OFF: 0, ON: 1 еnum dani {PON=1, UTO, SRE, CET, PET, SUB, NED}; //Podrazumijeva se UTO: 2, SRE: 3, CET: 4, PET: 5, SUB: 6, NED: 7
3. 3 PROMENLJIVE NABROJNANOG TIPA I SINONIMI еnum dani { PON=1, UTO, SRE, CET, PET, SUB, NED } danas; danas=UTO; • Promjenljiva danas dobija vrijednost 2 еnum dani { PON=1, UTO, SRE, CET, PET, SUB, NED }; еnum dani sutra=SRE; • Definisanje sinonima za bilo koji tip promjenljive typedef char znak; typedef float real_broj; znak c = ‘s’; real_broj y = 0. 25;
3. 4 FORMATIRANI ULAZ-IZLAZ ULAZ PODATAKA ? ? ? Standardna funkcija za ulaz (čitanje) podataka scanf( ”konverzioni string” , lista_argumenata ) Kontrolni (konverzioni) niz određuje način na koji se vrši unos podataka Određuje šta treba da se unese (koji podaci treba da se učitaju) Sličan konverzionom nizu kod printf() Argumenti se odvajaju zapetama Čine ga konverzioni karakteri koji definišu način unosa podataka Argumenti su pokazivači na memorijske lokacije u koje se smještaju učitani podaci Ako se učitava promjenljiva x tada je argument oblika &x
3. 4 FORMATIRANI ULAZ-IZLAZ ULAZ PODATAKA ? ? ? Primjer: #include <stdio. h> main() { int broj; 0000 0110 MEMORIJA printf( ”Unesite cijeli broj: n” ); scanf( ”, &broj ); scanf( ”%d” printf( ”Unijeli , broj ); ”Unijeli ste %dn”, } Unesite cijeli broj: 6 Unijeli ste 6 broj
3. 4 FORMATIRANI ULAZ-IZLAZ printf ? ? ? Standardna funkcija za izlaz (ispis) na ekran printf( ”konverzioni string” , lista_argumenata ) Kontrolni (konverzioni) niz određuje način na koji se vrši ispis Određuje šta treba da se ispiše (koji podaci treba da se ispišu) Štampa se sve što se nađe unutar ” ” sve dok se ne dođe do znaka % Argumenti se odvajaju zapetama Kad se dođe do znaka % gleda se sljedeći znak (grupa znakova) koji se naziva konverzioni karakter Argumenti mogu da budu promjenljive, konstante, izrazi Konverzioni karakter definiše kako će se ispisati odgovarajući podatak iz liste argumenata Mora biti onoliko znakova % u cijelom stringu koliko ima i argumenata u listi
3. 4 FORMATIRANI ULAZ-IZLAZ Konverzioni karakteri ? Konverzioni karakteri %c %s %d %sd %ld – – znak string integer (cijeli broj) short integer long integer %f %lf %o %x %% - float double oktalni podatak heksadecimalni podatak ispis znaka % Opšti oblik: % [širina] [. preciznost] tip Ukupan broj mjesta za ispis podatka n – najmanje n znakova (vodeće bjeline) 0 n – najmanje n znakova (vodeće nule) Ukupan broj mjesta za ispis decimala. d – najviše d decimala
3. 4 FORMATIRANI ULAZ-IZLAZ Konverzioni karakteri ? MEMORIJA 0100 0001 Primjer: #include <stdio. h> main() { int var=65; printf( ”Znakovi: n”); printf( ”%2 cn”, ”% ’A’); printf( ”%2 cn”, ’A’); printf( ”%4 cn%6 cn”, ”% var, ’B’); ”%4 cn%6 cn”, var, printf( ”%8 cn”, ”% var+1); ”%8 cn”, var+1); printf( ”%3 dn”, ”% ’A’); ”%3 dn”, ’A’); printf( ”%03 d”, ”% ’A’); ”%03 d”, ’A’); } Znakovi: . A. . B. . . . B. 65 065
3. 4 FORMATIRANI ULAZ-IZLAZ Specijalne znakovne konstante? Specijalne znakovne konstante n b a - novi red jedno mjesto unazad zvučni signal (beeper) r t ’ – – – vraćanje na početak reda tabulator udesno ispisuje znak ’ ” \ – – ispisuje znak ” ispisuje znak ddd xdd – – ispisuje znak sa kodom ddd oktalno ispisuje znak sa kodom dd heksadecimalno
3. 5 Ulaz/izlaz znak po znak • Iz “standardne “С" biblioteke stdio. h # include <stdio. h> • Ulaz sa tastature znak po znak, upotrebljavali smo umjesto pauze. int c c=getchar(); • Izlaz na ekran znak po znak putchar(c)
4. OPERATORI • • Aritmetički Relacioni Logički Bitski Ostali Prioritet Asocijativnost Uslovni operatori
4. 1 Aritmetički operatori OPERATORI ? ? ? Aritmetički operatori dodjela vrijednosti (=) a=3; c=2; sabiranje (+) a=3; c=a+2; c 5 oduzimanje (-) b=3; c=b-2; c 1 množenje (*) a=2; b=3; c=a*b; c 6 dijeljenje (/) i=9; k=4; n=i/k; c 2 p=9. 0; q=4. 0; r=p/q; c 2. 25 ostatak cjelobrojnog dijeljenja (%) c=9%4; p=6%8; c 1 p 6
4. 1 Aritmetički operatori… OPERATORI ? ? ? Primjer: #include <iostream. h> c main() b { int a, b, c; a=b=c=10; printf( ”%d , a, b, c ); ”%d %d %dn”, a = (b=10) + (c=20); printf( ”%d , a, b, c ); ”%d %d %dn”, a 0000 0001 0100 0000 1010 0000 0001 1110 0000 1010 MEMORIJA } 10 10 10 30 10 20
4. 1 Aritmetički operatori… OPERATORI ? ? ? Aritmetički operatori (nastavak) Operator uvećavanja za jedan (inkrement) Operator umanjivanja za jedan (dekrement) prefiksni oblik ++prom --prom (++) (--) postfiksni oblik prom++ prom-- Npr. i=i+1 i=i-1 ++i --i Npr. i++ i-Npr. i = 2; j = (++i)+5; -----i i+1 = 2+1 = 3 j i+5 = 3+5 = 8 i = 2; j = (i++)+5; -----j i+5 = 2+5 = 7 i i+1 = 2+1 = 3
4. 1 Aritmetički operatori… OPERATORI ? ? ? Aritmetički operatori (nastavak) Složeni operatori dodjeljivanja x=x+y x=x-y x=x*y x=x/y x=x%y x+=y x-=y x*=y x/=y x%=y Npr. x+=3 x-=3 x*=3 x/=3 x%=3 x=x+3 x=x-3 x=x*3 x=x/3 x=x%3
4. 2 Relacioni operatori OPERATORI ? ? ? Relacioni operatori > < >= <= == != Npr. i i i veće manje veće ili jednako manje ili jednako različito = = = 3<5 3>5 3==5 3!=5 3=5 i 1 i 0 i 1 greška (istina) (laž) (istina)
4. 3 Logički operatori… OPERATORI ? ? ? Logički operatori && || ! - Npr. i i j k k k m m x y = = = = = AND = logičko I OR = logičko ILI NOT = logičko NE 5 && 1 1 && 1 0 && 1 !0 !9 !(k+1) !(!(0)) !(!(5)) 0 && (i=50) 1 || (j=128) i i j k k k m m x y 1 1 0 0 0 1 (istina) (laž) (laž) (istina)
4. 3 Bitski operatori… OPERATORI ? ? ? Bitski operatori (operacije nad bitima) & | ~ ^ << >> - bitsko AND bitsko OR bitsko NOT bitsko XOR pomjeranje Složeni bit operatori x=x&y x=x|y x=x<<y x=x>>y (prvi komplement) (ekskluzivno ILI) (šiftvanje) ulijevo (šiftvanje) udesno x&=y x|=y x<<=y x>>=y Npr. x&=3 x=x&3 x|=5 x=x|5 x<<=1 x=x<<1 x>>=3 x=x>>3
4. 3 Bitski operatori… BITSKI operatori ? ? ? & - bitsko AND 0000 1001 cifra Primjer: 0011 1001 c #include <stdio. h> MEMORIJA main() { char c=’ 9’; short cifra; cifra = c & 0 x 0 F; printf( ”%d n”, , cifra ); ”%dn” } 9 & 0011 1001 c 0000 1111 0 x 0 F 0000 1001
4. 3 Bitski operatori… BITSKI operatori ? ? ? | - bitsko OR 0011 1001 c Primjer: 0000 1001 cifra #include <stdio. h> MEMORIJA main() { short cifra=9; char c; c = cifra | 0 x 30; printf( ”% ”%cn”, c ); } 9 | 0000 1001 cifra 0011 0000 0 x 30 0011 1001
4. 3 Bitski operatori… BITSKI operatori ? ? ? ~ - bitsko NOT 1111 1110 y Primjer: 0000 0001 x #include <stdio. h> MEMORIJA main() { short x=1, y; y = ~x; printf( ”% ”%dn”, y ); } -2 ~ 0000 0001 1110 x
4. 3 Bitski operatori… BITSKI operatori ? ? ? ^ - XOR (EX ILI) 0100 0001 y Primjer: 0111 0011 x #include <stdio. h> MEMORIJA main() { short x=0 x 73, y; y = x^0 x 32; printf( ”% ”%cn”, y ); } A ^ 0111 0011 x 0011 0010 0 x 32 0100 0001
4. 3 Bitski operatori… BITSKI operatori ? ? ? << - shift lijevo 0000 0110 y Primjer: 0000 0011 x #include <stdio. h> MEMORIJA main() { short x=3, y; y = x<<1; printf( ”% ”%dn”, y ); } 0000 0011 <<1 0000 0110 6 x
4. 3 Bitski operatori… BITSKI operatori ? ? ? << - shift lijevo 0011 0000 y Primjer: 0000 0011 x #include <stdio. h> MEMORIJA main() { short x=3, y; y = x<<4; printf( ”% ”%dn”, y ); } 0000 0011 <<4 0011 0000 48 x
4. 3 Bitski operatori… BITSKI operatori ? ? ? >> - shift desno 0000 0110 y Primjer: 0000 1100 x #include <stdio. h> MEMORIJA main() { short x=12, y; y = x>>1; printf( ”% ”%dn”, y ); } 0000 1100 >>1 0000 0110 6 x
4. 3 Bitski operatori… BITSKI operatori ? ? ? >> - shift desno 1111 y Primjer: 1111 1100 x #include <stdio. h> MEMORIJA main() { short x=-4, y; y = x>>2; printf( ”% ”%dn”, y ); } 1111 1100 >>2 1111 -1 x
4. 4 Ostali operatori • Operator veličine tipa sizeof(char) sizeof(long) // odgovor 1 // odgovor 4 • Operator konverzije tipa sizeof(char) < sizeof (short) ≤ sizeof(int) ≤ sizeof(long) sizeof(float) < sizeof(double) • Automatska konverzija osnovnih С tipova, uvijek nizi u visi char ->short-> int-> long-> float-> double int x = 5; float y = 10. 3, z; z = x * y; // vrijednost izraza je realna vrijednost z = (int) (x * y); //vrijednost izraza je int
4. 4 Ostali operatori… Adresni & Poziv funkcije ( ) Indeks u nizu [ ] Operator indirektnog pristupa * Operator indirektnog pristupa clanu strukture -> • Operator zarez , • • •
4. 5 Prioritet operatora PRIORITET OPERATORA ? Prioritet i asocijativnost operatora Prioritet najviši Operatori ( ) { } -> Asocijativnost . ! ~ ++ -- + - * & (tip) * / + - << < == % >> <= != > & >= ^ | && || ? : najniži = += -= *= /= %= &= ^= |= ,
4. 6 Asocijativnost operatora ASOCIJATIVNOST OPERATORA ? Prioritet i asocijativnost operatora (nastavak) Asocijativnost operatora slijeva udesno ( ) tzv. lijeva asocijativnost operatora X op Y op Z (X op Y) op Z Asocijativnost operatora zdesna ulijevo ( ) tzv. desna asocijativnost operatora X op Y op Z X op (Y op Z)
4. 7 Uslovni operator USLOVNI OPERATOR ? Uslovni operator (? : ) Opšti oblik: uslov ? izraz 1 : izraz 2 ISTINA izraz 1 uslov LAŽ izraz 2 Npr. y = 5; x = (y>0) ? 100 : 200; -----x 100 y = -2; x = (y>0) ? 100 : 200; -----x 200
5. Naredbe NAREDBE ? Naredbe C raspolaže malim skupom naredbi Svaka naredba (iskaz) završava sa ; (terminator iskaza) Osnovne grupe naredbi: naredbe grananja i izbora: if, switch naredbe petlji: while, do while, for naredbe za nasilnu promjenu toka: break, continue, goto, return Komponovana (složena) naredba jednu ili više naredbi grupišemo korištenjem velikih zagrada {} opšti oblik: { iskaz 1; iskaz 2; … iskaz. N; } Složena naredba izvršava se tako što se izvršavaju jedna po jedna prosta naredba (iskaz) od kojih je sastavljena Ekvivalentna je BLOKU naredbi u PASCALU BEGIN. . . END
5. 1 Naredbe grananja i izbora if ? Naredba if Omogućava realizaciju grananja u programu: jednoblokovsko, dvoblokovsko, višeblokovsko Jednoblokovsko grananje ISTINA uslov LAŽ iskaz if (uslov) iskaz; ISTINA uslov složeni iskaz if (uslov) { iskaz 1; . . . iskaz. N; } LAŽ
5. 1 Naredbe grananja i izbora… if ? Primjer Program koji provjerava da li je učitani broj pozitivan. #include <stdio. h> main() { float broj; printf( ”Unesite broj: ” ); scanf( ”% ”%f”, &broj ); if ( broj>0 ) printf( ”Broj je pozitivann” , ); }
5. 1 Naredbe grananja i izbora… if ? Dvoblokovsko grananje ISTINA uslov iskaz 1 if (uslov) iskaz 1; else iskaz 2; LAŽ iskaz 2 ISTINA složeni iskaz 1 LAŽ uslov složeni iskaz 2 if (uslov) { iskaz 1; . . . iskaz. N; } else { iskaz 1; . . . iskaz. N; }
5. 1 Naredbe grananja i izbora… if ? Primjer Program koji provjerava da li je učitani prirodni broj paran ili neparan. #include <stdio. h> main() { int broj, ost; printf( ”Unesite broj: ” ); scanf( ”, &broj ); scanf( ”%d” if ( broj<= 0 ) broj<=0 printf(”Nije prirodann”); else { ost = broj% %2 2; if (broj == 0) if (ost==0) printf( ”Parann”); else printf( ”Neparann”); } }
5. 1 Naredbe grananja i izbora… if ? Višeblokovsko grananje Uslov 1 ISTINA Blok 1 LAŽ Uslov 2 ISTINA Blok 2 LAŽ Uslov N LAŽ Blok 0 ISTINA if (uslov 1) iskaz 1; else if (uslov 2) iskaz 2; else if (uslov 3) iskaz 3; . . . Blok N else if (uslov. N) iskaz. N; [else iskaz 0; ]
5. 1 Naredbe grananja i izbora… if ? Primjer Program koji za učitanu numeričku ocjenu ispisuje opisnu ocjenu. POČETAK ocjena #include <stdio. h> main() { int ocjena; printf( ”Ocjena? ” ); scanf( ”, &ocjena ); scanf( ”%d” if (ocjena==5) printf(”Odlicann”); else if (ocjena==4) printf(”Vrlo dobarn”); else if (ocjena==3) printf(”Dobarn”); else if (ocjena==2) printf(”Dovoljann”); else if (ocjena==1) printf(”Nedovoljann”); else printf(”GRESKAn”); } ISTINA ocjena=5 LAŽ "Odlican" ISTINA ocjena=4 LAŽ "Vrlo dobar" ISTINA ocjena=3 LAŽ "Dobar" ISTINA ocjena=2 LAŽ "Dovoljan" ISTINA "Nedovoljan" KRAJ ocjena=1 LAŽ "GRESKA"
5. 1 Naredbe grananja i izbora… switch ? Naredba switch Omogućava realizaciju selektivnog višeblokovskog grananja izraz v 1 v 2 blok 1 blok 2 . . . vn inače blok n blok 0 switch (izraz) { case v 1: iskaz 1; . . . iskaz. N; case v 2: iskaz 1; . . . iskaz. N; . . . case v. N: iskaz 1; . . . iskaz. N; [default: iskaz 0; ] }
5. 1 Naredbe grananja i izbora… switch ? Naredba switch selektorski izraz ne može biti float ili double Na početku se izračunava vrijednost izraza Izračunata vrijednost pronalazi se među konstantama v 1. . v. N Ako se vrijednost pronađe, izvršavaju se svi iskazi od pronađenog case do kraja switch Ako se vrijednost ne pronađe, prelazi se na iskaze iza default: switch (izraz) { case v 1: iskaz 1; . . . iskaz. N; case v 2: iskaz 1; . . . iskaz. N; . . . case v. N: iskaz 1; . . . iskaz. N; [default: iskaz 0; ] Ako se želi izlazak iz naredbe switch kad se završi odgovarajući case, treba koristiti naredbu break } break;
5. 1 Naredbe grananja i izbora… switch ? Primjer Program koji za učitanu numeričku ocjenu ispisuje opisnu ocjenu koristeći selektivno višeblokovsko grananje. #include <stdio. h> main() { int ocjena; printf(”Ocjena? %d” ”, &ocjena); printf(”Ocjena? ”); scanf(”%d , &ocjena); switch (ocjena) { case 5: printf(”Odlicann”); break; case 4: printf(”Vrlo dobarn”); break; case 3: printf(”Dobarn”); break; case 2: printf(”Dovoljann”); break; case 1: printf(”Nedovoljann”); break; default: printf(”GRESKAn”); } }
5. 1 Naredbe grananja i izbora… switch ? Primjer: Program koji simulira rad kalkulatora cjelobrojnih operacija Nasilni izlaz iz programa, return #include <stdio. h> main() { int x, y, rez; char op; printf(”Unesite izraz u obliku op 1 operator op 2: n”); scanf(” %d %c %d” scanf(”%d %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); }
5. 1 Naredbe grananja i izbora… ZADACI ZA VJEŽBU. . . Zadaci: 1. Napisati program koji učitava dva broja, a zatim ispisuje manji broj. 2. Napisati program koji učitava tri broja, a zatim ispisuje najmanjeg (najvećeg). 3. Napisati program koji učitava prirodan broj manji od 100, a zatim ispisuje zbir njegovih cifara. 4. Napisati program koji učitava prirodan broj manji od 1000, a zatim ispisuje zbir njegovih cifara. 5. Učitati godinu, pa ispisati da li je ona prestupna ili nije. 6. Napisati program koji za učitani redni broj dana u sedmici ispisuje njegov naziv (ponedjeljak, utorak, . . . , nedjelja). 7. Napisati program koji za učitani redni broj mjeseca u godini ispisuje naziv mjeseca (januar, februar, . . . , decembar). 8. Napisati program koji učitava redni broj mjeseca i godinu, a zatim ispisuje koliko ima dana u tom mjesecu. U obzir uzeti da li je godina prestupna.
5. 2 Naredbe nasilne promjene toka break ? Naredba break Dejstvo: u naredbi switch: • nasilni prekid izvršavanja naredbe switch • prelazak na prvi iskaz iza naredbe switch u petljama: • nasilni prekid izvršavanja petlje • prelazak na prvi iskaz iza petlje u ostalim slučajevima: • nema dejstva
5. 2 Naredbe nasilne promjene toka… return ? Naredba return Dejstvo: izlazak iz funkcije • prekida izvršavanje date funkcije (ignorišu se svi iskazi iza return) • ako se nalazimo u main funkciji – prekid programa Omogućava da funkcija vrati neku vrijednost Opšti oblik return (vrijednost); ili return (izraz);
5. 2 Naredbe nasilne promjene toka… goto ? Naredba goto Omogućava bezuslovni skok Opšti oblik goto labela; Labela (oznaka) neke naredbe u istoj funkciji Primjer Bezuslovni skok na iskaz označen sa lab 1 #include <stdio. h> main() { int broj; lab 1: printf(”Unesite prirodan scanf(” %d” ”, &broj); scanf(”%d , &broj); if (broj<1) { printf(”Nije prirodan! n”); printf (”%d %s parann”, broj, goto lab 1; kraj: printf(”KRAJ. . . ”); } broj: ”); Bezuslovni skok na iskaz označen sa kraj goto kraj; } (broj%2)? ”nije” : ”je”);
- Slides: 51