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

Pitanje 2 Netočno Broj bodova: 0,00 od 20,00

Napisati rekurzivnu funkciju "void binarnopretrazivanje(int V[], int dg, int gg, int x)"
kojoj se zadaju sortirani cjelobrojni niz V, te donjga granica dg i gornja granica gg niza i podatak x koji se
traži. Funcija treba ispisati "DA" ako se podatak X nalazi u nizu V, a "NE" ako x-a nema u nizu V.

Answer: (penalty regime: 0 %)

1 void binarnopretrazivanje(int V[], int dg, int gg, int x){


2
3 if(dg==gg) printf("NE");
4
5 int mid = (dg+gg)/2;
6
7 if(V[mid]==x){ *Možda točno ispravljeno*
8
9 printf("DA");
10
11 }
12
13 else if (x<V[mid]){
14
15 binarnopretrazivanje(V,dg, mid-1,x);
16
17 }
18
19 else{
binarnopretrazivanje(V,
i j ( mid+1,
i gg, x); }}
)

Syntax Error(s)
Netočno

Broj bodova za ovaj odgovor: 0,00/20,00.

/
Pitanje 4 Točno Broj bodova: 7,00 od 7,00

Dodjelite svakom čvoru njegove nasljednike (ako ih ima) za poredano binarno stablo
predstavljeno ulaznim vektorom [6,1,22,100,65,43,18,4,80,75]. 

NAPOMENA: oznaka '-' označava da ne postoji nasljednik!

100 65,-

75 -,-

65 43,80

22 18,100

80 75,-

43 -,-

18 -,-

6 1,22

4 -,-

1 -,4

Vaš odgovor je točan.

Ispravan odgovor je: 100 → 65,-, 75 → -,-, 65 → 43,80, 22 → 18,100, 80 → 75,-, 43 → -,-, 18 → -,-, 6 → 1,22, 4
→ -,-, 1 → -,4

/
Pitanje 5 Točno Broj bodova: 3,00 od 3,00

Algoritam sekvencijalnog pretraživanja je najbrži algoritam za pretraživanje podataka koji su


sortirani.

Odaberite jedan odgovor:

Točno

Netočno

Ispravan odgovor je 'Netočno'.

Pitanje 6 Točno Broj bodova: 3,00 od 3,00

Ako imamo 3 n + 7 operacija u nekom algoritmu onda kažemo da on ima složenost O( 3 n ).

Odaberite jedan odgovor:

Točno

Netočno

Ispravan odgovor je 'Netočno'.

Pitanje 7 Točno Broj bodova: 3,00 od 3,00

Algoritam sekvencijalnog pretraživanja je najbrži algoritam za pretraživanje podataka koji nisu


sortirani.

Odaberite jedan odgovor:

Točno

Netočno

Ispravan odgovor je 'Točno'.

/
Pitanje 8 Točno Broj bodova: 3,00 od 3,00

Funkcija int fakt( int n ), može izračunati točno fakt( 12 ) = 479001600. Zašto ova
funkcija ne može točno izračunati fakt( n ), za n>12?

Odaberite jedan odgovor:

a. Zato što računalo nema dovoljno memorije

b. Rezultat prelazi izvan opsega vrijednosti 32-bitnog tipa podataka int

c. Funkcija može točno izračunati i za n>12

d. Faktorijel nije niti de niran za n>12

e. Za n>12 računanje predugo traje

Vaš odgovor je točan.

Ispravan odgovor je: Rezultat prelazi izvan opsega vrijednosti 32-bitnog tipa podataka int

Pitanje 9 Netočno Broj bodova: 0,00 od 3,00

Hrpa sa N čvorova (N>10) može imati u najgorem slučaju N razina.

Odaberite jedan odgovor:

Točno

Netočno

Ispravan odgovor je 'Netočno'.

/
Pitanje 1 Netočno Broj bodova: 0,00 od 20,00

Zadana je povezana lista predstavljena strukturom element koja se sastoji od cjelobrojnog podatka X i pokazivača next na sljedeći element povezane liste.

Napisati algoritam koji sažima povezanu listu tako što izbacuje svaki element koji se više puta pojavljuje u listi.

Napisati funkciju "povezanaLista(struct element * glava)" koja na ekran ispisuje izgled nove povezane liste. 

Primjer ulazne liste: 10, 4, 1, 4, 13, 10

Očekivani rezultat: 1,13

NAPOMENA: 

** Koristiti C jezik!

** Za ispis povezane liste pozvati već spremnu funkciju ispis(struct element * glava). 

** Elementi povezane liste su prede nirani.

Npr.

void povezanaLista(struct element * glava){

//vaš kod

ispis(nova_lista);

Answer: (penalty regime: 0 %)

1 void povezanaLista(struct element * glava){


2 struct element * p = glava;

NABAVITI RJEŠENJE
3 struct element * nova_lista = NULL;
4 if(glava != NULL){
5 for(; p != NULL; p=p->next ){
6 struct element* t = glava;
7 int a = 0;
8 for(; t != NULL;t=t->next){
9 if(p->X == t->X){
10 a = 1;
11 break;
12 }
13 }
14 if(a==0){
15 if(nova_lista == NULL) {
16 nova_lista = p;
17 } else {
18 nova_lista->next = p;
19 nova_lista = p;
20 }
21 }
22 }
23 }
24
25 ispis(nova_lista);
26 }

/
Test Input Expected

Your code failed one or more hidden tests.


Your code must pass all tests to earn any marks. Try again.

Netočno

Broj bodova za ovaj odgovor: 0,00/20,00.

Pitanje 2 Netočno Broj bodova: 0,00 od 20,00

Napiši rekurzivnu funkciju "void trokut(int n)" koja će za zadani n=5, ispisati sljedeći uzorak:

*****

****

***

**

For example:

Test Input Result

test1 5 *****
****
***
**
*

Answer: (penalty regime: 0 %)

1 void trokut(int n){


2 if(n == 0){
3 return;
4 }
5 int i;
6 for(i=0;i<n;i++){
7 printf("*");
8 }
Netočno
9 printf("\n");
10 trokut(n-1); Broj bodova za ovaj odgovor: 0,00/20,00.
11 }
*GREŠKA BILA "PRINT", ISPRAVLJENO*

/
Pitanje 3 Netočno Broj bodova: 0,00 od 20,00

Napišite funkciju "void ndesnih(struct cvor *root)" koja će izračunati i na ekran ispisati koliko ima čvorova u desnom podstablu od korijenskog čvora root.

Struktura cvor sastoji se od cjelobrojnog podatka X i pokazivača na lijevi i desni nasljednik (*lijevi, *desni).

Answer: (penalty regime: 0 %)

1 void ndesnih(struct cvor * root){


2 int n = brojElemenata(root->desni);
3 printf("%d\n", n);
4 }
5
6 int brojElemenata(struct cvor * root){
7 if(root == NULL){ *Trebalo bi bit dobro, samo malo prepraviti poziv f-je*
8 return 0;
9 }
10 int broj = 1;
11 if(root->desni !=NULL){
12 broj+=brojElemenata(root->desni);
13 }
14 if(root->lijevi != NULL){
15 broj+=brojElemenata(root->lijevi);
16 }
17 return broj;
18 }

Syntax Error(s)

__tester__.c: In function ‘ndesnih’:


__tester__.c:37:13: error: implicit declaration of function ‘brojElemenata’ [-Werror=implicit-function-declaration]
int n = brojElemenata(root->desni);
^~~~~~~~~~~~~
cc1: all warnings being treated as errors

Netočno

Broj bodova za ovaj odgovor: 0,00/20,00.

Pitanje 4 Točno Broj bodova: 7,00 od 7,00

Dodijelite svakom čvoru njegove nasljednike (ako ih ima) za poredano binarno stablo predstavljeno ulaznim vektorom
[6,8,1,22,30,48,18,12,100,20,40,19]. 

NAPOMENA: oznaka '-' označava da ne postoji nasljednik!

20 19,-

12 -,-

48 40,100

30 -,48

8 -,22

19 -,-

40 -,-

6 1,8

1 -,-

22 18,30

18 12,80

100 -,-

Vaš odgovor je točan.

Ispravan odgovor je: 20 → 19,-, 12 → -,-, 48 → 40,100, 30 → -,48, 8 → -,22, 19 → -,-, 40 → -,-, 6 → 1,8, 1 → -,-, 22 → 18,30, 18 → 12,80, 100 → -,-
/
Pitanje 5 Točno Broj bodova: 3,00 od 3,00

Vremenska složenost sekvencijalnog pretraživanja je O( n ).

Odaberite jedan odgovor:

Točno

Netočno

Ispravan odgovor je 'Točno'.

Pitanje 6 Točno Broj bodova: 3,00 od 3,00

Neka je zadan niz od 81830 podataka. Koliko će biti ponavljanja petlje kod algoritma binarnog pretraživanja?
(unesite samo brojčanu vrijednost: cijeli broj)

Odgovor: 17

Ispravan odgovor je: 16

Pitanje 7 Točno Broj bodova: 3,00 od 3,00

Problem pretraživanja sortiranih nizova se rješava algoritmom binarnog pretraživanja. U O -notaciji ovaj algoritam ima logaritamsku složenost.

Pitanje 8 Točno Broj bodova: 3,00 od 3,00

Ako je zadana rekurzivna funcija koja računa faktorijele: int fakt( int n ), koliko će biti rekurzivnih poziva ako ju pozovemo s fakt( 949 )?

Odgovor: 949

Ispravan odgovor je: 949

Pitanje 9 Točno Broj bodova: 3,00 od 3,00

Hrpa ili  gomila je nelinearna struktura podataka. Hrpa je poseban oblik binarnog stabla.

/
Pitanje 10 Djelomično točno Broj bodova: 12,00 od 18,00

Za ulazni vektor [8,1,100,22,30,4,18,30] napisati sljedeće:

1. Koliko je ukupno bilo zamjena? (brojčani odgovor)

2. Koliko je bilo koraka uhrpljavanja? (brojčani odgovor)

3. Stanje stabla u četvrtom koraku? (odgovor u obliku [?,?,?,?...,?] ) 

4. Stanje stabla u 8 koraku? (isto kao 3)

5. Stanje stabla prije obavljanja drugog heapsorta? (isto kao 3)

6. Koja dva čvora se zamjenjuju u 11-om koraku? (odgovor u obliku [?,?] )

NAPOMENA: 

**Nad početnim stablom se počinju izvršavati operacije što znači da se početno stablo također računa kao jedan korak!

**Za stanje stabla u obzir se uzimaju i čvorovi koji su sortirani!

** Radi se o MAX hrpi

True False

Ukupan broj zamjena: 21

Ukupan broj zamjena: 19

Ukupan broj zamjena: 23

Ukupan broj uhrpljavanja: 14

Ukupan broj uhrpljavanja: 8

Ukupan broj uhrpljavanja: 12

Stablo u četvrtom koraku: [8,30,100,22,30,4,18,1]

Stablo u četvrtom koraku: [8,30,100,1,30,4,18,22]

Stablo u četvrtom koraku: [100,30,8,22,30,4,18,1]

Stablo u osmom koraku: [30,30,18,22,1,4,8,100]

Stablo u osmom koraku: [30,1,18,22,30,4,8,100]

Stablo u osmom koraku: [30,22,18,8,1,4,30,100]

Stablo prije obavljanja drugog heapsorta: [18,8,1,4,22,30,30,100]

Stablo prije obavljanja drugog heapsorta: [22,8,18,4,1,30,30,100]

Stablo prije obavljanja drugog heapsorta: [30,30,18,22,1,4,8,100]

Čvorovi ? i ? zamjenjuju se u 11-om koraku su 8 i 22

Čvorovi ? i ? zamjenjuju se u 11-om koraku su 8 i 30

Čvorovi ? i ? zamjenjuju se u 11-om koraku su 30 i 4

/
Pitanje 1 Točno Broj bodova: 20,00 od 20,00

Napisati funkciju "void usporedi( oe *p1, oe *p2 )" koja uspoređuje dvije liste i ispisuje "DA" ako
su liste potpuno iste, "NE" ako imaju bilo koji element različit.

Osnovni element liste oe se sastoji od cjelobrojnog podatka 'x', te pokazivača na isti takav osnovni
element 'sljedeci'.

Npr. ako je prva povezana lista: 1,7,12,5,4, druga 1,7,12,5,4, onda funkcija treba ispisati "DA".

Npr. ako je prva povezana lista: 9,7,13, druga 1,7,,5,4, onda funkcija treba ispisati "NE".

Answer: (penalty regime: 0 %)

1 void usporedi (oe *p1, oe *p2) {


2 while(p1 != NULL && p2 != NULL) {
3 if (p1 -> x != p2-> x) {
4 printf ("NE\n");
5 return;
6 }
7 p1 = p1-> sljedeci;
8 p2 = p2 -> sljedeci;
9 }
10 if (p1 == NULL && p2 == NULL) {
11 printf("DA\n");
12 }else{
13 printf("NE\n");
14 }
15 }

Test Input Expected Got

test1 1 DA DA

Passed all tests!  

Točno

Broj bodova za ovaj odgovor: 20,00/20,00.

/
Pitanje 2 Točno Broj bodova: 20,00 od 20,00

Napiši rekurzivnu funkciju "int obrniznam(int n)" koja će obrnuti zanemnke cijelog broja n. Npr.
ako je n=531, funkcija treba vratiti 135.

For example:

Test Input Result

test2 105 501

Answer: (penalty regime: 0 %)

1 int obrniznam (int n)


2 {
3
4 static int rev_num = 0;
5 static int base_pos = 1;
6 if (n > 0)
7 {
8 obrniznam (n/10);
9 rev_num += (n%10)* base_pos;
10 base_pos *= 10;
11 }
12
13 return rev_num;
14 }
15

Test Input Expected Got

test1 5 5 5

test2 105 501 501

test3 155848551 155848551 155848551

test4 5545 5455 5455

test5 123456 654321 654321

Passed all tests!  

Točno

Broj bodova za ovaj odgovor: 20,00/20,00.

/
Pitanje 3 Točno Broj bodova: 20,00 od 20,00

Dovršite C program za ubacivanje novog čvora u poredano binarno stablo:

void ubaci(struct cvor *r, struct cvor *p){

if((r->desni==NULL)&&(p->X > r->X)){

r->desni = p;

//vaš kod

Answer: (penalty regime: 0 %)

1 else if ((r -> desni != NULL) && (p->X > r-> X)) {
2 ubaci (r->desni, p);
3 }
4 if ((r->lijevi == NULL) && (p->X < r->X)) {
5 r->lijevi = p;
6 }
7 else if ((r->lijevi != NULL) && (p->X < r-> X)) {
8 ubaci (r->lijevi, p);
9 }

Test Expected Got

test1 88 12 4 1 5 7 18 13 36 44 100 88 12 4 1 5 7 18 13 36 44 100

Passed all tests!  

Točno

Broj bodova za ovaj odgovor: 20,00/20,00.

/
Pitanje 4 Točno Broj bodova: 7,00 od 7,00

Povežite predložene vrste obilazaka za stablo na slici:

NLD 50,17,9,14,12,23,19,76,54,72,67

LDN 12,14,9,19,23,17,67,72,54,76,50

LND 9,12,14,17,19,23,50,54,67,72,76

Vaš odgovor je točan.

Ispravan odgovor je: NLD → 50,17,9,14,12,23,19,76,54,72,67, LDN → 12,14,9,19,23,17,67,72,54,76,50,


LND → 9,12,14,17,19,23,50,54,67,72,76

/
Pitanje 5 Točno Broj bodova: 3,00 od 3,00

Zadan je dio programa u C-u koji je napisan prema algoritmu binarnog pretraživanja. Napisani
su i brojevi linija. Međutim, u jednoj liniji se nalazi greška. U kojoj?

1. dg = 0;
2. gg = N-1;
3. for (;;) {
4. s = (dg+gg)/2;
5. if (V[s]==x) {
6. printf( "%d Pronadjen! Na %d. poziciji u nizu.\n", x, s );
7. exit( 0 );
8. }
9. if (V[s]<x) gg = s-1;
10. if (V[s]<x) dg = s+1;
11. if (dg>=gg) {
12. printf( "%d nije pronadjen!\n", x );
13. exit( 1 );
14. }
15. }

(unesite samo broj linije u kojoj je greška, bez točke na kraju)

Odgovor: 9

Ispravan odgovor je: 9

Pitanje 6 Netočno Broj bodova: 0,00 od 3,00

Vremenska složenost O( n log n ) je bolja (brži algoritam) od vremenske složenosti O( n ).

Odaberite jedan odgovor:

Točno

Netočno

Ispravan odgovor je 'Netočno'.

/
Pitanje 7 Točno Broj bodova: 3,00 od 3,00

Zadan je dio programa u C-u koji je napisan prema algoritmu binarnog pretraživanja. Napisani
su i brojevi linija. Međutim, u jednoj liniji se nalazi greška. U kojoj?

1. dg = 0;
2. gg = N-1;
3. for (;;) {
4. s = (dg+gg)/2;
5. if (s==x) {
6. printf( "%d Pronadjen! Na %d. poziciji u nizu.\n", x, s );
7. exit( 0 );
8. }
9. if (V[s]<x) gg = s-1;
10. if (V[s]>x) dg = s+1;
11. if (dg>=gg) {
12. printf( "%d nije pronadjen!\n", x );
13. exit( 1 );
14. }
15. }

(unesite samo broj linije u kojoj je greška, bez točke na kraju)

Odgovor: 5

Ispravan odgovor je: 5

Pitanje 8 Točno Broj bodova: 3,00 od 3,00

Rekurzivna funkcija ili procedura može imati samo jedan osnovni slučaj kada se ne poziva
rekurzivno.

Odaberite jedan odgovor:

Točno

Netočno

Ispravan odgovor je 'Netočno'.

/
Pitanje 9 Točno Broj bodova: 3,00 od 3,00

Mjehurićasti (bubble) sort je  sporiji od Heap Sort algoritma (brži ili sporiji). Složenost Bubble
2
Sort algoritma je O( N ), a tu složenost nazivamo još i  kvadratna vremenska složenost.

Pitanje 6 Točno Broj bodova: 3,00 od 3,00

Pronaći najveći podatak u sortiranom nizu se može trenutačno: O(1).

Odaberite jedan odgovor:

Točno

Netočno

Ispravan odgovor je 'Točno'.

Pitanje 8 Točno Broj bodova: 3,00 od 3,00

Rekurzivne funkcije ili procedure mogu pozivati samu sebe samo jednom.

Odaberite jedan odgovor:

Točno

Netočno

Ispravan odgovor je 'Netočno'.

/
Pitanje 1 Djelomično točno Broj bodova: 4,00 od 20,00

Napisati funkciju "void pretraziZnamenku( oe *prvi, int n )" koja će iszračunati i ispisati
koliko ima elemenata u povezanoj listi koji imaju bilo koju znamenku jednaku jednoznamenkastom
parametru n.

Osnovni element liste oe se sastoji od cjelobrojnog podatka 'x', te pokazivača na isti takav osnovni
element 'sljedeci'.

Npr. ako je povezana lista sadrži vrijednosti: 1,72,21,5,624 i n=2, onda funkcija treba ispisati 3, zato što u
72, 21 i 624 imamo znamenku 2.

Answer: (penalty regime: 0 %)

1 void pretraziZnamenku(oe *prvi, int n) {


2 int count = 0;
3 oe *novi = prvi;
4 while(novi->sljedeci != NULL) {
5 while(novi->x != 0) {
6 if(novi->x % 10 == n) {
7 count++;
8 }
9 novi->x = novi->x / 10;
10 }
11 novi = novi->sljedeci;
12 }
13 printf("%d", count);
14 }

Test Input Expected Got

test1 1, 8 5 4

Some hidden test cases failed, too.

Show di erences

Djelomično točno

Broj bodova za ovaj odgovor: 4,00/20,00.

/
Pitanje 2 Djelomično točno Broj bodova: 9,00 od 20,00

Napisati rekurzivnu funkciju "int pronadji(struct cvor *root, int n)" koja će pronaći (ako
postoji) traženu vrijednost n u poredanom binarnom stablu.  Ako cvor sa trazenom vrijednoscu postoji
funkcija treba vratiti vrijednost 1, a ukoliko ne postoji 0. Stablo je predstavljeno strukturom cvor koja
sadrzi cjelobrojni podatak X te pokazivače na lijevog nasljednika lijevi i pokazivača na desnog
nasljednika desni;

Answer: (penalty regime: 0 %)

1 int pronadji(struct cvor *root, int n) {


2 while(root != NULL) {
3 if(n > root->x) {
4 return pronadji(root->desni, n);
5 }
6 else if(n < root->x) {
7 return pronadji(root->lijevi, n);
8 }
9 else {
10 return 1;
11 }
12 }
13 return 0;
14 }

Syntax Error(s)

__tester__.c: In function ‘pronadji’:


__tester__.c:52:20: error: ‘struct cvor’ has no member named ‘x’
if(n > root->x) {
^~
__tester__.c:55:25: error: ‘struct cvor’ has no member named ‘x’
else if(n < root->x) {
^~

Djelomično točno

Broj bodova za ovaj odgovor: 0,00/20,00.

Komentar:
/
Pitanje 3 Netočno Broj bodova: 0,00 od 20,00

Napišite funkciju "void nlijevih(struct cvor *root)" koja će izračunati i na ekran ispisati koliko

ima čvorova u lijevom podstablu od korijenskog čvora root.

Struktura cvor sastoji se od cjelobrojnog podatka X i pokazivača na lijevi i desni nasljednik (*lijevi,
*desni).

Answer: (penalty regime: 0 %)

1 int inOrder(struct cvor *root) { Netočno


2 int count = 0;
Broj bodova za ovaj odgovor: 0,00/20,00.
3
4 if(root != NULL) {
5 return count;
6 } *Ispravljeno, trebalo bi biti ok*
7 else {
8 inOrder(root->lijevi);
9 count++;
10 inOrder(root->desni);
11 }
12 }
13
14 void nlijevih(struct cvor *root) {
15 int count = inOrder(root->lijevi);
16 printf("%d", count);
17 }

/
Pitanje 4 Točno Broj bodova: 7,00 od 7,00

Povežite predložene vrste obilazaka za stablo na slici:

LDN 35,42,20,18,16,55,43,44,90,85

NLD 85,44,35,43,18,20,42,55,16,90

LND 35,44,20,42,18,43,55,16,85,90

Vaš odgovor je točan.

Ispravan odgovor je: LDN → 35,42,20,18,16,55,43,44,90,85, NLD → 85,44,35,43,18,20,42,55,16,90, LND →


35,44,20,42,18,43,55,16,85,90

/
Pitanje 7 Točno Broj bodova: 3,00 od 3,00

Za algoritam SELECT SORT vrijedi:

Odaberite jedan ili više odgovora:

To je najbrži algoritam za sortiranje.

Služi za pretraživanje podataka.

Ima složenost O( n )

Spada u sporije algoritme za sortiranje podataka.


2
Ima složenost O( n  )

Vaš odgovor je točan.


2
Ispravni odgovori su: Ima složenost O( n  ), Spada u sporije algoritme za sortiranje podataka.

Pitanje 8 Netočno Broj bodova: 0,00 od 3,00

Rekurzivne funkcije ili procedure koriste sistemski stog.

Odaberite jedan odgovor:

Točno

Netočno

Ispravan odgovor je 'Netočno'.

Pitanje 9 Točno Broj bodova: 3,00 od 3,00

Drugo ime za hrpu (heap) je gomila.

Odaberite jedan odgovor:

Točno

Netočno

Ispravan odgovor je 'Točno'.

/
Pitanje 1 Djelomično točno Broj bodova: 8,00 od 20,00

Napisati funkciju "void obrisiNeparne( oe *prvi )" koja briše sve elemente cjelobrojne povezane
liste koji su neparni.

Osnovni element liste oe se sastoji od cjelobrojnog podatka 'x', te pokazivača na isti takav osnovni
element 'sljedeci'.

Npr. ako su u povezanoj listi redom elementi 1,7,12,5,4

Lista nakon brisanja neparnih treba izgledati: 12,4

Answer: (penalty regime: 0 %)

1 void obrisiNeparne(oe *prvi){


2 oe *temp1=(oe*)malloc(sizeof(oe));
3 oe *pret=(oe*)malloc(sizeof(oe));
4 pret=temp1;
5 while(temp1->sljedeci!=NULL){
6 if(!(temp1->x%2==0)){
7 pret->sljedeci=temp1->sljedeci;
8 free(temp1);
9 }
10 pret=temp1;
11 temp1=temp1->sljedeci;
12 } Test Input Expected
13 }
test2 2 8 0

test3 3

test4 4 18

test5 5

Some hidden test cases failed, too.

Djelomično točno

Broj bodova za ovaj odgovor: 8,00/20,00.

/
Pitanje 6 Točno Broj bodova: 3,00 od 3,00

Zadan je dio programa u C-u koji je napisan prema algoritmu binarnog pretraživanja. Napisani
su i brojevi linija. Međutim, u jednoj liniji se nalazi greška. U kojoj?

1. dg = 0;
2. gg = N+1;
3. for (;;) {
4. s = (dg+gg)/2;
5. if (V[s]==x) {
6. printf( "%d Pronadjen! Na %d. poziciji u nizu.\n", x, s );
7. exit( 0 );
8. }
9. if (V[s]<x) gg = s-1;
10. if (V[s]>x) dg = s+1;
11. if (dg>=gg) {
12. printf( "%d nije pronadjen!\n", x );
13. exit( 1 );
14. }
15. }

(unesite samo broj linije u kojoj je greška, bez točke na kraju)

Odgovor: 2

Ispravan odgovor je: 2

/
Pitanje 9 Netočno Broj bodova: 0,00 od 3,00

Neka je zadana procedura void UHRPI(int i) koja uhrpljava čvor na i-tom mjestu prema
algoritmu koji smo učili na predavanju i procedura zamjeni(..) koja zamjenjuje mjesta dva
elementa u zadanom nizu V od N elemenata. NH je broj elemenata hrpe.

Prema algoritmu za soritranje koristeći hrpu dana je sljedeća procedura u C-u:

1. void HeapSort() {
2. int i;
3. NH = N;
4. for (i=NH/2; i>=0; i--) UHRPI( i );
5. for (i=NH-1; i>=1; i--) {
6. zamjeni( V[0], V[i] );
7. NH++;
8. UHRPI( 0 );
9. }}
Međutim ova procedura ima grešku. Napišite u kojoj je liniji greška!

(unesite samo broj linije u kojoj je greška, bez točke na kraju)

Ispravan odgovor je: 7

You might also like