teorija_i_parcijala_1_
TRANSCRIPT
Pitanje1: Šta je algoritam a šta dijagram toka? .......................................................................... 1
Pitanje 2: Šta je to iteracija? Navedite C++ primjere! ............................................................... 2
Pitanje 3: Šta je konstanta a šta varijabla? ................................................................................. 2
Pitanje 4: Kako radi naredba switch? Navedite C++ primjer..................................................... 2
Pitanje 5: Kakvi su char podatci? Kako se memoriraju? Koja vrsta konverzije se na njih
odnosi? ....................................................................................................................................... 3
Pitanje 6: Objasnite izraze konstanta, operator, operand. Navedite C++ primjere logičkih,
aritmetičkih i relacijskih operatora! ........................................................................................... 3
Pitanje 7: Šta je opseg važenja varijable? .................................................................................. 4
Pitanje 8: Šta sve određuje tip podatka? ..................................................................................... 4
Pitanje 9: Navedite relacijske operatore u C++ programskom jeziku ........................................ 4
Pitanje 10: Navedite logičke izraze u C++ ................................................................................. 4
Pitanje 11: Poredajte slijedeće operatore prema prioritetu: ....................................................... 5
--; ||; ==; >; =; ............................................................................................................................. 5
Pitanje 12: Poredajte slijedeće operatore prema prioritetu: sizeof; ||; ==; <=; %; .......... 5
Pitanje 13: Što je to selekcija (izbor)? Kojim naredbama se predtavlja selekcija u C++?
Navedite primjere! ...................................................................................................................... 5
Pitanje14: Kako radi naredba switch? Koja je to logička struktura? Koja vrsta problema se
rješava pomoću naredbe switch? Navedite primjer! .................................................................. 5
Pitanje16: Poredajte slijedeće operatore prema prioritetu: ++; ||; =; <=; * ........................ 6
Pitanje17: Definirajte prekoračenja opsega tipa podataka! ........................................................ 6
Pitanje18: Napišite primjer uvjetnog operatora ......................................................................... 6
Pitanje19: Navedite faze procesa programiranja ........................................................................ 6
Pitanje20: Napišite šta znate o Analizi i specifikaciji kao fazi programiranja ........................... 7
Pitanje21: Napišite šta znate o dizajnu kao fazi programiranja ................................................. 7
Pitanje22: Definiraj tip podatka ................................................................................................. 7
Pitanje23: Objasni razliku između preciznosti i tačnosti ........................................................... 7
Pitanje24: Navedi prefikse ili kvalifikatore i napiši šta znaš o njima ........................................ 7
Pitanje25: Objasnite razliku između tipa podatka short int i unsigned int! ............................... 7
Pitanje 26: Definiraj logički tip podataka (TIP logical) ............................................................. 8
Pitanje 27: Napiši šta znaš o aritmetičkim operatorima ............................................................. 8
Pitanje 28: Definiraj cjelobrojno djelenje .................................................................................. 8
Pitanje 29: Definiraj aritmetički operator modulo (ostatak djelenja) ......................................... 8
Pitanje 30: Definiraj operatore inkrementiranja i dekrementiranja ............................................ 8
Pitanje 31: Definiraj operator sizeof() ........................................................................................ 8
Pitanje 32: Navedi sintaksu operatora pridruživanja = .............................................................. 9
Pitanje 33: Napiši šta znaš o složenim operatorima pridruživanja ............................................. 9
Pitanje 34: Kako se evaluira logički izraz? ................................................................................ 9
Pitanje 35: Objasnite razliku između for petlje i do-while petlje! ............................................. 9
Pitanje 29: Objasnite šta je definicija funkcije i navedite primjer ........................................... 10
Pitanje1: Šta je algoritam a šta dijagram toka? Algoritam je određivanje slijeda konačnog broja operacija koje će dovesti do rješavanja
problema. Dijagram toka je grafička prezentacija algoritma.
Pitanje 2: Šta je to iteracija? Navedite C++ primjere! Iteracija (ponavljanje) opisuje situaciju višestruke primjene iste akcije. Ovo ponavljanje može
biti samo ograničeno jer neograničeno ponavljanje nije u skladu sa definicijom algoritma, koji
sadrži konačan broj akcija i njihovo izvršenje u konačnom broju.
Ograničavanje broja ponavljanja izvršavanja akcije se ostvaruje na jedan od dva načina:
Odbrojavanjem do zadanog broja ponavljanja
Provjerom uvjeta
Primjeri iteracija:
int i=1;
while (i<=100)
{
cout << i << endl;
i++;
}
for (int i=a; i<=b; i++)
{
suma +=i*i;
}
Pitanje 3: Šta je konstanta a šta varijabla? Konstanta je podatak kojeg deklariramo obično na početku programa i kojem ne možemo
promjeniti vrijednost u tijeku izvođenja programa. Konstantu deklariramo tako da ispred tipa
konstante navodimo ključnu riječ const i obavezno joj moramo dodijeliti vrijednost.
Varijabla je podatak koji deklariramo obično na početku programa (mada se kao i konstanta
može deklarirati bilo gdje) kojoj možemo mijenjati vrijednost u tijeku izvođenja programa.
Varijablu deklariramo tako da navedemo najprije njen tip a zati i njen naziv. Npr.:
int a;
Možemo joj zajedno sa deklaracijom i inicijalizirati. Npr.:
int a=5;
Pitanje 4: Kako radi naredba switch? Navedite C++ primjer Sintaksa switch izraza je
switch (cjelobrojni_izraz)
{
case konstanta1: prvi_blok_naredbi;break;
casa konstanta2: drugi_blok_naredbi;break;
.....................................................................
.....................................................................
case konstantan:n-ti_blok_naredbi;break;
default: m-ti_blok naredbi;
}
Naredba switch radi tako da se vrijednost pojedinih case-ova provjerava samo tako dugo dok
jedan od njih ne bude zadovoljen, dok se preostali (uključujući i default) preskaču. Kako je u
većini slučajeva potrebno izvršiti samo jednu granu u selekciji, na kraju svake grane treba biti
naredba break koja omogućava izlazak iz kontrolne strukture.
Primjer:
#include <iostream>
using namespace std;
void main( )
{
int a;
cout << "Unesi ocjenu od 1 do 5: ":
cin >> a;
switch (a)
{
case 5: cout << "Odlicno \n";break;
case 4:cout << "Vrlo dobro \n";break;
case 3:cout << "Dobro \n";break;
case 2:cout << "Zadovoljava \n";break;
case 1:cout << "Lose! \n";break;
default:cout << "Ne postoji takva ocjena \n";
}
system ("pause");
}
Pitanje 5: Kakvi su char podatci? Kako se memoriraju? Koja vrsta konverzije se na njih odnosi? Character je tip podatka koji zauzima jedan (1) bajt i prema tome dozvoljava opseg od -
128 do +127, odnosno 0 do 255 ako koristimo prefiks unsigned. Znakovi čuvaju u računarskoj
memoriji pomoćuodgovarajuće brojevne šifre ili koda. Najrašireniji je ASCII kod u kojem su
rezervirani kodovi od 0 do 127 za znakove engleskog alfabeta i specijalne znakove. Za
nacionalne znakove neengleskog jezika preostali su kodovi od 127 do 255. Velikim slovima
odgovaraju vrijednosti ASCII koda u rasponu od 65 (A) do 95 (Z), a malim slovima u rasponu
od 97 (a) do 122 (z). Razlika izmenu velikog i malog slova iznosi 32.
Konverzije koje se odnose na char podatke:
- Ako je jedan od operanda realnog tipa (float, double, long double) a drugi cjelobrojnog
(char, short, int, long) onda se cjelobrojni tip konvertira u realni.
- Ako nema realnih operanada, onda se operandi tipa char i short konvertiraju u tip int i zatim
se (ako je potrebno) konvertiraju u najprecizniji prisutni cjelobrojni tip.
Pitanje 6: Objasnite izraze konstanta, operator, operand. Navedite C++ primjere logičkih, aritmetičkih i relacijskih operatora! Konstanta je podatak kojeg deklariramo obično na početku programa i kojem ne možemo
promjeniti vrijednost u tijeku izvođenja programa. Konstantu deklariramo tako da ispred tipa
konstante navodimo ključnu riječ const i obavezno joj moramo dodijeliti vrijednost.
Operator je simbol koji predstavlja specifičnu akciju.
Operand je jedan od argumenata operatora.
Logički operatori su:
&& - logičko I
|| - logičko ili
! – logička negacija
Aritmetički operatori su:
+ zbrajanje
- oduzimanje
* množenje
/ dijeljenje
% modulo (ostatak cjelobrojnog dijelenja)
Relacijski operatori su:
< manje od
<= manje ili jednako
> veće od
>= veće ili jednako
= = jednako
!= različito
Pitanje 7: Šta je opseg važenja varijable? Postoje dva oblika varijabli i to: lokalne i globalne varijable!
Globalne varijable se definiraju na samom početku programa i sa njima se može operirati
unutar bilo koje funkcije, tj. kad nam god zatreba u bilo koje vrijeme i na bilo kom mjestu,
dok se lokalne varible definiraju se unutar neke određene funkcije i sa takvim varijablama je
moguće operirati samo unutar istih funkcija u kojima su dekl arirane, tj, ovakvim varijablama
nije moguće pristupiti izvan te same funkcije u kojoj je dotična varijabla deklarirana!
Pitanje 8: Šta sve određuje tip podatka? U smislu kompjuterskog programiranja može se reći da tip podatka određuju:
skup vrijednosti koje podatak može imati
memorijski prostor potreban za smještanje podataka
operacije koje se mogu vršiti nad tim podatkom
Tip podatka je vidljiv iz deklaracije. Svi podatci moraju imati tip.
Pitanje 9: Navedite relacijske operatore u C++ programskom jeziku Relacijski operatori su:
< manje od
<= manje ili jednako
> veće od
>= ili jednako
== jednako
!= različito
Pomoću relacijskih operatora formiraju se jednostavni logički izrazi. Njihova vrijednost je
istana (=1) ili laž (=0).
Pitanje 10: Navedite logičke izraze u C++ Logički operatori su:
&& logičko I
|| logičko ILI
! logička negacija (unarno)
Operandi logičkih operatora su logičke vrijednosti (najčešće logički izrazi) s tim da se svaka
cjelobrojna vrijednost različita od nule interpretira kao istina, a nula se interpretira kao laž
Vrijednost složenog logičkog izraza je 0 (laž) ili 1 (istina).
Logički operatori se izračunavaju slijeva nadesno i prestaju se izvršavati kad je vrijednost
izraza poznata.
Pitanje 11: Poredajte slijedeće operatore prema prioritetu:
--; ||; ==; >; =; Poredani po prioritetu, navedeni operatori bi bili ispisani kako slijedi:
--; >; = =; ||; =
Pitanje 12: Poredajte slijedeće operatore prema prioritetu: sizeof; ||; ==; <=; %; Poredani po prioritetu, navedeni operatori bi bili ispisani kako slijedi:
sizeof; %; <=; = =; ||;
Pitanje 13: Što je to selekcija (izbor)? Kojim naredbama se predtavlja selekcija u C++? Navedite primjere! Pri izvršavanju nekog programa imamo potrebu da neke dijelove programa preskočimo, ili da
dajemo izbor radnji koje će se dalje izvršavati ili pak uvjet koji će dati program morati
ispitivati. To nam nudi programska struktura izbora ili selekcije. Tu spadaju iskazi:
if
if ... else
switch
Pitanje14: Kako radi naredba switch? Koja je to logička struktura? Koja vrsta problema se rješava pomoću naredbe switch? Navedite primjer! Sintaksa switch izraza je:
switch (cjelobrojni_izraz)
{
case konstanta1: prvi_blok_naredbi;break;
casa konstanta2: drugi_blok_naredbi;break;
.....................................................................
.....................................................................
case konstantan:n-ti_blok_naredbi;break;
default: m-ti_blok naredbi;
}
Naredba switch radi tako da se vrijednost pojedinih case-ova provjerava samo tako dugo dok
jedan od njih ne bude zadovoljen, dok se preostali (uključujući i default) preskaču. Kako je u
većini slučajeva potrebno izvršiti samo jednu granu u selekciji, na kraju svake grane treba biti
naredba break koja omogućava izlazak iz kontrolne strukture.
Naredba switch spada u programsku strukturu koja se naziva selekcija (izbor).
Sa njom rješavamo probleme kojima možemo definirati konačan broj rješenja i na osnovu
upoređivanja ulaznog cjelobrojnog izraza, odabrati blok naredbi koje će se izvršiti.
Primjer:
#include <iostream>
using namespace std;
void main( )
{
int a;
cout << "Unesi ocjenu od 1 do 5: ":
cin >> a;
switch (a)
{
case 5: cout << "Odlicno \n";break;
case 4:cout << "Vrlo dobro \n";break;
case 3:cout << "Dobro \n";break;
case 2:cout << "Zadovoljava \n";break;
case 1:cout << "Lose! \n";break;
default:cout << "Ne postoji takva ocjena \n";
}
system ("pause");
}
Pitanje16: Poredajte slijedeće operatore prema prioritetu: ++; ||; =; <=; * Poredani po prioritetu, navedeni operatori bi bili ispisani kako slijedi:
++; *; <=; ||; =;
Pitanje17: Definirajte prekoračenja opsega tipa podataka! Tip podatka je određen skupom vrijednosti koje podatak može imati, zatim, memorijskim
prostorom potrebnim za smiještanje podatka i operacijama koje mogu da se vrše nad tim
podatkom. S toga, svako prekoračenje ovih ograničenja jednog tipa podatka vodi do
prekoračenja opsega tipa podatka (overflow).
Pitanje18: Napišite primjer uvjetnog operatora Uvjetni operator : ?
Uvjetni izraz je izraz oblika: izraz1 ? izraz2 : izraz3;
U njemu se prvo izračunava izraz1. Ako je on istinit (različit od nule) onda se izračunava
izraz2 i on postaje vrijednost čitavog uvjetnog izraza; ako je izraz1 lažan (jednak nuli) onda se
izračunava izraz3 i on postaje vrijednost čitavog uvjetnog izraza.
(a>b) ? cout << "a je veće od b \n": cout << "a je manje od b";
Pitanje19: Navedite faze procesa programiranja 1. Analiza i specifikacija
2. Dizajn
3. Kodiranje
4. Vreifikacija i validacija
5. Održavanje
Pitanje20: Napišite šta znate o Analizi i specifikaciji kao fazi programiranja Ta faza se sastoji od analiziranja problema i peciznoj specifikaciji informacija koje će se
koristiti u rješavanju problema. Ove informacije može se mogu podjeliti na:
ulazne vrijednosti
konstantne vrijednosti
izlazne vrijednosti
Pitanje21: Napišite šta znate o dizajnu kao fazi programiranja Dizajn je druga faza programiranja i sastoji se od 3 koraka:
opis podatkovnih objekata koje ćemo koristiti u rješavanju problema (identifikacija
prema vrsti, tipu i imenu)
opis operacija koje se moraju primjeniti na podatkovne objekte kako bi se riješio
problem
određivanja slijeda operacija koje će dovesti do rješavanja problema (kreiranje
algoritma – uobičajeno dijagramom toka)
Osim tri navedena koraka u ovoj fazi se određuju i ograničenja.
Pitanje22: Definiraj tip podatka Neka je skup T skup kojega čini n objekata: T:={v1, v2,..., vn}, n>1.
Ako su svi objekti istih svojstava tako da se na njih, u okviru pravila programskog jezika,
može primjeniti određeni skup operatora, onda je T tip podatka.
Pitanje23: Objasni razliku između preciznosti i tačnosti Preciznost se iskazuje brojem prvih važećih znamenki, a tačnost je bliskost stvarnoj
(nepoznatoj) vrijednosti.
Pitanje24: Navedi prefikse ili kvalifikatore i napiši šta znaš o njima Prefiksi ili kvalifikatori se odnose na cijele brojeve. Dužina ovisi o procesoru.
short – smanjuje raspon vrijednosti koje varijabla može sadržavati
long – povećava raspon vrijednosti koje varijabla može sadržavati
signed – dozvoljava pridruživanje i pozitivnih i negativnih vrijednosti
unsigned – dozvolava pridruživanje samo pozitivnih vrijednosti
Pitanje25: Objasnite razliku između tipa podatka short int i unsigned int! Prefiksi ili kvalifikatori:
- odnose se na cijele brojeve. Dužina ovisi o procesoru.
- short - smanjuje raspon vrijednosti koje varijabla može sadržavati.
Opseg vrijednosti short int je:
od -32768 do 32767 ili -2,147,483,648 do 2,147,483,647
- unsigned - dozvoljava pridruživanje samo pozitivnih vrijednosti.
Tip podatka unsigned integer ima vrijednosti iz podskupa skupa cijelih pozitivnih brojeva.
Veličina tog podskupa ovisi o kompjuterskom sistemu tj. o duljini kompjuterske riječi i iznosi
2m - 1, gdje je m broj bita u kompjuterskoj riječi.
( na primjer za 16-bitni sistem T := {0, 1, ............, 65535} ).
Pitanje 26: Definiraj logički tip podataka (TIP logical) Logički tip podataka je skup sa samo dvije vrijednosti T:{v1,v2}, gdje je v1 logička
vrijednost istinitog iskaza, a v2 j elogička vrijednost neitinitog iskaza
Pitanje 27: Napiši šta znaš o aritmetičkim operatorima Aritmetički operatori su +, -, *, /, %
Oni djeluju na numeričkim operandima tj. cjelobrojnim, realnim i znakovnim operandima
(znakovna konstanta ima cjelobrojni tip).
Pitanje 28: Definiraj cjelobrojno djelenje Operacija djelenja u slučaju cjelobrojnih operanada ima značenje cjelobrojnog djelenja a to
znači da se rezultatu dijeljenja odsjecaju decimalne znamenke kako bi se dobio cjelobrojni
izraz. Ukoliko je rezultat dijeljenja negativan, onda način odsjecanja ovisi o implementaciji.
Najćešće je to ipak odsjecanje, tj. zaokruživanje prema nuli-
Pitanje 29: Definiraj aritmetički operator modulo (ostatak djelenja) Operacija modulo (%) djeluje nad cjelobrojnim operandima i kao rezultat daje ostatak pri
cjelobrojnom djelenju operanada. Npr. 10%3=1
Pitanje 30: Definiraj operatore inkrementiranja i dekrementiranja Operator inkrementiranja ++ povećava vrijednost varijable za jedan.
Izraz x++; ekvivalentan je izrazu x=x+1;
Operator dekrementiranja – smanjuje vrijednost varijable za jedan.
Izraz x--; ekvivalentan je izrazu x=x-1:
Operatore inkrementiranja/dekrementiranja moguće je pisati ispred i iza varijable:
++x; x++; --x; x--;
U prefiks notaciji (++x, --x) varijabla će biti promjenjena prije no što će njena vrijednost biti
iskorištena u složenom izrazu.
U postfiks notaciji (x++, x--) varijabla će biti promjenjena nakon što će njena vrijednost biti
iskorištena u složenom izrazu.
Pitanje 31: Definiraj operator sizeof() Operator sizeof() je operator koji daje veličinu svog operanda u bajtovima. Operand može biti
izraz ili tip podataka. operator sizeof vraća cjelobrojnu vrijednost bez predznaka koja ovisi o
implementaciji.
Pitanje 32: Navedi sintaksu operatora pridruživanja = Osnovni operator pridruživanja je =. Naredba pridruživanja je oblika:
varijabla = izraz;
Pridruživanje varijabla = izraz je ustvari izraz i može biti dio kompleksnog izraza.
Izraz varijabla = izraz ima vrijednost varijable na lijevoj strani (lijeva vrijednost) nakon što
se izvrši pridruživanje. Stoga je moguće koristiti pridruživanje unutar drugih naredbi ukao
npr.,
while ((a=x)!=0)
{
....
++i;
}
gdje se u testu while naredbe prvo x pridruži varijabli a, a zatim se da li je dobiveni izraz, a to
je vrijednost varijable a, različit od nule.
Operatore pridruživanja je moguće ulančati i pisati
varijabla1 = varijabla2 = varijabla3 = ... = izraz;
Niz pridruživanje ide zdesna na lijevo.
Pitanje 33: Napiši šta znaš o složenim operatorima pridruživanja Složeni operatori pridruživanja su:
+= -= *= /= %=
Općenito izraz oblika,
izraz1 op= izraz2;
gdje je op jedna od operacija +, -, *, /, %, ekvivalentan je s
izraz1 = izraz1 op izraz2;
Ovi operatori spadaju u istu prioritetnu grupu s operatorom = i izračunavaju se zdesna
na lijevo. Prioritet im je manji od prioriteta aritmetičkih i logičkih operatora.
Pitanje 34: Kako se evaluira logički izraz? C++ logički izrazi ispituju se sa lijeve na desnu stranu i ispitivanje se zaustavlja čim se može
odrediti konačna istinita vrijednost.
Pitanje 35: Objasnite razliku između for petlje i do-while petlje! Kod for petlje, uvjet se provjerava na samom početku (po sintaksi), znači uslov pri definiranju
petlje mora biti zadovoljen kako bi se počele izvršavati radnje unutar tijela „for" petlje (to
znači, u slučaju da uslov nije zadovoljen, preskače se tijelo petlje, odnosno, preskače se petlja
i izvršavat će se prva naredba poslije „for" petlje).
Kod „do-while" petlje radnje unutar tijela petlje će se izvršiti barem jednom, pa će se tek po
izvršenju radnji unutar tijela „do-while" petlje, provjeravati uvjet!
Pitanje 29: Objasnite šta je definicija funkcije i navedite primjer Definiranjem funkcije se utvrđuje šta ta funkcija radi. Svaka funkcija ima ime kojim se poziva
i kroz svoje ime je „definirana". Tip funkcije može biti ili void ili tip "povratne vrijednosti"
(funkcija tipa void, ne vraća nikakvu vrijednost).
Osnovna forma definicije funkcije:
Tip koji funkcija vraća ImeFunkcije (Formalni parametri)
{
složeni iskaz;
return rezultat; (TipArg1 ImeArg1, TipArg2 ImeArg2, ...)
}
Primjer:
int Kvadrat (int x) /* Funkcija tipa „integer", koja se zove „Kvadrat" sa parametrom
(varijablom) tipa „integer" koja se zove „x" */
{ // Početak tijela funkcije
return x*x; // Povratna vrijednost funkcije
} // Kraj tijela funkcije
Pitanje 30: Šta su potprogrami? Potprogrami su programi snabdjeveni mehanizmom razmjene podataka sa programom koji ih
poziva i upravljanim povratkom.
Pitanje 31: Koje su osnovne programske strukture? Osnovne programske strukture su:
Sekvenca (slijed)
Selekcija (izbir)
Iteracija (ponavljanje)