Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

Programiranje 1 Pismeni ispit – 24.6.2019.

FERIT Osijek

Elektrotehnika
Ime i prezime:
Računarstvo

Teorija: [Bodovi: / 20 ]
1. [5 bod.] Pronaći i ispraviti pogreške u sljedećem tekstu programa.
1 #i n c l u d e < stdio .h >
2 #i n c l u d e < stdlib .h >
3
4 void seekWithinError ( double sequence [] , i n t n , double num ) {
5 double i ;
6 const double err = 0.1;
7 f o r ( i = 0; i <= n ; i ++)
8 i f ( num >= sequence [ i ] - err && num <= sequence [ i ] + err )
9 return 1;
10 return 0;
11 }
12
13 i n t main ( void ) {
14 double a [] = { 1.1 , 2.34 , 5 , 9.1 , 1.23 , 3.01 , 7.1 };
15 i n t f = seekWithinError ( a [] , 7 , 3);
16 i f (f)
17 printf ( ’ Found ! ’ );
18 else
19 printf ( " Not found ! " );
20
21 return 0;
22 }

2. [2 bod.] Izvođenjem sljedećeg dijela programskog kôda, koji element polja će biti promijenjen
te koju će vrijednosti poprimiti?
1 i n t seq [] = { 13 , 2 , -5 , 8 , 1 , 9 , -10 };
2 i n t * p = & seq [2];
3 *( p +2) /= 2;

3. [5 bod.] Kako će izgledati i što će biti ispisano na ekranu izvođenjem sljedećeg dijela program-
skog kôda?
1 i n t p [10] = { -1 , 0 , 12 , 15 , -8 , 6 , -22 , 9 , 1 , -17 };
2 int i;
3 f o r ( i = 0; i < 10; i ++) {
4 i f ( p [ i ] % 3) {
5 printf ( " % d \ n " , *( p + i ) - i );
6 }
7 }

4. [5 bod.] Napisati definiciju funkcije koja određuje i vraća koliko je vrijednosti u polju realnih
brojeva za do 10 % veće od najmanje vrijednosti u tom polju.
5. [3 bod.] Napisati prototip funkcije koja računa i vraća aritmetičku sredinu znakova po ASCII
danog stringa.

Ispit se piše 120 minuta. Potpisati se na ovaj i ostale listove koje predajete.
Za prolaz je potrebno skupiti 50% bodova iz teorijskog dijela te 50% bodova iz dijela sa zadacima.

1 / 2
Programiranje 1 Pismeni ispit – 24.6.2019. FERIT Osijek

Zadaci: [Bodovi: / 45 ]

1. [10 bod.] Omogućiti korisniku unos dimenzije kvadratne matrice (2-D polja) m × m, gdje je
15 < m ≤ 32. Popuniti matricu pseudo-slučajnim vrijednostima iz [−9, 9] ⊂ Z. Dodatno
tražiti od korisnika unos broja x, gdje je −9 ≤ x ≤ 9. U svakom retku matrice obrisati svaku
pojavu vrijednosti x, na način da se svi elemente desno od njene pojave pomaknu u lijevu
stranu, a krajnja desna mjesta koja su se oslobodila zbog pomicanja popune s vrijednosti 0.

2. [7 bod.] Napisati funkciju koja računa i vraća aritmetičku sredinu predana tri cijela broja
kojima su sve znamenke osim prve zamijenjene nulom. Primjerice, za predane brojeve 34,
−678, i 4589 potrebno ih je zamijeniti s 30, −600 i 4000. Zamjenu svih znamenki nulom (osim
prve znamenke) potrebno je izvršiti u zasebnoj funkciji. U svrhu testiranja u funkciji main()
pozvati napisanu funkciju s −12597, 1305 i 7 kao argumentima te na ekran ispisati povratnu
vrijednost.

3. [10 bod.] Napisati funkciju koja stvara dvoznamenkaste brojeve koji se sastoje od prve i zad-
nje znamenke svakog elementa u prednanom joj polju cijelih brojeva. Primjerice, za broj 2679
potrebno je stvoriti 29. Funkcija treba izračunati i kao rezultat vratiti aritmetičku sredinu
tako stvorenih dvoznamenkastih brojeva. Izdvojiti korak stvaranja dvoznamenkastog broja
u posebnu funkciju. U svrhu testiranja u funkciji main() dinamički zauzeti memoriju za 20
podatka tipa short int (u potpunosti rukovati memorijom). Omogućiti korisniku popunja-
vanje dobivenog polja te ga naknadno iskoristiti u pozivu napisane funkcije i ispisati na ekran
povratnu vrijednost.

4. [8 bod.] Napisati funkciju koja računa i vraća


n−1 n
xi−1 + x2i − x3i+1 Y |xi |
x = (x1 , . . . , xn ) ∈ Rn .
X
f (x) = + ,
i=2 i−1 i=1 n

U svrhu testiranja u funkciji main() deklarirati polje realnih brojeva od 15 elemenata i nak-
nadno ga popuniti pseudo-slučajnim brojevima iz [−5, 10] ⊂ R. Iskoristiti navedeno polje u
pozivu napisane funkcije te ispisati na ekran povratnu vrijednost.

5. [10 bod.] Napisati funkciju koja vraća vrijednost 1 ako najdulja riječ u prednom joj stringu ima
više slova od dodatno predanog broja, a u suprotnom vraća vrijednost 0. Pretpostaviti da se
između dvije riječi u stringu nalazi jedan razmak, a na kraju stringa točka. U svrhu testiranja
u funkciji main() dinamički zauzeti memoriju za 75 podataka tipa char (u potpunosti rukovati
memorijom). Omogućiti korisniku unos stringa (osigurati da se ne premaši veličina prethodno
zauzetog polja). Iskoristiti navedeni string i broj 5 u pozivu napisane funkciju te na ekran
ispisati povratnu vrijednost.

Ispit se piše 120 minuta. Potpisati se na ovaj i ostale listove koje predajete.
Za prolaz je potrebno skupiti 50% bodova iz teorijskog dijela te 50% bodova iz dijela sa zadacima.

2 / 2

You might also like