usmeni Flashcards

(53 cards)

1
Q

Navedite osnovne tipove podataka i ukratko ih opišite.

A

Dvije osnovne skupine podataka su:
- Cijele konstante (vrijednost im je stalna kroz cijeli program)
- Varijable (vrijednost im se može mijenjati bilo kada – u „području“ unutar kojeg su deklarirane).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Što je identifikator?

A

Identifikator je ime dodijeljeno varijabli/konstanti preko kojeg programer pristupa vrijednosti tog podatka. Ne smije biti jednak nekoj od ključnih riječi. Najbolje je odabrati mnemonička imena (ona koja opisuju svrhu te varijable u programu)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Što je definicija, a što deklaracija varijable (objekta)?

A
  • Deklaracija varijable je definiranje tipa podatka i identifikatora
  • Definicija (inicijalizacija) je dodjeljivanje vrijednosti toj varijabli. Definicija se može odraditi unutar deklaracije.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Što su to ugrađeni tipovi podataka? Navedite ih i opišite.

A

Ugrađeni tipovi podataka su: char, int (cijeli brojevi, short, long), float (s pomičnim zarezom), double (long).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Što su operatori?

A

Operatori su simboli koji predstavljaju (zamjenjuju) određene funkcije.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Navedite osnovne vrste operatora i opišite ih.

A
  • Aritmetički: aritmetičke operacije, mogu biti unarni i binarni
  • Logički: vraćaju vrijednost bool ili int -> 1- true, 0-false
  • Poredbeni: usporedba dva objekta, vraćaju bool vrijednost
  • Bitovni operatori: izravne operacije nad bitovima
  • operator razdvajanja (, -> razdvaja izraze u naredbama)
  • operator pridruživanja (= -> objektu s lijeve strane pridružuje vrijednost izraza s desne strane, imaju manji prioritet od svih ostalih operatora osim operatora razdvajanja ).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Što su to aritmetički operatori?

A

Obavljaju aritmetičke operacije zbrajanja, oduzimanja, množenja, dijeljenja i modularnog dijeljenja. Mogu biti unarni i binarni.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Što je operator pridruživanja? Koju funkciju obavlja?

A

Označuje se znakom ‘=’, objektu s lijeve strane pridružuje vrijednost izraza s desne strane, imaju manji prioritet od svih ostalih operatora osim operatora razdvajanja.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Što su to naredbe za kontrolu tijeka programa?

A

Naredbe za kontrolu tijeka programa su naredbe koje kontroliraju na koji će se način / koji dio koda će se izvesti. Naredbe grananja ( if-else, switch ), naredbe ponavljanja s (ne)predefiniranim brojem ponavljanja ( (do-)while, for ). Uvjetni operator ? ne pripada u naredbe za kontrolu tijeka programa unatoč svojoj sličnosti if-else bloku.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Što je to blok naredbi?

A

Blok naredbi je cjelina koja se sastoji od niza naredbi koje se izvode uvjetno. Varijable definirane unutar bloka vidljive su samo tom bloku jer se tretiraju kao lokalne varijable čiji je domet jednak bloku unutar kojeg su definirane.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Opišite funkcioniranje uvjetnog grananja.

A

Uvjetno grananje se odvija na temelju zadovoljenosti postavljenog uvjeta. Određuju se naredbe koje će se izvesti u slučaju da uvjet je ili nije zadovoljen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Opišite upotrebu naredbe switch.

A

Naredba switch koristi se ukoliko ispitivani izraz može poprimiti više različitih vrijednosti. Switch barata samo s cjelobrojnim izrazima. Jednakost uvjeta s nekim izrazom ispituje se redoslijedom navođenja u programu. Mora biti osiguran prekid daljnjeg ispitivanja naredbom break. Ako ispitivani izraz nije jednak niti jednom od uvjeta onda se izvodi blok naredbi iza default naredbe.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Opišite upotrebu petlje for.

A

For petlja koristi se za ponavljanje naredbi kada je poznat broj ponavljanja. Početni izraz je najčešće pridruživanje vrijednosti brojača, a uvjet izvođenja mora vratiti bool vrijednost. Uvjet izvođenja ispituje se prije izvođenja bloka.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Opišite upotrebu while petlje.

A

While petlja koristi se za ponavljanje naredbi kada nije poznat broj ponavljanja. Uvjet izvođenja ispituje se prije izvođenja bloka.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Opišite upotrebu naredbi break i continue.

A

Naredba break koristi se samo u petljama i u naredbi switch. Uzrokuje prekid izvođenja petlje i skok na prvu naredbu nakon nje. Naredba continue koristi se u istim uvjetima kao i break, ali uzrokuje skok na iduće izvođenje petlje.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Opišite i objasnite što je polje podataka.

A

Polje podataka je struktura podataka koja se sastoji od konačnog broja istovrsnih podataka koji dijele isto ime te je dostupan direktan pristup svim podacima preko indeksa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Što su pokazivači? Čemu služe? Kako ih koristimo?

A

Objekti odnosno varijable koji pokazuju na drugi objekt tako što sadrže njegovu memorijsku adresu. Veličina pokazivača je 4 okteta koliko je dovoljno za spremanje adresibilne memorijske lokacije. Operatorom dereferenciranja se pristupa vrijednosti objekta na koji pokazivač pokazuje.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Koja je veza između polja podataka i pokazivača?

A

Ime polja je pokazivač koji pokazuje na prvi element polja.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Što su funkcije? Od čega se sastoji svaka funkcija?

A

Funkcija je korisnički definirana operacija koja je predstavljena imenom. Sastoji se od tipa povratnog podatka, identifikatora, liste parametara ( nije nužno da ima parametre ), bloka naredbi. Potpis funkcije određen je brojem, tipom i poredkom argumenata funkcije.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Što je definicija, a što deklaracija funkcije?

A
  • Deklaracija funkcije je navođenje tipa povratnog podatka, identifikatora i liste parametara, s tim da se identifikatori parametara mogu izostaviti odnosno može se navesti samo njihov tip ( deklaracija je naredba koja završava s ; ).
  • Definicija funkcije sadrži sve do sad navedeno + obavezni identifikatori parametara + blok naredbi funkcije.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Što sve može biti argument funkcije?

A

Ugrađeni tipovi podataka, polja istih, korisnički definirane strukture…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Što je rekurzivna funkcija?

A

Rekurzivna funkcija je ona funkcija koja u svom bloku naredbi poziva samu sebe. Mora imati slučaj koji će završiti izvođenje funkcije kako ne bismo dobili beskonačnu funkciju.

23
Q

Što su imenici?

A

Imenik je domena ili područje koje služi za uklanjanje identifikatora varijabli, funkcija, klasa iz globalnog područja imena tako što sadrže logički povezane grupe identifikatora koji se po potrebi mogu uključiti u globalno područje. Elementima imenika pristupa se pomoću operatora :: .

24
Q

Što su iznimke? Čemu služe? Kako ih koristimo?

A

Iznimke su događaji koji onemogućavaju normalan nastavak izvođenja programa te zahtjeva posebnu obradu. Pri detektiranju iznimke, program podiže iznimku, izvođenje programa se prekida, a iznimka se predaje rutini za oporavak od iznimke.
Kod se razbija u try-catch blokove, u try blokove se stavljaju naredbe koje mogu dovesti do bacanja iznimke. Ukoliko dođe do nje, uništavaju se svi privremeni i lokalni objekti koji su stvoreni u try bloku, a stvara se novi objekt koji se prenosi prvom catch bloku iza try bloka koji prihvaća bačenu iznimku.

25
Što su predprocesorske naredbe? Čemu služe? Kako ih koristimo?
Pretprocesorske naredbe se koriste za uključivanje datoteka s deklaracijama funkcija i klasa. Izvršavaju se prije prevođenja izvornog koda te ovisno o njima pretprocesor mijenja i dopunjuje izvorni kod.
26
Opišite razvoj i podjelu programskih jezika.
Programski jezici dijele se na: - strojni kod - asembler - jezici višeg stupnja (FORTRAN) - strukturirano programiranje (PASCAL, C) - objektno orijentirano programiranje (C++).
27
Koje su glavna obilježja svih objektno orijentiranih programskih jezika?
Enkapsulacija, polimorfizam i nasljeđivanje.
28
Što su korisnički definirani tipovi podataka?
To su tipovi podataka koji nisu ugrađeni u programski jezik već ih korisnik definira te ima slobodu definirati od kojih ugrađenih tipova podataka će se sastojati, kako će se ponašati itd. ( npr. Struktura, klasa…)
29
Što je to klasa? Opišite sadržaj, opseg i ulogu klase.
Klasa je korisnički definiran tip podatka, ona predstavlja nacrt prema kojem će se stvarati objekti. Sadrži stanja i metode koje će objekti te klase poprimiti. Stanja se predstavljaju varijablama, a ponašanje se predstavlja metodama (funkcijama definiranima unutar klase). Sve što je sadržano u klasi zajedničko je svim objektima te klase.
30
Što je objekt? U kakvoj su vezi klasa i objekt?
Objekt je instanca klase. Objekt je konkretna realizacija klase koja definira njegovu strukturu. Pomoću objekta se koriste metode i stanja koji su definirani unutar klase.
31
Na koji način definiramo klasu?
Klasa se definira ključnom riječi class, navođenjem identifikatora i prava pristupa klasi.
32
Postoje li različita prava pristupa pojedinim dijelovima klase? Objasnite.
Prava pristupa dijele se na tri kategorije, private, protected i public. - Private – najveća ograničenja, samo elementi te klase imaju pristup privatnim elementima. - Protected – zaštićeno pravo pristupa, rabi se kod nasljeđivanja i omogućuje elementima izvedene klase pristup elementima osnovne. - Public – najotvorenije pravo pristupa, bilo koji element može pristupiti javnim elementima klase.
33
Što je to prijateljska funkcija? Koji programski jezici podržavaju koncept prijateljske funkcije?
Prijateljske funkcije su funkcije definirane izvan klase koje mogu pristupati svim podacima klase (moguće samo u C++)
34
Kako možemo deklarirati objekt?
Objekt se deklarira navođenjem tipa, odnosno klase te identifikatorom.
35
Što je to konstruktor? Opišite i objasnite.
Konstruktor je posebna metoda koja nema povratni tip, ima isto ime kao i klasa te služi za postavljanje stanja objekta. Poziva se eksplicitno. Razlikuju se podrazumijevani i parametarski konstruktor. Podrazumijevani ima praznu listu parametara i nema funkciju osim postizanja konzistentnosti prilikom kreiranja objekta. Parametarski u listi argumenata ima stanja klase te dodjeljuje vrijednosti argumenata stanjima klase.
36
Čemu služi ključna riječ this? Objasnite.
This je implicitan parametar koji se prosljeđuje svim metodama i svojstvima klase, a predstavlja referencu na sam objekt na kojem je metoda pozvana.
37
Što je to destruktor? Čemu služi? Kako ga pozivamo? Kada se poziva automatski?
Destruktor je metoda koja se poziva za uništavanje objekta. Ima isto ime kao i klasa sa znakom ~ ispred. Ne može imati parametre. Automatski se poziva kod automatskih objekata na kraju bloka u kojem su definirani, kod statičkih i globalnih objekata nakon izlaska iz funkcije main() i kod dinamičkih objekata prilikom uništavanja s delete. Mora se eksplicitno pozvati kod dinamičkih elemenata rezerviranih unutar klase jer takvi objekti nisu automatski. C#, Java i Python imaju Garbage Collector koji automatski pozivaju destruktor.
38
Kako kreiramo polja objekata?
Kreiraju se kao i polja ugrađenih tipova podataka, naveden je tip podatka, identifikator, duljina polja te se poziva podrazumijevani/parametarski konstruktor.
39
Što je to enkapsulacija? Što smo enkapsulirali?
Enkapsulacija je povezivanje podataka i operacija u logičku cjelinu. Ona označava ideju da klasa unutar sebe ugrađuje stanje i ponašanje, a prema vanjskom svijetu otvara samo ono što je apsolutno nužno za njene korisnike.
40
Što su to ulazno izlazni tokovi? Kako njima upravljamo? Navedite primjere za različite OOP jezike.
Oni omogućavaju ulazno-izlaznu komunikaciju programa s vanjskim jedinicama. C++: cout << „A“<>a; - učitavanje C#: Console.WriteLine(„A“); - ispis , string naziv=Console.ReadLine(); - učitavanje Java: System.out.println(„A“); - ispis Scanner skener = new Scanner (System.in); String naziv = skener.nextLine(); skener.close(); - učitavanje Python: print(„A“) - ispis, naziv=input(„Upiši naziv“)
41
Što je polimorfizam? Opišite i objasnite.
Stup OOP-a, koji omogućava da se unutar klase navede više funkcija istog imena, ali različitih lista parametara. Glavna prednost leži u tome da je moguće isto sučelje koristiti za više različitih klasa, pristupati objektima tih klasa preko zajedničkog sučelja, a u isto vrijeme očekivati specijalizirano ponašanje.
42
Opišite i objasnite svojstvo preopterećenja funkcije. Čemu služi ovo svojstvo i kako ga koristimo?
Preopteretiti funkciju znači napisati funkciju istog imena kao i neka postojeća funkcija, ali mora postojati razlika u listi parametara. Prema listi parametara se kasnije u kodu može raspoznati koja od te dvije funkcije se koristi. Ovo svojstvo je korisno u situacijama kada želimo definirati istoimenu radnju za različite objekte čiji će rezultat biti različit.
43
Opišite i objasnite svojstvo preopterećenja operatora. Čemu služi ovo svojstvo i kako ga koristimo?
Preopteretiti operator znači definirati funkcionalnost nekog operatora nad korisnički definiranim tipovima podataka ili općenito nad tipovima podataka za koje ta operacija nije definirana.
44
Što je to operatorska funkcija? Kako preopterećujemo operatorsku funkciju?
Operatorska funkcija je „duži oblik“ korištenja operatora. Umjesto a+b pišemo operator+(a,b). Preopterećuje se korištenjem dužeg oblika poziva operatorske funkcije.
45
Što je nasljeđivanje?
Postupak specijalizacije osnovne klase kako bi se uključili dodatni članovi ili izmijenili postojeći. Nasljeđivanjem se ostvaruje odnos „is-a“.
46
Opišite osnovnu i izvedenu klasu.
Jedna klasa se izvodi iz druge pri čemu je ta izvedena klasa podvrsta osnovne klase. Izvedena klasa poprima sva obilježja osnovne klase. Osnovna klasa predstavlja općeniti tip čije članove nasljeđuje izvedena klasa. Izvedena klasa predstavlja specijalizirani tip podatka koji je naslijedio članove osnovnog tipa.
47
Koji tipovi nasljeđivanja postoje? Kako ih razlikujemo?
Razlikujemo specijalizaciju i generalizaciju. Ako se promatra osnovni tip podatka i potrebno je odrediti neke specifične vrste tog podatka koje bi imale specifična ponašanja u određenim situacijama, riječ je o specijalizaciji. Ako se ide suprotno, moguće je razmotriti postoji li više tipova podataka koji imaju zajednička svojstva i/ili ponašanja, a veže ih nekakav osnovni koncept, onda je riječ o generalizaciji. Primjer za specijalizaciju: Studenti – studenti FERIT-a, FER-a… Primjer za generalizaciju: sam obrnuto
48
Što je to višestruko nasljeđivanje? Koji programski jezici ga podržavaju, a koji ne?
U C++ definirano je višestruko nasljeđivanje što znači da jedna klasa može naslijediti više osnovnih klasa. To nije slučaj u C#, tamo je definirano samo jednostruko nasljeđivanje.
49
Kako pristupamo članovima izvedenih klasa?
Preko objekta izvedene klase.
50
Što je to virtualno nasljeđivanje?
Virtualno nasljeđivanje se ostvaruje pomoću pokazivača. Dijelovi izvedenog objekta koji se odnose na elemente osnovne klase ne sadrže te elemente već pokazivače na memorijski prostor koji je zajednički svim podobjektima koji su virtualno naslijedili tu klasu.
51
Kako kreiramo konstruktore i destruktore izvedenih klasa.
Kod kreiranja konstruktora potrebno je pozvati i konstruktor osnovne klase korištenjem ključne riječi base. Ako se eksplicitno ne navede parametarski konstruktor osnovne klase, biti će pozvan podrazumijevani. Prvo se poziva konstruktor osnovne, a zatim izvedene klase. Prilikom uništavanja objekta pozivaju se destruktori izvedene klase koji uništavaju samo dio definiran u izvedenoj klasi, a onda se pozivaju destruktori osnovne klase koji uništavaju njima pripadne dijelove. Destruktori se pozivaju obrnutim redoslijedom od poziva konstruktora.
52
Čemu služi svojstvo nasljeđivanja? Kako ga možemo korisititi?
Služi tome da ne moramo definirati ista svojstva u više klasa koje imaju nekakva zajednička obilježja. Npr. Pas, svi psi imaju nekakve zajedničke osobine, no različite pasmine imaju nekakva specifična obilježja stoga je korisno definirati osnovnu klasu koja će sadržavati ta zajednička obilježja, a onda samo zapisati specifična obilježja u odvojene klase za svaku pasminu. TLDR: manje pisanja koda, bolja organizacija, zgodnije je
53
Što su to biblioteke klasa? Čemu služe? Kako ih koristimo?
Biblioteke klasa omogućavaju višestruku upotrebu koda. Jednom napisane klase se kompajliraju u DLL biblioteku i mogu se priključiti raznim aplikacijama. U tim je aplikacijama samo potrebno dodati referencu na tu biblioteku.