Uvod u programski jezik

Size: px
Start display at page:

Download "Uvod u programski jezik"

Transcription

1 2016 Uvod u programski jezik EDIN PAŠIĆ BIHAĆ

2 sejjidin Muhammedin ve âlih lihî ve sellem Sallallâhu 'alâ sejjidinâ Neka je salavat i selam na prvaka Muhammeda a.s. i na njegovu porodicu ii

3 Predgovor Ovo je drugo izdanje skripte. Skripta je dopunjena novim zadacima tako da sadrži preko 150 zadataka s primjerima, zadacima za samostalan rad i zadacima s takmičenja. Zadacima predviđenim za samostalan rad dodali smo primjere za ulaz/izlaz, tako da se lakše može provjeriti rješenje, jer početnici, kada napišu program, imaju problem da odrede s kojima ga vrijednostima testirati. Ispravljene su pronađene greške u test primjerima zadataka s takmičenja. Skripta je namijenjena učenicima koji žele naučiti programirati u C++, a nemaju neko prethodno znanje ni o jednom programskom jeziku. Naravno, bilo kakvo predznanje o programskim jezicima bi bilo od velikog značaja za bolje razumijevanje, ali nije neophodno. Napisana je da služi kao interni udžbenik u OŠ "Kamenica" Bihać za pripremu učenika za takmičenja iz programiranja u Unsko-sanskom kantonu. Skripta se sastoji iz nekoliko dijelova. U prvom dijelu je objašnjena instalacija programskog paketa Code Blocks. Također, u nekoliko narednih strana je opisan program i sve opcije koje su nam potrebne za nesmetan rad. U drugom dijelu su opisane naredbe za ulaz i izlaz. Njih treba dobro svladati i ne prelaziti u sljedeće poglavlje dok se dobro ne savladaju. U trećem dijelu su opisane matematičke funkcije samo nama potrebne i načini ispisivanja decimalnih brojeva. U četvrtom dijelu se bavimo naredbama od proste naredbe do ciklusa. Peti dio obrađuje nizove i to samo jednodimenzionalni niz. Nizovi su nam potrebni više u šestom poglavlju gdje string obrađujemo preko niza. Ostala poglavlja sadrže zadatke i pitanja s općinskih i kantonalnih takmičenja u USK održanih posljednjih godina. Svako poglavlje sadrži određen broj riješenih primjera koje treba dobro proučiti. U rješenju svakog primjera se nalazi tekst koji opisuje kako se dolazi do rješenja, te kako program radi. Na kraju svakog poglavlja se nalazi određen broj zadataka namijenjenih za samostalan rad. Preporučuje se da se svi zadaci riješe prije nego li se pređe na naredno poglavlje, jer svaki od njih donosi neko novo znanje, neki novi trik. Programiranje je u početku teško, pa nemojte odmah odustajati. Imajte na umu da se programiranje uči na greškama. Oni koji žele koristiti ovu skriptu u svom radu trebaju se javiti na . Kao i svaka, i ova skripta sadrži greške, pa sve sugestije i primjedbe pošaljite na tragac_27@yahoo.com iii

4 SADRŽAJ 1. RAZVOJNO OKRUŽENJE Izgled programa Kreiranje datoteke Struktura programa Pokretanje programa Greške NAREDBE ZA IZLAZ I ULAZ Početni program Naredba cout Varijacije naredbe cout Osnovni tipovi podataka Deklaracija varijabli Operatori i izrazi Operator pridruživanja Inicijalizacija varijabli Aritmetički operatori Naredba za ulaz Zadaci za samostalan rad MATEMATIČKE FUNKCIJE Decimalni brojevi Fixed Setprecision Ostali manipulatori Zadaci za samostalan rad NAREDBE Sekvenca ili blok Relacijski operatori Selekcije Naredba if Naredba if-else Zadaci za samostalan rad Logički operatori Zadaci za samostalan rad Ciklusi ili petlje For petlja Zadaci za samostalan rad While petlja Do while petlja Naredba break Naredba switch Zadaci za samostalan rad NIZOVI (POLJA) iv

5 5.1. Jednodimenzionalni nizovi Zadaci za samostalan rad STRING Deklaracija stringa Čitanje i ispisivanje znakova Ispitivanje znakova Rad sa stringom (nizom znakova) Zadaci za samostalan rad ZADACI S OPĆINSKIH TAKMIČENJA Zadaci Zadaci Zadaci Zadaci Zadaci Zadaci Zadaci Zadaci ZADACI S KANTONALNIH TAKMIČENJA Zadaci Zadaci Zadaci Zadaci Zadaci Zadaci Zadaci TEORETSKI ZADACI S OPĆINSKIH TAKMIČENJA Zadaci Zadaci Zadaci Zadaci Zadaci Zadaci Zadaci Zadaci TEORETSKI ZADACI S KANTONALNIH TAKMIČENJA Zadaci Zadaci Zadaci Zadaci Zadaci Zadaci Zadaci v

6 1. RAZVOJNO OKRUŽENJE Programsko okruženje koje ćemo koristiti za pisanje naših programa naziva se Code Blocks. Ovo sam okruženje odabrao jer je besplatno, ugodnog izgleda, lako se instalira i malih je dimenzija. Posjeduje sve osobine koje su potrebne za učenje programiranja, a i više od toga. Kako instalirati Code Blocks? Moramo imati instalacijski CD ili ako imamo internet, onda treba otići na stranicu: Dobićemo sljedeći link (Slika 1) i odaberemo codeblocks-16.01mingw-setup.exe tj. kliknemo na Sourceforge.net (može i na FossHub), gdje pokazuje crvena strelica, te sačekamo par sekundi i preuzimanje će početi automatski. Slika 1 Kad smo preuzeli instalacijsku datoteku, onda možemo krenuti s instalacijom programa. Inače instalacija je jednostavna, samo Next, Next, Next, itd. Ali evo ipak malo detaljnijeg uputstva. Kao i kod svake instalacije, kliknemo dva puta malo brže da bi pokrenuli instalaciju. Računar će nas pitati želimo li zaista pokrenuti ovaj program na šta ćemo mi reći (kliknuti Run). Ako imate Windows 7 operativni sistem, onda je preporučeno da instalaciju započnete kao administrator (admin), tako što kliknete desnim dugmetom miša na instalacijsku datoteku Code Blocks-a i odaberete Run as admin. Potom ćete dobiti čarobnjak koji će vas voditi kroz instalaciju tj. odaberete Next. Zatim dobijete prozor o licenci, tu odaberemo I Agree. U sljedećem prozoru ako nije, označimo sve i odaberemo Next, slika 2. 1

7 Slika 2 A zatim odaberemo mjesto gdje će program biti instaliran (instalacijski program sam odabere mjesto, ako vam ne odgovara možete promijeniti, najbolje ostaviti) i kliknuti na Install. Slika 3 Odabir foldera Sačekamo par minuta, pa kad se završi instalacija pojavit će se prozor u kojem vas računar pita želite li pokrenuti Code Blocks, odaberemo Yes (Da). Nakon toga, će se pojaviti prozor: 2

8 Slika 4 Lista otkrivenih kompajlera Ovo predstavlja pronađene kompajlere na vašem računaru. Odaberete prvi tj. GNU GCC Compiler i kliknete na OK. I to je to. Instalirali ste Code Blocks. U slučaju da koristite operativni sistem Windows 7 može se dogoditi da vam kompajler ne bude pronađen. Tada ga morate vi pronaći. Kako? Pa odmah nakon instalacije računar će vas pitati želite li pokrenuti Code Blocks, odgovorite potvrdno. Nakon toga on će potražiti kompajlere na vašem računaru. Dobit ćete sliku sličnu slici 4. No, ako ne pronađe GNU GCC Compiler, tada će pisati Invalid. U tom slučaju, pokrenete program Code Blocks (slika 5) odaberete Settings Compiler Zatim, kliknuti na Toolchain executables kao na slici 5. A zatim na Auto-detect. Ako ni ovo ne pomogne, onda otići u folder gdje je instaliran Code Blocks i vidjeti gdje se nalazi folder kompajlera pod imenom MinGW. Zatim, taj put napisati ručno npr. kao što na ovoj slici piše C:\Program Files\CodeBlocks\MinGW (obično je ovaj, ali zavisi gdje ste ga instalirali). 3

9 Slika 5 Compiler settings (Podešavanje kompajlera) 1.1. Izgled programa Pokrenemo Code Blocks. Nakon pokretanja programa, pojavit će se na početku mali prozor koji sadrži kratke upute. Ako ne želimo da nam se pojavljuje pri sljedećem pokretanju programa otkačimo kvačicu i kliknemo na OK. Izgled programa Code Blocks je: Slika 6 Izgled programa Code Blocks 4

10 1.2. Kreiranje datoteke Sada ćemo naučiti kako kreirati datoteku u koju ćemo pisati naše kodove. Ima više načina kako to uraditi. Mi ćemo navesti jedan koji možda nije najkraći, ali za početnike je najbolji. Uradimo sljedeće, kliknemo na: File New File... Slika 7 Kreiranje source datoteke Dobivamo sljedeći prozor u kojem kliknemo na drugu sličicu ispod koje piše C/C++ source, a zatim na Go. Slika 8 Izbor datoteke 5

11 U sljedećem koraku samo kliknemo na Next. Potom odaberemo C++ i kliknemo na Next. Pazite da u ovom koraku ne odaberete jezik C, jer onda nećete moći raditi s nekim naredbama. Slika 9 Izbor jezika Još malo i gotovi smo. U ovom prozoru trebamo odabrati mjesto na računaru gdje će se nalaziti naša datoteka odnosno naš program. To činimo tako što kliknemo na sličicu gdje piše File name with full path odnosno na tri tačke (...). Slika 10 Izbor lokacije na disku 6

12 Pojavit će se još jedan prozor, u kojem odaberemo: 1. gdje će biti program i 2. upišemo njegovo ime, te kliknemo na Spremi (Save), slika 11. Slika 11 Izbor foldera (mape) gdje će biti program Folder (mapu) gdje biti vaši programi napravite prije. U ovom slučaju to je folder ZadaciC++. U imenu foldera, gdje će biti vaši programi ne smije biti kvačica nad slovima, tj koristiti engleski alfabet za ime datoteke programa. Također, put do tog folder ne smije sadržavati nad slovima kvačice, jer se može vrlo lako desiti da vam program neće raditi tj. neće ga moći kompajler naći. Stoga je najbolje kreirati folder, gdje će biti programi, odmah čim otvorimo C particiju ili neku drugu. Na kraju kliknemo na Finish. Nova datoteka izvornog koda je stvorena. 7

13 Slika 12 Izgled kreirane datoteke 1.3. Struktura programa Za ljude koji tek uče programirati, najbolji način učenja je da napišu program. Pa ćemo i mi krenuti tim putem. U prethodnom dijelu smo naučili kako napraviti source file (datoteku u koju ćemo pisati naše naredbe - kodove). Napišimo sljedeći kod na mjestu gdje piše "Tu pišemo naredbe!!!", slika 12. Naredbe za prvi program: #include<iostream> using namespace std; int main(){ cout<<"moj prvi program"; return 0; 8

14 Objasnimo ukratko značenje svake linije koda. #include<iostream> Linija počinje sa znakom Hach # (taraba). To je pretprocesorska radnja koja računaru kaže da u naš program uključi iostream datoteku. using namespace std; Ovdje su using i namespace ključne riječi pomoću kojih se aktivira određeno područje imena, u našem slučaju std, koji je naziv imenika u kojem su obuhvaćene sve standardne funkcije, te funkcije iz iostream biblioteke. int main() Svaki program u C++ mora da ima bar jednu main (glavnu) funkciju. Deklaracija int ispred main znači da funkcija vraća cjelobrojnu vrijednost, pa se na samom kraju programa mora staviti naredba return 0;. Umjesto tipa int mogli smo staviti void, pa tada na kraju ne bi morali pisati return 0;. cout<<"moj prvi program"; Ovo ispisuje poruku na ekran monitora tačno kako piše u navodnicima. Inače, cout<< je naredba za ispis podataka na ekran monitora Pokretanje programa Sada ćemo naučiti kako pokrenuti program. Dakle, kreirali smo datoteku i napisali (prepisali) TAČNO prethodni kod. Kako pokrenuti program? Ima više načina. Najjednostavniji i najlakši je da na tastaturi pritisnemo tipku F9 Nakon toga računar će kompajlirati vaš kod i pokrenuti program, pod uslovom da ste sve ispravno napisali. Ako je bilo tako dobit ćemo prozor crne boje s bijelim slovima, slika 13. Slika 13 Izgled izvršenja programa 9

15 Ako smo napravili neku sintaksičku (pravopisnu) grešku tj. zaboravili smo jedno slovo ili tačku-zarez (;), onda nam se neće pojaviti ovakav crni prozor nego ćemo dobiti upute kako da popravimo greške Greške Greške su česte, naročito kod početnika. Zaboravljeno slovo, tačka-zarez, krivo napisana neka naredba, zaboravljena zagrada itd. su samo neke od najčešćih grešaka. Ne brinite, one nisu veliki problem, jer nam Code Blocks kaže gdje je i šta ne valja. A gdje se nalaze te važne informacije? Na dnu prozora. Ako npr. u prethodnom kodu izostavimo ; koja se nalazi iza navodnika, te pokrenimo program tipkom F9, dobićemo upozorenje o greškama, slika 14. Analizirajmo na šta nas kompajler upozorava. Prva linija: D:\Prvi program.. kaže da je to u funkciji int main() (jer može biti više funkcija, mi za sada imamo jednu). Druga linija: Čitamo samo ispod Message (poruka) šta piše, a piše sljedeće: error: expected ' ; ' before 'return' a znači: greška: očekivano (vjerovatno) je problem u ' ; ' tačka-zarezu, GDJE?, prije naredbe return Crveni kvadratić također ukazuje gdje se pogreška nalazi (imati na umu da NIJE u istoj liniji gdje je kvadratić nego prije kvadratića tj. u liniji broj 6.) Slika 14 Analiza napravljenih greški 10

16 Također, ispod naziva Line stoji broj koji označava gdje je mogući problem. U našem slučaju to je broj 7. Ako se ovaj izvještaj ne vidi, onda ga uključimo (učinimo vidljivim) pritiskom na tipku F2 Kad popravimo greške pritisnemo tipku F9 da bi ponovo kompajlirali i pokrenuli program. Ako se opet pojave greške popravljamo dok nam na dnu ne bude pisalo 0 errors tj. dok ne dobijemo crni prozor. U slučaju da ne vidimo brojeve linija, onda ih uključimo tako što kliknemo na Settings Editor Dobivamo prozor, u kojem kliknemo na General settings Other editor settings, i gdje piše Show line numbers označimo kvačicom i kliknemo na OK, slika 15. Slika 15 Brojevi linija (Line numbers) Kod treba biti lijepo napisan da bi bio pregledan, zbog kasnijih popravki. Da se mi ne bi previše oko toga zamarali, kada pišemo kod (program), jednostavno kliknemo desnim dugmetom miša i odaberemo Format use Astyle. 11

17 2. NAREDBE ZA IZLAZ I ULAZ 2.1. Početni program Kada dobijemo neki problem da riješimo tj. da napišemo odgovarajući program onda slijedimo nekoliko koraka koji su potrebi u svakom programu. Radimo sljedeće: 1. Kreiramo datoteku u koju ćemo pisati kod (to radimo na prethodno opisan način) 2. Napišemo sljedeći kod (ovaj kod ima svaki program i zato ga naučimo NAPAMET): #include<iostream> using namespace std; int main() { return 0; 3. Kompajliramo i pokrenemo program tipkom F9. Ako dobijemo crni prozor, onda je sve OK, ako ne popravljamo greške. Poslije toga pristupamo rješavanju zadanog problema. Svaki zadatak treba na ovakav način rješavati da bi se izbjegle nepotrebne greške, a koje je nekada teško otkriti Naredba cout Naredbu cout smo već upoznali u našem prvom programu, a sada ćemo se s njom detaljnije upoznati. Za izlaz (ispis) na ekran monitora koristimo identifikator cout<<. Funkcija cout usmjerava podatke s izlaznog toka na ekran monitora. Ispis podataka se ostvaruje operatorom ispisa (<<). ZAPAMTITI: Tekst koji ispisujemo naredbom cout stavljamo u znake navoda 12

18 Slika 16 Naredba cout 2.3. Varijacije naredbe cout Jedna od najboljih metoda koje nam pomažu da bolje razumijemo funkcioniranje programa i pojedinih naredbi jest da u program unesemo manje izmjene, a zatim opažamo kakve posljedice će takve izmjene izazvati. Napisat ćemo nekoliko različitih varijanti jednog te istog programa, te navesti njihova izvršavanja da bi mogli izvući određene zaključke. Naš prvi program: Rezultat pokretanja programa: #include<iostream> using namespace std; int main() { cout<<"moj prvi program"; return 0; ZAKLJUČAK: Ništa se na izlazu (ekranu) ne mijenja pisali mi naredbe u jednom ili više redova. #include<iostream> using namespace std; int main() { cout<< "Moj prvi program"; return 0; ZAKLJUČAK: Ništa se ne mijenja, ako pišemo u više redova. 13

19 #include<iostream> using namespace std; int main() { cout << "Moj prvi program"; return 0; Ili #include<iostream> using namespace std; int main() { cout << "Moj prvi program"; return 0; ZAKLJUČAK: Ništa se ne mijenja. Pisali mi naredbe u jednom redu ili u više redova, pa čak i razmak između naredbi, ništa se ne mijenja, ne utiče na rezultat programa. #include<iostream> using namespace std; int main() { cout<<"moj prvi program."<<"ucim C++."; return 0; ZAKLJUČAK: Ove dvije rečenice su ispisane spojene. Ako želimo da poslije tačke imamo razmak onda u prvoj rečenici poslije tačke napravimo jedan razmak ili u drugoj rečenici prije riječi Ucim napravimo jedan razmak. Ako ispisujemo više rečenica ili pak više varijabli pomoću jedne naredbe cout, tada samo jednom napišemo cout, a za ispis koristimo identifikator <<. Sada ćemo koristiti dvije cout naredbe. 14

20 #include<iostream> using namespace std; int main() { cout<<"moj program."; cout<<"ucim C++."; prvi return 0; ZAKLJUČAK: Rezultat isti, ništa se nije promijenilo. Možemo koristiti više naredbi cout tako da je svaka u novom redu ili jednu. Ako koristimo jednu naredbu cout uočiti da nju napišemo jednom a identifikator << pišemo za svaki ispis. Kako da nam poslije tačke bude razmak? Odgovor je jednostavan. Trebamo samo ispisati jedan prazan razmak u prvoj ili drugoj rečenici, isto je. Mi ćemo ispisati tri u prvoj da se dobro vidi što se hoće reći. #include<iostream> using namespace std; int main() { cout<<"moj prvi program. "; cout<<"ucim C++."; return 0; ZAKLJUČAK: Ako hoću da ispišem razmak, to uradim tako što u znacima navoda napravim razmaka koliko mi treba. Postavlja se pitanje, kako da druga rečenica bude u novom redu? Kako to uraditi? Kada želimo dobiti JEDAN PRAZAN RED ili PRIJEĆI U NOVI RED onda koristimo naredbu endl. #include<iostream> using namespace std; int main() { cout<<"moj prvi program."<<endl; cout<<"ucim C++."; return 0; 15

21 Šta ako stavimo dvije endl naredbe? #include<iostream> using namespace std; int main() { cout<<"moj prvi program."<<endl<<endl; cout<<"ucim C++."; return 0; ZAKLJUČAK: Dobili smo novi red i jedan prazan red. Ispis četiri reda. #include<iostream> using namespace std; int main() { cout<<"moj prvi program."; cout<<endl<<endl; cout<<endl; cout<<endl; cout<<"ucim C++."; return 0; ZAKLJUČAK: Uočimo da naredbu endl ne možemo koristiti ako prije nismo stavili naredbu cout. Zadatak 1. Napisati program koji će na ekranu (zaslonu) monitora ispisati tekst tačno ovako kako izgleda. Danas je lijep dan. Ucim C++. Idem u osnovnu skolu. Imam 10 godina. Sutra mi je rodjendan Osnovni tipovi podataka Podatke možemo podijeliti na nepromjenjive (konstante) i promjenjive (varijable). Konstante su podaci koji tokom izvršavanja programa ne mogu da promjene svoju vrijednost. Varijable (promjenjive) su podaci koji tokom izvršavanja mogu da promjene svoju vrijednost. 16

22 Identifikator predstavlja ime koje dodjeljujemo varijablama, funkcijama itd. Identifikator (ime) može biti sastavljeno od slova engleskog alfabeta, prvi znak mora biti slovo ili znak podvučeno _, brojeva i identifikator ne smije biti jednak nekoj od ključnih riječi. Pri programiranju, pohranjujemo varijable u memoriji računara, ali računar mora znati kakve podatke želimo pohraniti, jer ne zauzimaju svi podaci jednaku količinu memorije tj. moramo reći računaru šta spremamo broj, slova, znakove, itd. Tako ako kažemo 13 to je podatak. Kakav? Brojčani. Ako pak kažem Sunce. I ovo je podatak. Kakav? Znakovni. Zbog toga što podaci mogu biti različiti po tipu (znakovni, brojčani) moramo računaru reći kakav tip podatka unosimo i s kakvim će podacima on raditi. Programski jezik C++ ima nekoliko osnovnih tipova podataka: Tip podatka Oznaka tipa Broj bitova Opseg znakovni char cjelobrojni int realni float E E+38 realni dvostruke preciznosti double E E+38 ne sadrži vrijednosti void 0 bez vrijednosti Prve dvije kolone tabele treba znati NAPAMET, šta znači i kako se piše. Tako pomoću tipa char možemo spremati znakove (slova, brojeve, upitnik, uzvičnik, i ostalo), int nam govori da se radi o cijelim brojevima, float o realnim brojevima, double je također realan broj samo u njega može "stati" znatno veći broj. Nekada radimo samo npr. s pozitivnim brojevima, pa su nam negativni nepotrebni, da ne bi gubili memoriju i da bi mogli spremiti što veći pozitivan broj onda koristimo modifikator. Tako s modifikatorom unsigned tip int zauzima opseg od Osnovni tipovi podataka se mogu modificirati (promijeniti) koristeći jedan ili više modifikatora: signed short unsigned long Sljedeća tabela pokazuje kako se koriste modifikatori, koliko memorije imamo, kolika je maksimalna i minimalna vrijednost koju možemo staviti u određenu varijablu. 17

23 Tip Količina Raspon char 1byte -127 to 127 or 0 to 255 unsigned char 1byte 0 to 255 signed char 1byte -127 to 127 int 4bytes to unsigned int 4bytes 0 to signed int 4bytes to short int 2bytes to unsigned short int 2bytes 0 to 65,535 signed short int 2bytes to long int 4bytes -2,147,483,647 to 2,147,483,647 signed long int 4bytes kao long int unsigned long int 4bytes 0 to 4,294,967,295 float 4bytes +/- 3.4e +/- 38 ( 7 cifara) double 8bytes +/- 1.7e +/- 308 ( 15 cifara) long double 8bytes +/- 1.7e +/- 308 ( 15 cifara) Međutim, ove vrijednosti ovise i od kompajlera koji koristimo, te i od računara na kojem radimo Deklaracija varijabli Kada smo naučili koje tipove podataka imamo, vrijeme je da se upoznamo detaljnije s varijablama. Već smo rekli da su varijable podaci koji tokom izvršavanja programa mijenjaju svoju vrijednost. Sve varijable (promjenjive) koje se koriste u programu potrebno je deklarirati, odnosno dati im ime (ili identifikator) i odrediti tip. Tip smo naučili prethodno šta je npr. int, char, double, itd, a ime predstavlja naziv te varijable i dajete ga vi, onako kao želite. Najbolje je da to ime upućuje na ono na šta se odnosi. Npr. ako računate obim kvadrata, onda je za ime varijable, u koju ćemo spremiti 18

24 vrijednost, poželjno uzeti ime: Obim, ili obim, ili samo slovo O. Može i neko drugo ime npr. Aligator, ali kad to vidimo u programu koji računa obim nećemo moći zaključiti po tom imenu da se radi o obimu. SVE VARIJABLE PRIJE UPOTREBE U PROGRAMU MORAMO DEKLARIRATI, INAČE ĆE NAM KOMPAJLER JAVITI GREŠKU. Deklaracija varijabli se obavlja naredbom oblika: tip podatka ime varijable Primjer 1. int a; int a, b, c; float zbir; double x, y, razlika; long double x, y; char ime; Vrlo je važno da razumijete šta su varijable i kako se deklariraju. Ako vam nije jasno šta je to onda pročitajte još jednom, pa još jednom i tako dok ne bude jasno, jer one su dio gotovo svake linije u programu, s njima radimo, s njima se igramo. Tako u prethodnom primjeru int a; znači da smo kreirali varijablu, čije ime je a, te u nju možemo staviti samo cjelobrojnu vrijednost. Na ovaj način mi kažemo računaru da nam obezbjedi prostor u memoriji koji će se zvati a i da ćemo u njega "skladištiti" tj. pohraniti samo cjelobrojne vrijednosti (negativne i pozitivne cijele brojeve, te nulu). Ako u ovu 19

25 varijablu a pokušamo pridružiti (spremiti, pohraniti) vrijednost odnosno broj 5.23 (decimalni broj), onda će računar spremiti samo cijeli dio tj. broj 5 a ostalo 0.23 će odbaciti. Programski jezik C++ razlikuje velika i mala slova, tako je dopušteno služiti se istim imenom varijable, samo pisano malim, odnosno velikim slovima za dvije različite varijable. Mjesto deklaracije varijable u programu određuje područje djelovanja određene varijable. Prema području djelovanja varijable mobu biti globalne i lokalne: - globalne varijable, su dostupne kako za čitanje, tako i za promjenu u bilo kojem dijelu programa, deklariraju se izvan svih funkcija, naredbi, petlji itd. - lokalne varijable se deklariraju na početku neke funkcije ili na početku nekog bloka naredbi. Ove varijable vrijede samo unutar funkcije ili bloka naredbi, jer izlaskom iz funkcije ili bloka naredbi ove varijable više ne postoje. Mi ćemo za sada najčešće koristiti globalne varijable. Nemojte da vas ovo zbunjuje. Trenutno vam nije bitno ako ne znate šta to znači. Ključne riječi koje ne smijete koristiti za imena varijabli i konstanti su: auto long char short default static double switch extern unsigned goto while int case return continue sizeof struct enum union continue struct enum for volatile break register const signed do else typedef float void if 2.6. Operatori i izrazi Kombinacijom varijabli, konstanti i operatora nastaju izrazi. Izrazi su riječi ili simboli koji određuju da se s varijablama u programu nešto učini. Mogu biti unarni, binarni, ternarni Operator pridruživanja Operatorom pridruživanja ili operatorom za dodjelu vrijednosti se varijabli s njegove lijeve strane pridružuje (sprema, pohranjuje) vrijednost izraza koja se nalazi na desnoj strani. Tip vrijednosti izraza treba odgovarati tipu varijable. Operator pridruživanja je znak jednako: = 20

26 Operator pridruživanja se može koristiti zajedno i s još jednim operatorom. Primjer 2. a = 5; (znači da će varijabli a biti pridružena (spremita, skladištita u nju) vrijednost 5) a = a + 5; (znači da će varijabli a biti pridružena vrijednost izraza a + 5) Ovo se može i drukčije zapisati: a += 5; Dakle, znak = ne znači da je lijeva strana jednaka desnoj, nego on kaže računaru da ono što je na desnoj strani znaka jednako pridruži (spremi, skladišti) u varijablu na lijevoj strani znaka jednako Inicijalizacija varijabli Pridruživanje vrijednosti varijabli prilikom definisanja naziva se inicijalizacija varijable. Deklaracija i inicijalizacija varijable se može obaviti u istom redu koda. Primjer 3. int a = 3; Ovdje smo deklarirali varijablu a tj. odredili smo kakav tip podatka će sadržavati, te smo je inicijalizirali odnosno pridružili joj vrijednost 3. Dakle, kada napišemo int a; ili double a, b; mi smo izvršili deklaraciju varijabli, a kad napišemo int a = 3; ili double a = 5.03, b = 3.25; mi smo izvršili deklaraciju varijabli i inicijalizaciju (pridruživanje vrijednosti) varijabli Aritmetički operatori Simboli aritmetičkih operatora uglavnom odgovaraju standardnim matematičkim oznakama aritmetičkih operacija. C++ operator Operacija + sabiranje oduzimanje * množenje / dijeljenje % ostatak pri cjelobrojnom dijeljenju 21

27 Prva tri operatora +, -, i * imaju iste osobine kao u matematici, pa ih ne treba posebno objašnjavati. Operator dijeljenja / ima isto značenje kao u matematici samo što morate voditi računa koje brojeve tj. varijable dijelite. Tako npr. ako računamo koliko je 5/2 gdje su 5 i 2 cijeli brojevi rezultat će biti 2, a ne 2.5 kao što bi pokazao kalkulator. Jer su 5 i 2 cijeli brojevi pa i rezultat će biti cijeli broj tj. računar će odbaciti 0.5. Ako pak računate 5.0/2 ili 5/2.0 ili 5.0/2.0 gdje je jedan realan ili oba tada će rezultat biti 2.5. Ovdje treba samo voditi s računa s kojim vrijednostima radimo i kakav rezultat očekujemo cijeli ili realni broj tj. decimalni. Zadnji operator % (čitamo modulo) daje kao rezultat ostatak pri CJELOBROJNOM dijeljenju. Primjer 4. Izračunajmo sljedeće izraze sa znanjem iz matematike koristeći operatore (oznake) C++. 4/2 je jednako 2 15/3 je jednako 3 A koliko bi bilo onda 5/2? To je 5/2=2.5. Koliko bi bilo 5%2? Operator modulo % daje ostatak pri cjelobrojnom dijeljenju. Možemo ga koristiti samo ako su cijeli brojevi u pitanju. Kako naći taj ostatak? Vrlo jednostavno, jer 5/2 možemo zapisati i ovako: 5/2 je jednako 2 jer je 2*2=4 (najbliže broju 5) plus 1 tj. 5/2=2*2+1 Ovo 1 je ostatak pri cjelobrojnom dijeljenju. Dakle, 5%2=1, jer je 2*2=4 plus 1 jednako 5. Pogledajmo još nekoliko primjera da nam bude jasan ovaj operator jer se on često koristi u programiranju. 7%2=1, jer je 7/2 najbliže 3 tj. 3*2=6 i do 7 nedostaje 1. Postavite sebi pitanje: Koji broj pomnožen s brojem 2 daje broj 7 ili što bliže broju 7? Ono što nedostaje do broja 7 je ostatak. 8%4=0, jer je 8/4 tačno 2, tj. 2*4=8. 11%3=2, jer je 11/3 najbliže 3 tj. 3*3=9 i do 11 fali 2. 15%4=3, jer je 15/4 najbliže 3 tj. 3*4=12 i do 15 fali 3. 22

28 Ako se u izrazu nalazi više operatora, redoslijed izvršavanja ovisi o prioritetu operatora. Nižeg prioriteta su sabiranje i oduzimanje, a višeg množenje, dijeljenje, cjelobrojno dijeljenje s ostatkom. Redoslijed prioriteta se može promijeniti upotrebom zagrada ( ), jer one imaju najviši prioritet tj. izvršava se prvo ono što je u njima, pri tome treba paziti da je broj otvorenih i zatvorenih zagrada jednak. Primjer 5. int a=2; int b=4; int c=1; int rezultat; Izračunajmo sljedeće izraze. a) rezultat = a b * c b) rezultat = (a b) * c c) rezultat = a * b + b * c d) rezultat = ((a * c) c) * b a Rješenje. a) rezultat = - 2 b) rezultat = - 2 c) rezultat = 12 d) rezultat = 2 Programski jezik C++ ima još dva unarna operatora: uvećaj za jedan ++ (inkrement) i umanji za jedan (dekrement). Inkrement i dekrement operatori se primjenjuju samo na varijable i ne mogu se primijeniti na izraze, niti na konstante. 23

29 Ako se nalaze ispred varijable, onda se vrijednost te varijable prvo poveća ili umanji za jedan i tako dobivena nova vrijednost se koristi pri izračunavanju izraza. Ako se operator nalazi iza varijable, tada se prvo izračuna vrijednost izraza, a tek nakon toga se vrijednost varijable poveća ili umanji za jedan. Primjer 6. int a=3; int b=2; int R; U programu pišu sljedeće naredbe: a++; R=a b; Koliki bi bio rezultat? Rezultat je R=2, jer će računar prvo izračunati koliko je a++, a to znači povećaj a za 1 odnosno a=a+1; pa je a sada 4 jer je 3+1=4, stoga je R=4 2=2. Ako bi pak pisalo ovako: R=a++ - b; Onda bi izračunao izraz s upotrebom a=3 pa tek bi onda povećao a za 1 tj. R=3 2=1. Ako bi napisali ovako: R=++a b; Prvo bi povećao a za 1, pa bi onda računao s novom vrijednošću od a tj. R=4 2=2. Na isti način se upotrebljava i dekrement -- koji smanjuje za Naredba za ulaz Za unošenje podataka s tastature odnosno s ekrana monitora koristimo cin>>. Ovu naredbu koristimo kada unosimo neke podatke s tastature (glavnog ulaza) u računar. Kako to ide, pokazaćemo na nekoliko primjera. Upotreba je veoma jednostavna. Primjer 7. Napisaćemo program koji unosi jedan cijeli broj s tastature u računar i ispisat ćemo taj isti broj na ekran monitora. 24

30 #include<iostream> using namespace std; int main() { int a; cin>>a; cout<<a<<endl; return 0; Unijeli smo npr. broj 3 i ispisali ga. Primjer 8. Napišimo sada program koji unosi dva broja i ispisuje ih svaki u novom redu. #include<iostream> using namespace std; int main() { int a, b; cin>>a; cin>>b; cout<<a<<endl; cout<<b<<endl; return 0; Brojeve možemo unijeti i u jednom redu s tim da između njih napravimo jedan prazan razmak npr Također, možemo ispis napraviti i s jednom naredbom cout. #include<iostream> using namespace std; int main() { int a, b; cin>>a>>b; cout<<a<<endl<<b<<endl; return 0; ZAKLJUČAK: Ako unosimo dva ili više brojeva svaki iz novog reda onda pišemo cin>> za svaku varijablu, a ako ih unosimo u jednom redu onda pišemo cin>> varijabla cin>> varijabla; 25

31 tj. svaku varijablu odvajamo operatorom za unos >>, a na kraju obavezno dođe tačka-zarez (;). Sada kada smo naučili unositi podatke možemo prijeći na rješavanje konkretnih problema. Zadatak 2. Napisati program koji će unijeti dva cijela broja s glavnog ulaza (tastature) i ispisati njihov zbir. Rješenje. Kada rješavamo zadatak, prvo ga dobro pročitamo i uočimo šta su nam ulazni podaci, šta izlazni, koliko ćemo varijabli trebati, kojeg će tipa biti itd. U našem slučaju imamo dva broja tj. trebat ćemo dvije varijable kojima ćemo pridružiti (spremiti) ta dva broja. Kako im dati ime? Ime birate sami. Treba da je što jednostavnije. Mi ćemo za prvi broj uzeti ime varijable a, dok za drugi broj neka bude ime varijable b. Zbir kao rezultat treba isto spremiti u treću varijablu. Pošto se radi o zbiru, neka njeno ime bude veliko Z. Unosimo dva CIJELA broja pa će varijable a i b biti tipa int, a pošto je zbir dva cijela broja opet cijeli broj to će i varijabla Z biti tipa int. U zadatku se ne kaže kako će te unijeti brojeve, u jednom ili više redova. To sami birate po želji, kako vam je lakše. Također, se ne kaže treba li se ispisati prije unosa kakva poruka. To opet birate sami, hoćete li ispisati nekakvu poruku ili ne. Na izlazu (ekranu) se traži samo ispis zbira, nikakva poruka. Vi sami birate hoćete li ispisati neku poruku ili ne. Mi ćemo ovdje navesti sve varijante bez poruka i s njima. U svakom slučaju program je tačan jer radi ono što se od njega traži, sabira dva broja. Ostale poruke, načini ispisa su samo šminka da ljepše izgleda. Prvi slučaj bez ikakvih poruka, unosimo npr. 2 i 3: #include<iostream> using namespace std; int main() { int a, b, Z; cin>>a>>b; Z= a + b; cout<<z<<endl; return 0; Drugi slučaj s porukama korisniku: 26

32 #include<iostream> using namespace std; int main() { int a, b, Z; cout<<"unesite prvi broj:"; cin>>a; cout<<"unesite drugi broj:"; cin>>b; Z= a + b; cout<<"zbir je "<<Z<<endl; return 0; Može i ovako: #include<iostream> using namespace std; int main() { int a, b, Z; cout<<"unesite dva broja:"; cin>>a>>b; Z= a + b; cout<<"zbir je "<<Z<<endl; return 0; Ovo su neki načini. Vi možete ispisivati kako hoćete, unositi kako hoćete (ako to nije naglašeno u zadatku), bitno je da program radi ono što se od njega traži. Navest ćemo još jedan slučaj u kojem ne koristimo varijablu Z, već odmah sabiramo i ispisujemo na ekran. Ovo je najkraće rješenje zadatka. #include<iostream> using namespace std; int main() { int a, b; cin>>a>>b; cout<<a+b<<endl; return 0; Zadatak 3. Napisati program koji unosi dva cijela broja, te ispisuje njihov zbir, razliku, proizvod, količnik i ostatak pri dijeljenju prvog s drugim. 27

33 Rješenje. Unosimo npr. 5 i 2. #include<iostream> using namespace std; int main() { int a, b, Z, R,P,K,O; cin>>a>>b; Z=a+b; R=a-b; P=a*b; K= a/b; O=a%b; cout<<"zbir je "<<Z<<endl; cout<<"razlika je "<<R<<endl; cout<<"proizvod je "<<P<<endl; cout<<"kolicnik je "<<K<<endl; cout<<"ostatak je "<<O<<endl; return 0; Obratiti pažnju na količnik. Računar je napisao da je to 2, a ne 2.5. To je zbog toga što nam su varijable a i b, te K tipa int. Da dobijemo 2.5 moramo koristiti tip double ili float. No, nismo mogli navesti tip double jer onda bi nam javio grešku za ostatak. Međutim, to se može izbjeći uvođenjem novih varijabli A, B,K koje će biti tipa double. #include<iostream> using namespace std; int main() { int a, b, Z, R,P,O; cin>>a>>b; Z=a+b; R=a-b; P=a*b; O=a%b; double A, B, K; A=a; B=b; K= A/B; cout<<"zbir je "<<Z<<endl; cout<<"razlika je "<<R<<endl; cout<<"proizvod je "<<P<<endl; cout<<"kolicnik je "<<K<<endl; cout<<"ostatak je "<<O<<endl; return 0; Varijable možete deklarirati bilo gdje u kodu a ne samo na početku, samo mora biti prije njihove upotrebe. Imati na umu da se svaki program koji napišete mora testirati. To znači 28

34 probati sve moguće kombinacije, pa ako za sve daje tačan rezultat, onda je program dobar odnosno zadatak tačno riješen. Može se desiti da za neke brojeve program daje tačno rješenje, a za ostale ne. To onda nije rješenje zadatka Zadaci za samostalan rad Zadatak 4. Napisati program za računanje obima kvadrata (O=4a). Ulaz: 2. Izlaz: 8. Zadatak 5. Napisati program za računanje površine kvadrata (P=a 2 ). Ulaz: 3. Izlaz: 9. Zadatak 6. Napisati program za računanje površine pravougaonika (P=ab). Ulaz: 2, 3. Izlaz: 6. Zadatak 7. Napisati program za računanje obima pravougaonika (O=2a+2b). Ulaz: 2, 3. Izlaz: 10. Zadatak 8. Napisati program koji sabira tri broja. Ulaz: 1, 2, 3. Izlaz: 6. Zadatak 9. Napisati program koji učitava tri broja i ispisuje njihov proizvod. Ulaz: 2, 3, 4. Izlaz: 24. Zadatak 10. Napisati program koji za četiri unijete ocjene iz Informatike računa prosječnu ocjenu (zaključnu ocjenu). (Uputa: Koristiti tip double ili float za varijable) Ulaz: 4, 4, 5, 5. Izlaz: 4.5. Zadatak 11. Napisati program za računanje površine i zapremine kocke. Ulaz: 2. Izlaz: P=24, V=8. Zadatak 12. Napisati program koji unosi dužinu u centimetrima i ispisuje koliko je to u metrima i kilometrima. Ulaz: 124. Izlaz: m=1.24, km= Zadatak 13. Napisati program koji unosi dva ugla trougla i ispisuje veličinu trećeg ugla, npr. Ulaz: 60, 80. Izlaz: 40. Zadatak 14. Napisati program koji unosi temperaturu u C (Celzijus) i ispisuje koliko je to F (Fahrenheit). (Uputa: Formula za konverziju iz C u F je F = ( C * 9) / )). Ulaz: 100. Izlaz: 212. Zadatak 15. Napisati program koji unosi broj dana i ispisuje koliko je to godina, sedmica i dana. Zanemariti prestupne godine. Ulaz: 373. Izlaz: 1 godina, 1 sedmica i 1 dan. 29

35 Zadatak 16. Napisati program koji za uneseno 0 računa vrijednost funkcije Ulaz: 1. Izlaz: 2. = Zadatak 17. Na ulazu se unose dva broja. Na izlazu ispisati dvostruku vrijednost prvog broja i trostruku vrijednost drugog broja. Ulaz: 3, 2. Izlaz: 6, 6. Zadatak 18. Napisati program koji će za uneseni poluprečnik kruga, izračunati njegov obim. (Uputa: = 2, umjesto pisati , za r i O koristiti tip double ili float). Ulaz: 3. Izlaz: Zadatak 19. Napisati program koji unosi četverocifren broj i ispisuje cifre tog broja počev od cifre najmanje mjesne vrijednosti (cifre jedinica). Ulaz: Izlaz: 3, 5, 2, MATEMATIČKE FUNKCIJE U C++ postoji mnogo ugrađenih funkcija. Šta to znači? Uzmimo npr. apsolutnu vrijednost nekog broja. Pošto se to često koristi, pa da ne bi za svaki problem (zadatak) pisali kod (program) koji računa aposolutnu vrijednost, onda su programeri napisali taj kod i ugradili ga u jezik a naše je samo da ga upotrebimo kad nam treba. Šta je funkcija u C++ trenutno nije bitno da znate, već samo kako se primjenjuje. Postoji mnogo ugrađenih matematičkih funkcija, mi ćemo ovdje navesti samo one koje će nama trebati i koje su vama poznate iz matematike. Da bi koristili matematičke funkcije morate prije using namespace std; uključiti matematičku biblioteku naredbom #include<cmath> Vrijednost svih sljedećih funkcija je tipa double. Tip argumenta x i y je double, a argumenta n je int. Kada upotrebite neku funkciju ona će vam vratiti izračunatu vrijednost koja će biti tipa double. 30

36 pow(x,y) Stepenovanje (Potenciranje). Vrijednost funkcije. Ako je = 0, mora da bude > 0. Ako je < 0, mora biti cijeli broj. sqrt(x) Korjenovanje (drugi korijen). Vrijednost funkcije, 0 abs(n) Apsolutna vrijednost Primjer 9. Napisaćemo program koji demonstrira upotrebu ovih funkcija. Rješenje. #include <iostream> #include <cmath> using namespace std; int main() { int a=2, b=4, c=-5; cout<<pow(3,2)<<endl; cout<<pow(a,b)<<endl; cout<<pow(2.135,4)<<endl; cout<<sqrt(b)<<endl; cout<<sqrt(a+b)<<endl; cout<<sqrt(10.250)<<endl; cout<<abs(c)<<endl; cout<<abs(5)<<endl; cout<<abs(-15)<<endl; return 0; 3.1. Decimalni brojevi Naučit ćemo kako oblikovati tj. ispisivati decimalne brojeve. C++ pruža mogućnost da manipuliramo izlaznim podacima. U tu svrhu koristimo razne manipulatore. Mi ćemo spomenuti samo neke Fixed fixed je manipulator koji se koristi kada ne želimo da nam broj bude prikazan u naučnom zapisu (npr. umjesto e+004 želimo da bude ) Primjer 10. Napisaćemo program koji će zadane brojeve ispisati na ekran bez upotrebe modulatora fixed i s upotrebom modulatora fixed. Rješenje. 31

37 #include <iostream> using namespace std; int main() { double a=3.14, b=0.051; double c= ; cout<<a<<endl; cout<<b<<endl; cout<<c<<endl; cout<<endl; cout<<fixed; cout<<a<<endl; cout<<b<<endl; cout<<c<<endl; return 0; ZAKLJUČAK: Modulator fixed je dovoljno napisati jednom ispred svih ispisa, te će on djelovati na sve ispise. Svi ispisi će biti na šest decimala. Nije potrebno uključivati nikakvu biblioteku Setprecision setprecision(n) je funkcija koja se koristi za ispis decimalnog broja s određenim brojem cifara, s tim da nulu ne broji, ako je ona na prvom mjestu. Dakle, ona samo govori koliko će se brojeva prikazati prilikom ispisa decimalnog broja. Umjesto slova n pišemo cijeli broj. Da bi koristili ovu funkciju moramo uključiti biblioteku #include<iomanip> Ona se može koristiti za tačno određen ispis decimala u decimalnom broju (zaokruživanje), tako što se prije ove funkcije napiše naredba fixed. Primjer 11. Prethodni primjer, gdje su prvo ispisani decimalni brojevi s naredbom setprecision, a ispod odmah u kombinaciji s naredbom fixed. Rješenje. 32

38 #include <iostream> #include <iomanip> using namespace std; int main() { double a=3.14, b=0.051; double c= ; cout<<setprecision(3)<<a<<endl; cout<<setprecision(1)<<b<<endl; cout<<setprecision(3)<<c<<endl; cout<<endl<<fixed; cout<<setprecision(3)<<a<<endl; cout<<setprecision(3)<<b<<endl; cout<<setprecision(3)<<c<<endl; return 0; 3.2. Ostali manipilatori dec čita ili ispisuje decimalni broj. oct čita ili ispisuje oktalni broj. hex čita ili ispisuje heksadecimalni broj. Primjer 12. Ispisat ćemo cijeli broj 15 i 25 u ova tri brojna sistema. Rješenje. #include <iostream> using namespace std; int main() { int n=15, m=25; cout<<"ispis broja 15:"<<endl; cout<<dec<<n<<endl; cout<<oct<<n<<endl; cout<<hex<<n<<endl; cout<<"ispis broja 25:"<<endl; cout<<dec<<m<<endl; cout<<oct<<m<<endl; cout<<hex<<m<<endl; return 0; 3.3. Zadaci za samostalan rad Zadatak 20. Napisati program koji unosi dva broja x i y i ispisuje koliko je. Ulaz: 2, 3. Izlaz: 8. Zadatak 21. Napisati program koji unosi prirodan broj i ispisuje kvadratni korijen tog broja. Ulaz: 2. Izlaz: 1,41. Rezultat zaokruži na dvije decimale. 33

39 Zadatak 22. Napisati program koji unosi katete pravouglog trougla i ispisuje hipotenuzu. Ulaz: 4, 3. Izlaz: Rezultat zaokruži na dvije decimale. 4. NAREDBE Naredba je osnovna jedinica obrade u programima. Mogu se podijeliti na proste, složene i upravljačke. Upravljačke naredbe ne vrše nikakvu obradu već prenose tok upravljanja na neko mjesto u programu. To spadaju razne naredbe skokova. Proste naredbe predstavljaju elementarne obrade koje se ne mogu da podjele na manje dijelove koji bi i sami bili naredbe, npr.: int a; ili a=5; ili cout<<a;. Izvršavanje proste naredbe sastoji se u izračunavanju izraza. Njen opšti oblik je: izraz ; ZAPAMTITI: SVAKA NAREDBA SE ZAVRŠAVA SA TAČKA-ZAREZ (;) Ako stavimo samo ; tada imamo praznu naredbu koja ne radi ništa. Složene naredbe predstavljaju strukture naredbi kojima se određuje redoslijed izvršavanja naredbi sadržanih u strukturi (u kodu tj. programu). Mogu biti: sekvenca, selekcije i ciklusi ili petlje Sekvenca ili blok: { Sekvenca je niz naredbi koje se izvršavaju jedna za drugom. Sekvenca se u jeziku C++ piše unutar velikih (vitičastih) zagrada: {. U jednom redu može da bude više naredbi ili pak u svakom redu po jedna. Osnovni kriterij je preglednost. Načini pisanja naredbi za sekvencu: 1) { naredba1; naredba2;... naredba n; 2) { naredba1; naredba2;... naredba n; Pošto se ispred naredbe1 može da stavi i nekoliko deklarativnih naredbi, zbog toga se sekvence nazivaju i blokovi. 34

40 Doseg (oblast važenja) identifikatora u programiranju označava dio programa u kome se identifikator koristi. Pa tako ako je na početku bloka definisan neki identifikator, tada je njegov doseg samo od početka pa do kraja bloka, tj. neće vrijediti izvan bloka odnosno vitičastih zagrada. Dakle, ako imamo dvije ili više naredbi za koje želimo da se izvrše zajedno jedna iza druge onda ih stavljamo u vitičaste zagrade tj. u blok. Prije nego li naučimo šta su sekcije, upoznajmo još jednu vrstu operatora. To su relacijski operatori Relacijski operatori Relacijskim operatorima se utvrđuje povezanost dviju varijabli, funkcija ili izraza. Računari u svom radu upotrebljavaju jednostavnu logiku sa dvije vrijednosti: ako je uslov (uvjet) istinit (true), vrijednost je 1; ako je lažan (false), vrijednost je 0. Relacijski operatori su prikazani u sljedećoj tablici: C++ operator Značenje Primjer > veće od 5>4 >= veće od ili jednako 5>=x < manje od 4<5 <= manje od ili jednako x<=5 == jednako 5==5!= različito (nije jednak) 5!= Selekcije Selekcije su upravljačke strukture koje omogućuju uslovno izvršavanje naredbi. To znači ako je neki uslov (uvjet) tačan nešto će se desiti (neke naredbe će se izvršiti) Naredba if if (uslov) naredba1; Ovo je jednostavna naredba if. Funkcionira na sljedeći način: Naredba if ispita da li je uslov tačan (istinit). Ako je tačan onda se izvrši naredba1. Ako nije tačan, tada se naredba1 neće izvršiti, nego se nastavlja sa izvršavanjem naredbe koja je sljedeća u programu. 35

41 Uslov (uvjet) mora bit takav da za njega računar može utvrditi da li je tačan ili netačan. Primjer 13. IZRAZ USLOV OBJAŠNJENJE Jer možemo utvrditi da li je izraz tačan ili netačan. a>b DA Jer možemo utvrditi da li je izraz tačan ili netačan za određene vrijednosti a i b. a+b NE Jer ne možemo utvrditi da li je izraz tačan ili netačan za određene vrijednosti a i b. DA Jer možemo utvrditi da li je izraz tačan ili netačan za određene vrijednosti a,b i c. 5-2 NE Jer ne možemo utvrditi da li je izraz tačan ili netačan. 5 = = 5 DA (a+b)*c<0 NAPOMENA: Ako kao uslov stoji broj 1 ili 0, tada je to ispravan uslov tj. broj 1 za računar predstavlja tačno, a broj 0 netačno, npr. if(1)naredba1;. Primjer 14. Napisati program koji će komentarisati uneseni cijeli broj a tj. ako je a veće od nule ispisat će se poruka "Broj je pozitivan", ako je jednak nuli "Broj je jednak nuli", te ako je manji od nule "Broj je negativan". Rješenje. Unosimo jedan broj s tastature i to cijeli broj, pa će deklaracija biti int a. Pošto u zadatku imao uslov (da je veći od nule, jednak nuli, manji od nule) onda koristimo if naredbu. #include<iostream> using namespace std; int main() { int a; cin>>a; if(a>0) cout<<"broj je pozitivan"<<endl; if(a==0) cout<<"broj je jednak nuli"<<endl; if(a<0) cout<<"broj je negativan"<<endl; Za unos 5 return 0; Kako program radi? Nakon što vi unesete broj s tastature (to je naredba cin>>a;), računar ide na sljedeću naredbu if(a>0) cout<<"broj je pozitivan"<<endl; 36

42 i prvo se provjerava uslov a>0 uvrštava se uneseni broj (npr. u ovom slučaju 5) tj. 5>0 da li je ovo tačno, postavi si pitanje računar. DA, tačno je. Onda se izvrši naredba koja stoji poslije okruglih zagrada cout<<"broj je pozitivan"<<endl; Ispiše se tekst: "Broj je pozitivan" te se poslije ispiše jedan prazan red tj. pređe se u novi red naredbom endl; Nakon toga računar ide dalje s izvršavanjem koda na liniju ispod if(a==0) cout<<"broj je jednak nuli"<<endl; Provjerava da li je uslov a==0 tačan tj. uvrsti broj 5 mjesto a tj. 5==0 i pita se da li je ovo tačno. NE, nije, pa dio cout<<"broj je jednak nuli"<<endl; koji stoji poslije uslova neće izvršiti, preskočiće ga, jer uslov nije tačan. Zatim, ide na sljedeću naredbu (liniju koda) if(a<0) cout<<"broj je negativan"<<endl; Ponovo, ispitiva da li je uslov tačan uvrštavajući uneseni broj umjesto varijable a. U našem slučaju broj 5. Kako 5<0 nije tačno, računar preskače dio iza if naredbe i prelazi na sljedeću naredbu return 0; i time završava program. Dakle, samo je bio tačan uslov u prvoj naredbi if za uneseni broj 5 pa se jedino i ona izvršila. Ovo smo napisali malo detaljnije kako program radi, jer je vrlo važno da razumijete if naredbu, da bi s njom mogli lakše manipulirati. NAPOMENA: U prethodnom primjeru smo iza naredbe if imali jednu naredbu i to cout. Šta ako želimo da se izvrše dvije, tri ili pak više naredbi, ako je neki uslov tačan? Tada koristimo blok tj. te naredbe stavljamo u vitičastu zagradu. if (uslov) {naredba1; naredba2; naredba3; itd Imati na umu da iza svake naredbe dođe tačka-zarez (;), a da se poslije vitičastih zagrada NE PIŠE tačka-zarez Naredba if else Ova naredba je slična naredbi if, pa sve rečeno za naredbu if vrijedi i za naredbu if else. Naredba ima jedan dodatak else koji znači inače. Naredba se piše na sljedeći način: 37

43 if (uslov) naredba1; else naredba2; Naredba if else radi na sljedeći način: Kao i kod naredbe if prvo se provjerava da li je uslov tačan (istinit). Ako je uslov tačan, onda se izvršava naredba1, dok se naredba2 ne izvršava (preskače). Ako je pak uslov netačan, onda se naredba1 ne izvršava (preskače), ali se izvršava naredba2. Dakle, ako je uslov tačan izvršava se samo naredba1, ako nije tačan izvršava se samo naredba2. Načini pisanja naredbe if else: 1) if ( uslov ) naredba1; else naredba2; 2) if ( uslov ) naredba1; else naredba2; 3) if ( uslov ) { naredba11; naredba12;... naredba 1n; else { naredba21; naredba22;... naredba 2m; 4) if ( uslov) { naredba11; naredba12;... naredba 1n; else { naredba21; naredba22;... naredba 2m; Ovo su neki najčešći, najpregledniji načini pisanja naredbe if else, mada ih se vi ne morate pridržavati tj. pišete u koliko redova hoćete, s kojim razmakom hoćete, bitno je samo da naredba sadrži svoj osnovni oblik, koji možete lijepo srediti samo s dva klika, tako što kliknete desnim dugmetom miša i odaberete Format use Astyle, slika

44 Slika 17 Oblikovanje koda Primjer 15. Napisati program koji unosi dva cijela broja, te ako je njihov zbir veći od nule, ispisuje njihov proizvod, inače njihovu razliku. Rješenje. Trebamo unijeti dva cijela broja, pa odmah znamo da su tipa int, a imena neka budu a i b. Dakle, int a,b;. Imamo uslov, da je njihov zbir veći od nule tj. a+b>0. Ako je to tačno (za unesene brojeve), onda će se ispisati njihov proizvod tj. a*b. To je naša naredba1 u ifelse naredbi. Dio inače njihovu razliku, znači, ako je uslov netačan, onda ispiši njihovu razliku tj. a-b, a ovo je naša naredba2 u if-else naredbi. #include<iostream> using namespace std; int main() { int a, b; cin>>a>>b; if(a+b>0) cout<<a*b<<endl; else cout<<a-b<<endl; Za unos 2 i 3 Za unos -2 i 1 return 0; Primjer 16. Napisati program koji unosi tri cijela broja i ispisuje najvećeg od njih. Rješenje. Iz zadatka vidimo da moramo deklarirati tri varijable tipa int (jer su cijeli brojevi). Dajmo im imena a, b, c tj. int a, b, c;. Odmah iz zadatka se ne vidi da ćemo koristiti if naredbu. Kao to u zadatku prepoznati? Čim se u vašem govoru javi riječ AKO je nešto tako ONDA će biti ovo itd. Znamo da relacijski operatori (>, <, ==, itd) mogu uzeti (uporediti) 39

45 samo dva broja. Pa ćemo mi uzeti npr. brojeve a i b, te ih uporediti, da vidimo koji je veći (postaviti uslov a>b). Šta ako je uslov tačan? To znači da je broj a veći od broja b. Šta onda da uradimo? A šta ako je netačan? To znači da je onda broj b veći od broja a, šta da onda uradimo? Upravo zbog ovog " šta da onda uradimo", moramo uvesti novu varijablu kojoj ćemo dati ime max i njoj pridružiti (spremiti, u nju skladištiti) broj koji od njih dvojce (od a ili b) bude veći. if(a>b) max=a; else max=b; Ostaje još da usporedimo max i c, pa ko od njih bude veći, taj je onda najveći broj. Za unos 1, 2 i 3 #include<iostream> using namespace std; int main() { int a, b, c, max; cin>>a>>b>>c; if(a>b) max=a; else max=b; if(max>c) cout<<"najveci je "<<max<<endl; else cout<<"najveci je "<<c<<endl; Za unos 1, 3 i 2 Za unos 3, 2 i 1 return 0; Program testirate sa što manjim brojevima tj. za koje znate kakav treba rezultat biti i sve moguće slučajeve, prije nego li ga proglasite tačnim. U ovom primjeru smo imali tri broja, pa smo u testiranju morali na sva ti mjesta staviti najveći broj da vidimo hoće li ga program ispravno naći. Može li se zadatak riješiti bez uvođenja nove varijable? Da, može, upotrebom proširene if- else-if-else naredbe: ili if(uslov1) naredba1; else if(uslov2) naredba2; else if(uslov3) naredba3; else naredba4; if(uslov1) if(uslov2) naredba2; else if(uslov3) naredba3; else naredba4; Ovdje smo stali na naredba4, mada možete ići dokle vam je volja. Dakle, ako je uslov1 tačan, onda izvrši naredba1, inače (ako nije tako), provjeri da li je uslov2 tačan, pa ako 40

46 jeste izvrši naredba2, inače (ako nije tačan), provjeri je li uslov3 tačan, pa ako jeste izvrši naredba3, inače izvrši naredba4. #include<iostream> using namespace std; int main() { int a, b, c; cin>>a>>b>>c; if(a>b) if(a>c) cout<<"najveci je "<<a<<endl; else cout<<"najveci je "<<c<<endl; if(a<b) if(b>c) cout<<"najveci je "<<b<<endl; else cout<<"najveci je "<<c<<endl; return 0; Zadaci za samostalan rad Zadatak 23. Napisati program koji unosi dva broja i ispisuje onog koji je veći. Ulaz: 1, 5. Izlaz: 5. Ulaz: 5, 1. Izlaz: 5. Zadatak 24. Napisati program koji unosi prirodan broj i ispisuje poruku "PARAN", ako je broj paran, inače poruku "NEPARAN". Ulaz: 2. Izlaz: PARAN. Ulaz: 3. Izlaz: NEPARAN. Zadatak 25. Napisati program koji unosi broj dana u sedmici (1-7) i ispisuje koji je to dan. Ulaz: 2. Izlaz: Utorak. Zadatak 26. Napisati program koji unosi tri ugla i provjerava da li ti uglovi čine trougao. Ulaz: 30, 60, 90. Izlaz: DA. Ulaz: 60, 60, 90. Izlaz: NE. Zadatak 27. Napisati program koji unosi dva cijela broja. Ako je prvi veći od nule ispisuje njihov proizvod, inače njihov zbir. Ulaz: 4, 3. Izlaz: 12. Ulaz: -4, 3. Izlaz: -1. Zadatak 28. Unijeti dva cijela broja. Ako je kvadrat prvog veći od kvadrata drugog broja, ispisati njihov zbir, a ako nije njihovu razliku. Ulaz: 4, 3. Izlaz: 7. Ulaz: 2, 3. Izlaz: -1. Zadatak 29. Napisati program koji će provjeriti jesu li dva broja a i b jednaka ili ne. Ulaz: 5, 5. Izlaz: DA. Ulaz: 6, -6. Izlaz: NE. Zadatak 30. Napisati program koji će provjeriti da li je cijeli broj unesen s tastature veći od 3. Ulaz: 8. Izlaz: DA. Ulaz: 1. Izlaz: NE. 41

47 Zadatak 31. Napisati program koji učitava dva broja x, y te ispisuje poruku da li je x<y ili x>y ili x=y. Ulaz: 1, 4. Izlaz: 1 je manje od 4. Ulaz: 1, 0. Izlaz: 1 je vece od 0. Ulaz: 5, 5. Izlaz: 5 je jednako 5. Zadatak 32. Napisati program koji učitava dužine tri stranice trougla i ispisuje poruku da li je trougao pravougli. Ulaz: 3, 4, 5. Izlaz: Pravougli. Ulaz: 4, 6, 8. Izlaz: Nije pravougli. Zadatak 33. Napisati program koji učitava tri prirodna broja i ispitiva da li su ti brojevi stranice trougla. (Uputa: Zbir dvije stranice mora biti veći od treće, da bi imali trougao). Ulaz: 3, 4, 5. Izlaz: Da. Ulaz: 1, 2, 3. Izlaz: Ne. Zadatak 34. Napisati program koji za uneseni prirodan broj provjerava da li neparan broj. Ulaz: 3. Izlaz: DA. Ulaz: 6. Izlaz: NE. Zadatak 35. Napisati program koji će za uneseni cijeli broj ispitati da li je djeljiv s 5. Ulaz: 10. Izlaz: DA. Ulaz: 13. Izlaz: NE. Zadatak 36. Napisati program koji od tri unesena cijela broja ispisuje najmanjeg. Ulaz: 1, 2, 3. Izlaz: 1. Ulaz: 2, 1, 3. Izlaz: 1. Ulaz: 2, 3, 1. Izlaz: 1. Zadatak 37. Napisati program koji će učitati trocifreni prirodan broj. Ispremještati mu cifre tako da se dobije najveći mogući broj sastavljen od te tri cifre. Ulaz: 476. Izlaz: 764. Zadatak 38. Napisati program koji za tri unijeta cijela broja a, b i c ispituje da li je broj a jednak zbiru brojeva b i c. Ako jeste ispisuje poruku npr. "Broj a je jednak zbiru brojeva b i c", ako nije poruku "Ne". Umjesto a, b i c koristiti konkretne brojeve. Ulaz: 6, 4, 2. Izlaz: Broj 6 je jednak zbiru brojeva 4 i 2. Ulaz: 5, 6, 1. Izlaz: NE. Zadatak 39. Napisati program koji unosi dva prirodna broja a i b, i ispisuje poruku, ako je broj a djeljiv brojem b: "Broj a je djeljiv brojem b", a ako nije poruku "Broj a nije djeljiv brojem b". Umjesto a i b u poruci koristiti konkretne vrijednosti. Ulaz: 4, 2. Izlaz: Broj 4 je djeljiv brojem 2. Ulaz: 5, 2. Izlaz: Broj 5 nije djeljiv brojem 2. 42

48 4.4. Logički operatori Do sada smo u uslovu kod if naredbe koristili relacijske operatore (<, >, ==, itd) i to samo jedan operator u izrazu. Postavlja se pitanje možemo li kako koristiti više relacijskih operatora? Jer kad bi mogli koristiti više njih u jednom uslovu, tada bi mogli graditi složenije uslove. Odgovor je potvrdan. To nam omogućuju logički operatori, koji služe za povezivanje dva ili više jednostavnih uslova - izraza (sa samo jednim relacijskim operatorom). Logički operatori u C++ su: Logički operator C++ operator negacija NE! logički I logički ILI && Logički operator negacija "ne" je unarni operator, označava se sa! i zapisuje se ispred elementa i mijenja njegovu logičku vrijednost iz tačno u netačno ili iz netačno u tačno. U C++ se tačno označava s brojem 1, a netačno s brojem 0. Logički operator "I" u oznaci && je tačan (ima vrijednost 1) ako i samo ako su oba operanda tačna (imaju vrijednost 1), inače je netačan (ima vrijednost 0 u svim ostalim slučajevima). Označimo jedan operand (izraz) s A, a drugi s B, npr. (5+c)<0 je izraz (operand). Budući da operator I, binarni operator tj. povezuje samo dva operanda, to onda imamo samo četiri moguća slučaja: A B A && B Logički operator "ILI" u oznaci je tačan (ima vrijednost 1) ako je bar jedan operand (izraz) tačan tj. netačan je (ima vrijednost 0) samo ako su oba operanda netačna. A B A B

49 Primjer 17. Izračunati (utvrditi) da li su sljedeći izrazi (uslovi) tačni ili netačni. 1. # = 5, $ = 1 a) # + 1 > 0 && # $ > 0 b) # >= 5 && $ <= 5 c) # + $ + 3 # $ > 0 && #/$ 5 < 0 2. # = 1, $ = 3, ( = 1 a) # > 0 $ > 0 b) # $ < 0 ( $ <= 0 c) # + ( $ < # $ ( > # 3. # = 1, $ = 2, ( = 4 a) # >= 1 && $ > 0 && ( < 0 b) # < $ && ( > 0 && # + 1 > 0 && ( == 0 c) # < 0 $ > 0 ( <= 0 d) # + 5 < 1 $ 5 > # ( + 5 <= $ e) #! = 5 f) # > 0 $ < 0 && ( > 0 g) # == 0 && $ < 0 # < $ && ( > 0 Rješenje. 1) a) Sada umjesto varijabi # i $ uvrstimo konkretne vrijednosti, te ispitamo da li je prvi izraz tačan ili netačan, isto tako za drugi, pa onda primjenimo operator &&, a umjesto tačno kao što smo rekli pišemo 1, a za netačno 0: (5+1)>0 && (5-1)>0 6>0 && 4>0 1 && 1 1 Dakle, ovaj uslov je tačan. b) 1 c) 0 2) a) Opet umjesto varijabli uvrstimo vrijednosti. a>0 b>0 1>0 3>0 44

50 1 1 1 Dakle, tačno. b) 1 c) 1 3) a) Sada na isti način samo što gledmo prva dva, pa tako dobiven rezultat s sljedećim. a>=1 && b>0 && c<0 1>=1 && 2>0 && 4<0 1 && 1 && 0 1 && 0 0 Dakle, netačno b) 1 c) 0 d) 1 e) 1 f) 1 Pošto smo se upoznali s logičkim operatorima možemo raditi mnogo složenije zadatke. Primjer 18. Napisati program koji učitava dva cijela broja, te ako je jedan od brojeva negativan ispisuje njihov proizvod, a ako su pozitivni ispisuje njihovu razliku. Rješenje. U zadatku se traži da unesemo dva cijela broja, koja ćemo označiti s a i b tj. int a, b;. Uslov je da se ispiše njihov proizvod, ako je jedan od brojeva negativan. To znači, da će se ispisati proizvod ovih brojeva, ako je negativan a, b pozitivan a pozitivan, b negativan negativan a, negativan b odnosno zapisano simbolima a<0, b>0 a>0, b<0 a<0, b<0 45

51 KOJI logički operator upotrebiti? Prethodna tri slučaja moraju biti tačna, a moramo to zapisati što kraće tj. jednostavnije kao jedan slučaj. Tu dolaze do izražaja logički operatori. Pomoću njih ćemo povezati dva izraza (elementarna uslova): a<0 b<0 Dovoljno je da je jedan a ili b, nije važno koji, negativan, da bi sve bilo tačno tj. da bi se ispisao njihov proizvod. A ako nije tako, onda su očito oba pozitivna. #include <iostream> using namespace std; int main(){ int a, b; cout<<"unesite dva broja:"; cin>>a>>b; if (a < 0 b <0) cout<<a*b<<endl; else cout <<a-b<<endl; return 0; Za unos -2 i 3 Primjer 19. Napisati program koji unosi cijeli broj a, te provjerava da li se broj a nalazi između brojeva 1 i 10. Rješenje. Unosimo jedan cijeli broj a tj. int a. Uslov je da se broj nalazi između brojeva 1 i 10. To znači, da broj a mora biti veći od 1 i manji od 10. Koji logički operator koristiti? Sama prethodna rečenica vam je dala odgovor. To je logičko I tj. &&. Jer da bi broj a bio između brojeva 1 i 10, on mora biti istovremeno veći od 1 i manji od 10 tj. oba izraza moraju biti istovremeno tačna, da bi sve ukupno bilo tačno, a to nam daje logičko I. #include <iostream> using namespace std; int main(){ int a; cout<<"unesite broj:"<<endl; cin>>a; if (a >1 && a <10) cout<<"da"<<endl; else cout <<"NE"<<endl; return 0; 46

52 Zadaci za samostalan rad Zadatak 40. Napisati program koji unosi cijeli broj i ispisuje poruku "DA" ako je broj veći od 100 ili manji od nule, ako nije poruku "NE". Ulaz: 105. Izlaz: DA. Ulaz: -5. Izlaz: DA. Ulaz: 56. Izlaz: NE. Zadatak 41. Napisati program koji unosi prirodan broj N. Ako je broj N djeljiv s 5 i paran broj, ispisuje poruku "Broj N je djeljiv s 5 i paran je broj", u suprotnom poruku "NE". U poruci N treba biti konkretna vrijednost. Ulaz: 10. Izlaz: Broj 10 je djeljiv s 5 i paran je broj. Ulaz: 25. Izlaz: NE. Ulaz: 12. Izlaz: NE. Zadatak 42. Napisati program koji učitava cijeli broj i ispitiva da li je taj broj djeljiv s 5 i 7. Ulaz: 35. Izlaz: DA. Ulaz: 25. Izlaz: NE. Ulaz: 14. Izlaz: NE. Zadatak 43. Napisati program koji će ispisati da li je uneseni broj prihvaćen. Broj je prihvaćen ako je zadovoljio sljedeće nabrojane uslove: pozitivan neparan (da nije djeljiv s 2) da nije trocifren (da nije u rasponu od 100 do 999) da nije djeljiv sa 7 Ulaz: 3. Izlaz: PRIHVACEN. Ulaz: -5. Izlaz: NIJE PRIHVACEN. Ulaz: 20. Izlaz: NIJE PRIHVACEN. Ulaz: 101. Izlaz: NIJE PRIHVACEN. Ulaz: Izlaz: NIJE PRIHVACEN. Zadatak 44. Napisati program koji unosi dva cijela broja A i B i koji ispisuje broj A, ako je zbir i razlika brojeva A i B veća od nule, inače ispisuje broj B. Ulaz: 5, 2. Izlaz: 5. Ulaz: 3, 6. Izlaz: 6. Ulaz: -2, -6. Izlaz: -6. Zadatak 45. Napisati program koji učitava četiri cijela broja a, b, c i d. Ako je prvi pozitivan i zbir drugog i četvrtog veći od nule i zbir prvog i trećeg manji od nule ispisuje, proizvod a*b*c, inače ispisuje koliko je a-b-c. Ulaz: 1, 2, -2, 4. Izlaz: -4. Ulaz: 1, 2, 3, 4. Izlaz: Ciklusi ili petlje Ciklusi ili petlje su upravljačke strukture koje omogućuju ponovljeno izvršavanje neke naredbe. Prema zadavanju uslova dokle treba da se petlja ponavlja, mogu da postoje: 47

53 petlje koje traju dok je neki uslov ispunjen petlje koje traju dok neki uslov nije ispunjen brojačke petlje For petlja Jedna od najvažnijih petlji je for petlja. Njena upotreba u programima je neizostavna, zbog toga je vrlo važno razumjeti kako ona funkcionira. Kada ćemo koristiti for petlju? AKO JE BROJ PONAVLJANJA POZNAT, TADA KORISTIMO FOR PETLJU. Opći oblik for petlje je: for (izraz1; uslov; izraz2) naredba; Izraz1 predstavlja pripremu za ulazak u petlju i njegova vrijednost se samo iskoristi prvi put. Uslov je logički izraz koji predstavlja uslov za nastavljanje petlje. Dok je tačan petlja se izvodi, čim postane netačan petlja se prekida. Izraz2 predstavlja promjenu vrijednosti izraza1 na kraju svakog prolaska kroz petlju. Načini pisanja for petlje: 1) for(izraz1; uslov; izraz2) naredba; 2) for(izraz1; uslov; izraz2) naredba; for(izraz1; uslov; izraz2) { naredba1; naredba2;... naredba n; Dvije ili više naredbi, koje pripadaju for petlji se moraju staviti u vitičaste zagrade!!! 3) for(izraz1; uslov; izraz2) { naredba1 naredba2... naredba n 48

54 Primjer 20. Napisati program koji ispisuje poruku "C++" 10 puta. Rješenje. Prema znanju koje imamo (bez znanja for petlje) mi bi ovaj zadatak riješili tako što bi poruku "C++" napisali 10 puta: cout<<"c++ C++ C++ C++ C++ C++ C++ C++ C++ C++"; Pa i nije neki zamor. No, šta da svaka poruka mora biti u novom redu? Onda bi bilo malo više posla, ali i to se da. Što će nam onda for petlja? Recimo da smo u zadatku umjesto 10 puta napisali 1000 ili možda milion puta. Koliko bi nam samo vremena trebalo da to napišemo na prethodni način? Tu dolazi do izražava moć for petlje. Mi napišemo jednom, a ono se ispiše koliko puta želimo. Vratimo se sada rješenju našeg zadatka pomoću for petlje. Iz zadatka znamo da se poruka "C++" treba ispisati 10 puta. To je naš uslov iz definicije for petlje. Izraz1 u definiciji petlje označava odakle petlja kreće tj. pretstavlja njenu početnu vrijednost. U našem slučaju će krenuti od broja 1. Izraz2 u definiciji for petlje označava za koliko će se izraz1 početna vrijednost povećati nakon što prgram dođe do kraja for petlje. To je zapravo korak, koji diktira način ponavljanja. U našem slučaju, izraz2 mora povećati izraz1 svaki put za 1. Jer trebamo ispisati "C++" 10 puta, pošto krećemo od 1, a trebamo doći do 10. Kako napisati tj. zapisati izraz1? Najčešće se u tom slučaju koristi varijabla i, može i neko drugo ime. Ali varijablu i moramo deklarirati na početku, te je tipa int. Kako napisati uslov? Uslov obično sadrži varijablu iz izraza1 i mora biti logički uslov. U našem slučaju je i<=10. Kako napisati izraz2? Već smo rekli da on povećava izraz1 tj. početnu vrijednost (može i smanjivati, ali u našem slučaju povećava). Obično se piše i++, ako povećava za 1. Mogli smo napisati i ovako i=i+1. To je isto. 49

55 Konačno rješenje zadatka. #include <iostream> using namespace std; int main(){ int i; for(i=1; i<=10; i++) cout<<"c++"<<endl; return 0; Primjer 21. Napisati program koji će ispisati brojeve od 10 do 1. Rješenje. Zadatak od nas traži da ispišemo brojeve 10, 9, 8,..., 1. Dakle, opet imamo ponavljanje, pa ćemo koristiti for petlju. Sada je početna vrijednost 10, a krajnja 1, pa nam izraz2 mora biti takav da smanjuje početnu vrijednost. Uslov, petlja mora da se vrti ponavlja do 1, pa mora biti oblika i>=1 ili i>0. #include <iostream> using namespace std; int main(){ int i; for(i=10; i>=1; i--) cout<<i<<endl; return 0; Primjer 22. Napisati program koji ispisuje sve parne brojeve između 1 i 15. Rješenje. Početna vrijednost-izraz1 će nam biti sada i=2 jer je 2 prvi parni broj koji se nalazi u zadanom intervalu. Uslov će biti i<15, a izraz2 tj. korak će biti i=i+2. Sljedeći parni broj poslije 2 je 4, pa 6, 8, itd. Da bi dobili 4 moramo na 2 tj. početnu vrijednost dodati 2. Isto tako da bi dobili 6 od 4, moramo na 4 dodati 2, itd., zbog toga mora biti oblika i=i+2. Pojasnimo malo ovaj izraz. On znači da onu vrijednost koju ima i povećamo za 2, pa novu vrijednost pridružimo varijabli i. Stara vrijednost se obriše, a nova upiše. 50

56 #include <iostream> using namespace std; int main(){ int i; for(i=2; i<15; i=i+2) cout<<i<<endl; return 0; Primjer 23. Napisati program koji ispisuje sve brojeve od 1 do 100 koji su djeljivi sa 7. Rješenje. Ovakav zadatak na prvi pogled se može učiniti teškim. No, vidjet ćemo da nije tako. Kako trebamo za svaki broj od 1 do 100 provjeriti je li djeljiv sa 7, to nam odmah sugerira da trebamo koristiti for petlju, jer za svaki broj trebamo uraditi isto. To isto je provjeriti je li djeljiv sa 7 odnosno provjeriti da li je ostatak pri dijeljenju tog broja sa 7 jednak nuli. Dakle, izraz1 u petlji će nam biti i=1 (mada smo mogli i staviti i=7, ali neka ostane i=1 jer još uvijek smo početnici). Uslov će biti i<=100. Izraz2-korak će biti 1 odnosno i++. Ostaje još da odredimo šta će biti u petlji tj. koje će se to naredbe ponavljati. Za svaki broj moramo naći ostatak i ispitati da li je jednak nuli. Ako jeste ispisati ga. Dakle, to je uslov za if (ako) naredbu. #include <iostream> using namespace std; int main(){ int i; for(i=1; i<=100; i++) if(i%7==0)cout<<i<<endl; return 0; Primjer 24. Napisati program koji će sabrati sve prirodne brojeve od 1 do 100. Rješenje. Od anegdota o poznatim matematičarima možda je najčešće prepričavana ona o velikom matematičaru Karlu Friedrichu Gaussu, iz doba njegova djetinjstva: Jednom zgodom učitelj đacima dade u zadatak neka izračunaju zbir prvih stotinu prirodnih brojeva. Očekivao je kako će ga djeca, zadubljena u rješavanje, neko duže vrijeme ostaviti na miru, no nemalo se iznenadio kada je već nakon nekoliko trenutaka mali Gauss javio tačan rezultat. 51

57 Zadatak ćemo riješiti upotrebom for petlje, jer trebamo sabrati brojeve 1, 2, 3,..., 100. Dakle, imamo ponavljanje. Početna vrijednost (izraz1) će biti i=1. Uslov i<=100. Izraz2 (korak) i++. Ovo je za sada bilo lahko. Ostaje još da odredimo, šta će to biti u for petlji tj. da napišemo izraz (formulu) koja će sabirati te brojeve. Prvo ćemo uzeti i deklarirati još jednu varijablu kojoj ćemo dati ime zbir. Pošto sabiramo samo prirodne brojeve, ona će biti tipa int. U ovoj varijabli ćemo čuvati naš rezultat (zbir). Varijablu zbir ćemo odmah i inicijalizirati tj. pridružiti (spremiti, skladištiti) joj broj 0. Ovo činimo zbog toga što varijabla ima neku vrijednost, obično broj u memoriji, pa bi dobili pogrešan rezultat. Naredba koja će sabirati brojeve i ujedno čuvati rezultat je zbir=zbir+i; #include <iostream> using namespace std; int main(){ int i, zbir=0; for(i=1; i<=100; i++) zbir=zbir+i; cout<<zbir<<endl; return 0; Razmotrimo sada rješenje korak po korak da vidimo kako to funkcionira. Računar dolazi do for petlje. Početna vrijednost je i=1. Potom provjerava da li je uslov zadovoljen (tačan) tj. računa i<=100 kad uvrsti i=1 je 1<=100 tačno. Zatim ulazi u for petlju i izvršava naredbu zbir=zbir+i; tj. kad uvrstimo zbir=0+1 odnosno zbir=1. Pošto u for petlji nema više naredbi osim prethodne, tada se izvršava izraz2 tj. i++ odnosno i=i+1 tj. i=1+1=2. Ovo je bio prvi korak u for petlji. Sada ide drugi. Provjerava se uslov: i<=100. Sada je i=2, a ne 1. Pa je 2<=100 tačno. Ulazi se u for petlju i izvršava naredba zbir=zbir+i=1+2=3. Pazite, varijabla zbir je u prvom koraku promijenila svoju vrijednost iz 0 u 1. Sada se opet izvrši izraz2 tj. i postaje i=i+1=2+1=3. Sada bi išao korak 3, pa 4, 5, itd do 100. Vidimo da naredba zbir=zbir+i zapravo znači: Na kraju moramo još ispisati rezultat tj. vrijednost varijable zbir. 52

58 Primjer 25. Napisati program koji će izračunati (prebrojiti) koliko ima prirodnih brojeva između 1 i 1000, a koji su djeljivi sa 19. Rješenje. Ovo je sličan zadatku koji smo prije uradili a tražilo se da ispišemo sve brojeve djeljive sa 7 između 1 i 100. Brojeve nećemo ispisivati već ćemo izbrojati koliko ih ima. Kako ćemo to uraditi? Tako što ćemo deklarirati i incijalizirati varijablu s imenom brojac (može naravno i neko drugo ime) tj. int brojac=0;. Odmah varijablu brojac stavljamo na vrijednost 0, jer kad nađemo prvog koji je djeljiv s 19, odnosno kad uslov u naredbi if bude tačan, varijablu povećamo za 1. Pa kad nađemo drugog opet varijablu povećamo za 1. Tu radnju možemo jednostavno zapisati sa brojac++; ili brojac=brojac+1;. Na kraju ostaje još samo da ispišemo koliko ih ima. #include <iostream> using namespace std; int main(){ int i, brojac=0; for(i=1; i<=1000; i++) if(i%19==0) brojac++; cout<<brojac<<endl; return 0; Primjer 26. Napisati program koji učitava prirodan broj i ispisuje poruku da li je taj broj savršen. (Broj je savršen ako je jednak zbiru svih svojih djelitelja manjih od njega samog, npr. djelitelji od broja 6 su 1, 2, i 3 te vrijedi = 6 ili za 28 = ). Rješenje. Ovo je malo teži primjer, jer zahtjeva od nas da kombiniramo prethodne primjere. U zadatku se od nas traži da provjerimo da li je uneseni prirodan broj savršen. Dajmo ime tom broju n tj. int n;. Iz definicije savršenog broja slijedi da trebamo naći sve djelitelje unesenog broja manje od njega samog (to znamo iz prethodnih primjera) i kako kojeg nađemo ujedno ih sabiramo (to također znamo iz primjera gdje je trebalo sabrati prvih 100 prirodnih brojeva). Kako će sada izgledati for petlja. Znamo da je izraz1 jednak i=1. Uslov: dijelimo sve do unesenog broja tj. i<n. Izraz2 je i++. Ostaje još samo da vidimo da li je taj zbir jednak unesenom broju, ako jeste broj je savršen, inače nije. 53

59 #include <iostream> using namespace std; int main(){ int i, n, zbir=0; cout<<"unesite prirodan broj: "; cin>>n; for(i=1; i<n; i++) if(n%i==0) zbir=zbir+i; if(n==zbir) cout<<"broj je savrsen."<<endl; else cout<<"broj nije savrsen."<<endl; return 0; Primjer 27. Napisati program koji ispisuje sve savršene brojeve koji se nalaze između 1 i Rješenje. Ovaj primjer ćemo iskoristiti da demonstriramo kako se koristi petlja u petlji. Jer i u for petlji može biti jedna ili više for petlji. Također, isto može biti i unutar tih petlji. Iz prethodnog primjera znamo kako se traži (provjerava) da li je broj savršen. Sada to moramo uraditi za svaki broj od 1 do Dakle, trebaće nam for petlja koja ima početnu vrijednost izraz1 n=1. Uslov: n<=1000, a izraz2 je n++. Unutar ove petlje će biti for petlja iz prethodnog primjera. Prije nje ćemo morati staviti da je zbir=0; tj. moramo za svaki broj na ovaj način prije ulaska u drugu petlju resetirati varijablu zbir odnosno njenu vrijednost. Unutar te petlje će biti i provjera da li je zbir jednak n tj. ako jeste ispisujemo broj n, jer je on tada savršen broj. Pošto ćemo u toj vanjskoj petlji imati tri naredbe: zbir=0; for petlju iz prethodnog primjera i provjeru je li zbir jednak n, to ćemo ih morati staviti u vitičaste zagrade. #include <iostream> using namespace std; int main() { int i, n, zbir; for(n=1; n<=1000; n++){ zbir=0; for(i=1; i<n; i++) if(n%i==0) zbir=zbir+i; if(n==zbir) cout<<n<<endl; return 0; 54

60 Primjer 28. Napisati program za ispis prirodnih brojeva od 1 do n. Rješenje. #include <iostream> using namespace std; int main() { int i, n; cin>>n; for(i=1; i<=n;i++) cout<<i<<endl; Za unos 5 return 0; Zadaci za samostalan rad Zadatak 46. Napisati program koji će ispisati sve neparne brojeve od 1 do 20. Izlaz: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19. Zadatak 47. Napisati program koji će ispisati brojeve 10, 20, 30,..., 100. Izlaz: 10, 20, 30, 40, 50, 60, 70, 80, 90, 100. Zadatak 48. Napisati program koji ispisuje prirodne brojeve od 5 do 20 unazad. Izlaz: 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5. Zadatak 49. Napisati program koji ispisuje sve brojeve između 1 i 100, koji su djeljivi s 11. Izlaz: 11, 22, 33, 44, 55, 66, 77, 88, 99. Zadatak 50. Napisati program za ispis zbira prvih 50 prirodnih brojeva. Izlaz: Zadatak 51. Napisati program koji će sabrati sve parne brojeve od 1 do 200. Izlaz: Zadatak 52. Napisati program koji unosi prirodan broj i ispisuje sve njegove pozitivne faktore. Ulaz: 6. Izlaz: 1, 2, 3, 6. Zadatak 53. Napisati program koji unosi dva prirodna broja i ispisuje NZD tih brojeva, npr. Ulaz: 12, 30. Izlaz: NZD(12,30) = 6. Zadatak 54. Napisati program koji će ispisati tri višekratnika (sadržioca) broja 15 uz uslov da su veći od 50. (Višekratnici ili sadržioci prirodnog broja su svi brojevi koji su djeljivi s tim brojem). Izlaz: 60, 75,

61 Zadatak 55. Napisati program za ispis zbira prirodnih brojeva manjih od 500, a djeljivih sa 3 i ispisati koliko takvih brojeva ima. Izlaz: Njihov zbir je 41583, a ima ih 166. Zadatak 56. Napisati program koji će ispisati višekratnike (sadržioce) unijetog broja n. Broj n mora biti veći od 5 i manji od 20. Ispisuju se samo dvocifreni višekratnici. Ulaz: 19. Izlaz: 19, 38, 57, 76, 95. Ulaz: 7. Izlaz: 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84, 91, 98. Zadatak 57. Napisati program koji ispisuje sve parne brojeve koji se nalaze između brojeva A i B. Svaki parni broj se ispisuje u novom redu. Brojevi A i B se unose. Ulaz: 1, 10. Izlaz: 2, 4, 6, 8. Zadatak 58. Napisati program koji sabira sve višekratnike broja 7 koji se nalaze između zadanih prirodnih brojeva A i B. Ako između zadanih brojeva nema višekratnika broja 7, ispišite poruku Nema trazenih visekratnika. Ulaz: 1, 30. Izlaz: 7, 14, 21, 28. Ulaz: 1, 6. Izlaz: Nema trazenih visekratnika. Zadatak 59. Napisati program koji provjerava da li je uneseni broj prost broj. (Broj. > 1 je prost ako je djeljiv samo s 1 i sa samim sobom) Ulaz: 7. Izlaz: DA. Ulaz: 4. Izlaz: NE. Ulaz: 1. Izlaz: NE. Zadatak 60. Napisati program koji će ispisati zbir kvadrata brojeva od 1 do n. Ulaz: 4. Izlaz: Zbir je 30. Zadatak 61. Napisati program koji će ispisati sumu (zbir) prirodnih brojeva u intervalu od 1 do n koji su djeljivi s 3 i sa 7. Ulaz: 1, 50. Izlaz: Zbir je 63. Ulaz: 1, 20. Izlaz: Nema ih. Zadatak 62. Napisati program koji će ispisati zbir prirodnih brojeva u intervalu od 1 do n čija je cifra jedinica 8. Ulaz: 1, 50. Izlaz: Zbir je 140. Ulaz: 1, 7. Izlaz: Nema ih. Zadatak 63. Napisati program za ispis tablice množenja od 1 do 5 unesenim brojem n. Ulaz: 3. Izlaz: 1*3= 3, 2*3= 6, 3*3= 9, 4*3= 12, 5*3= 15. Zadatak 64. Napisati program za ispis aritmetičke sredine parnih prirodnih brojeva do n. Ulaz: 10. Izlaz: 6.5. Zadatak 65. Napisati program koji će izračunati zbir dvocifrenih brojeva kod kojih je zbir cifara manji od 7. 56

62 Izlaz: 520. Zadatak 66. Napisati program koji će ispisati sve dvocifrene brojeve s cifrom jedinica većom od 6. Izlaz: 17, 18, 19, 27, 28, 29, 37, 38, 39, 47, 48, 49,..., 97, 98, 99. Zadatak 67. Napisati program koji će ispisati dvocifrene brojeve kod kojih je pri djeljenju s 3 je ostatak 2. Izlaz: 11, 14, 17, 20, 23, 26, 29, 32, 35, 38, 41, 44, 47,..., 92, 95, While petlja Petlja while se koristi za ponavljanje dijela koda programa kod kojeg broj ponavljanja nije unaprijed poznat. Dakle, kada ne znamo da li će se pri svakom pokretanju programa ili petlje while ona izvršiti jednom, dva puta ili deset puta ili pak nijednom. While petlju možemo koristiti i kada je broj ponavljanja poznat. Opći oblik while naredbe je: while (uslov) naredba; Kada računar dođe do while petlje on prvo se provjerava uslov. Ako je uslov (koji mora biti logički izraz) tačan, izvršava se naredba. Potom se opet provjerava uslov, pa ako je tačan, izvršava se naredba. Ciklus tj. petlja se završava kada vrijednost uslova postane logička neistina tj. netačan. Dakle, naredba while se izvršava sve dok je uslov tačan. Treba uočiti da se može desiti da naredba ne bude nijednom izvršena, ako pri prvoj provjeri uslov, bude netačan. Kao i kod for petlje, ako imamo dvije ili više naredbi koje pripadaju while naredbi, onda se one pišu u vitičastim zagradama tj. u bloku. Rijedak je slučaj kada ćemo koristiti načine pisanja 1 i 2, većinom 3 ili 4. Načini pisanja while naredbe: 1) while ( uslov ) naredba; 2) while ( uslov ) naredba; 3) while ( uslov ) { naredba1; naredba2;... naredba n; 4) while ( uslov ){ naredba1; naredba2;... naredba n; 57

63 Primjer 29. Napisati program koji će ispisati brojeve od 1 do 10. Rješenje. Uzeli smo ovaj lagan zadatak da demonstriramo kako to radi while petlja. Prvo što trebamo je odrediti je uslov. On treba biti tačan sve dok se ne ispišu svi brojevi. Pošto je zadnji 10, onda će biti i<=10, gdje smo uzeli varijablu i, te joj odmah pri deklaraciji dali vrijednost 1, jer je 1 prvi broj koji će se ispisati. Brojeve će ispisivati naredba cout koja će biti u while petlji. Ostaje još da definiramo šta će nam biti brojač tj. naredbu koja će mijenjati vrijednost varijable i, da bi uslov nakon ispisa broja 10 bio netačan tj. da bi se while petlja završila. Kako se brojevi trebaju ispisivati po redu 1, 2, 3, itd to ćemo očito i povećavati za 1. Pa će brojač biti oblika i=i+1 ili i++. #include <iostream> using namespace std; int main() { int i=1; while(i<=10) { cout<<i<<endl; i++; return 0; Primjer 30. Napisati program koji učitava prirodan broj i ispisuje mu cifre počevši od cifre najmanje mjesne vrijednost (cifre jedinica) i to svaku u novom redu. Rješenje. Trebamo unijeti jedan prirodan broj i ispisati mu cifre, svaku u novom redu, počevši od cifre jedinica. Pošto, ne znamo, koji će broj korisnik unijeti tj. da li će to biti jednocifren, dvocifren ili pak petocifren broj, koristimo while petlju. Da lakše odredimo šta će biti uslov i koje će se naredbe nalaziti u while petlji, posmatrajmo jedan konkretan broj npr Kako sada dobiti zadnju cifru od broja 629? Tako što ćemo koristiti operator modulo ostatak pri cjelobrojnom dijeljenju (%). Pa će biti 629%M=9, gdje je M, koji broj? Kako ga odrediti? Pošto je 9 ostatak, to će očito biti , sada se jasno vidi da je 620=62* = 620 * Dakle, M je broj 10. Pa će nam 629%10 dati cifru 9. Kako dobiti drugu cifru? Kada bi imali broj 62, onda bi bilo lahko. Opet bi napisali 62%10, a to je 2, i dobili bi drugu cifru. Možemo li kako od broja 629 dobiti broj 62? Imajte na umu da mi radimo s cijelim brojevima i da ćemo koristiti tip int. Podijelimo broj 629 s 10. To će dati 62,9. Kako već rekoh, mi ćemo koristiti tip int, za broj koji bude unosio korisnik, pa će računar odbaciti dio poslije zareza, pa će ostati samo 62. Sada primijenimo modulo tj. 62%10=2. Kako dobiti treću cifru? Pa na isti 58

64 način kao i drugu. Podijelimo 62 i 10. Dobićemo 6,2. Računar će odbaciti dio poslije zareza, jer radimo s cijelim brojevima i ostaje broj 6. Konačno, 6%10=6 i tako smo dobili sve tri cifre. Ako podijelimo još broj 6 s 10 dobit ćemo 6/10=0,6 tj. 0 jer će računar odbaciti dio poslije zareza. Dakle, podijelimo li s 10 još i zadnju cifru (onu koja je ostala zadnja pri prethodno opisanom načinu ispisivanja cifri broja), uvijek ćemo dobiti broj 0. Stoga će se petlja ponavljati sve dok je uslov različit od nule. Šta se je u prethodnom objašnjenju ponavljalo? tražili smo modulo 10 dijelili smo s 10 Dakle, označimo s n prirodan broj kojeg unosi korisnik tj. int n;. Naredbe koje će biti u while petlji su: cout<<n%10<<endl; n=n/10; Uslov je oblika n!=0 jer kad zadnji broj (u našem primjeru broj 6) podijelimo s 10 dobijemo 0, pa dok je god n različito od 0 (nije nula), izvršavat će se while petlja. #include <iostream> using namespace std; int main() { int n; cin>>n; while(n!=0) { cout<<n%10<<endl; n=n/10; return 0; Za unos 629 Testirati program i za jednocifren i dvocifren broj, jer se može desiti da recimo za sve brojeve daje ispravan rezultat, osim za jednocifrene. Primjer 31. Napisati program za sabiranje brojeva. Brojevi se unose s tastature. Kada korisnik unese broj 0, program se završava. Rješenje. 59

65 #include <iostream> using namespace std; int main(){ int i, zbir = 0; cout<< "Unesite broj: "; cin >> i; while(i!=0){ zbir=zbir+i; cout<<"unesite broj: "; cin>>i; cout<<"zbir je "<<zbir<<endl; return 0; Petlja do while Naredba do while se također koristi kada nam nije poznat broj ponavljanja, ali za razliku od for i while petlje ovdje se naredba izvrši bar jednom. Pošto, se kod ove petlje prvo izvrši naredba, pa se onda provjeri uslov, a kod for i while petlje se prvo provjeri uslov, pa se izvršavaju naredbe. Opći oblik do while naredbe je: do naredba; while (uslov); ZAPAMTITI: Na kraju obavezno staviti ; Načini pisanja do while naredbe: 1) do naredba; while(uslov); 2) do naredba; while(uslov); 3) do { naredba1; naredba2;... naredba n; while(uslov); 4) do { naredba1; naredba2;... naredba n; while( uslov); 60

66 Naredba break Iskakanje iz upravljačke strukture se postiže naredbom: break; Time se postiže završetak ciklusa (petlje): for, while, do while, skakanjem na prvu naredbu neposredno iza petlje. Nekad ćete doći u situaciju da želite izađi iz petlje prije nego se završi tada obično koristite naredbu break Naredba Switch Naredba switch omogućava da selektiramo kod koji će se izvršiti na osnovu nekog uslova, tj. provjerava da li izraz odgovara nekoj od konstantnih cjelobrojnih vrijednosti (ili karaktera). Opći oblik naredbe switch je: switch (izraz) { case konstanta_1: blok naredbi_1; break; case konstanta_2: blok naredbi_2; break;... case konstanta_n-1: blok naredbi_n-1; break; default: blok naredbi_n; break; U slučaju da izraz ima vrijednost konstanta_1, tada se izvršavaju blok naredbi_1, u slučaju da ima vrijednost konstanta_2 tada se izvršavaju blok naredbi_2, a u slučaju da nema nijednu naredbi_n. od ponuđenih vrijednosti tada se izvršava default odnosno blok 61

67 Ako dobivena vrijednost nije jednaka niti jednoj od navedenih konstanti, izvršit će se blok naredbi pridružen opciji default. Izvršavanje bloka naredbi prekida se naredbom break. Ako se blok naredbi u case ne završi s break, nastavlja se izvršavati blok naredbi sljedećeg case. Opcija default može se i izostaviti, ako za njom ne postoji potreba! Primjer 32. Napisati program koji učitava ocjenu i ispisuje tu ocjenu riječima. Rješenje. #include<iostream> using namespace std; int main() { int ocjena; cout<<"unesite ocjenu:"<<endl; cin>>ocjena; switch (ocjena) { case 1: cout<<"nedovoljan"<<endl; break; case 2: cout<<"dovoljan"<<endl; break; case 3: cout<<"dobar"<<endl; break; case 4: cout<<"vrlo dobar"<<endl; break; case 5: cout<<"odlican"<<endl; break; default: cout<<"nepostoji takva ocjena"<<endl; return 0; 62

68 Zadaci za samostalan rad Zadatke rješavati while petljom. Zadatak 68. Napisati program za ispis kvadrata prirodnih brojeva od 1 do 5. Izlaz: 1, 4, 9, 16, 25. Zadatak 69. Napisati program za ispis prirodnih brojeve od 5 do 20 unazad. Izlaz: 20, 19, 18,..., 7, 6, 5. Zadatak 70. Napisati program za ispis kvadratnog korijena prirodnih brojeva do 10. Izlaz: 1.00, 1.41, 1.73, 2.00,..., 3.00, Rezultat zaokružiti na dvije decimale. Zadatak 71. Napisati program za ispis prirodnih brojeva od 1 do n. Ulaz: 5. Izlaz: 1, 2, 3, 4, 5. Zadatak 72. Napisati program za ispis parnih prirodnih brojeva od 1 do n. Ulaz: 9. Izlaz: 2, 4, 6, 8. Zadatak 73. Napisati program za ispis zbira brojeva od 1 do n koji su djeljivi sa 7. Ulaz: 20. Izlaz: 21. Ulaz: 7. Izlaz: 7. Ulaz: 5. Izlaz: 0. Zadatak 74. Napisati program za brojanje brojeva djeljivih s 3, za prirodne brojeve od 1 do n. Ulaz: 7. Izlaz: 2. Zadatak 75. Napisati program koji za uneseni prirodni broj ispisuje njegovu prvu i zadnju cifru. Ulaz: 8. Izlaz: 8. Ulaz: 12. Izlaz: 1, 2. Ulaz: 456. Izlaz: 4, 6. Ulaz: Izlaz: 7, 1. Zadatak 76. Napisati program koji unosi prirodan broj i ispisuje zbir njegovih cifara. Ulaz: 2. Izlaz: 2. Ulaz: 11. Izlaz: 2. Ulaz: 125. Izlaz: 8. Ulaz: Izlaz: 21. Zadatak 77. Napisati program koji unosi prirodan broj i ispisuje proizvod njegovih cifara. Ulaz: 2. Izlaz: 2. Ulaz: 11. Izlaz: 1. Ulaz: 125. Izlaz: 10. Ulaz: Izlaz: 576. Zadatak 78. Napisati program koji unosi prirodan broj i ispisuje ga obrnuto. Ulaz: Izlaz: Zadatak 79. Napisati program koji unosi prirodan broj i provjerava da li je učitani broj palindrom. Ulaz: 121. Izlaz: DA; Ulaz: 123, Izlaz: NE. Zadatak 80. Napisati program koji unosi prirodan broj i ispisuje mu cifre riječima. Ulaz: 123. Izlaz: Jedan Dva Tri. Zadatak 81. Napisati program koji unosi dva prirodna broja i ispisuje njihov NZS. Ulaz: 12, 30. Izlaz: NZS(12,30) =

69 Zadatak 82. Napisati program koji unosi trocifren prirodan broj i ispitiva da li je uneseni broj Armstrongov (Broj je Armstrongov ako je jednak sumi svojih cifara podignutih na stepen dužine broja. U našem slučaju, broj je Armstrongov ako je jednak zbiru kubova svojih cifara). Ulaz: 371. Izlaz: DA ( = 371). Ulaz: 121. Izlaz: NE ( = 11). Zadatak 83. Napisati program koji unosi prirodan broj n i ispisuje sve Armstrongove brojeve u intervalu od 1 do n. Ulaz: Izlaz: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, NIZOVI (POLJA) Pretpostavimo da trebamo riješiti zadatak u kojem se od nas traži da unesemo npr. 100-tinu cijelih brojeva. Tada bi za svaki broj trebali po jednu varijablu. Ako bismo uzeli imena slova abecede a, b, c, itd brzo bi ih potrošili. Mogli bi pisati a1, a2, a3, itd. No, ni ovo nije prikladno rješenje, jer ne zaboravimo da treba napisati 100-inu varijabli prilikom deklaracije, pa onda i kad ih budemo unosili. Postavlja se pitanje, ima li lakšeg i jednostavnijeg načina? Ima, upotrebom nizova ili polja. Šta je to niz? Niz ili polje je konačni niz podataka istog tipa koji predstavljaju cjelinu. Primjer 33. Sljedeći brojevi predstavljalju niz: 1, 2, 3, 4, 5, 6, 7, 8, , 3, 5, -1, 3, 1, 8, 9, 7, 0 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 Svi su istog tipa tj. int odnosno cijeli brojevi. Također, niz može biti sastavljen i od znakova: a, b, c, d, e, f a1, a2, a3, a4 arif, elma, murat, omer Dakle, niz se sastoji od podataka istog tipa. Podaci u nizu se nazivaju elementi (članovi) niza. Naprimjer u nizu a, b, c, d, e, f elementi (članovi) niza su slova i to slovo a je jedan element, drugi element je slovo b itd. Elementi niza se identifikuju pomoću rednog broja unutar niza tj. položaj (mjesto) u nizu je određeno pomoću rednog broja. Ti redni brojevi nazivaju se indeksi elementa niza. Prvi element niza u C++ ima obavezno indeks 0, drugi 1, treći 2, itd. 64

70 Tako npr. u nizu a, b, c, d, e, f slovo a se nalazi na mjestu 0 odnosno ima indeks 0, slovo b indeks 1, c indeks 2, d indeks 3, e indeks 4 i f indeks 5. Nizovi mogu biti: jednodimenzionalni višedimenzionalni. Mi ćemo u našoj skripti raditi samo jednodimenzionalne nizove. To su nizovi navedeni u prethodnom primjeru Jednodimenzionalni nizovi Sve prethodno što smo rekli vrijedi za jednodimenzionalni niz. Kada kažemo niz, u daljem tekstu mislimo na jednodimenzionalni niz, da ne bi stalno pisali riječ jednodimenzionalni. U C++ niz definiramo na sljedeći način: tip_elementa ime_niza [dužina niza]; Prvo navodimo tip elemenata niza. Pišemo int, ako će elementi biti cijeli brojevi, double ako će elementi biti realni brojevi, char ako će elementi biti znakovi, itd, isto kao i za varijable. Drugo pišemo ime niza. Kao i kod varijabli, ime vi dajte i sami birate naziv. Obavezno idu srednje zagrade [], koje se dobiju pritiskom tipki Alt Gr + F i Alt Gr + G. Unutar srednjih zagrada se navodi broj, koji označava dužinu niza tj. govori koliko će niz imati elemenata. Primjer 34. int dan[5]; Na ovaj način smo definisali (deklarirali) niz čije ime je dan, a koji ima pet elemenata tipa int. Imati na umu da indeksi (mjesta) elemenata niza idu od 0 tj. indeksi su 0, 1, 2, 3, 4. double A[10]; Na ovaj način smo definisali niz čije je ime A i koji ima deset elemenata tipa double. char slova[30]; 65

71 Na ovaj način smo definisali niz čije je ime slova, a ima 30 elemenata tipa char. Elementima (članovima) deklariranog niza mogu se pridružiti vrijednosti. Pridruživanje vrijednosti elementu niza: ime_niza [indeks elementa] = vrijednost; Primjer 35. niz [3] = 1; Na ovaj način smo elementu niza čiji je indeks 3 (pozicija ili mjesto u nizu 3) pridružili vrijednost 1. Možemo odmah prilikom deklaracije izvršiti inicijalizaciju niza. Vrijednosti se navode unutar para vitičastih zagrada, odvojene zarezom. Primjer 36. int a[5] = {9, 5, 4, -1, 1; Sada smo svakom elementu niza pridružili određenu vrijednost. Kako dobiti npr. broj 4 iz niza? Dobićemo ga tako što napišemo ime niza i u srednjim zagradama indeks (poziciju, mjesto) gdje se broj 4 nalazi tj.: a[2] Pogledajmo kako to u tabeli izgleda za svaki element prethodnog niza: a[0] a[1] a[2] a[3] a[4] Elemente niza najčešće unosimo for petljom ili while petljom. 66

72 Oprez! U radu s nizovima treba biti oprezan, jer jezik C++ ne provjerava granice niza prilikom pristupa elementima (članovima) niza. Ako se navede prevelik ili negativan indeks, prevoditelj neće javiti pogrešku i pri izvršavanju programa pristupit će se memorijskoj adresi koja nije u području rezerviranom za niz. To će prouzročiti neispravan rad programa. Ako se izdvaja (dohvaća) element (član) s nedozvoljenim indeksom, rezultat je slučajni broj. Ako se vrijednost pridružuje članu s nedozvoljenim indeksom, vrijednost će se pohraniti u memoriju na mjesto predviđeno za druge sadržaje što će vjerojatno prouzročiti pogrešan rad programa. Primjer 37. Brojeve 1, 5, -1, 4, 5 spremiti u niz broj, te ih ispisati na ekran svaki u novom redu. Rješenje. #include <iostream> using namespace std; int main() { int a[5]={1, 5, -1, 4, 5; cout<<a[0]<<endl; cout<<a[1]<<endl; cout<<a[2]<<endl; cout<<a[3]<<endl; cout<<a[4]<<endl; return 0; Ovakav način ispisa elemenata niza se koristi samo ako elemenata niza ima malo. Većinom se koristi for petlja. Jer kako vidimo iz rješenja zadatka dio cout<<a[]<<endl; se ponavlja dok se samo broj u srednjoj zagradi mijenja. Prethodni primjer s for petljom: #include <iostream> using namespace std; int main() { int i, a[5]={1, 5, -1, 4, 5; for(i=0;i<5;i++) cout<<a[i]<<endl; return 0; Obratiti pažnju na početnu vrijednost, da je i=0 (element s indeksom 0, prvi u nizu), uslov i<5 mada se je moglo napisati i<=4, ali je prvi način bolji. 67

73 Primjer 38. Napisati program koji unosi 10 cijelih brojeva, i ispisuje ih obrnutim redoslijedom u jednom redu s praznim razmakom. Rješenje. Deklariramo niz tipa int, imena a, dužine 10. Koristimo for petlju za unos brojeva. Drugu for petlju koristimo za ispis brojeva, s tim da je onda početna vrijednost najveći indeks. #include <iostream> using namespace std; int main() { int i, a[10]; for(i=0;i<10;i++) cin>>a[i]; for(i=9;i>=0;i--) cout<<a[i]<<" "; return 0; NAPOMENA: Sasvim je svejedno da li ćete prvo napisati sve brojeve koje unosite s razmakom obavezno, pa pritisnuti tipku Enter ili ćete napisati prvi broj, pa Enter, drugi broj pa Enter, itd. Primjer 39. Napisati program koji će učitati elemente (članove) niza i sortirati ih po rastućem redoslijedu. (5 članova niza) Rješenje. #include <iostream> using namespace std; int main() { int i,j,m; int a[5]; for(i=0; i<5; i++) cin>>a[i]; for(i=0; i<4; i++) for(j=i+1; j<5; j++) if(a[i]>a[j]) { m=a[i]; a[i]=a[j]; a[j]=m; for(i=0; i<5; i++) cout<<a[i]<<" "; return 0; 68

74 Razmotrimo rješenje ovog zadatka, da bi shvatili kako sortiranje funkcionira. Kao što vidite potrebna nam je jedna petlja za unos i jedna za ispis niza. Za rješenje traženog problema trebaju nam dvije for petlje i to jedna u drugoj. Pojasnimo to na primjeru niza 2, 1, 3, 0, 4. Prva for petlja uzme prvi element 2 i pomoću druge petlje for(i=0; i<4; i++) for(j=i+1; j<5; j++) uspoređuje ga s ostalim elementima niza. Tako druga petlja prvo uporedi 2 i naredni element (j = i + 1), a to je 1. To radi dio if(a[i]>a[j]) Ako je to tačno, što u našem slučaju jeste, jer je 2>1, onda ovaj dio u if naredbi m=a[i]; a[i]=a[j]; a[j]=m; napravi zamjenu. Broj dva stavi u varijablu m, a na njegovo mjesto stavi broj 1. Zatim, na mjesto broja 1 stavi broj 2. Varijabla m nam treba da se ne bi broj 2 obrisao kad se na njegovo mjesto stavlja broj 1. S varijablom m mi broj 2 privremeno premjestimo s tog mjesta da bi ga sačuvali. Nakon toga niz izgleda ovako 1, 2, 3, 0, 4. Druga petlja, ide dalje pa uzima sljedeći broj 3 i sad uspoređuje s a[i], to je a[0], a to je sad 1. Pošto 1>3, nije tačno, ide na sljedeći broj, a to je 0. Kako je 1>0, tačno, opet na isti način pravi zamjenu, pa niz izgleda ovako 0, 2, 3, 1, 4. Sad upoređuje a[0]tj. 0 sa 4. Pošto 0>4 nije tačno, ništa se neće desiti. Prva for petlja je imala vrijednost i=0 i ona se je izvršila samo jednom, a druga se je izvršila do kraja. Rezultat toga je da na prvom mjestu u nizu imamo najmanji broj. Sada se prva pomjera za 1 tj i postaje 1, pa a[i] tj. a[1]uzima drugo mjesto i poredi ga sa ostalim elementima u nizu. Ponavlja se čitav prethodni postupak. Kad se izvrši druga petlja, na drugom će mjestu biti najmanji broj od preostalih elemenata niza. I tako će niz biti sortiran. U prvoj petlji uslov je i<4, jer onaj koji zadnji ostane je i najveći, ali ne bi pogriješili kad bi stavili i<5, samo bi računar imao malo više posla Zadaci za samostalan rad Zadatak 84. Napisati program koji će učitati niz od 7 cijelih brojeva i sortirati ih od najvećeg ka najmanjem tj. sortirati ih po opadajućem redoslijedu. Ulaz: 2, -1, 3, 1, 5, 0, 7. Izlaz: 7, 5, 3, 2, 1, 0,

75 Zadatak 85. Napisati program koji će učitati niz od 10 cijelih brojeva i ispisati koliko ima učitanih negativnih brojeva. Ulaz: 5, -2, 0, -8, 1, 3, -3, -5, 7, 12. Izlaz: 4 Zadatak 86. Napisati program koji će učitati niz od 10 prirodnih brojeva i ispisati njihovu aritmetičku sredinu. Ulaz: 2, 3, 4, 1, 5, 6, 10, 8, 9, 13. Izlaz: Zadatak 87. Napisati program koji će učitati niz od 10 cijelih brojeva i ispitati da li zbir tih brojeva djeljiv s 11. Ulaz: 2, 3, 4, 1, 5, 6, 10, 8, 9, 7. Izlaz: DA. Ulaz: 2, 3, 4, 1, 5, 6, 10, 8, 9, 13. Izlaz: NE. 6. STRING Niz znakova, string, zauzima u memoriji jedan ili više bajtova koji su kontinuirano smješteni. String u C++ možemo posmatrati kao niz (polje) tipa char. Oznaka kraja stringa, odnosno posljednji znak svakog stringa je nul znak \0. Prema tome, za string od n znakova potrebno je n+1 memorijsko mjesto. U niz dužine n znakova možemo pohraniti string maksimalne dužine od n-1 znaka. Primjer 40. Neka je s="jezik C++". Prikaz stringa s u memoriji bit će: J e z i k C + + \0 s[0] s[1] s[2] s[3] s[4] s[5] s[6] s[7] s[8] s[9] Pojedinom znaku stringa s moguće je pristupiti i navođenjem njegove pozicije indeksa u stringu. Tako je npr. s[4]=k Deklaracija stringa String (niz znakova) deklariramo isto kao i niz s tim da je obavezno tipa char: char ime [maks_broj_znakova]; ili char ime[] = inicijalan_sadržaj_stringa; Primjer 41. char A[80]; ili char tekst[]="jezik C++" 70

76 NAPOMENA: Niz znakova je tipa char, ime mu dajemo po želji, a u srednjim zagradama navodimo koliko ćemo znakova unijeti s tim da moramo voditi računa da na zadnjem mjestu uvijek dođe nul znak \0 kao oznaka kraja. Računar stavlja nul znak \0, ne vi. Primjer 42. Napišimo program koji će unositi jednu riječ i ispisivati je, te ispisati prvo slovo je riječi. Rješenje. #include <iostream> using namespace std; int main() { char rijec[20]; cin>>rijec; cout<<rijec<<endl; cout<<rijec[0]<<endl; return 0; Za unos dan Za unos dan je lijep ZAKLJUČAK: Naredbom cin možemo unijeti samo jednu riječ tj. znakove do prvog razmaka Čitanje i ispisivanje znakova Sljedeće funkcije koje ćemo navesti su iz programskog jezika C, no možemo ih koristiti i u C++, obzirom da je njihova upotreba za početnika jednostavnija. Moramo uključiti biblioteku #include<cstdio> getchar() putchar(c) gets(s) puts(s) Ova funkcija čita jedan znak, uključujući i bijele znakove, sa glavnog ulaza(tastature). Vrijednost funkcije je kod pročitanog znaka ili simbolička konstanta EOF (end of line) ukoliko je pročitan signal za kraj datoteke kao i u slučaju greške tokom čitanja. Rezultat je tipa int. Ova funkcija ispisuje znak c (jedan znak) na glavni izlaz (ekran). Tip argumenta je int. Ova funkcija učitava jedan red teksta (do znaka za prelazak u novi red \n) sa glavnog ulaza (tastature) i smješta ga u s (tipa char[], odnosno char*). Umjesto znaka \n u niz s stavlja prazan znak \0. Ova funkcija ispisuje sadržaj niza s (tipa char[], odnosno char*)do završnog znaka \0 kao red teksta na glavnom izlazu, dodajući znak za prelazak u novi red \n. Ako tekst sadrži više znakova \n, rezultat će biti više ispisanih redova. Vrijednost funkcije je tipa int t, nenegativan broj. 71

77 Primjer 43. Napišimo program koji će učitati jedan red teksta (jednu rečenicu ili riječ) i ispisati ga na ekran monitora. Kao i u prethodnom primjeru ispisat ćemo prvo slovo. Rješenje. #include <iostream> #include <cstdio> using namespace std; int main() { char rijec[20]; gets(rijec); putchar(rijec[0]); cout<<endl; puts(rijec); return 0; Za unos dan je lijep 6.3. Ispitivanje znakova Funkcije za ispitivanje znakova određuju u koju kategoriju znakova (slovo, cifra, itd) spada dati znak. Vrijednost svih sljedećih funkcija je tipa logical, a tip argumenta je int (vrijednost treba da je kod nekog znaka). Za logičku istinu daju neku nenultu vrijednost, a ne obavezno vrijednost 1, kao što daju relacijski i logički operatori. Da biste koristili sljedeće funkcije morate napisati u zaglavlju #include<cctype> isalnum(c) Da li je c slovo ili broj (cifra)? isalpha(c) Da li je c slovo? islower(c) Da li je c malo slovo? isupper(c) Da li je c veliko slovo? isdigit(c) Da li je c cifra? isspace(c) Da li je c bijeli znak? 72

78 Pretvaranje velikih slova u mala i obratno tolower(c) Ako je c veliko slovo, vijednost funkcije je kod odgovarajućeg malog slova. toupper(c) Ako je c malo slovo, vijednost funkcije je kod odgovarajućeg velikog slova. Obavezno naučiti one koje su označene sivom podlogom. Sada ćemo navesti primjer za svaku funkciju kako se upotrebljava. Primjer 44. Napisaćemo program koji broji koliko je brojeva u rečenici.. Rješenje. #include <iostream> #include <cstring> using namespace std; int main() { char rijec[]="dan 15, mjesec 6, godina 2014"; int i=0; while(isalnum(rijec[i])) i++; cout<<"brojeva ima ukupno "<<i<<endl; return 0; Primjer 45. Napisaćemo program koji ispitiva da li je neki znak slovo ili nije. Rješenje. #include <iostream> #include <cstring> using namespace std; int main() { char rijec[]="c++"; int i=0; while(rijec[i]){ if(isalpha(rijec[i])) cout<<"znak "<<rijec[i]<<" je slovo"<<endl; else cout<<"znak "<<rijec[i]<<" nije slovo"<<endl; i++; return 0; 73

79 ZAKLJUČAK: U programu dio while(rijec[i]) će se završiti kada rijec[i] postane netačno, a to će se desiti poslije drugog znaka +, jer smo rekli da je zadnji znak nul znak \0 (NULL) u svakom nizu, a što znači netačno. Primjer 46. Napisaćemo program koji ispitiva koliko u nizu znakova ima malih, a koliko velikih slova. Rješenje. #include <iostream> #include <cstdio> #include <cstring> using namespace std; int main() { char rijec[]="kamenica"; int i=0, m=0, v=0; while(rijec[i]) { if(islower(rijec[i])) m++; if(isupper(rijec[i])) v++; i++; cout<<"malih slova je "<<m<<endl; cout<<"velikih slova je "<<v<<endl; return 0; Primjer 47. Napisaćemo program koji ispitiva koliko u nizu znakova ima cifara. Rješenje. #include <iostream> #include <cstring> using namespace std; int main() { char rijec[]="2014 godina"; int i=0, c=0; while(rijec[i]) { if(isdigit(rijec[i])) C++; i++; cout<<"cifara ima "<<c<<endl; return 0; 74

80 Primjer 48. Napisaćemo program koji ispitiva koliko u nizu znakova ima bijelih znakova tj. koliko ima razmaka. Rješenje. #include <iostream> #include <cstring> using namespace std; int main() { char rijec[]="to je to"; int i=0, bz=0; while(rijec[i]) { if(isspace(rijec[i])) bz++; i++; cout<<"bijelih znakova ima "<<bz<<endl; return 0; Primjer 49. Napisaćemo program koji pretvara mala u velika i velika u mala slova. Rješenje. #include <iostream> #include <cctype> #include<cstdio> using namespace std; int main() { char a[]="grad Bihac"; char b[]="sarajevo"; int i=0; while(a[i]!=null) { a[i]=toupper(a[i]); i++; i=0; while(b[i]!=null) { b[i]=tolower(b[i]); i++; puts(a); puts(b); return 0; 75

81 NAPOMENA: Funkcije toupper i tolower uzimaju samo po jedan znak, zbog toga moramo koristiti neku od petlji, te to slovo kojeg one vrate mora biti nekom pridruženo (spremljeno) Rad sa stringom (nizom znakova) U prethodnom dijelu smo upoznali funkcije koje uzimaju samo jedan znak (karakter), a sada ćemo upoznati funkcije - naredbe koje uzimaju string tj. niz znakova. U jeziku C/C++ ne postoji nijedan operator za obradu stringa. Zato, za sve uobičajene operacije postoji odgovarajuća bibliotečka funkcija. Da bi koristili sljedeće funkcije morate uključiti biblioteku #include<cstring> Kod svih sljedećih funkcija argumenti t, u, i s su tipa string, argument n tipa int, a argument c tipa int (treba da sadrži kod nekog znaka). Nijedna od ovih funkcija ne mijenja sadržaj argumenta s i u, a sve mijenjaju sadržaj argumenta t. Ovdje je navedeno dosta funkcija, obavezno naučiti one koje su označene sivom podlogom. strcpy(t,s) Ova funkcija kopira string s u string t, kopirajući i sve znakove uključujući i \0. strncpy(t,s,n) Ova funkcija kopira najviše n znakova iz stringa s u string t. Ako string s nema znakova, rezultat se dopunjuje znakovima \0 do dužine n. strcat(t,s) Ova funkcija dopisuje string s na kraj stringa t. strchar(u,c) Traži prvu pojavu znaka u stringu strrev(s) Okreće string (ovi ivo) strlen(s) Vrijednost funkcije je broj znakova (tipa int) u znakovnom nizu s. Završni znak \0 se ne ubraja. Broji koliko riječ ili tekst ima slova tj. znakova. 76

82 strupr(s) Sva mala slova engleske abacede, pretvara u velika, a ostale znakve ne mijenja strlwr(s) Sva velika slova engleske abacede, pretvara u mala, a ostale znakve ne mijenja Primjer 50. Napisati program koji unosi niz znakova (string) i ispisuje ga u obrnutom redosljedu. Rješenje. #include <iostream> #include<cstdio> #include<cstring> using namespace std; int main() { char a[256]; gets(a); puts(strrev(a)); return 0; Primjer 51. Napisati program koji unosi niz znakova (string) i ispisuje kolika je dužina niza tj. koliko je unijeto znakova i razmaka zajedno. Rješenje. #include <iostream> #include<cstdio> #include<cstring> using namespace std; int main() { char a[256]; int b; gets(a); b=strlen(a); cout<<b<<endl; return 0; 77

83 NAPOMENA: Kada koristimo funkciju strlen, onda moramo vrijednost koju ona vrati (a to je broj), pridružiti (spremiti) nekoj varijabli tipa int. Ne možemo je koristiti, kao što je u prethodnom primjeru upotrebljena funkcija strrev. Primjer 52. Napisaćemo program koji pretvara mala u velika i velika u mala slova. Rješenje. Ovaj primjer smo već imali, ali tad smo morali pretvarati znak po znak. Sada je to mnogo lakše i jednostavnije. #include <iostream> #include<cstdio> #include<cstring> using namespace std; int main() { char a[]="grad Bihac"; char b[]="sarajevo"; puts(strupr(a)); puts(strlwr(b)); return 0; Primjer 53. Napisati program koji će učitati niz znakova (riječ ili rečenicu) maksimalne dužine 256 znakova, te ispisati koliko se puta u rečenici pojavljuje samoglasnik a (brojati i velika i mala slova). Ako u datom nizu nema samoglasnika a, onda ispisati poruku "Nema samoglasnika A". Rješenje. Postavljeni zadatak ćemo riješiti na dva načina. U prvom načinu ćemo koristiti while petlju, obzirom da ne znamo koliko će znakova korisnik unijeti, ali znamo da je sigurno zadnji znak u nizu nul znak \0 (tj. NULL). Pošto moramo za svaki znak provjeriti da li je jednak a ili A, to će biti i=0, varijablu brsamog ćemo koristiti da brojimo samoglasnik A, i odmah je postavljamo na vrijednost 0, jer se može desiti da nema samoglasnika A. Kad se petlja završi, ona će izbrojati sva pojavljivanja a ili A, a zatim izvan petlje provjeravamo da li je varijabla brsamog promijenila svoju vrijednost. Ako nije, tj. ako je ostala nula, onda nema samoglasnika A, a ako je neka druga vrijednost tj. broj, onda ih ima. 78

84 #include <iostream> #include<cstdio> using namespace std; int main() { char slova[256]; int i=0, brsamog=0; gets(slova); while(slova[i]!=null){ if(slova[i]=='a' slova[i]=='a') brsamog++; i++; if(brsamog==0) cout<<"nema samoglasnika A"<<endl; else cout<<"samoglasnika A ima "<<brsamog<<endl; return 0; U drugom načinu ćemo umjesto while petlje koristiti for petlju. Kod for petlje broj ponavljanja je unaprijed poznat, zbog toga uvodimo varijablu n, i pomoću funkcije strlen u nju spremamo (pridruživamo) broj učitanih znakova (ako ima razmaka i oni se broje). Ostalo ostaje isto. Da li smo umjesto uslova i<n u for petlji, mogli staviti isti uslov kao u while petlji? Da, mogli smo. #include <iostream> #include<cstdio> #include<cstring> using namespace std; int main() { char slova[256]; int i, n, brsamog=0; gets(slova); n=strlen(slova); for(i=0;i<n;i++) if(slova[i]=='a' slova[i]=='a') brsamog++; if(brsamog==0) cout<<"nema samoglasnika A"<<endl; else cout<<"samoglasnika A ima "<<brsamog<<endl; return 0; Primjer 54. Napisati program koji će učitati riječ. Ako je učitana riječ palindrom, ispisaće poruka "DA", ako nije poruku "NE". Palindrom je igra riječi u kojoj se čitanjem jedne riječi ili čitave rečenice obrnutim redom dobiva isto značenje kao i pravilnim čitanjem, npr. oko, Ana, kuk. 79

85 Rješenje. Da bismo riješili ovaj zadatak moramo definisati dva znakovna niza. Jedan koji će se zvati slova i drugi kopijaslova. Nakon što učitamo riječ u niz slova, koristimo funkciju strlwr da bi sve znakove tj. slova u nizu pretvorili u mala slova, jer se može desiti da korisnik unese npr. ime Ana. Zatim koristimo funkciju strcpy i kopiramo sve iz niza slova u niz kopijaslova. Potom, okrećemo niz kopijaslova tj. slova u njemu, u obrnutom redoslijedu (npr. ivo postaje ovi) naredbom strrev. Sada pomoću while petlje (može i for petljom, prethodni primjer) ispitivamo da li se prvo slovo u nizu slova podudara s prvim slovom u nizu kopijaslova, pa drugo, i tako redom. Ako se neka slova ne podudaraju, tada varijabla k promijeni svoju vrijednost s broja 0, a što će značiti da unesena riječ nije palindrom. Ako pak varijabla k ne promijeni svoju vrijednost tj. ostane broj 0, tada će to značiti da je učitana riječ palindrom. #include <iostream> #include<cstdio> #include<cstring> using namespace std; int main() { char slova[256]; char kopijaslova[256]; int i=0, k=0; gets(slova); strlwr(slova); strcpy(kopijaslova,slova); strrev(kopijaslova); while(slova[i]!=null){ if(slova[i]!=kopijaslova[i]) k++; i++; if(k==0) cout<<"da"<<endl; else cout<<"ne"<<endl; return 0; 80

86 6.5. Zadaci za samostalan rad Zadatak 88. Napisati program koji će zadani string ZDRAVO SVIJETE ispisati malim slovima. Izlaz: zdravo svijete Zadatak 89. Napisati program koji će učitati string (maksimalno 256 znakova), te ispisati dužinu stringa (koliko ste znakova unijeli). Ulaz: Kamion. Izlaz: 6. Zadatak 90. Napisati program koji će prebrojiti koliko se u učitanom stringu pojavilo suglasnika R i S. (Brojati mala i velika slova). Ulaz: Ris. Izlaz: 2. Ulaz: Med. Izlaz: Nema ih. Zadatak 91. Napisati program koji će prebrojiti koliko riječi ima učitani string. Ulaz: Danas je lijep dan. Izlaz: 4. Zadatak 92. Napisati program koji će učitanu rečenicu ispisati je s desna na lijevo. Ulaz: Izlazak sunca.. Izlaz: acnus kazalzi. Zadatak 93. Napisati program koji će prebrojati broj velikih slova u učitanom stringu. Ulaz: DeLL. Izlaz: 3. Ulaz: dan. Izlaz: Nema ih. 81

87 7. ZADACI S OPĆINSKIH TAKMIČENJA 7.1. Zadaci 2010 OPĆINSKO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA zadatak DIJELI Za prirodan broj # kažemo da je djeljiv s prirodnim brojem $ ako postoji prirodan broj / takav da je # = / $. Treba napisati program koji će za dva prirodna broja učitana s tastature ispitati da li je prvi djeljiv s drugim. Ukoliko jeste, treba na ekranu ispisati njihov količnik, a ukoliko nije treba ispisati poruku da nije. Program snimiti pod imenom DIJELI. broj. Ulazni podaci Sa tastature u prvom redu učitavamo prvi prirodan broj, a u drugom drugi prirodan Izlazni podaci Na ekranu se u slučaju da je prvi broj djeljiv s drugim ispisuje njihov količnik, a u slučaju da nije djeljiv, ispisuje se poruka kao u navedenom primjeru Primjeri nije djeljivo s nije djeljivo s 5 82

88 2. zadatak SLOVA Treba napisati program koji će učitati riječ s tastature i ispisati tu riječ bez samoglasnika.. Program snimiti pod imenom SLOVA. Ulazni podaci Sa tastature u jednom redu učitavamo riječ napisanu velikim slovima. Izlazni podaci Na ekranu se velikim slovima ispisuje učitana riječ ali bez samoglasnika. Ukoliko je učitana riječ bila sastavljena samo od samoglasnika, na ekranu treba ispisati riječ BOSNA. INFORMATIKA NFRMTK Primjeri BRK BRK EEOA BOSNA 83

89 3. zadatak TROUGAO Treba napisati program koji će za tri prirodna broja učitana sa tastature ispitati da li oni predstavljaju stranice jednakokrakog trougla. Program snimiti pod imenom TROUGAO. Ulazni podaci Sa tastature u tri reda učitavamo tri prirodna broja. trougao. Izlazni podaci Na ekranu se ispisuje poruka da li je učitani trougao jednakokraki ili nije, ili uopće nije Primjeri Tastatura (ulaz) Tastatura (ulaz) Tastatura (ulaz) Tastatura (ulaz) Tastatura (ulaz) Jeste jednakokraki Nije jednakokraki Jeste jednakokraki Nije jednakokraki Nije trougao 84

90 7.2. Zadaci 2011 OPĆINSKO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA April zadatak RECENICA Treba napisati program koji će za rečenicu učitanu uz pomoć tastature na ekranu ispisati da li je izjavna, upitna ili uzvična. Program snimiti pod imenom RECENICA. Ulazni podaci Sa tastature u jednom redu učitavamo rečenicu sa odgovarajućim znakom interpunkcije na kraju (. Ili? ili!). Izlazni podaci Na ekranu se ispisuje jedna od tri moguće poruke: "Recenica je izjavna." ili "Recenica je upitna." ili "Recenica je uzvicna." Kako si? Recenica je upitna. Primjeri Danas je utorak. Recenica je izjavna. Pazi, auto! Recenica je uzvicna. 85

91 2. zadatak BROJEVI Treba napisati program koji će učitati dva broja s tastature, pa na ekranu prikazati veći. Ako se unesu dva ista broja, na ekranu se treba pojaviti poruka "Brojevi su jednaki." Program snimiti pod imenom BROJEVI. Ulazni podaci Sa tastature u prvom redu učitavamo prvi broj, a u drugom redu drugi broj. Izlazni podaci Na ekranu se ispisuje veći broj. U slučaju da su jednaki, na ekranu se ispisuje poruka "Brojevi su jednaki." 1 5 Broj 5 je veci. Primjeri 8 3 Broj 8 je veci. 7 7 Brojevi su jednaki. 86

92 3. zadatak KVADRAT Treba napisati program koji će s tastature učitati stranicu kvadrata (u centimetrima), izračunati njegovo obim i površinu, te rezultate prikazati na ekranu. Program snimiti pod imenom KVADRAT. Ulazni podaci Sa tastature u jednom redu učitavamo broj koji predstavlja stranicu kvadrata. Izlazni podaci Na ekranu se ispisuje obim i površina kvadrata. 5 Obim je 20. Povrsina je 25. Primjeri 2 Obim je 8. Povrsina je 4. 7 Obim je 28. Povrsina je

93 7.3. Zadaci 2012 OPĆINSKO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA zadatak KOCKA Vrši se popločavanje puta određene dužine (D) i širine (S) sa dvije vrste betonskih kocki. Dužine ivica kocki su: jedne vrste kocki K1, a druge vrste kocki K2. Napisati program koji će ispisati broj kocki potrebnih za popločavanje puta, uz poštovanje određenih pravila. Naime, kod popločavanja puta kockama ne smije biti praznina niti viška kocki, a kocke se uklapaju na način da se koriste one kojih ide manje. Ukoliko se niti jednom vrstom kocki ne može popločati put, program treba da ispiše poruku "NE MOŽE". Vrijednosti D, S, K1 i K2 su pozitivne vrijednosti veće od nule. Program snimiti pod imenom KOCKA. Ulazni podaci Sa tastature se unose ulazni podaci D, S, K1 i K2, gdje su D i S dužina i širina puta, a K1 ivica jedne vrste kocki, a K2 ivica druge vrste kocki. Izlazni podaci Na ekranu se ispisuje broj kocki koliko je potrebno za popločavanje ili poruka "NE MOŽE" u slučaju da kocki ima viška ili manjka Primjeri NE MOŽE 88

94 2. zadatak PRESTUPNA GODINA Prestupne godine su sve djeljive sa 4, ako nisu djeljive sa 100, kojima se dodaju one koje su djeljive sa 400. Napišite program koji na osnovu unešene godine računa da li je godina prestupna. Ako jeste program će napisati "GODINA xxxx JE PRESTUPNA" a ako nije ispisaće "GODINA xxxx NIJE PRESTUPNA". xxxx označava godinu koja je unešena na ulazu. Program snimiti pod imenom PRESTUPNA_GODINA. Ulazni podaci Sa tastature se unosi određena godina npr i program provjerava da li je godina prestupna. Izlazni podaci Na ekranu se u slučaju da je godina prestupna ispisuje tekst "GODINA xxxx JE PRESTUPNA" a ako nije ispisaće se "GODINA xxxx NIJE PRESTUPNA", gdje xxxx varijabla gdine koju smo unijeli za prvovjeru-kao u navedenom primjeru GODINA 2012 JE PRESTUPNA Primjeri 2000 GODINA 2000 JE PRESTUPNA 1970 GODINA 1970 NIJE PRESTUPNA 89

95 3. zadatak KVADRATNI KORIJEN Napisati program koji na osnovu unesenog broja X računa kvadratni korijen brojeva X, X+1, X+2 i X+3 i ispisuje ih na ekran. Broj X je pozitivan broj. Program snimiti pod imenom KVADRATNI_KORIJEN. Ulazni podaci Sa tastature učitavamo prirodan broj X. Izlazni podaci Na ekranu se ispisuje broj X i njegov kvadratni korijen, zatim u novom redu X+1 i njegov kvadratni korijen, ispod njega X+2 i njegov kvadratni korijen i na kraju u novom redu X+3 i njegov kvadratni korijen kao u navedenom primjeru. Primjeri 5 BROJ 5 KVADRATNI KORIJEN 2.23 BROJ 6 KVADRATNI KORIJEN 2.44 BROJ 7 KVADRATNI KORIJEN 2.64 BROJ 8 KVADRATNI KORIJEN BROJ 9 KVADRATNI KORIJEN 3 BROJ 10 KVADRATNI KORIJEN 3.16 BROJ 11 KVADRATNI KORIJEN 3.31 BROJ 12 KVADRATNI KORIJEN BROJ 25 KVADRATNI KORIJEN 5 BROJ 6 KVADRATNI KORIJEN 5.09 BROJ 7 KVADRATNI KORIJEN 5.19 BROJ 8 KVADRATNI KORIJEN

96 7.4. Zadaci 2013 OPĆINSKO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA zadatak BINARNI Tradicionalni brojni sistem, koji se izučava u školi i koji se koristi u svakodnevnom životu se naziva dekadni brojni sistem. To je sistem čija je baza broj 10, a svaki broj u tom sistemu se zapisuje pomoću 10 cifara: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Ako imamo broj u dekadnom brojnom sistemu, to znači da je = Slično dekadnom brojnom sistemu, postoje i drugi brojni sistemi, od kojih je najpoznatiji binarni brojni sistem. To je brojni sistem kojem je baza broj 2 a u kojem se brojevi zapisuju pomoću cifara 0 i 1. Treba napisati program koji s tastature učitava dva prirodna broja B i N, za koje vrijedi 2 2 9, , te na ekran ispsuje broj N zapisan u brojnom sistemu s bazom B. Program snimiti pod imenom BINARNI. Ulazni podaci Sa tastature se unose prirodni brojevi B i N Izlazni podaci Na ekranu se ispisuje broj N zapisan u brojnom sistemu s bazom B Primjeri

97 2. zadatak TROUGAO Tri prirodna broja predstavljaju dužine stranica trougla ako je zbir bilo koja dva veći od trećeg. Treba napisati program koji će s tastature učitati 3 prirodna broja A, B i C i na ekranu (na način kako je prikazano u primjerima) ispisati poruke o tome da li su učitani brojevi predstavljaju stranice jednakokrakog, jednakostraničnog ili pravouglog trougla. Ako tri učitana broja ne predstavljaju dužine stranica trougla treba ispisati odgovarajuću poruku (kao u primjeru). Program snimiti pod imenom TROUGAO. Ulazni podaci Sa tastature se unose prirodni brojevi A, B i C. Izlazni podaci Na ekranu se, u slučaju da učitani brojevi ne predstavljaju dužine stranica trougla. Ispisuje poruka "NIJE TORUGAO", dok se u slučaju da učitani brojevi predstavljaju stranice trougla ispisuje jedna od sljedeće četiri poruke: "JEDNAKOKARKI TROUGAO" (ako je riječ o jednakokrakom trouglu), "JEDNAKOSTRANICNI" (ako je riječ o jednakostraničnom trouglu), "PRAVOUGLI" (ako je riječ o pravouglom trouglu) i "TROUGAO" ako nije među nabrojanim slučajevima. Poruke se ispisuju na način kako je prikazano u primjerima NIJE TROUGAO Primjeri PRAVOUGLI TROUGAO 92

98 3. zadatak SAMOGLASNIK S tastature se učitava jedna riječ (niz velikih i malih slova). Na ekranu treba ispisati broj samoglasnika u učitanoj riječi i riječ u kojoj su u učitanoj riječi umjesto samoglasnika koji su napisani malim slovom ispisana slova X, a umjesto samoglasnika koji su napisani velikim slovom ispisana slova x. Program snimiti pod imenom SAMOGLASNIK. Ulazni podaci Sa tastature se unosi riječ (niz znakova koji ne mora predstavljati riječ koja ima smisla). Izlazni podaci Na ekranu se u prvi red ispisuje broj samoglasnika u učitanoj riječi, a u drugom redu učitana riječ promijenjena na opisan način. BoSAnsKa 3 BXSxnsKX Primjeri edfgueakxwaa 6 XdFGxXXkXWxX QtZxRVy 0 QtZxRVy 93

99 7.5. Zadaci 2014 OPĆINSKO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA zadatak BRAZIL Dječak Nermin je učenik prvog razreda devetogodišnje škole i skuplja sličice za SP2014 u Brazilu. Mama i tata su mu rekli da će mu davati novac za sličice ako on zna izračunati koliko mu je novca potrebno. Međutim, matematika mu je problem jer još nisu učili množenje a ni sabiranje brojeva većih od 10. Nermin ima računar ali ne zna programirati. Zbog toga mu je potrebna tvoja pomoć. Treba napisati program koji će za uneseni broj paketića sličica i cijenu jednog paketića izračunati i ispisati na ekran koliko je novaca Nerminu potrebno da obavi tu kupovinu. Program snimiti pod imenom BRAZIL. Ulazni podaci Sa tastature se u jednom redu učitava prirodan broj 3 ( koji predstavlja broj paketića sličica koje Nermin želi kupiti, a u drugom redu se učitava prirodan broj K 1 K 100 koji predstavlja cijenu jednog paketića sličica. Izlazni podaci Na ekranu je potrebno samo ispisati prirodan broj L koji predstavlja ukupan iznos novca koji je potreban Nerminu da obavi kupovinu. Primjeri Objašnjenje Kako je cijena jednog paketića sličica 7KM, to je Nerminu za kupovinu 2 paketića potrebno 14KM Objašnjenje Kako je cijena jednog paketića sličica 3KM, to je Nerminu za kupovinu 50 paketića potrebno 150KM. 94

100 2. zadatak KUPOVINA Dječak Nermin će uskoro slaviti rođendan. Poznato mu je da će od drugara dobiti razne poklone, ali isto tako zna da će od odraslih rođaka, a naročito od dida i majke, dobiti i novac. Mama i tata su mu rekli da će za taj novac moći kupovati omiljene sličice nogometaša ako bude znao izračunati koliko najviše paketića može kupiti za dobijeni novac a koliko će mu ostati kusura. Njegovi problemi s matematikom su ti poznati i zbog toga mu je potrebna tvoja pomoć.. Treba napisati program koji će za unesenu količinu novca i cijenu jednog paketića izračunati i ispisati na ekran koliko najviše paketića sličica Nermin može kupiti te koliko će mu novca nakon toga ostati. Program snimiti pod imenom KUPOVINA. Ulazni podaci S tastature se u jednom redu učitava prirodan broj 3 ( ) koji predstavlja iznos novca koji je Nermin dobio, a u drugom redu se učitava prirodan broj K (1 K 100) koji predstavlja cijenu jednog paketića sličica. Izlazni podaci Na ekranu je potrebno samo ispisati u jednom redu broj L koji predstavlja najveći broj paketića koje Nermin može kupiti za iznos novca kojim raspolaže, a u drugom redu ispisati broj M koji predstavlja kusur koji će Nerminu ostati nakon što kupi L paketića sličica. Primjeri Objašnjenje Za 13KM Nermin može kupiti najviše 2 paketića sličica po cijeni od 5KM (2 5 = 10) i ostanu mu još 3KM (13 10 = 3) Objašnjenje Za 150KM Nermin može kupiti najviše 215 paketića sličica po cijeni od 10KM (15 10 = 150) i ostanu mu još 0KM ( = 0). 95

101 3. zadatak STEDNJA Nerminova sestra Amila je učenica šestog razreda i matematika joj nije veliki problem. Međutim, Amila voli više šetati nego računati. Za razliku od Nermina, Amila ne kupuje sličice ali voli štedjeti novac. Odlučila je štedjeti i to tako što će prvi dan u kasicu ubaciti nekoliko konvertibilnih maraka, drugi dan će ubaciti dvostruko više nego prvi dan, treći dan će ubaciti dvostruko više nego drugi dan i sve tako redom. Npr. ako prvi dan ubaci 4KM, dugi će dan ubaciti 8KM, treći dan 16KM, četvrti 32KM, itd. Amilu interesuje koliko će novca imati u kasici nakon nekoliko dana. Amila kao ni Nermin ne zna programirati, ali zato kao i Nermin vjeruje u tvoju pomoć. Treba napisati program koji će za uneseni iznos konvertibilnih maraka koji je Amila ubacila u kasicu prvi dan i broj dana koliko će Amila štedjeti, izračunati i na ekran ispisati iznos novca koji će Amila tada imati ušteđen. Program snimiti pod imenom STEDNJA. Ulazni podaci S tastature se u jednom redu učitava prirodan broj M (1 M 1000) koji predstavlja iznos novca koji je Amila stavila u kasicu prvi dan, a u drugom redu se učitava prirodan broj 3 (1 3 20) koji predstavlja broj dana koje je Amila stavljala novac u kasicu. Izlazni podaci Na ekranu je potrebno samo ispisati prirodan broj O koji predstavlja iznos koji će Amila imati u kasici nakon 3 dana štednje Primjeri Objašnjenje Amila je u kasicu stavljala redom po danima:1, 2, 4, 8, 32, 64, 128, 256, 512KM. Ukupno je stavila: = 1023KM Objašnjenje Amila je u kasicu stavljala prvi dan 7 a drugi dan 14KM pa je ukupno uštedila = 21KM. 96

102 7.6. Zadaci 2015 OPĆINSKO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA zadatak UNA Treba napisati program koji će s tastature učitati jedan prirodan broj manji od 15. Ako je taj broj jednocifren onda treba toliko puta ispisati riječ UNA, a ako je dvocifren, onda riječ UNA treba ispisati onoliko puta koliko iznosi razlika broja 19 i učitanog broja. Ispis napraviti u takvom obliku da se prvo napiše redni broj ispisa s tačkom, a zatim riječ UNA. Riječ UNA svaki put ispisati u novom redu. Program snimiti pod imenom UNA. Ulazni podaci S tastature u jednom redu učitavamo prirodan broj manji od 15. redu. Izlazni podaci Na ekranu ispisati redni broj ispisa s tačkom i iza toga riječ UNA. Svaki put u novom 3 14 Primjeri 1. UNA 2. UNA 3. UNA 1. UNA 2. UNA 3. UNA 4. UNA 5. UNA Objašnjenje Broj 3 je jednocifren i ispisujemo 3 puta riječ UNA Objašnjenje Broj 14 je dvocifren i ispiujemo riječ UNA = 5 puta 97

103 2. zadatak DIJELI Za prirodan broj # kažemo da je djeljiv s prirodnim brojem $ ako postoji prirodan broj / takav da je # = / $. Treba napisati program koji će za dva prirodna broja učitana s tastature ispitati da li je prvi djeljiv s drugim. Ukoliko jeste, treba na ekranu ispisati njihov količnik, a ukoliko nije treba ispisati poruku da nije. Program snimiti pod imenom DIJELI. Ulazni podaci S tastature u prvom redu učitavamo prvi prirodan broj, a u drugom drugi prirodan broj. Izlazni podaci Na ekranu se u slučaju da je prvi broj djeljiv s drugim ispisuje njihov količnik, a u slučaju da nije djeljiv, ispisuje se poruka kao u navedenom primjeru Primjeri nije djeljivo s nije djeljivo s 5 98

104 3. zadatak SLOVA Treba napisati program koji broji (prebrojava) suglasnike u rečenici koja se unosi s tastature i njihov broj ispisuje na ekran. Složeno slovo LJ se broji kao jedno slovo, ako i slovo NJ. U primjerima neće biti slova Č, Ć, DŽ, Đ, Š i Ž. Rečenica završava tačkom. Program snimiti pod imenom SLOVA. Ulazni podaci S tastature se u jednom redu učitava prirodan broj 3 (3 100) koji predstavlja broj slova u rečenici, a u drugom redu se učitava rečenica. Izlazni podaci Na ekranu se ispisuje broj suglasnika u rečenici. 15 Danas je lijep dan. 9 Primjeri 25 Djeci je potrebna ljubav i njega. 14 Objašnjenje Suglasnici su: D, N, S, J, L, J, P, D, N i ima ih ukupno 9. Objašnjenje Suglasnici su: D, J, C, J, P, T, R, B, N, LJ, B, V, NJ, G i ima ih ukupno

105 7.7. Zadaci 2016 OPĆINSKO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA zadatak GODINA Vremenski period od 100 godina se naziva stoljeće ili vijek. Prvo stoljeće je počelo 1. januara 1. godine i trajalo je do 31. decembra 100. godine. Drugo stoljeće je počelo 1. januara 101. godine i trajalo je do 31. decembra 200. godine. Trenutno smo u 21. stoljeću, koje je počelo 1. januara godine. Treba napisati program koji će za učitanu godinu ispisati kojem stoljeću pripada ta godina. Program snimiti pod imenom GODINA. Ulazni podaci S tastature u jednom redu učitavamo prirodan broj manji od Izlazni podaci Na ekranu ispisati prirodan broj koji predstavlja traženo stoljeće Primjeri Objašnjenje godina je u 21. stoljeću. Objašnjenje godina je u 20. stoljeću. Objašnjenje 16. godina je u 1. stoljeću. 100

106 2. zadatak ZBIR Treba napisati program koji će za učitani prirodan broj 5 < 3 < 100 napisati na koliko se on načina može prikazati u obliku 3 = + + P, gdje je < < P, tj. na koliko se načina broj 3 može rastaviti na zbir tri različita prirodna broja, i P, takva da je < < P. Program snimiti pod imenom ZBIR. Ulazni podaci S tastature u prvom redu učitavamo prvi prirodan broj 3 < 100. traženi zbir. Izlazni podaci Na ekranu se ispisuje prirodan broj koji predstavlja broj mogućih rastava broja 3 na Primjeri 4 7 Objašnjenje 10 = = = = Objašnjenje 12 = = = = = = =

107 3. zadatak ŠETNJA Djevojčica Amila se nalazi negdje u koordinatnom sistemu (na mjestu s koordinatama (x,y) ) i kreće u šetnju. Svakim korakom se pomjeri za jedno mjesto i to: L (lijevo u mjesto (x-1,y)), D (desno u mjesto (x+1,y)), V (gore u mjesto (x,y+1)) ili N (dolje u mjesto (x,y-1)). Njena udaljenost od koordinatnog početka je jednaka dužini najkraćeg puta, kojim Amila može doći do mjesta na kojem se nalazi do koordinatnog početka. Treba napisati program koji će za učitanu Amilinu početnu poziciju i njen plan šetnje kao rezultat vratiti poziciju u kojoj se nalazi na kraju, te njene udaljenosti od koordinatnog početka na početku i na kraju šetnje. Program snimiti pod imenom SETNJA. Ulazni podaci S tastature se u prvom redu učitavaju dva cijela broja x i y (-100<x,y<100), odvojeni razmakom, koji predstavljaju Amilinu početnu poziciju. U drugom redu se učitava niz koji predstavlja plan šetnje. Izlazni podaci Na ekranu se u prvom redu ispisuje Amilina krajnja pozicija, u drugom redu udaljenost od koordinatnog početka na početku šetnje, a u trećem redu se ispisuje ta udaljenost na kraju šetnje. Ispis se vrši u obliku kako je dano u primjeru. Primjeri -1-1 NDDDVLVVD Objašnjenje Amilin put je bio: (-1,-1), (-1,-2), (0,-2), (1,-2), (2,-2), (2,-1), (1,-1), (1,0), (1,1), (2,1). Udaljenost od tačke (-1,-1) do koordinatnog početka je 2, jer Amili trebaju 2 koraka da pređe taj put, dok je udaljenost tačke (2,1) od koordinatnog početka jednaka NLLVLLNLNNDN

108 7.8. Zadaci 2017 OPĆINSKO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA zadatak BOSNA Treba napisati program koji će s tastature učitati jedan prirodan broj manji od 20. Ako je taj broj jednocifren onda treba toliko puta ispisati riječ BOSNA, a ako je dvocifren, onda riječ BOSNA treba ispisati onoliko puta koliko iznosi razlika broja 25 i učitanog broja. Ispis napraviti u takvom obliku da se prvo napiše redni broj ispisa s tačkom, a zatim riječ BOSNA svaki put ispisati u novom redu. Program snimiti pod imenom BOSNA. Ulazni podaci S tastature u jednom redu učitavamo prirodan broj manji od 20. Izlazni podaci Na ekranu ispisati ispisati s tačkom i iza toga riječ BOSNA. Svaki put u novom redu Primjeri 1. BOSNA 2. BOSNA 3. BOSNA 1. BOSNA 2. BOSNA 3. BOSNA 4. BOSNA 5. BOSNA 6. BOSNA Objašnjenje Broj 3 je jednocifren i ispisujemo 3 puta riječ BOSNA. Objašnjenje Broj 19 je dvocifren i ispisujemo riječ BOSNA puta = 6 103

109 2. zadatak RIJEC Treba napisati program koji će učitati riječ s tastature i ispisati samo suglasnike iz te riječi (u poretku kako su i učiati) Program snimiti pod imenom RIJEC. od 20 slova). Ulazni podaci S tastature u prvom u jednom redu učitavamo riječ napisanu velikim slovima (ne dužu Izlazni podaci Na ekranu se vrlikim slovima ispisuju samo suglasnici iz učitane riječi, i to u poretku kako su i učitani. Ukoliko je učitana riječ sastavljena samo od samoglasnika, na ekranu treba ispisati riječ BOSNA. USISAVANJE SSVNJ Primjeri BRK BRK EEOA BOSNA 104

110 3. zadatak BROJ Za prirodan broj kažemo da je savršen ako je jednak sumi svojih pravih djelitelja (prirodnih brojeva koji ga dijele a manji su od njega). Pravi djelitelji broja 28 su 1, 2, 4, 7, 14. Kako je broj 28 jednak sumi svojih pravih djelitelja, to je on savršen (28 = ). Treba napisati program koji će ispisati sve savršene brojeve iz danog intervala. Program snimiti pod imenom BROJ. Ulazni podaci S tastature se u jedom redu učitavaju dva prirodna broja (0<a<b<100000). Izlazni podaci Na ekranu se ispisuju svi savršeni brojevi iz intervala [a,b]. Ukoliko u danom intervalu nema savršenih brojeva, treba ispisati odgovarajuću poruku Primjeri Objašnjenje Jedini savršeni brojevi iz danog intervala su 6 i 28 (6=1+2+3, 28= ). Objašnjenje Nema savrsenih brojeva U danom intervalu nema savršenih brojeva. 105

111 8. ZADACI S KANTONALNIH TAKMIČENJA 8.1. Zadaci 2011 KANTONALNO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA zadatak SUMACIF Emir je naučio programirati. Prvi "ozbiljniji" program koji je napisao izračunava sumu cifara prirodnog dvocifrenog broja koji se unosi putem tastature. Međutim, ukoliko broj koji se unosi nije dvocifren nastaju problemi. Pomozi Emiru i napiši program koji će izračunati i prikazati sumu cifara ako se unese dvocifren broj. Inače će se na ekranu prikazati poruka da broj nije dvocifren. Program snimiti pod imenom SUMACIF. Ulazni podaci Sa tastature učitavamo jedan prirodan broj. Izlazni podaci Na ekranu se ispisuje suma njegovih cifara (ako je dvocifren) ili poruka (ako nije dvocifren) Primjeri 6 Broj nije dvocifren! 142 Broj nije dvocifren! 106

112 2. zadatak SLOVAR Emirova sestra teško izgovara slovo r. On joj je, stoga, odlučio napisati rečenice u kojima se ovo slovo što više pojavljuje. Pomozi Emiru da napiše program koji će mu izbrojati koliko puta se slovo r (malo ili veliko) pojavilo u rečenici koju unese putem tastature. One rečenice s kojima bude zadovoljan Emir će prepisati na papir i zamoliti malu sestru da ih naglas pročita više puta kako bi izvježbala izgovor Program snimiti pod imenom SLOVAR. Ulazni podaci Sa tastature učitati rečenicu. Izlazni podaci Na ekranu se ispisuje poruka o broju pojavljivanja slova r (malo ili veliko) u učitanoj rečenici. Primjeri Riba ribi grize rep Broj pojavljivanja: 4 Irma i Romi idu u prvi razred. Broj pojavljivanja: 5 Vracaju se rode. Broj pojavljivanja: 2 107

113 3. zadatak SLIKE Emir bi trebao slike sa svih ekskurzija sa svoga računara spržiti na CD-ove kako bi ih podijelio prijateljima iz razreda. Emir ima N slika i one su veličine K megabajta. Svaki CD ima tačno 700MB prostora. Pomozi Emiru izračunati koliko najmanje CD-ova mora kupiti svaki od njegovi prijatelja kako bi na njih mogao snimiti željene slike. Niti jedna slike se ne smije dijelom snimiti na jedan CD, a dijelom na drugi! Program snimiti pod imenom SLIKE. Ulazni podaci Sa tastature u dva reda učitavamo dva prirodna broja, i to: - prirodan broj N ( ), broj slika koje Emir želi snimiti na CD-ove, - prirodan broj K (1 M 10), veličina slike u MB. Izlazni podaci Na ekranu se ispisuje prirodan broj X koji predstavlja najmanji broj CD-ova potreban Emiru da snimi sve slike. Primjeri Objašnjenje Damiru treba prebaciti 400 slika veličine 5MB. Za to mu trebaju 3 CD-a, jer na 3 CD-a stane 700*3=2100MB Objašnjenje Almi treba prebaciti 100 slika veličine 4MB. Za to u treba 1 CD, jer na 1 CD stane 700*1=700MB Objašnjenje Ivanu treba prebaciti 101 sliku veličine 7MB. Za to mu trebaju 2 CD-a, jer na 2 CD-a stane 700*2=1400MB. 108

114 8.2. Zadaci 2012 KANTONALNO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA zadatak TECAJ Enesova obitelj vrši pripreme za odlazak na more. Enes je dobio određenu svotu novaca od majke u KM-a (konvertibilne marke). Enes planira sakupiti još novca u KM nakon završetka školske godine (dobijanja knjižica), a nada se de će dobiti nešto od tetke iz Njemačke gdje se koriste Euri (Eur). Na odmoru (Hrvatska) se troše isključivo Kune (Kn). Pomozimo Enesu da napiše program koji pretvara valutu iz KM-a i Eur-a u Kune kako bi se Enes lakše snašao na moru. Program snimiti pod imenom TECAJ. Ulazni podaci Sa tastature se unosi vrijednost tečaja Kune (Kn) za Eur, tečaja Kune (Kn) za KM. Zatim se unosi iznos ušteđenih i dobivenih KM i Eura posebno a koje će Enes razmjenjivati za Kune. Za 1 KM Enes može dobiti 3,75 Kn, a za 1 Eur se može dobiti 7,5 Kn. Izlazni podaci Na ekranu se ispisuje sljedeća poruka: "Za iznos od KM i Eur Enes može dobiti Kuna." Za iznos od 100 KM i 100 Eur, Enes može dobiti Kn Primjeri Za iznos od 75 KM i 50 Eur, Enes može dobiti Kn Za iznos od 150 KM i 35 Eur, Enes može dobiti Kn 109

115 2. zadatak DJELJIVOST Potrebno je napisati programski kod za rješenje sljedećeg problema: Sa tastature se unosi broj, za koji program provjerava da li je djeljiv sa tri. Ukoliko jeste djeljiv sa 3 program ispisuje poruku: "Ostatak dijeljenja broja sa 3 je 0", a ukoliko nije program računa prvi manji broj od unešenog broja a koji je djeljiv sa 3 i ispisuje poruku: "Prvi manji broj od unesenog broja, a djeljiv sa 3 je ". Program snimiti pod imenom DJELJIVOST. Ulazni podaci Sa tastature se unosi određeni broj a program vrši provjeru uvjeta. Izlazni podaci Ukoliko je unešeni broj djeljiv sa 3 program ispisuje poruku: "Ostatak djeljenja broja sa 3 je 0", a ukoliko nije program traži prvi manji broj od unesenog a koji je djeljiv sa 3 i ispisuje poruku: "Prvi manji broj od unesenog broja, a koji je djeljiv sa 3 je ". 33 Ostatak djeljenja broja 33 sa 3 je 0. Primjeri 256 Prvi manji broj od unesenog broja, a koji je djeljiv sa 3 je Ostatak djeljenja broja 4356 sa 3 je

116 3. zadatak SAMOGLASNICI Napisati program koji broji (prebrojava) samoglasnike u unesenoj rečenici i ispisuje njihov zbir na ekran. Program snimiti pod imenom SAMOGLASNICI. Ulazni podaci Sa tastature učitavamo rečenicu određene dužine (broja riječi). Izlazni podaci Na ekranu se ispisuje poruka: "Samoglasnici se u rečenici pojavljuju puta" kao u navedenom primjeru. Primjeri Danas je cijeli dan padala jaka kisa. Samoglasnici se u rečenici pojavljuju 14 puta! Ovaj zadatak je veoma jednostavan i nadam se da ću ga uspjesno rijesiti. Samoglasnici se u rečenici pojavljuju 26 puta! Veceras je premijera mog omiljenog filma u kinu Una. Samoglasnici se u rečenici pojavljuju 19 puta! 111

117 8.3. Zadaci 2013 KANTONALNO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA zadatak COKOLADA Hana je vježbala matematiku i naišla je na jedan slatki zadatak. Potrebno je tablu čokolade oblika pravougaonika podijeliti na manje dijelove koji će biti oblika kvadrata, ali pod uvjetom da je taj broj kvadrata najmanji moguć. Program snimiti pod imenom COKOLADA. Ulazni podaci Sa tastature u prva dva reda učitavamo dva prirodna broja M i N (1 M, N 1000), gdje je M broj redaka a N broj stupaca čokolade. Izlazni podaci Na ekranu treba ispisati najmanji broj kvadrata na koji se čokolada može podijeliti Primjeri Objašnjenje za prvi primjer Na slici su dane dvije moguće podjele čokolade od 3 reda i 4 stupca, s tim što je na drugoj slici prikazana podjela s najmanjim brojem kvadrata. 112

118 2. zadatak KAPICA Tri Amina, Lejla i Emira su u autobusu, da bi sebi putovanje učinile interesantnijim, igrale igre pogađanja boje kape na njihovim glavama. Svaka od njih na glavi ima kapu crne ili bijele boje, ali ne zna koje je boje. Međutim, svaka od njih vidi kakve je boje kapa na glavi drugih dviju. Svaka od njih treba da kaže koliko crnih kapa vidi, te da na osnovu dobijenih informacija pogodi koje je boje kapa na njenoj glavi. Treba napisati program koji s tastature učitava koliko crnih kapa vide Amina, Lejla i Emira, a zatim ispisuje koje su boje kape na njihovim glavama i to tako što za crnu kapu ispisuje C a za bijelu B. Program snimiti pod imenom KAPICA. Ulazni podaci Sa tastature u prva tri reda učitavamo tri nenegativna broja. U prvom redu je broj crnih kapa koje vidi Amina, u drugom broj crnih kapa koje vidi Lejla a u trećem redu broj crnih kapa koje vidi Emira. Izlazni podaci Na ekranu treba ispisati u tri reda boju (C ili B) kape koju one imaju na glavi i to u prvom redu Aminine, u drugom boju Lejline a u trećem redu boju Emirine kape. Primjeri B C C B B B 113

119 3. zadatak KALADONT Enes i Lejla igraju igru koja se zove "kaladont". Lejla je bolji igrač, pa je Enes odlučio samostalno vježbati uz pomoć računara. Igra se sastoji od više partija. Svaka partija počinje tako što Enes izgovori proizvoljnu riječ. Za svaku sljedeću riječ koju on izgovori mora da vrijedi da je njenih K početnih slova jednako kao posljednjih K slova prethodno izgovorene riječi. Ako Enes ne može da smisli riječ koja počinje na odgovarajući način, partija se završava. Broj izgovorenih riječi tokom jedne partije predstavlja dužinu partije. Potrebno je za N datih riječi izgovorenih u toku igre odrediti dužinu najduže partije. Program snimiti pod imenom KALADONT. Ulazni podaci Sa tastature se unose dva prirodna broja K i N (1 N 1000, 1 K 20) koji predstavljaju riječi i broj slova koja mora da se poklapaju i lista od N izgovorenih riječi. Izlazni podaci Na ekranu se ispisuje broj koji predstavlja dužinu najduže partije u igri. 9 2 jabuka kaldont drvo vozilo logor orkan maca carica car Objašnjenje: Primjeri Učitava se 9 riječi a zahtijevano je podudaranje u 2 posljednja slova prethodne riječi i 2 početna slova novoizgovorene riječi. U ovoj igri su bile 3 partije: jabuka kaladont (dužina 2) drvo vozilo logor orkan (dužina 4) maca carica car (dužina 3) Vidimo da je druga partija najduža i da je njena dužina

120 8.4. Zadaci 2014 KANTONALNO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA zadatak SLOVA Treba napisati program koji broji (prebrojava) suglasnike u rečenici koja se unosi s tastature i njihov broj ispisuje na ekran. Složeno slovo LJ se broji kao jedno slovo, ako i slovo NJ. U primjerima neće biti slova Č, Ć, DŽ, Đ, Š i Ž. Rečenica završava tačkom. Program snimiti pod imenom SLOVA. Ulazni podaci S tastature se u jednom redu učitava prirodan broj 3 (3 100) koji predstavlja broj slova u rečenici, a u drugom redu se učitava rečenica. Izlazni podaci Na ekranu se ispisuje broj suglasnika u rečenici. 15 Danas je lijep dan. 9 Primjeri 25 Djeci je potrebna ljubav i njega. 14 Objašnjenje Suglasnici su: D, N, S, J, L, J, P, D, N i ima ih ukupno 9. Objašnjenje Suglasnici su: D, J, C, J, P, T, R, B, N, LJ, B, V, NJ, G i ima ih ukupno

121 2. zadatak GRADOVI Na obali nekog ostrva se nalazi n gradova označenih brojevima od 0 do n 1. Oko čitavog ostrva je izgrađen autoput koji prolazi kroz svaki od n gradova. Udaljenost između gradova su dane u nizu gdje prvi broj predstavlja udaljenost između grada 0 i 1, drugi broj predstavlja udaljenost između gradova 1 i 2, i tako redom, dok zadnji broj predstavlja udaljenost između grada n-1 i 0. Treba napisati program koji će za svaki grad odrediti najkraće udaljenosti od svih ostalih gradova. Program snimiti pod imenom GRADOVI. Ulazni podaci S tastature u prvom redu učitavamo broj gradova (prirodan broj n), a u drugom redu učitavamo niz realnih brojeva koji predstavljaju udaljenosti između gradova. gradova. Izlazni podaci Na ekranu se za svaki grad ispisuje najkraće udaljenosti između tog grada i ostalih Udaljenost izmedju gradova 0 i 1 je 2.3 Udaljenost izmedju gradova 0 i 2 je 0.9 Udaljenost izmedju gradova 1 i 0 je 2.3 Udaljenost izmedju gradova 1 i 2 je 3.2 Udaljenost izmedju gradova 2 i 0 je 0.9 Udaljenost izmedju gradova 2 i 1 je 3.2 Slika za objašnjenje Primjeri Udaljenost izmedju gradova 0 i 1 je 2.9 Udaljenost izmedju gradova 0 i 2 je 5.5 Udaljenost izmedju gradova 0 i 3 je 4.7 Udaljenost izmedju gradova 1 i 0 je 2.9 Udaljenost izmedju gradova 1 i 2 je 2.6 Udaljenost izmedju gradova 1 i 3 je 3.4 Udaljenost izmedju gradova 2 i 0 je 5.5 Udaljenost izmedju gradova 2 i 1 je 2.6 Udaljenost izmedju gradova 2 i 2 je

122 Udaljenost izmedju gradova 3 i 0 je 4.7 Udaljenost izmedju gradova 3 i 1 je 3.4 Udaljenost izmedju gradova 3 i 2 je 0.8 Slika za objašnjenje 117

123 3. zadatak PROSTI Za prirodan broj 3, veći od 1, kažemo da je prost ako ne postoji prirodan broj S 1 < S < 3 koji ga dijeli. Treba napisati program koji ispisuje koliko ima prostih brojeva među prvih N prirodnih brojeva. Program snimiti pod imenom PROSTI. Ulazni podaci S tastature se učitava prirodan broj 3 ( ). Izlazni podaci Na ekranu se ispisuje broj prostih brojeva koji su manji ili jednaki od 3. Ako takvih brojeva nema, ispisati poruku NEMA IH. 1 NEMA IH Primjeri 20 8 Objašnjenje Ne postoje prosti brojevi manji ili jednaki od 1. ukupno 9. Objašnjenje To su brojevi: 2, 3, 5, 7, 11, 13, 17 i 19, i ima ih ukupno

124 8.5. Zadaci 2015 KANTONALNO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA zadatak ŠETNJA Djevojčica Amila se nalazi negdje u koordinatnom sistemu (na mjestu s koordinatama (x,y) ) i kreće u šetnju. Svakim korakom se pomjeri za jedno mjesto i to: L (lijevo u mjesto (x-1,y)), D (desno u mjesto (x+1,y)), V (gore u mjesto (x,y+1)) ili N (dolje u mjesto (x,y-1)). Njena udaljenost od koordinatnog početka je jednaka dužini najkraćeg puta, kojim Amila može doći do mjesta na kojem se nalazi do koordinatnog početka. Treba napisati program koji će za učitanu Amilinu početnu poziciju i njen plan šetnje kao rezultat vratiti poziciju u kojoj se nalazi na kraju, te njene udaljenosti od koordinatnog početka na početku i na kraju šetnje. Program snimiti pod imenom SETNJA. Ulazni podaci S tastature se u prvom redu učitavaju dva cijela broja x i y (-100<x,y<100), odvojeni razmakom, koji predstavljaju Amilinu početnu poziciju. U drugom redu se učitava niz koji predstavlja plan šetnje. Izlazni podaci Na ekranu se u prvom redu ispisuje Amilina krajnja pozicija, u drugom redu udaljenost od koordinatnog početka na početku šetnje, a u trećem redu se ispisuje ta udaljenost na kraju šetnje. Ispis se vrši u obliku kako je dano u primjeru. Primjeri -1-1 NDDDVLVVD Objašnjenje Amilin put je bio: (-1,-1), (-1,-2), (0,-2), (1,-2), (2,-2), (2,-1), (1,-1), (1,0), (1,1), (2,1). Udaljenost od tačke (-1,-1) do koordinatnog početka je 2, jer Amili trebaju 2 koraka da pređe taj put, dok je udaljenost tačke (2,1) od koordinatnog početka jednaka

125 2. zadatak TEŽINA Neka je N 1 proizvod cifara učitanog broja N>9, N 2 proizvod cifara broja N 1, N 3 proizvod cifara broja N 2 itd. Najmanji prirodan broj k za koji vrijedi da je broj N k jednocifren broj naziva se "težina" broja N. Treba napisati program koji za prirodan broj N>9, koji se učitava s tastature, na ekran ispisuje njegovu "težinu". Program snimiti pod imenom TEZINA. Ulazni podaci S tastature se učitava prirodan broj veći od 9. Izlazni podaci Na ekranu se ispisuje težina učitanog broja Objašnjenje Primjeri 5 Objašnjenje 3 = T = 1967 = = 378 = U = 168 = 48 3 V = 32 = = T = 345 = 60 3 = 60 = 0 120

126 3. zadatak RUKOMET Na rukometnom kvalifikacionom turniru za završno prvenstvo je učestvovalo 8 ekipa. Odigrane su 4 utakmice i to ekipa E1 protiv ekipe E2, ekipa E3 protiv ekipe E4, ekipa E5 protiv ekipe E6 i ekipa E7 protiv ekipe E8. U svim utakmicama je poznat pobjednik. Sve ekipe su postigle različit broj golova. Sveukupni pobjednik kvalifikacija je ekipa koja je postigla najveći broj golova. Na završno prvenstvo se plasirala i ekipa koja je izgubila najmanjom razlikom. Ako postoji više ekipa koje su izgubile istom (najmanjom) razlikom, onda se od njih na završno prvenstvo kvalificira ona ekipa koja je postigla više golova. Treba napisati program koji će za učitane rezultate utakmica ispisati ime pobjednika kvalifikacija i poraženu ekipu koja se kvalificirala na završno prvenstvo. Program snimiti pod imenom RUKOMET. Ulazni podaci S tastature se u osam redova učitava 8 različitih prirodnih brojeva, manjih od 100, koji predstavljaju broj postignutih golova ekipa E1, E2, E3, E4, E5, E6, E7 i E8, redom. Izlazni podaci Na ekranu se u jednom redu ispisuje sveukupni pobjednik a u drugom redu poražena ekipa koja se kvalificirala. Ispis se vrši u obliku kao što je u primjeru Primjeri Sveukupni pobjednik je ekipa E5. plasman je ostvarila i ekipa E8. Objašnjenje Najviše golova je postigla ekipa E5 (42) i ona je sve ukupni pobjednik. S najmanjom razlikom (2) su izgubile ekipe E33 i E8. Kako je ekipa E3 postigla 31 a ekipa E8 34 gola, to se dalje plasirala ekipa E8. 121

127 8.6. Zadaci 2016 KANTONALNO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA zadatak BROJ Za prirodan broj kažemo da je savršen ako je jednak sumi svojih pravih djelitelja (prirodnih brojeva koji ga dijele a manji su od njega). Pravi djelitelji broja 28 su 1, 2, 4, 7, 14. Kako je broj 28 jednak sumi svojih pravih djelitelja, to je on savršen (28= ). Treba napisati program koji će ispisati sve savršene brojeve iz danog intervala. Program snimiti pod imenom BROJ. Ulazni podaci S tastature se u jednom redu učitavaju dva prirodna broja (0 < # < $ < ) manja od koji su razdvojeni razmakom. Izlazni podaci Na ekranu se ispisuju svi savršeni brojevi iz danog intervala. Ukoliko u danom intervalu nema savršenih brojeva, treba ispisati odgovarajuću poruku. Primjeri Objašnjenje Jedini savršeni brojevi iz danog intervala su 6 i 28 (6 = 1+2+3, 28= ). Objašnjenje Nema savršenih brojeva. U danom intervalu nema savršenih brojeva. 122

128 2. zadatak LINIJA Amila je na papiru (u pravouglom koordinatnom sistemu) nacrtala 3 duži koje su paralelne s osom x, a zatim je taj papir dala svom bratu Benjaminu da prebroji nacrtane duži. Kako se neke od nacrtanih duži "preklapaju" (potpuno ili djelimično), Benjamin ne može primijetiti da su to različite duži, već će ih u tom slučaju posmatrati kao jednu duž. Duži se "preklapaju" ako imaju bar jednu zajedničku tačku. Benjamin treba da odredi dužinu najduže uočene duži. Treba napisati program koji će za učitane duži ispisati dužinu najduže duži koju na slici vidi Benjamin. Napomena: duži koje leže na osi Benjamin ne može vidjeti, jer su preklopljene s osom x. Program snimiti pod imenom LINIJA. Ulazni podaci S tastature se u prvom redu učitava prirodan broj 3 (0 < 3 < 100) koji predstavlja broj duži koje je Amila nacrtala. Zatim se u 3 sljedećih redova učitavaju po 3 cijela broja WX, YZX, Y2X 1000 < WX, YZX, Y2X < 1000), koji su razdvojeni praznim mjestom, gdje YZX, WX i Y2X, WX predstavljaju pravougle koordinate krajeva X te duži koju je Amila nacrtala. Izlazni podaci Na ekranu se u jednom redu ispisuje broj koji predstavlja dužinu najduže duži koju vidi Benjamin. Primjeri Objašnjenje 8 11 Kada se nacrtaju sve dane duži, onda je najduža vidljiva duž ona čiji su krajevi tačke s pravouglim koordinatama (1,2) i (12,2), a njena dužina iznosi 11. Ta duž je nastala preklapanjem druge, treće, pete i osme učitane duži

129 3. zadatak SPIRALA Napisati program koji za uneseni prirodan broj 3 s tastature ispisuje na ekran kvadratnu tablicu dimenzija 3 3 čiji su elementi niz prirodnih brojeva 1, 2, 3,..., 3 koji su razmješteni u spiralnom redoslijedu u matrici u smjeru kazaljke na satu, počev od gornjeg lijevog polja. Program snimiti pod imenom SPIRALA. Ulazni podaci S tastature se učitava prirodan broj 3 0 < 3 < 11. Na ekranu se ispisuje tražena tablica. Izlazni podaci Primjeri

130 8.7. Zadaci 2017 KANTONALNO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA zadatak BROJ Treba napisati program koji će s tastature učitati niz malih i velikih slova engleskog alfabeta (bez razmaka). Taj niz slova treba izmijeniti na način da se umjesto učitanog malog slova na ekran ispisuje veliko isto takvo slovo, i obrnuto, da se umjesto učitanog malog slova na ekran ispisuje malo isto takvo slovo. Program snimiti pod imenom SLOVO. slova). Ulazni podaci S tastature u jednom redu učitavamo niz slova engleskog alfabeta (ne duži od 20 Izlazni podaci Na ekranu se u jednom redu ispisuju učitana slova s iumijenjenom veličinom u poretku kako su i učitani. Primjeri bosna CAZIN xtawqghj BosNA cazin XtaWQgHJ 125

131 2. zadatak FAKTOR Svaki složen prirodan broj se može napisati u obliku proizvoda dva ili više prostih brojeva. Ti prosti brojevi mogu biti jednaki ili različiti (16 = , 6 = 2 3, 84 = ). Treba napisati program koji će s tastature učitati prirodan broj veći od 1 i na ekran ispisati sve njegove proste faktore (ako ima jednakih onda će ih ispisati onoliko puta koliko se puta oni pojavljuju u njegovom rastavu na proizvod prostih faktora). Ako je broj prost, onda se ispisuje poruka da je broj prost. Program snimiti pod imenom FAKTOR. Ulazni podaci S tastature se učitava prirodan broj N takav da je 1 < 3 < Izlazni podaci Na ekranu se ispisuju prosti faktori broja N i to u svakom redu po jedan broj. Ako je broj prost onda samo ispisati odgovarajuću poruku Primjeri Broj 13 je prost broj. Objašnjenje 81 = Objašnjenje 490 = Objašnjenje Broj 13 je prost broj i ne može se rastaviti na proizvod dva ili više prostih brojeva. 126

132 3. zadatak CRTA Amila je na papiru (u pravouglom koordinatnom sistemu) nacrtala N duži koje su paralelne s osom x, a zatim je taj papir dala svojoj sestri Dariji da prebroji nacrtane duži. Kako se neke od nacrtanih duži preklapaju (potpuno ili djelomično), Darja ne može primjetiti da su to različite duži, već će ih u tom slučaju posmatrati kao jednu duž. Duži se preklapaju ako imju bar jednu zajedničku tačku. Darija treba da odredi dužinu najduže uočene duži. Napomena: duži koje leže na osi x Darija ne može vidjeti, jer su preklopljene s osom x. Treba napisati program koji će za učitane duži ispisati dužinu najduže duži koju na slici vidi Darija. Program snimiti pod imenom CRTA. Ulazni podaci S tastature se u prvom redu učitava prirodan broj 3 0 < 3 < 100 koji predstavlja broj duži koje je Amila nacrtala. Zatim se u N sljedećih redova učitavaju po 3 cijela broja Yi, YAi, XBi 1000 < WX, YZX, Y2X < 1000, koji su razdvojeni praznim mjestom, gdje YZX, WX i Y2X, WX predstavljaju pravougle koordinate krajeva i-te duži koju je Amila nacrtala. Izlazni podaci Na ekranu se u jednom redu ispisuje broj koji predstavlja dužinu najduže duži koju vidi Darija. Primjeri Tastatura Ekran Objašnjenje (ulaz) (izlaz) Kada se nacrtaju sve dane duži, onda najduža vidljiva duž je ona čiji su krajevi tačke s pravouglim koordinatama (1,2) i (12,2), a njena dužina iznosi 11. Ta duž je nastala preklapanjem druge, treće, pete i osme učitane duži. 127

133 9. TEORETSKI ZADACI S OPĆINSKIH TAKMIČENJA 9.1. Zadaci 2010 OPĆINSKO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA Teorija 1. Računar može raditi 24 sata bez prekida. DA NE 2. Spoji par: Tipka DELETE Briše znak desno od kursora Tipka BACKSPACE Briše znak lijevo od kursora 3. Jedan bajt ima bita, a jedan kilobajt ima bajta. 4. Zaokruži pet programskih jezika: 1. C 2. PASCAL 3. NEWTON 4. FORTRAN 5. SQL 6. MS DOS 7. COBOL 8. WINDOWS 5. Razvrstaj na ulazne i izlazne jedinice: tastatura, miš, štampač, džojstik, skener. Ulazne: Izlazne: 6. Povezati kojoj naredbi programskog jezika BASIC odgovara koji opis djelovanja: INPUT završetak programa REM naredba izlaza PRINT naredba grananja END naredba ulaza IF THEN komentar 7. Niz koraka koji jasno i određeno vode ka rješenju nekog problema (ukoliko rješenje postoji), odnosno daju odgovor da problem nema rješenja (ako rješenje ne postoji, ne može se dobiti odgovarajućom tačnošću ili u predviđenom vremenu) naziva se. 8. S koje strane se u nekoj adresi nalazi provider? A: lijeve B: desne C: obe D: ništa od navedenog 9. Koju biste ikonu koristili da kopirate format jedne riječi na drugu? A: B: C: D: 10. Pritisak na koju ikonu poništava izvršenu komandu? 128

134 A: B: C: D: 11. Vodoravna orijentacija papira je: A: Portrait B: Laid C: Vertical D: Landscape 12. Formule u Excelu počinju znakom: A: = B: % C: # D: zavisi od formule 13. Koji od odgovora radi u Excelu isto što i =SUM(A1:A2)? A: =A1+B2 B: =A1+A2 C: =sin(a1/b2) D: =A1+A2+B1+B2 14. Kolone u Excelu su označene: A: 1,2,3,... B: A1,A2,A3,... C: A,B,C,... D: I,II,III, Binarni zapis broja 753 je Zadaci 2011 OPĆINSKO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA Softver je materijalni dio računara. (Može se opipati rukom) DA NE 2. Tipka Shift služi za. Tipka CapsLock služi za. 3. Jedan megabajt ima bajta, a jedan gigabajt ima megabajta. 4. Zaokruži naredbe koje se koriste u programskom jeziku BASIC: 1. CLS 2. READ 3. INPUT 4. WRITE 5. RENAME 6. IF..THEN 7. CLR 8. FOR 5. Šta je šta? Popuni kvadrate odgovarajućim slovom. (A-ulazna jedinica, B-izlazna jedinica) štampač skener zvučnik web kamera 6. Navedi 4 programska jezika za koje si čuo. 7. Decimalni zapis binarnog broja jeste. 8. Za ispis na štampaču tekuće stranice našeg dokumenta koji ima 12 stranica koristit ćemo 129

135 A: naredbu Print iz izbornika B: pritisak na ikonu 9. Pritisak na koju ikonu sprema naš dokument? A: B: C: D: 10. Vertikalna orijentacija papira je: A: Portrait B: Laid C: Vertical D: Landscape 11. MS Excel je sastavni dio: A: MS Windows B: MS Office C: Ne pripada niti jednom 12. Ćelije u Excelu su označene: A: 1,2,3... B: A1,A2,A3,... C: A,B,C,... D: I,II,III, Obrada podataka u računaru vrši se: A: u memoriji B: u procesoru C: u tastaturi D: na monitoru 14. Binarni zapis broja 53 je. 15. Zadnja verzija operativnog sistema Windows jeste: A: Windows Phone 7 B: Windows 7 C: Windows 2007 D: Windows Zadaci 2012 OPĆINSKO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA Na sljedeća pitanja se odgovara tako da se upiše slovo koje se nalazi ispred tačnog odgovora na za to predviđeno mjesto (crtu): r/b Pitanje: bodovi mogući ostvareni 1. 2 Koji rezultat će se prikazati prilikom pokretanja formule u ćeliji C8 (kada pritisnemo tipku ENTER)? Odgovor: 130

136 2. Predstavite broj 44 u binarnom obliku: Odgovor: 3. Ako je brzina prenosa podataka preko ADSL linka 4 Mb/ps, za koliko vremena će se teoretski "download-ati" datoteka veličine 500 MB? 4. Odgovor: Kojem od pobrojanih operativnih sistema nije mjesto u skupini: a) Windows 7 b) Windows XP c) Windows Mobile d) d) Windows Odgovor: Koji izraz je tačno napisan i predstavlja sljedeću formulu: # ( + 0. $ + S a) b+a-(c+0)/((p*y)/d) b) b+(a-(c+0)/p*y)/d c) b+(a-(c+0)/(p*y))/d d) d) b+(a-c+0/(p*y))/d Odgovor: Softverska licenca je: a) Pravo na korištenje određenog softvera (programa) b) CD na kojem dobijamo isporučen softver c) Vrsta softvera d) d) Oblik distribucije softvera Odgovor: Umetanje matematičkih izraza u MS Word se vrši pokretanjem slijeda naredbi: a) InsertObjectMicrosoft Equattion 3.0 b) ViewObjectMicrosoft Equattion 3.0 c) ObjectMicrosoft Equattion 3.0 d) Ni na jedan od ponuđenih načina Odgovor: 131

137 Koja vrijednost će biti u ćeliji C1 kao rezultat obrade operacije na slici, pritiskom na tipku ENTER a) 450 b) 45 c) 4500 d) 30 Odgovor: Koji od navedenih nisu ulazno/izlazni uređaji: a) Skener b) Ekran osjetljiv na dodir (touch.screen) c) Modem d) Mikrofon Odgovor: Korisnik je otvorio dokument u MS Wordu koji se zove "kontrolni", na istom izvršio određene promjene, pritisnuo CTRL+S, zatim CTRL+P a nakon toga ALT+F? Upišite odgovor što se tada dogodilo? Odgovor: Koja od ponuđenih nije naredba PASCAL-a? a) PRIVATE b) WRITELN c) READLN d) BEGIN Odgovor: U sljedećem linku riječi "pzusk.ba" predstavljaju: a) Ime dokumenta i oznaku države b) Naziv domene i oznaku države c) Ime dokumenta i naziv domene d) adresu domene Odgovor: Algoritam je: a) Niz koraka koji vode ka rješenju nekog problema b) Određen i beskonačan broj koraka koji jasno vode ka rješenju nekog problema 2 132

138 c) Određen i konačan broj koraka koji jasno vode ka rješenju nekog problema (ukoliko rješenje postoji) d) Neodređen i beskonačan broj koraka koji vode ka rješenju nekog problema. Odgovor: Kada u Excel-u koristimo komandu COPY na ćeliji u kojoj se nalazi formula, koju od ponuđenih PASTE OPTION ćemo koristiti da zalijepimo vrijednost formule, a ne formulu: 14. a) b) c) d) Odgovor: Kada u Wordu želimo da isprintamo samo određene stranice koristit ćemo: a) CTRL+S b) CTRL+P c) Ikonu štampača d) CTRL+C Odgovor: Zadaci 2013 OPĆINSKO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA U zadacima 1-10 treba zaokružiti slovo ispred tačnog odgovora. 1. Softverska licenca je A. Microsoft Office B. Vrsta softvera C. Pravo na korištenje određenog softvera D. CD koji dobijemo uz računar 133

139 2. Programski jezik nije A. PASCAL B. NEWTON C. COBOL D. JAVA 3. Najmanja adresabilna tačka na ekranu se naziva A. Pixel B. Minijatura C. Ekranska tačkica D. Point 4. Ikona u Microsoft Word-u A. Otvara još jedan postojeći dokument B. Otvara još jedan prazan dokument C. Dijeli ekran na dva dijela D. Kopira selektirani dio na clipboard 5. Koji nivo nije nijedan od tri nivoa komunikacijskog procesa A. Tehnološki B. Semantički C. Hardverski D. Efektivni 6. Koji broj nije napisan u heksadecimalnom brojnom sistemu A. BABE B. BEBE C. NANE D Osnovni dijelovi centralne procesorske jedinice su A. Procesor i memorija B. Procesor i hladnjak C. Procesor i printer D. Procesor i softver 8. Prva definicija informatike potiče od A. Francuske akademije nauka B. Apple-a 134

140 C. NASA-e i CIA-e D. Američkog informatičkog društva 9. Dio centralne jedinice gdje se vrši obrada podataka se naziva A. Procesor B. Aritmetičko-logička jedinica C. Podatkovno-obrađivački filter D. Kompjuter 10. Koju kombinaciju treba pritisnuti za softversko resetiranje računara A. Ctrl+AltGr+Del B. Ctrl+AltGr+F1 C. Ctrl+Alt+Del D. Ctrl+Alt+F1 U zadacima treba uraditi traženo. 11. Broj 2013 iz dekadnog brojnog sistema zapisati u binarnom:. 12. Nakon izvršenja naredbi, A i B će imati sljedeće vrijednosti: A=, B=. A=2 B=3 A=A+B A=A+A IF B>A THEN A=100 B=A+B 13. Ako u Microsoft Excel ćelijama imamo sljedeće zapise: A1: 10 A2: 15 A3: 20 A4: 25 A5: =SUM(A2:A4) Nakon što u ćeliju A6 upišemo =COUNT(A1:A5) i pritisnemo tipku ENTER, koji će sadržaj biti ispisan na ekran u ćeliji A6? U ćeliji A6 će biti ispisano. 14. Ako imamo 3 memorijske jedinice CD1, CD2 i CD3 sa sljedećim memorijskim kapacitetima: CD1 1010MB CD2 1GB CD KB Poredati ih po veličini od najvećeg do najmanjeg:. 15. Broj 2706 iz oktalnog brojnog sistema zapisati u dekadnom:. 135

141 9.5. Zadaci 2014 OPĆINSKO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA U zadacima 1-5 zaokruži jedan tačan odgovor (DA ili NE)! 1. Hardver i softver zajedno čine računarski sistem. DA NE 2. Laptop je najnovija vrsta laserskog štampača. DA NE 3. Memorija koja se nalazi izvan računara naziva se periferna memorija. DA NE 4. Sva obrada podataka se vrši u memoriji. DA NE 5. Komuniciranje putem interneta je najskuplji vid komunikacije. DA NE U zadacima 6 10 zaokruži samo jedan tačan odgovor (A, B ili C)! 6. Komanda CLS u DOS-u A. briše ekran B. zatvara prozor C. gasi računar 7. Za izvršenje softverskog reseta računara, kombinaciju tipki Ctrl+Alt+Del je potrebno uzastopno pritisnuti A. 1 put B. 2 puta C. 3 puta 8. Ulazna jedinica nije A. miš B. Štampač C. Tastatura 9. Za crtanje kružnice i kvadrata u Windows aplikaciji Paint, na tastaturi je potrebno držati stisnutu tipki A. Ctrl B. Alt C. Shift 10. Neizostavni znak u svakoj adresi elektronske pošte je A. % B. & 11. Zaokruži 5 programskih jezika 1. C+ 2. PASCAL 3. NEWTON 4. FORTRAN 5. JAVA 6. WORD 7. COBOL 8. WINDOWS 12. Poveži kojoj naredbi programskog jezika BASIC odgovara koji opis djelovanja! INPUT završetak programa REM naredba izlaza PRINT naredba grananja END naredba ulaza IF.. THEN komentar U zadacima dopuni rečenice! 13. Softver se dijeli na i. 14. Jedan bajt je kombinacija memorijskih ćelija. 136

142 15. 1MB = bajta. 16. Najmanja adresabilna tačka na ekranu se naziva. 17. Memorija iz koje se podaci mogu uzimati samo radi čitanja je memorija. 18. Programi koji nemaju nikakvu drugu svrhu osim da nanesu štetu na računaru nazivaju se računarski. 19. Pretvori broj 8395 iz dekadnog brojnog sistema u binarni! 20. Ako promjenjive M i N imaju vrijednost M = 10 i N = 20, odredite koje će vrijednosti promjenjive K i L imati nakon izvršenja sljedećih naredbi IF ((M < 15) AND (N < 15)) THEN K = N + M ELSE K = N M IF ((M > 15) OR (N > 15)) THEN L = N * M ELSE L = N M K = ; L = ; 9.6. Zadaci 2015 OPĆINSKO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA U zadacima 1 5 zaokruži jedan tačan odgovor (DA ili NE)! 1. Virtualna memorija je brža od radne memorije. DA NE 2. Firewall je antivirusni program u sklopu Microsoft Windowsa. DA NE 3. Neizostavni dio u svakoj adresi elektronske pošte je WWW. DA NE 4. Facebook je stariji od Twitera. DA NE 5. Bajt je niz od 10 bitova. DA NE U zadacima 6 10 zaokruži samo jedan tačan odgovor (A, B ili C)! 6. Najveća cifra u oktalnom brojnom sistemu je A. 5 B. 7 C Ako za zapis cijelog broja pomoću predznaka i apsolutne vrijednosti koristimo 8 bitova, tada je najveći brij koji meožemo zapisati jednak A. 127 B. 128 C Ulazna jednica nije A. miš B. štampač C. tastatura 9. Obostrano poravnanje teksta u Microsoft Wordu se naziva A. Overwrite B. Twoside C. Justify 10. Linux je 137

143 A. Operativni sistem B. Društvena mreža C. Antivirusni program 11. Neka u Excelovoj tablici imamo sljedeću situaciju A B C D E F G H I Ako u ćeliju I1 naredbu = COUNTIF (A1 : G1; ">2") onda će u toj ćeliji, nakon izvršenja naredbe, biti ispisana vrijednost. 12. U Microsoft Wordu imamo sljedeću situaciju: Danas je bio lijep dan. Putovali smo na more. Kada smo došli na more, mama i tata su raspakovaki stvari a ja sam otišla na plažu. Šta je autor teksta napravio na mjestima gdje se pojavljuje znak? 13. U oktalnom brojnom sistemu izračunati Pretvoriti broj iz dekadnog u heksadecimalni brojni sistem. 15. Zadane su sljedeće vrijednosti i algoritam K(1) K(2) K(3) K(4) K(5) K(6) K(7) B A = 0 za J = 1, 2, 3, 4, 5, 6, 7 radi A = 2A ako je K(J) = 1 tada je A = A + B Nakon što se izvrše dane naredbe, A ima vrijednost Zadaci 2016 OPĆINSKO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA U zadacima 1-5 zaokruži jedan tačan odgovor (DA ili NE)! 1. Jednim bitom se može prikazati 8 podataka. DA NE 2. Prvi mikroprocesor poznat je pod nazivom ENIAC. DA NE 3. Neizostavni dio u svakoj adresi elektronske pošte je www. DA NE 4. HTML je simbolički jezik. DA NE 5. Mikrofon je vanjska memorija. DA NE 138

144 U zadacima 6 10 zaokruži samo jedan tačan odgovor (A, B ili C)! 6. Najveća cifra u oktalnom brojnom sistemu je A. 9 B. 10 C Nastavak za programsku datoteku je A..doc B..xml C..com 8. U koju memoriju se ne mogu dodavati podaci A. USB B. RAM C. ROM 9. 1TB je jednak A KB B MB C. 1000GB 10. Kako se naziva program koji se prilikom uključivanja računara prvi učitava u radnu memoriju računara? A. Operativni sistem B. Facebook C. Mozilla Firefox 11. Neka u Excelovoj tablici imamo sljedeću situaciju A B C D E F G H Ako u ćeliju H15 ukucamo naredbu = SUM (B15:E15) onda će u toj ćeliji, nakon izvršenja naredbe, biti ispisana vrijednost. 12. Na liniji ispred opisa koraka upisati brojeve od 1 do 4 kojima se određuje redoslijed izvršenja radnji kada u Microsoft Wordu vršimo kopiranje određenog sadržaja: a) odabrati naredbu "Kopiraj"(Copy) b) odabrati naredbu "Zalijepi"(Paste) c) označiti ono što se kopira d) premjestiti pokazivač (kursor) na mjesto gdje želimo kopirati 13. U binarnom brojnom sistemu izračunati Pretvoriti broj BA iz heksadecimalnog brojnog sistema u dekadni. 15. Kolike će biti vrijednosti varijabli A, B i C nakon izvođenja sljedećeg algoritma: A:= 0; B:= 5; C:= 10; A:= A + B + C; B:= A + B + C; C:= A + B + C; Odgovor: A =, B =, C =, 139

145 9.8. Zadaci 2017 OPĆINSKO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA U zadacima 1-5 zaokruži jedan tačan odgovor (DA ili NE)! 1. Sadržaj radne memorije se briše nakon isključivanja računara. DA NE 2. Dropper je program koji služi za rezervisanje prostora u Dropbox-u. DA NE 3. U sljedećoj putanji su 2 foldera C:\Bosna\gercegovina\Sarajevo.txt. DA NE 4. Prvi korisnik USB sticka je bio Charles Babbage. DA NE 5. Skraćenica mjerne jedinice za rezoluciju skenera je skn. DA NE U zadacima 6 10 zaokruži samo jedan tačan odgovor (A, B ili C)! 6. Funkcija sistema u kojoj se podaci i informacije smještaju na organiziran način kako bi se mogli dalje obrađivati i koristiti se naziva A. memorisanje B. kodiranje C. download 7. Paskalova analitička mašina je razvijena u A. XVII stoljeću B. XXV stoljeću C. X stoljeću 8. Koliko stranica ima tekstualna datoteka od 100KB, ako znamo da na svaku stranicu stane 400 znakova, a tekst je kodiran proširenim ASCII kodom? A. 4 B. 40 C Za koju vrijednost promjenjive X vrijedi sljedeća jednakost X div (X mod 100) div 10 + X mod 10 = 30 A B C Koliko najmanje binarnih cifara nam treba da bismo mogli zapisati 16 različitih zapisa? A. 2 B. 4 C Neka u Excelovoj tablici imamo sljedeću situaciju A B C D E F G H Ako u ćeliju H15 ukucamo naredbu = ABS (A15:F15) onda će u toj ćeliji, nakon izvršenja naredbe, biti ispisana vrijednost. 12. Na liniji ispred opisa koraka upisati brojeve od 1 do 4 kojima se određuje redoslijed koraka u programiranju: a) Testiranje programa 140

146 b) Osmišljavanje algoritma c) Pisanje programa u nekom programskom jeziku d) Opis zadatka 13. Odrediti X ako je ABC (16) (2) + X (10) = 5375 (8) 14. Šta će se desiti ako se u programu Power Point, za vrijeme izvođenja prezentacije, pritisne tipka B?. 15. Kolike će biti vrijednosti varijabli A i B nakon izvođenja sljedećeg algoritma: A:= 3; B:= 7; ako je (A < B) onda A:= 2 * A + 1; ako je (A < B) onda B:= B A; inače A:= A B; ako je (A + B < 6) onda A:= A + A; inače B:= B + B; Odgovor: A =, B =. 10. TEORETSKI ZADACI S KANTONALNIH TAKMIČENJA Zadaci 2011 KANTONALNO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA Informacija i podatak su isto. DA NE 2. Softver su svi program koji se nalaze u nekom računaru. DA NE 3. Najvažniji dio računara (njegovo srce) je memorija. DA NE 4. Ako su uključena mala slova, da bismo aktivirali velika moramo koristiti: A: CapsLock B: Ctrl C: Shift D: Alt E: Enter F: Delete 5. Određenim pojmovima pridruži značenje: 141

147 I generacija računara tranzistor II generacija računara integrisana kola III generacija računara elektronske cijevi IV generacija računara mikroprocesor 6. RAM je memorija iz koje se podaci mogu samo čitati. DA NE 7. DOS naredba DIR_p*.exe radi: Prikazuje sve datoteke sa exe ekstenzijom čije ime počinje sa slovom p. DA NE 8. Rezolucija monitora je ukupan broj piksela. DA NE 9. Datoteka (engl. File) je skup istovrsnih podataka zapisanih na jednom mjestu i nazvanih zajedničkim imenom. DA NE 10. Naziv bit dolazi od engl. Binary digit što u prevodu znači binarna cifra. DA NE 11. Dio centralne jedinice gdje se vrši obrada podataka se naziva procesor, a skraćeni naziv je CPU. DA NE 12. Kako u Excel-u preći u novi red iste ćelije? A: Ctrl + Alta B: Shift + Enter C: Alt + Enter D: Ctrl + Shift 13. Koji je broj napisan u binarnom brojnom sistemu? A: B: C: D: Zadaci 2012 KANTONALNO TAKMIČENJE IZ INFORMATIKE ZA UČENIKE OSNOVNIH ŠKOLA Na sljedeća pitanja se odgovara tako da se upiše slovo koje se nalazi ispred tačnog odgovora na za to predviđeno mjesto (crtu): r/b Pitanje: bodovi mogući ostvareni Koji od sljedećih uređaja vam treba za komunikaciju sa drugim računarima putem telefonske mreže? 1. a) CD-ROM b) Modem c) Ploter d) Zvučnici 2 Odgovor: 142

148 2. Šta je od navedenog operativni sistem? a) Lotus b) PowerPoint 2010 c) Linux Ubuntu d) Corel X5 2 Odgovor: 3. Koji od navedenih uređaja je prikladan za pravljenje sigurnosne kopije (backup) sa mrežnog servera podataka? a) Modem b) Magnetna traka c) Ploter d) CD/RW 2 4. Odgovor: Korisnički ugovor o licenci (End User Licence Agreement): a) je oblik oglošavanja između autora ili izdavača softverske aplikacije i korisnika b) daje korisniku ekskluzivno pravo za kopiranje i prodaju softvera drugim potecionalnim korisnicima c) garantuje vlasništvo softvera korisniku softvera d) je zakonski ugovor između autora ili izdavača softverske aplikacije i korisnika s obzirom na uslove distribucije, dalje prodaje i ograničenja upotrebe. 2 Odgovor: Šta je od navedenog ispravno ime za sliku ispod? 5. a) Naslovna traka b) Klizna traka c) Statusna traka d) Traka menija 2 Odgovor: 143

149 .docx je ekstenzija (nastavak) za: 6. a) Ekstenzija za Word 1997 dokumenta b) Ekstenzija za Excel 2007 dokumenta c) Ekstenzija za Word 2007 dokumenta d) Niti jedno od pobrojanog 2 7. Odgovor: Šta znači skraćenica HTTP? a) Hyperlink Transfer protocol b) Hyperlink Transmission Procedure c) Hypertext Transfer Protocol d) Hypertext Transmission Procedure 2 Odgovor: 8. Simbol na ravnalu Office aplikacija obojan crnom bojom služi za: a) uvlačenje cijelog odlomka b) uvlačenje prvog retka c) uvlačenje svih redaka osim prvog u odlomku d) ništa od navedenog 2 Odgovor: 9. Rezultat izvršenja formule u ćeliji B1 je: Odgovor: Poredaj po veličini sljedeće kapacitete memorije počevši od najmanjeg: a) 1100MB b) 0.1GB c) 103kB d) 1GB e) 1500kB 2 Odgovor: 144

150 Tačan naziv trake na slici je: a) startna traka b) alatna traka c) programska traka d) zadaćna traka Odgovor: Koja će vrijednosti pisati u ćeliji C1 nakon izvršenja funkcije koja se u njoj nalazi: 2 2 =IF(SUM(A1:A4)>SUM(B1:B4);AVERAGE(A1:A4);SUM(B1;B4)) Odgovor: Prikazati realni broj (10) binarno i oktalno! 2 Odgovor: Kolika je vrijednost varijabli g i h nakon izvršenja niza naredbi? (DIV je rezultat cjelobrojnog dijeljenja, MOD je ostatak cjelobrojnog dijeljenja). g=4 h=15 g=g+h h=g h g=g h g=g MOD h h=g DIV h 2 Odgovor: 15. Opcija "Track Changes" u MS Wordu služi za: a) Praćenje promjena koje se dešavaju u Word dokumentu b) Provjeru pravopisa c) Označavanje novih pojmova u Wordu d) Ništa od navedenog Odgovor: 2 145

Programiranje III razred

Programiranje III razred Tehnička škola 9. maj Bačka Palanka Programiranje III razred Naredbe ciklusa for petlja Naredbe ciklusa Veoma često se ukazuje potreba za ponavljanjem nekih naredbi više puta tj. za ponavljanjem nekog

More information

Učitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0.

Učitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0. Kontrolne naredbe Primjeri: Opšti oblik razgranate strukture (if sa ) if (uslov) Naredba 1 ili blok naredbi1 Naredba 2 ili blok naredbi2 Učitati broj x i štampati vrijednost double x, z; Scanner in=new

More information

Upute za postavljanje Outlook Expressa

Upute za postavljanje Outlook Expressa Upute za postavljanje Outlook Expressa Prije postavljanja klijenata morate obavezno obaviti prvu prijavu na web mail kako bi aktivirali vaš račun na novom sustavu. Ukoliko niste obavili prvu prijavu, nećete

More information

Uvod u programiranje - vežbe. Kontrola toka izvršavanja programa

Uvod u programiranje - vežbe. Kontrola toka izvršavanja programa Uvod u programiranje - vežbe Kontrola toka izvršavanja programa Naredbe za kontrolu toka if, if-else, switch uslovni operator (?:) for, while, do-while break, continue, return if if (uslov) naredba; if

More information

Sberbank Business Online na Mozilla FireFox

Sberbank Business Online na Mozilla FireFox Sberbank Business Online na Mozilla FireFox Verzija 1.6 Srpanj 2016. Sberbank d.d. Stranica 1 SADRŽAJ 1 INSTALACIJA... 2 2 POKRETANJE MOZILLE FIREFOX... 3 2.1 IMPORT SECURITY MODULA... 4 2.2 AUTOMATSKI

More information

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end.

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end. NAREDBA CIKLUSA SA PREDUSLOVOM WHILE 1.Odrediti vrednosti s i p nakon izvrsenja sledecih naredbi za dato a=43, a=34, a=105 program p1; var a,s,p:integer; write('unesite a:');readln(a); p:=a; s:=0; while

More information

Naredbe za kontrolu toka

Naredbe za kontrolu toka Naredbe za kontrolu toka Naredbe za kontrolu toka Nakon odslušanog bit ćete u stanju: objasniti semantiku naredbi za kontrolu postupaka navesti sintaksu naredbi if, if-else i case u programskom jeziku

More information

Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list.

Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list. Ime i prezime: Asistent: Predava : Programiranje (C) 1. kolokvij 14. 4. 2003. 1. 2. 3. 4. 5. 6. 7. Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj

More information

Prva recenica. Druga recenica.

Prva recenica. Druga recenica. Algoritmi i programiranje Predavanje 4 METODE LOKALNE, GLOBALNE VARIJABLE I KONSTANTE METODA je imenovani izdvojeni slijed naredbi koji rješava određeni zadatak i po potrebi se poziva jednom ili više puta

More information

VRIJEDNOSTI ATRIBUTA

VRIJEDNOSTI ATRIBUTA VRIJEDNOSTI ATRIBUTA Svaki atribut (bilo da je primarni ključ, vanjski ključ ili običan atribut) može i ne mora imati ograničenja na svojim vrijednostima. Neka od ograničenja nad atributima: Null / Not

More information

PREDMET. Osnove Java Programiranja. Čas JAVADOC

PREDMET. Osnove Java Programiranja. Čas JAVADOC PREDMET Osnove Java Programiranja JAVADOC Copyright 2010 UNIVERZITET METROPOLITAN, Beograd. Sva prava zadržana. Bez prethodne pismene dozvole od strane Univerziteta METROPOLITAN zabranjena je reprodukcija,

More information

CSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets

CSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets CSS CSS CSS: Cascading Style Sheets - Opisuje izgled (appearance) i raspored (layout) stranice - Sastoji se od CSS pravila, koji defini[u skup stilova selector { property: value; 1 Font face: font-family

More information

VB komande. Programiranje 1

VB komande. Programiranje 1 VB komande Programiranje 1 Zadatak 1: Sastaviti program koji se sastoji iz jedne ListBox kontrole, jedne Textbox kontrole i dva komandna dugmeta. Klikom na prvo komandno dugme umeće se u ListBox sadržaj

More information

PARALELNO PROGRAMIRANJE

PARALELNO PROGRAMIRANJE Predavanje 09 Odjel za matematiku 1 PARALELNO PROGRAMIRANJE POSIX threadovi za C++ Predavanje 09 Odjel za matematiku 2 Programske niti (thread) unutar procesa Danas ćemo se upoznati s POSIX thread bibliotekom

More information

Push(3,&S) 3 1 S Uvijek trebamo paziti da ne zovemo Pop nad praznim stogom.

Push(3,&S) 3 1 S Uvijek trebamo paziti da ne zovemo Pop nad praznim stogom. tog (tack) tog je posebna vrsta liste: od svih operacija dozvoljeno je ubacivanje, brisanje i gledanje sadržaja elementa samo na jednom kraju liste koji zovemo vrh stoga. tog zovemo i lifo last in first

More information

Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb,

Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb, Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb, 13.04.2017. Podešavanje Hyper-V Servera 2016 za RSAT upravljanje Dario Štefek Lokacije za preuzimanje: Microsoft Hyper-V Server 2016 https://www.microsoft.com/en-us/evalcenter/evaluate-hyper-v-server-2016

More information

Uputstvo za podešavanje mail klijenta

Uputstvo za podešavanje mail klijenta Uputstvo za podešavanje mail klijenta 1. Podešavanje Thunderbird mail klijenta 1.1 Dodavanje mail naloga Da biste podesili Vaš mail klijent (u ovom slučaju Thunderbird) da prima i šalje mail-ove potrebno

More information

Uputstvo za korišćenje logrotate funkcije

Uputstvo za korišćenje logrotate funkcije Copyright AMRES Sadržaj Uvod 3 Podešavanja logrotate konfiguracionog fajla 4 Strana 2 od 5 Uvod Ukoliko je aktivirano logovanje za RADIUS proces, može se desiti da posle određenog vremena server bude preopterećen

More information

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a Webmail sistem ima podršku za SSL (HTTPS). Korištenjem ovog protokola sva komunikacija između Webmail sistema i vašeg Web čitača je kriptovana. Prilikom pristupa

More information

modifier returnvaluetype methodname(list of parameters) { // Method body; }

modifier returnvaluetype methodname(list of parameters) { // Method body; } Početna grupa, 28.11.2015. Metodi 1. Metodi opšti oblik metoda: modifier returnvaluetype methodname(list of parameters) // Method body; 2. Ime metoda: početno slovo je malo, a zatim slijede slova, cifre

More information

Uvod, varijable, naredbe, petlje

Uvod, varijable, naredbe, petlje 8. JavaScript Uvod, varijable, naredbe, petlje M. Zekić-Sušac 1 Što je JavaScript? JavaScript je najpopularniji skriptni jezik na Internetu kojeg podržavaju svi poznatiji preglednici (Internet Explorer,

More information

Sadržaj predavanja 02. Cjelobrojni tip podataka(1/3) Cjelobrojni tip podataka(2/3) Cjelobrojni tip podataka(3/3) prec(short) prec(int) prec(long) int

Sadržaj predavanja 02. Cjelobrojni tip podataka(1/3) Cjelobrojni tip podataka(2/3) Cjelobrojni tip podataka(3/3) prec(short) prec(int) prec(long) int Sadržaj predavanja 02 Cjelobrojni tip podataka(1/3) Cjelobrojni tip podataka Realni tip podataka Aritmetički operatori Izrazi Operatori inkrement i dekrement Kontrola toka programa Naredba za jednostruki

More information

Primjer ispisuje rečenicu "Dobro dosli na brzi tecaj C-a" na ekranu

Primjer ispisuje rečenicu Dobro dosli na brzi tecaj C-a na ekranu Osnove programiranja p. 1/27 Brzi tečaj C-a Primjer ispisuje rečenicu "Dobro dosli na brzi tecaj C-a" na ekranu Programiranje se sastoji od nekoliko koraka - pisanje programa u tekstualnom editoru (joe,

More information

2. Linijska algoritamska struktura

2. Linijska algoritamska struktura Univerzitet u Nišu Građevinsko-arhitektonski fakultet Informatika 2 2. Linijska algoritamska struktura Milica Ćirić Blokovi za prikaz algoritma Algoritam se vizuelno može prikazati pomoću blok dijagrama,

More information

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010 Programiranje Programski jezik C prof.dr.sc. Ivo Ipšić 2009/2010 Sadržaj Ulazno-izlazne funkcije Datoteke Formatirane datoteke Funkcije za rad s datotekama Primjeri Datoteke komunikacija između programa

More information

Veliki računski zadaci mogu se razbiti u manje delove i time se omogućava ljudima da iskoriste ono što su neki drugi već uradili, umesto da počinju

Veliki računski zadaci mogu se razbiti u manje delove i time se omogućava ljudima da iskoriste ono što su neki drugi već uradili, umesto da počinju Staša Vujičić Čas 9 Veliki računski zadaci mogu se razbiti u manje delove i time se omogućava ljudima da iskoriste ono što su neki drugi već uradili, umesto da počinju sve od početka. Odgovarajuće funkcije

More information

VEŽBA 5 do while petlja, switch case

VEŽBA 5 do while petlja, switch case VEŽBA do while petlja, switch case Petlja sa ulaznim uslovom do while U slučaju do while petlje obavezno izvršavanje bar jedne iteracije se postiže tako što je upravljački izraz petlje na samom dnu petlje.

More information

Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi

Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi DELEGATI Bezbedni pokazivači na funkcije Jer garantuju vrednost deklarisanog tipa. Prevodilac prijavljuje grešku ako pokušate da povežete

More information

SVEUČILIŠTE U MOSTARU FAKULTET PRIRODOSLOVNO-MATEMATIČKIH I ODGOJNIH ZNANOSTI BAZE PODATAKA 2. Doc.dr.sc. GORAN KRALJEVIĆ BAZE PODATAKA 2 1

SVEUČILIŠTE U MOSTARU FAKULTET PRIRODOSLOVNO-MATEMATIČKIH I ODGOJNIH ZNANOSTI BAZE PODATAKA 2. Doc.dr.sc. GORAN KRALJEVIĆ BAZE PODATAKA 2 1 SVEUČILIŠTE U MOSTARU FAKULTET PRIRODOSLOVNO-MATEMATIČKIH I ODGOJNIH ZNANOSTI BAZE PODATAKA 2 Doc.dr.sc. GORAN KRALJEVIĆ BAZE PODATAKA 2 1 Baze podataka 2 Web: http://www.fpmoz.ba/gkraljevic Pitanja, primjedbe,

More information

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET Katedra za elektroniku Računarska elektronika Grupa br. 11 Projekat br. 8 Studenti: Stefan Vukašinović 466/2013 Jelena Urošević 99/2013 Tekst projekta :

More information

Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0

Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0 POM - Pomoć korisnicima Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0 IZUM, 2016 COBISS, COMARC, COBIB, COLIB, IZUM su zaštićeni znaci u posedu

More information

Rekurzivne metode. Posmatrajmo rekurzivan metod kojim u objektu listbox1 klase ListBox upisujemo sve prirodne brojeve od 1 do datog n.

Rekurzivne metode. Posmatrajmo rekurzivan metod kojim u objektu listbox1 klase ListBox upisujemo sve prirodne brojeve od 1 do datog n. Rekurzivne metode Rekurzivan metod je onaj metod koji u nekoj svojoj instrukciji sadrži poziv samog sebe. Svakako prilikom kreiranja rekurzivnog metoda moramo voditi računa da ne dodje do beskonačne rekurzije

More information

PROGRAMIRANJE. Amir Hajdar

PROGRAMIRANJE. Amir Hajdar PROGRAMIRANJE Amir Hajdar Teme 2 Klase i objekti u Javi Primjer kroz klasu Krug Atributi i metode Inicijalizacija objekata (konstruktori) Polymorphism Statičke varijable i metode This Klase i objekti u

More information

Numeričke metode i praktikum

Numeričke metode i praktikum Numeričke metode i praktikum Aleksandar Maksimović IRB / 23/03/2006 / Str. 1 vektori Vektor u 3D prostoru. C: int v1[3]; v1[0]=a;v1[1]=b;v1[2]=c; Fortran: INTEGER V1(3) V1(1)=a V1(2)=b V1(3)=c Skalarni

More information

Zadaci za Tutorijal 2.

Zadaci za Tutorijal 2. Dr. Željko Jurić: Tehnike programiranja /kroz programski jezik C++/ Tutorijal 2 Zadaci predviđeni za rad na laboratorijskim vježbama uz pomoć tutora Akademska godina 2013/14 Zadaci za Tutorijal 2. NAPOMENA:

More information

ARDUINO KROZ JEDNOSTAVNE PRIMJERE - pripreme za natjecanja -

ARDUINO KROZ JEDNOSTAVNE PRIMJERE - pripreme za natjecanja - ARDUINO KROZ JEDNOSTAVNE PRIMJERE - pripreme za natjecanja - PRIPREMA 5-2015 DVOSMJERNA SERIJSKA KOMUNIKACIJA Paolo Zenzerović, mag. ing. el. Zagreb, 2015. 2 ARDUINO KROZ JEDNOSTAVNE PRIMJERE DVOSMJERNA

More information

For. 1) program ispis; {ispisuje brojeve od 1 do 5 jedan ispod drugog} uses wincrt; var s,i:integer; begin for i:=1 to 5do writeln(i); end.

For. 1) program ispis; {ispisuje brojeve od 1 do 5 jedan ispod drugog} uses wincrt; var s,i:integer; begin for i:=1 to 5do writeln(i); end. For 1) program ispis; {ispisuje brojeve od 1 do 5 jedan ispod drugog} for i:=1 to 5do writeln(i); 2) program ispis; {ispisuje brojeve od 5 do 1 jedan ispod drugog} for i:=5 downto 1 do writeln(i); 3) program

More information

Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo

Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo Nasledjivanje klasa Modifikator new class A { public virtual void F() { Console.WriteLine("I am A"); } } class B : A { public override void F()

More information

24/03/2018. Deklaracija promenljivih. Inicijalizacija promenljivih. Deklaracija i inicijalizacija promenljivih

24/03/2018. Deklaracija promenljivih. Inicijalizacija promenljivih. Deklaracija i inicijalizacija promenljivih Deklaracija promenljivih Inicijalizacija promenljivih Deklaracija promenljive obuhvata: dodelu simboličkog imena promenljivoj i određivanje tipa promenljive (tip određuje koja će vrsta memorijskog registra

More information

Programske paradigme Funkcionalna paradigma

Programske paradigme Funkcionalna paradigma Programske paradigme Funkcionalna paradigma 1. čas: Uvod u funkcionalno programiranje. Programski jezik Haskel. Upoznavanje sa razvojnim okruženjem. Tipovi podataka. Funkcionalno programiranje Stil u programiranju

More information

INSTALACIJA RAZVOJNOG OKRUŽENJA DEV-C++

INSTALACIJA RAZVOJNOG OKRUŽENJA DEV-C++ INSTALACIJA RAZVOJNOG OKRUŽENJA DEV-C++ Duplim klikom miša na program dev cpp dem c++ pokrenuti instalaciju. Odabrati engleski jezik i pritisnuti I Agree. Odabrati punu instalaciju sa Full. Ostalo sve

More information

Računarske osnove Interneta (SI3ROI, IR4ROI)

Računarske osnove Interneta (SI3ROI, IR4ROI) Računarske osnove terneta (SI3ROI, IR4ROI) Vežbe MPLS Predavač: 08.11.2011. Dražen Drašković, drazen.draskovic@etf.rs Autori: Dražen Drašković Naučili ste na predavanjima MPLS (Multi-Protocol Label Switching)

More information

Izrada VI laboratorijske vježbe

Izrada VI laboratorijske vježbe Izrada VI laboratorijske vježbe 1. Programirati proceduru koja se aktivira sa Standard palete alatki klikom na button Fajlovi. Prilikom startovanja procedure prikazuje se forma koja sadrži jedan list box

More information

JavaScript i HTML DOM

JavaScript i HTML DOM 4. vježbe iz WEB programiranja četvrtak, 22. ožujka 2012. JavaScript 1. dio JavaScript i Što je DOM? Kako JS koristi DOM? Pristup elementima dokumenta Promjena i učitavanje vrijednosti tagova Primjer 1.

More information

Nizovi. Programiranje 1

Nizovi. Programiranje 1 Nizovi Programiranje 1 VB Nizovi Zamislite da imate 10,000 šešira i da morate svakome od njih dati jedinstvenu oznaku. Kako biste to napravili? Bilo bi razumno svakom šeširu dati njegov broj. Sada možete

More information

SELECT CASE i FOR NEXT. Programiranje 1

SELECT CASE i FOR NEXT. Programiranje 1 SELECT CASE i FOR NEXT Programiranje 1 VISUAL BASIC SELECT SELECT komanda služi umjesto višestrukih IF THEN naredbi u slučaju grananja programa, zavisno o vrijednosti ispitivanog izraza početak v1 var

More information

Vidljivost TipPovratneVrednosti ImeFunkcije (NizParametara) { TeloFunkcije }

Vidljivost TipPovratneVrednosti ImeFunkcije (NizParametara) { TeloFunkcije } 1. FUNKCIJE I STRUKTRUE PROGRAMA Složeni problemi lakše se rašavaju ako se podele na manje celine koje mogu nezavisno da se rešavaju. Rešenje celokupnog složenog problema dobija se kombinovanjem rešenja

More information

GUI - događaji (Events) i izuzeci. Bojan Tomić

GUI - događaji (Events) i izuzeci. Bojan Tomić GUI - događaji (Events) i izuzeci Bojan Tomić Događaji GUI reaguje na događaje (events) Događaj je neka akcija koju korisnik programa ili neko drugi izvrši korišćenjem perifernih uređaja (uglavnom miša

More information

Programiranje III razred

Programiranje III razred Tehnička škola 9. maj Bačka Palanka Programiranje III razred Konverzija tipova Konverzija tipova Prilikom komunikacije aplikacije sa korisnikom, korisnik najčešće unosi ulazne podatke koristeći tastaturu.

More information

/*#include <iostream> // Prvi zadatak sa integralnomg ispita

/*#include <iostream> // Prvi zadatak sa integralnomg ispita /*#include // Prvi zadatak sa integralnomg ispita 27.01.2015 #include using std::setw; using std::cout; const int red(5), kolona(4); void unos(int[]); void ispis(int[][kolona]); float

More information

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević Sveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 08 Zvonimir Bujanović Slaven Kožić Vinko Petričević Uvod: (X)HTML i CSS Na ovim i idućim vježbama naučit ćemo osnove jezika za opisivanje

More information

Programiranje 1 Programski jezik C 2. čas. Mirko Spasić

Programiranje 1 Programski jezik C 2. čas. Mirko Spasić Programiranje 1 Programski jezik C 2. čas Mirko Spasić Operatori U C-u postoji veliki broj operatora. Mogu biti unarni (imaju jedan argument) i binarni (dva argumenta). Unarni operatori mogu biti prefiksni

More information

Vežbe - XII nedelja PHP Doc

Vežbe - XII nedelja PHP Doc Vežbe - XII nedelja PHP Doc Dražen Drašković, asistent Elektrotehnički fakultet Univerziteta u Beogradu Verzija alata JavaDoc za programski jezik PHP Standard za komentarisanje PHP koda Omogućava generisanje

More information

Uputa za instaliranje programske potpore za operativni sustav WINDOWS

Uputa za instaliranje programske potpore za operativni sustav WINDOWS ZABA SignErgy Desktop aplikacija Uputa za instaliranje programske potpore za operativni sustav WINDOWS SADRŽAJ 1. UVOD 3 2. PODRŽANI OPERATIVNI SUSTAVI 3 3. PROGRAMSKI PREDUVJETI ZA INSTALACIJU PROGRAMSKE

More information

VHDLPrimeri Poglavlje5.doc

VHDLPrimeri Poglavlje5.doc 5. VHDL opis kola koja obavljaju osnovne aritmetičke funkcije Sabirači Jednobitni potpuni sabirač definisan je tablicom istinitosti iz Tabele 5.1. Tabela 5.1. cin a b sum cout 0 0 0 0 0 0 0 1 1 0 0 1 0

More information

Numerical Computation

Numerical Computation GNU Octave Numerical Computation vrlo često u tehnici retko stvarni problemi imaju closed-form solution čak i kad imaju, pitanje upotrebljivosti mnogo detalja numerički pristup u početku tretirano kao

More information

Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje. WEB programiranje HTML & CSS

Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje. WEB programiranje HTML & CSS Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje WEB programiranje HTML & CSS Autor/i: Juraj Benić 2018 1. Zadatak Kreirati stranicu kojoj će naslov biti Zadatak 1. i veličina teksta 20px te staviti

More information

VDSL modem Zyxel VMG1312-B10A/B30A

VDSL modem Zyxel VMG1312-B10A/B30A VDSL modem Zyxel VMG1312-B10A/B30A Default Login Details LAN IP Address http://192.168.2.1 User Name user Password 1234 Funkcionalnost lampica Power lampica treperi kratko vrijeme nakon uključivanja modema,

More information

Prirodno-matematički fakultet u Nišu Departman za fiziku. dr Dejan S. Aleksić Programiranje u fizici

Prirodno-matematički fakultet u Nišu Departman za fiziku. dr Dejan S. Aleksić Programiranje u fizici Programiranje u fizici Prirodno-matematički fakultet u Nišu Departman za fiziku dr Dejan S. Aleksić Programiranje u fizici 7-8 Definicija, inicijalizacija promenljivih 2/21 u C-u Program napisan u programskog

More information

namespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); }

namespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); } Spojnice using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO;

More information

pojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1

pojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1 NIZOVI Niz deklarišemo navođenjemtipa elemenata za kojim sledi par srednjih zagrada[] i naziv niza. Ako je niz višedimenzionalni između zagrada[] se navode zarezi, čiji je broj za jedan manji od dimenzija

More information

[] znači opciono; znači ili. Strana 3 od 5

[] znači opciono; znači ili. Strana 3 od 5 Database Programming with SQL kurs 2017 database design and programming with sql students slajdovi 2-1 Columns Characters and Rows Concatenation (pridruživanje) stanje povezanosti kao kod lanca; unija

More information

Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi.

Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi. Obrada izuzetaka Šta je izuzetak? Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi. Prosleđuje izuzetak,

More information

Binarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133

Binarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133 Binarne hrpe Potpuno binarno stablo binarno stablo u kojem svaki čvor koji nije list ima točno 2 nasljednika. Binarna hrpa potpuno binarno stablo u kojem svaki čvor koji nije list ima veću ključnu vrijednost

More information

Instalacija i podešavanje računara, sa WindowsXP OS-om, za pristup Internetu preko modemskih linija RCUB-a

Instalacija i podešavanje računara, sa WindowsXP OS-om, za pristup Internetu preko modemskih linija RCUB-a Instalacija i podešavanje računara, sa WindowsXP OS-om, za pristup Internetu preko modemskih linija RCUB-a Podešavanje Dial-Up Networking-a Ovo podešavanje se vrši iz Control panel-a (Start - Settings

More information

... ; ako je a n parno. ; ako je a n neparno

... ; ako je a n parno. ; ako je a n neparno Zadaci vezani za ciklus sa preduslovom (WHILE) Zad. Napisati program za izračunavanje n_tog stepena broja a. Zad2. Napisati program za izračunavanje sume S kvadrata parnih i kubova neparnih prirodnih brojeva

More information

4.1 Učitavanje podatka tipa string Učitavanje brojčanih vrijednosti Rad sa dinamičkim objektima... 7

4.1 Učitavanje podatka tipa string Učitavanje brojčanih vrijednosti Rad sa dinamičkim objektima... 7 Java zadaci Zadaci 1. Priprema novog projekta... 1 2. Organizacija klasa u fajlove... 2 3. Ispis vrijednosti u konzolni prozor... 3 4. Učitavanje vrijednosti sa konzolnog prozora... 4 4.1 Učitavanje podatka

More information

Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt

Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt Funkcionalno programiranje Interoperabilnost jezika Scala i Java Prevođenje u Java bajt kod Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući

More information

Backup i Restore C particije ili Windowsa sa NORTON-om

Backup i Restore C particije ili Windowsa sa NORTON-om BRZO KOPIRANJE I RESTAURIRANJE DISKOVA (programski paket Norton SystemWorks) OBJAŠNJENJE Backup i Restore C particije ili Windowsa sa NORTON-om Je li vam se nekada srušio operativni sustav ili pokvario

More information

PRIJEMNI ISPIT IZ INFORMATIKE

PRIJEMNI ISPIT IZ INFORMATIKE PRIRODNO-MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Petak,04.09.2015 PRIJEMNI ISPIT IZ INFORMATIKE PITANJA I ZADACI IZ INFORMATIKE 1. Kombinacija tastera Ctrl+C koristi se u Windows aplikacijama

More information

Jezik Baze Podataka SQL. Jennifer Widom

Jezik Baze Podataka SQL. Jennifer Widom Jezik Baze Podataka SQL SQL o Jezik koji se koristi u radu sa relacionim bazama podataka o Nije programski jezik i manje je kompleksan. o Koristi se isključivo u radu za bazama podataka. o SQL nije case

More information

Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak...

Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak... Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak... Prof. dr. sc. Tomislav Pribanić Izv. prof. dr. sc. Vedran Podobnik Doc. dr. sc. Marija Seder Sveučilište u Zagrebu Fakultet elektrotehnike

More information

Osnovne strukture podataka

Osnovne strukture podataka Osnovne strukture podataka Osnovni pojmovi Promenljive i konstante su osnovni oblici podataka sa kojima se operiše u programu Deklaracije listaju spisak promenljivih koje ce se koristiti, određuju kog

More information

x y = z Zadaci - procedure

x y = z Zadaci - procedure Zadaci - procedure Zad1. Data je kvadratna meta u koordinatnom sistemu sa koordinatama A(0,0), B(1,0), C(1,1), D(0,1). Sastaviti proceduru Gadjanje koja će odrediti broj poena na sledeći način: ako je

More information

Oracle Proprietary Joins Za upite nad više od jedne tabele korišćenjem Oracle proprietary sintakse koristiti join uslov u WHERE izrazu:

Oracle Proprietary Joins Za upite nad više od jedne tabele korišćenjem Oracle proprietary sintakse koristiti join uslov u WHERE izrazu: Database Programming with SQL kurs 2017 database design and programming with sql students slajdovi 7-1 Oracle Equijoin and Cartesian Product Prethodna sekcija se bavila upitima preko više od jedne tabele

More information

Fortran 90. Numeričke Metode DECEMBAR ĐURĐEVAC NATAŠA

Fortran 90. Numeričke Metode DECEMBAR ĐURĐEVAC NATAŠA Fortran 90 Numeričke Metode DECEMBAR 2007. ĐURĐEVAC NATAŠA Zašto Fortran? jer je konstruisan da bi se koristio za rešavanje matematičkih problema. jer je jednostavan jezik sa dobrim performansama (odlična

More information

<A rel="stylesheet" B="mystylesheet.css" C="text/css" />

<A rel=stylesheet B=mystylesheet.css C=text/css /> 1 od 9 9.4.2013 7:18 EFOS_kol1_2011 - RJEŠENJA 16.4.2011. Uključivanje vanjske mystylesheet.css datoteke sa određenim stilovima, postiže se zadavanjem naredbe unutar HTML koda, koja izgleda ovako:

More information

Uvod u Javu. Programski jezik Java Izvršavanje Java programa BlueJ razvojno okruženje Elementi Jave Tipovi podataka Prvi programi

Uvod u Javu. Programski jezik Java Izvršavanje Java programa BlueJ razvojno okruženje Elementi Jave Tipovi podataka Prvi programi 2 Uvod u Javu Programski jezik Java Izvršavanje Java programa BlueJ razvojno okruženje Elementi Jave Tipovi podataka Prvi programi 12 Java i objektno orijentirano programiranje Programski jezik Java Krajem

More information

operativni sistem part 2

operativni sistem part 2 operativni sistem part 2 zagrevanje... update komandna linija, nastavak... mnoštvo programa (jezik se zaboravlja ako se ne govori) scripting, bash, sh malo uvoda u Python, IDLE, idle malo C (ni)malo IDE,

More information

Uputstvo za konfiguraciju računara za korištenje BIHnet ADSL usluge

Uputstvo za konfiguraciju računara za korištenje BIHnet ADSL usluge Uputstvo za konfiguraciju računara za korištenje BIHnet ADSL usluge Za ADSL vezu na Internet potrebno je: Računar: 133MHz i 16 MB Ram (preporučeno više), 10 Base-T/ 100 Base- TX Ethernet mrežni adapter,

More information

ARDUINO KROZ JEDNOSTAVNE PRIMJERE - pripreme za natjecanja -

ARDUINO KROZ JEDNOSTAVNE PRIMJERE - pripreme za natjecanja - ARDUINO KROZ JEDNOSTAVNE PRIMJERE - pripreme za natjecanja - PRIPREMA 6 SERIJSKA KOMUNIKACIJA S RAČUNALOM I ANALOGNI ULAZI Paolo Zenzerović, mag. ing. el. Zagreb, 2014. 2 ARDUINO KROZ JEDNOSTAVNE PRIMJERE

More information

RAČUNARSKI PRAKTIKUM II

RAČUNARSKI PRAKTIKUM II Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM II Predavanje 07 - Uvod u PHP 4. svibnja 2015. Sastavio: Zvonimir Bujanović PHP PHP Interpretirani skriptni

More information

PKI Applet Desktop Application Uputa za instalaciju programske potpore

PKI Applet Desktop Application Uputa za instalaciju programske potpore 1 SADRŽAJ 1. UVOD 3 2. PODRŽANI OPERATIVNI SUSTAVI 3 3. PROGRAMSKI PREDUVJETI ZA INSTALACIJU PROGRAMSKE POTPORE 3 4. INSTALACIJA PROGRAMSKE POTPORE 3 5. DEINSTALACIJA PROGRAMSKE POTPORE 6 2 1. Uvod PKI

More information

9. RAD S DATOTEKAMA PODATAKA

9. RAD S DATOTEKAMA PODATAKA Rad s datotekama 7-1 9. RAD S DATOTEKAMA PODATAKA U programiranju se često radi sa skupovima podataka koji se čuvaju na jedinicama perfernih memorija, a koji se organizuju u posebne cjeline koje nazivamo

More information

Algoritmi i strukture podataka 2. Čas, Uvod u C++

Algoritmi i strukture podataka 2. Čas, Uvod u C++ Algoritmi i strukture podataka 2. Čas, Uvod u C++ Aleksandar Veljković 2017/2018 1 Uvod Jezik C++ je jezik koji pripada objektno orijentisanoj paradigmi, ipak, u okviru ovog kursa naglasak neće biti na

More information

Desktop IKONE START MENI. TASK BAR traka zadataka RADNA POVRŠINA

Desktop IKONE START MENI. TASK BAR traka zadataka RADNA POVRŠINA Windows XP Windows XP Operativni Sistem koji podržava multi-tasking Kompatibilan sa prethodnim verzijama Windows-a Koristi grafičko okruženje Jednostavan za instalaciju i upotrebu Desktop IKONE START MENI

More information

Iskočni okviri (eng. popup boxes)

Iskočni okviri (eng. popup boxes) 9. JavaScript 2.dio Iskočni okviri, funkcije, petlje, događaji M. Zekić-Sušac 1 Iskočni okviri (eng. popup boxes) U JavaScriptu mogu se koristiti 3 vrste iskočnih okvira: Upozoravajući okviri (eng. alert

More information

JAVA PROGRAMIRANJE 1

JAVA PROGRAMIRANJE 1 JAVA PROGRAMIRANJE 1 1. Uvod 1. Uvod - kako početi programirati u JAVA jeziku Cilj ovog poglavlja je napisati i pokrenuti jednostavnije Java programe. SADRŽAJ 1. O predmetu. 2. Programi i programski jezici.

More information

Uvod u relacione baze podataka

Uvod u relacione baze podataka Uvod u relacione baze podataka Ana Spasić 5. čas 1 Podupiti, operatori exists i in 1. Izdvojiti imena i prezimena studenata koji su položili predmet čiji je identifikator 2001. Rešenje korišćenjem spajanja

More information

for i:=2 to n do if glasovi[i]>max then begin max:=glasovi[i]; k:=i {*promenljiva k ce cuvati indeks takmicara sa najvise glasova *} end;

for i:=2 to n do if glasovi[i]>max then begin max:=glasovi[i]; k:=i {*promenljiva k ce cuvati indeks takmicara sa najvise glasova *} end; {*Na Evroviziji je ucestvovalo n izvodjaca. Koji od njih je osvojio najvise glasova publike?*} program Evrovizija; glasovi:array[1..50] of integer; max,k:integer; writeln('unosi se broj izvodjaca:'); writeln('unose

More information

KINEMATIČKA ANALIZA MEHANIZAMA INDUSTRIJSKIH ROBOTA KORIŠTENJEM PROGRAMSKOG JEZIKA MATLAB

KINEMATIČKA ANALIZA MEHANIZAMA INDUSTRIJSKIH ROBOTA KORIŠTENJEM PROGRAMSKOG JEZIKA MATLAB 10 th International Scientific Conference on Production Engineering DEVELOPMENT AND MODERNIZATION OF PRODUCTION KINEMATIČKA ANALIZA MEHANIZAMA INDUSTRIJSKIH ROBOTA KORIŠTENJEM PROGRAMSKOG JEZIKA MATLAB

More information

IV SQL. Slika 1. SQL*Plus ikona. Slika 2. Dijalog provere identifikacije korisnika. Slika 3. Prozor SQL*Plus programa

IV SQL. Slika 1. SQL*Plus ikona. Slika 2. Dijalog provere identifikacije korisnika. Slika 3. Prozor SQL*Plus programa IV SQL SQL (Structured Query Language) je jezik koji je Američki Institut za Nacionalne Standarde (ANSI - American National Standards Institute) prihvatio kao standardni jezik za relacione baze podataka.

More information

Zadatci Small Basic za 7. Razred ( programa)

Zadatci Small Basic za 7. Razred (  programa) Zadatci Small Basic za 7. Razred (www.smallbasic.com-preuzimanje programa) 1. Nacrtaj slijedeći crtež pomoću naredbi u small basic-u. Boje odaberite po svojim željama. GraphicsWindow.Width = 600 Visina

More information

Univerzitet u Nišu Građevinsko-arhitektonski fakultet. 4. Ciklična algoritamska struktura 5. Jednodimenzionalno polje.

Univerzitet u Nišu Građevinsko-arhitektonski fakultet. 4. Ciklična algoritamska struktura 5. Jednodimenzionalno polje. Univerzitet u Nišu Građevinsko-arhitektonski fakultet Informatika 2 4. Ciklična algoritamska struktura 5. Jednodimenzionalno polje Milica Ćirić Ciklična algoritamska struktura Ciklična struktura (petlja)

More information

Operativni Sistem koji podržava multitasking

Operativni Sistem koji podržava multitasking Windows Windows Operativni Sistem koji podržava multitasking Kompatibilan sa prethodnim verzijama Windows-a Koristi grafičko okruženje Jednostavan za instalaciju i upotrebu IKONE Desktop START MENI TASK

More information

Uvod u programiranje I (za gimnazijalce)

Uvod u programiranje I (za gimnazijalce) Univerzitet u Novom Sadu Prirodno-matematički fakultet Departman za matematiku i informatiku Dragan Mašulović Uvod u programiranje I (za gimnazijalce) Novi Sad, 2016. Predgovor Računarski program, na

More information

Objektno orijentirano programiranje. Auditorne vježbe

Objektno orijentirano programiranje. Auditorne vježbe Objektno orijentirano programiranje Auditorne vježbe Elektrotehnički fakultet Osijek Kneza Trpimira 2b 31000 Osijek www.etfos.hr 1. Uvod u C# C# (CSharp) je nastao u tvrtki Microsoft i razvijen je od strane

More information

NIZOVI.

NIZOVI. NIZOVI LINKOVI ZA KONZOLNI C# OSNOVNO http://www.mycity.rs/net/programiranje-u-c-za-osnovce-i-srednjoskolce.html http://milan.milanovic.org/skola/csharp-00.htm Niz deklarišemo navođenjem tipa elemenata

More information

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA Sustavi za praćenje i vođenje procesa Seminarski rad LOGIČKI ANALIZATOR (PC kao instrument) 26. svibnja 2007. Ivan Grubišić 0036404380 1. Logički analizator Logički

More information

Programiranje kroz aplikacije. Kontrola toka programa Nizovi

Programiranje kroz aplikacije. Kontrola toka programa Nizovi Programiranje kroz aplikacije Kontrola toka programa Nizovi Kontrola toka u VBA If naredba Select Case naredba GoTo naredba For petlja While petlja Do While petlja Do Until petlja If naredba Opšti oblik

More information