Programiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj

Слични документи
Programiranje 1 drugi kolokvij, 2. veljače Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje,

1 jmbag ime i prezime Programiranje 2 prvi kolokvij, Rezultati i uvidi u kolokvije: Rezultati u petak, 3.5., navečer na webu, a uvidi u p

Računarski praktikum I - Vježbe 01 - Uvod

Programiranje u C-u ili C++-u Pseudo-slučajni brojevi; Dinamička alokacija memorije 1 ZADACI SA ČASA Zadatak 1 Napraviti funkciju koja generišlučajan

Test ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime

8 2 upiti_izvjesca.indd

(Microsoft Word - MATB - kolovoz osnovna razina - rje\232enja zadataka)

Microsoft PowerPoint - MR - Vjezbe - 03.ppt [Compatibility Mode]

OSNOVNA ŠKOLA, VI RAZRED MATEMATIKA

Microsoft Word - Zadaci za samostalno vjezbanje 4.doc

Microsoft Word - 6ms001

Tutoring System for Distance Learning of Java Programming Language

Sveučilište u Zagrebu Fakultet prometnih znanosti Zavod za inteligentne transportne sustave Katedra za primijenjeno računarstvo Vježba: #7 Kolegij: Ba

Računarski praktikum I - Vježbe 11 - Funktori

Uvod u računarstvo 2+2

(Microsoft Word - Dr\236avna matura - studeni osnovna razina - rje\232enja)

(Microsoft Word - Dr\236avna matura - kolovoz osnovna razina - rje\232enja)

Algoritmi SŠ P1

Matematika kroz igru domino

Računarski praktikum I - Vježbe 03 - Implementacija strukture string

Microsoft Word - IQ.doc

(Microsoft Word - Dr\236avna matura - svibanj osnovna razina - rje\232enja)

JMBAG Ime i Prezime Mreže računala Završni ispit 16. veljače Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i službeni šalabahter.

Za formiranje JOPPD obrasca neophodno je točno popuniti šifre u osnovama primitaka. Svaka osnova primitka ima propisane šifre u prilozima JOPPD

(Microsoft Word - Dr\236avna matura - kolovoz ni\236a razina - rje\232enja)

Računarski praktikum I - Vježbe 07 - Podstrukture, const, reference

Agencija za odgoj i obrazovanje Hrvatska zajednica tehničke kulture 57. ŽUPANIJSKO/KLUPSKO NATJECANJE MLADIH TEHNIČARA PISANA PROVJERA ZNANJA 5.

Matrice. Algebarske operacije s matricama. - Predavanje I

Microsoft Word - WP_kolokvij_2_rjesenja.doc

JMBAG IME I PREZIME BROJ BODOVA MJERA I INTEGRAL završni ispit 6. srpnja (Knjige, bilježnice, dodatni papiri i kalkulatori nisu dozvoljeni!) 1.

Uvod u računarstvo 2+2

Elementi praćenja i ocjenjivanja za nastavni predmet Matematika u 4. razredu Elementi praćenja i ocjenjivanja za nastavni predmet Matematika u 4. razr

Uvod u računarstvo 2+2

2015_k2_z12.dvi

Slide 1

ŠKOLSKO/GRADSKO NATJECANJE IZ MATEMATIKE 21. siječnja razred-rješenja OVDJE SU DANI NEKI NAČINI RJEŠAVANJA ZADATAKA. UKOLIKO UČENIK IMA DRUGA

Uvod u računarstvo 2+2

Državna matura iz informatike

PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste

Microsoft Word - mat_szerb_kz_1flap.doc

studirko.com predstavlja: Večernja škola C# za FPZ ( ) v 4.0 Za studirko.com napisao: Slaven Špigl

59. Natjecanje mladih tehničara Republike Hrvatske Školsko/Klupsko natjecanje godine Tehnička kultura 5. razred Maketarstvo i modelarstvo Radni

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi

Funkcije predavač: Nadežda Jakšić

1. Vremensko ograničenje Memorijsko ograničenje ulaz izlaz 0,1 s 64 MB standardni ulaz standardni izlaz Banka želi da upozori kupce na sumnjive aktivn

18. ožujka Državno natjecanje / Osnovna škola (6. razred) Primjena algoritama (Basic/Python/Pascal/C/C++) Sadržaj Zadaci... 1 Zadatak: Kineski..

Државно такмичење године 5. и 6. разред 1. [pločice] Правоугаону терасу димензија d s центиметара квадратних треба поплочати коришћењем плочица

CARNet Helpdesk - Podrška obrazovnom sustavu e-dnevnik upute za nastavnike tel: fax: mail: url: carn

Funkcije predavač: Nadežda Jakšić

070-ALIP2-udzbenik.indb

Infokup - Školsko Osnovne škole Algoritmi BaPaCpp

Upute za korištenje EasyChair konferencijskog sustava HRO CIGRE 2019 Prijava referata Ako ste već koristili EasyChair na 13. Savjetovanju ili prije ta

MAT B MATEMATIKA osnovna razina MATB.38.HR.R.K1.20 MAT B D-S

Tutoring System for Distance Learning of Java Programming Language

Programiranje 1 5. predavanje dodatak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 5. predavanj

CARNET Helpdesk - Podrška obrazovnom sustavu e-dnevnik upute za nadzor razrednih knjiga tel: fax: mail:

Microsoft Word - Rjesenja zadataka

MATEMATIKA EKSTERNA PROVJERA ZNANJA UČENIKA NA KRAJU III CIKLUSA OSNOVNE ŠKOLE UPUTSTVO VRIJEME RJEŠAVANJA TESTA: 70 MINUTA Pribor: grafitna olovka i

Smjernice za korištenje sustava online prijava Ukoliko imate pristupno korisničko ime i lozinku ili ste navedeno dobili nakon zahtjeva za otvaranje no

(Microsoft Word - Rje\232enja zadataka)

УПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: Након

UPUTE ZA OBLIKOVANJE DOKTORSKE DISERTACIJE Doktorska disertacija se piše na hrvatskom standardnom jeziku. Disertacija može biti napisana na nekom od s

INTEGRIRANI KNJIŽNIČNI SUSTAV Sustav za podršku Upute za instalaciju: Aleph v22 ZAG

Programiranje 2 0. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/4

Σ Ime i prezime, JMBAG: ELEMENTARNA GEOMETRIJA prvi kolokvij studenog Napomene: Kolokvij ima ukupno 5 zadataka, svaki zadatak vr

PROCES KUPNJE ULAZNICE NA PORTALU ULAZNICE.HR Početak kupovine... 2 Plaćanje Mastercard karticom... 5 Plaćanje Maestro karticom... 8 Plaćanje American

Document ID / Revision : 0419/1.1 ID Issuer Sustav (sustav izdavatelja identifikacijskih oznaka) Upute za registraciju gospodarskih subjekata

УПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: Након

Strukture predavač: Nadežda Jakšić

HIO 2019 zadaci

(Microsoft Word - Dr\236avna matura - lipanj osnovna razina - rje\232enja)

CARNet Helpdesk - Podrška obrazovnom sustavu e-dnevnik upute za nastavnike tel: fax: mail: url: carn

(Microsoft Word - Dr\236avna matura - kolovoz osnovna razina - rje\232enja)

PLAN I PROGRAM ZA DOPUNSKU (PRODUŽNU) NASTAVU IZ MATEMATIKE (za 1. razred)

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ и технолошког развоја ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ЗАВРШНИ ИСПИТ НА КРАЈУ ОСНОВН

MATEMATIKA viša razina MATA.29.HR.R.K1.24 MAT A D-S MAT A D-S029.indd :30:29

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

Matematika 1 - izborna

Programski jezici i strukture podataka 2018/2019. Programski jezici i strukture podataka Računarske vežbe vežba 10 Zimski semestar 2018/2019. Studijsk

Programiranje II Beleške sa vežbi Smer Informatika Matematički fakultet, Beograd Sana Stojanović 1

Agencija za odgoj i obrazovanje Hrvatska zajednica tehničke kulture 58.ŠKOLSKO NATJECANJE MLADIH TEHNIČARA PISANA PROVJERA ZNANJA - 5. razred Za

Sveucilište u Zagrebu

(Microsoft Word - Dr\236avna matura - rujan osnovna razina - rje\232enja)

(Microsoft Word - Dr\236avna matura - lipanj osnovna razina - rje\232enja)

ŽUPANIJSKO NATJECANJE IZ MATEMATIKE 28. veljače razred - rješenja OVDJE SU DANI NEKI NAČINI RJEŠAVANJA ZADATAKA. UKOLIKO UČENIK IMA DRUGAČIJI

INF INFORMATIKA INF.35.HR.R.K1.24 INF D-S

Algebarski izrazi (4. dio)

Računarski praktikum I - Vježbe 06 - Standard Template Library (2)

Newtonova metoda za rješavanje nelinearne jednadžbe f(x)=0

Lorem ipsum dolor sit amet lorem ipsum dolor

Upute - JOPPD kreiranje obrasca

Stiforp uputstvo za isplatu - Kako Zaraditi Novac

Programski jezik C

Programiranje predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2016, 10. predavanje p. 1

MATEMATIKA EKSTERNA PROVJERA ZNANJA UČENIKA NA KRAJU III CIKLUSA OSNOVNE ŠKOLE UPUTSTVO VRIJEME RJEŠAVANJA TESTA: 70 MINUTA Pribor: grafitna olovka i

Microsoft Excel

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ЗАВРШНИ ИСПИТ У ОСНОВНОМ ОБРА

MathFest 2016 Krapinsko zagorske županije 29. travnja Terme Tuhelj Ekipno natjecanje učenika osnovnih škola Kategorija math 43 Natjecanje traje

CARNet Helpdesk - Podrška obrazovnom sustavu e-dnevnik upute za razrednike i stručno osoblje mail: fax: url: carnet.

Транскрипт:

Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje, te službeni šalabahter. Kalkulatori, mobiteli, razne neslužbene tablice, papiri i sl., nisu dozvoljeni! Sva rješenja napišite isključivo na papire sa zadacima, jer jedino njih predajete. Ne zaboravite se potpisati na svim papirima! Skice smijete raditi i na drugim papirima koje će vam dati dežurni asistent. U svim zadacima zabranjeno je korištenje dodatnih nizova i standardne matematičke biblioteke (zaglavlje math.h), osim ako je u zadatku drugačije navedeno. [5+10+15 bodova] 1. zadatak Napišite deklaraciju tipa djuro pomoću kojeg ćete u nizu držati jedan string duljine najviše 101 znak i dva cijela broja. Pri tome deklarirajte samo ona polja u strukturi koja su nužna za rješenje zadatka, te pazite da bude moguce napraviti deklaraciju poput djuro x;. Zatim napišite funkciju sort koja kao argument prima jedan niz elemenata tipa djuro (i njegovu duljinu), te taj niz sortira uzlazno leksikografski prema stringu. Elemente koji imaju jednaku vrijednost stringa treba sortirati padajuće prema najvećoj zajedničkoj mjeri brojeva u elementu. Napišite i program koji preko komandne linije uzima dva argumenta (provjerite da su zadana točno dva!), od kojih prvi predstavlja naziv binarne datoteke s podacima tipa djuro, a drugi je neki prirodni broj x. Program treba učitati one podatke kojima je najveća zajednička mjera brojeva manja od x te ih sortirati funkcijom sort i ispisati. Nemojte uvoditi ograničenje na broj podataka u datoteci.

2. zadatak [10+15 bodova] Stupci tablice označeni su redom brojevima 1, 2, 3,..., a redci redom slovima A, B, C,... Polja tablice mogu biti prazna (oznaka:.) ili na njima može biti figurica (oznaka: x). (a) Učitajte prirodni broj N (pretpostavite da je manji od 100), te zatim N koordinata na kojima se na ploči nalaze figurice (vidi primjer koordinata je ureden par (redak, stupac)). Alocirajte najmanju moguću tablicu tako da se sve figurice mogu smjestiti u nju, popunite ju oznakama praznih polja i figurica, te ispišite na ekran. (b) Odredite najveći kvadrat koji se može smjestiti u tablicu alociranu u (a) tako da taj kvadrat ne obuhvaća niti jednu figuricu. U tablici znakovima o označite položaj tog kvadrata, te ispišite dobivenu tablicu na ekran. Primjer: ulaz ekran nakon (a) ekran nakon (b) 4...... B 4...x.....x.. C 6.x...x.xooox E 2.....ooo. C 2.x....xooo.

3. zadatak [15+10 bodova] Za opis zadatka definiran je tip Narudzba na sljedeći način. typedef s t r u c t Narudzba { i n t koliko, c i j e n a ; char proizvod [ 3 2 ] ; s t r u c t Narudzba next ; } Narudzba ; gdje proizvod označava naziv proizvoda, cijena cijenu jednog proizvoda i koliko broj naručenih proizvoda. a) Napišite funkciju void puno(narudzba *lista, int ukupno) koja ispisuje nazive naručenih proizvoda (lista je pointer na prvi element liste) za koje je ukupna cijena narudžbe veća od ukupno. Nadalje, funkcija te proizvode treba izbrisati iz liste. b) Napišite funkciju void stol(narudzba *lista, int koliko, int cijena) (lista je pointer na prvi element liste) koja na kraj liste ubacuje narudžbu koliko komada stolova po cijeni cijena.

4. zadatak [20 bodova] Po šahovskoj ploči (8 8) krećemo se tako da se u jednom koraku možemo pomaknuti samo za jedno mjesto prema lijevo, desno, gore ili dolje, pri čemu ne smijemo stati na polje kojemu su obje koordinate prosti brojevi. Napišite funkciju pomoću koje ćete odrediti na koliko načina je moguće iz kuta s koordinatama (1, 1) doći do kuta s koordinatama (8, 8). Obavezno napišite poziv funkcije koji će kao povratnu vrijednost imati traženi rezultat.

Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje, te službeni šalabahter. Kalkulatori, mobiteli, razne neslužbene tablice, papiri i sl., nisu dozvoljeni! Sva rješenja napišite isključivo na papire sa zadacima, jer jedino njih predajete. Ne zaboravite se potpisati na svim papirima! Skice smijete raditi i na drugim papirima koje će vam dati dežurni asistent. U svim zadacima zabranjeno je korištenje dodatnih nizova i standardne matematičke biblioteke (zaglavlje math.h), osim ako je u zadatku drugačije navedeno. [5+10+15 bodova] 1. zadatak Napišite deklaraciju tipa kuca pomoću kojeg ćete u nizu držati jedan string duljine najviše 201 znak i jedan znak. Pri tome deklarirajte samo ona polja u strukturi koja su nužna za rješenje zadatka, te pazite da bude moguce napraviti deklaraciju poput kuca x;. Zatim napišite funkciju sort koja kao argument prima jedan niz elemenata tipa kuca (i njegovu duljinu), te taj niz sortira silazno prema broju pojavljivanja znaka u stringu (string i znak su dijelovi svakog elementa, deklarirani u prvom dijelu zadatka). Elemente koji imaju jednaki broj tih pojavljivanja treba sortirati rastuće prema vrijednosti stringa. Napišite i program koji preko komandne linije uzima dva argumenta (provjerite da su zadana točno dva!), od kojih prvi predstavlja naziv binarne datoteke s podacima tipa kuca, a drugi jedan znak c (ne morate provjeravati da je samo jedan znak). Program treba učitati one podatke kojima je znak leksikografski manji od c te ih sortirati funkcijom sort i ispisati. Nemojte uvoditi ograničenje na broj podataka u datoteci.

2. zadatak [10+15 bodova] Redci tablice označeni su redom brojevima 1, 2, 3,..., a stupci redom slovima A, B, C,... Polja tablice mogu biti prazna (oznaka: #) ili na njima može biti figurica (oznaka: o). (a) Učitajte prirodni broj N (pretpostavite da je manji od 200), te zatim N koordinata na kojima se na ploči nalaze figurice (vidi primjer koordinata je ureden par (redak, stupac)). Alocirajte najmanju moguću tablicu tako da se sve figurice mogu smjestiti u nju, popunite ju oznakama praznih polja i figurica, te ispišite na ekran. (b) Odredite najveći kvadrat koji se može smjestiti u tablicu alociranu u (a) tako da taj kvadrat obuhvaća točno jednu figuricu. U tablici znakovima x označite položaj tog kvadrata, te ispišite dobivenu tablicu na ekran. Primjer: ulaz ekran nakon (a) ekran nakon (b) 4 ###### xxxx## 2 E ####o# xxxxo# 3 F #o###o xxxx#o 5 B ###### xxxx## 3 B #o#### #o####

3. zadatak [15+10 bodova] Za opis zadatka definiran je tip Narudzba na sljedeći način. typedef s t r u c t Narudzba { i n t koliko, c i j e n a ; char proizvod [ 3 2 ] ; s t r u c t Narudzba next ; } Narudzba ; gdje proizvod označava naziv proizvoda, cijena cijenu jednog proizvoda i koliko broj naručenih proizvoda. a) Napišite funkciju void malo(narudzba *lista, int ukupno) koja ispisuje nazive naručenih proizvoda (lista je pointer na prvi element liste) za koje je ukupna cijena narudžbe manja od ukupno. Nadalje, funkcija te proizvode treba izbrisati iz liste. b) Napišite funkciju void ormar(narudzba *lista, int koliko, int cijena) (lista je pointer na prvi element liste) koja na početak liste ubacuje narudžbu koliko komada ormara po cijeni cijena.

4. zadatak [20 bodova] Po šahovskoj ploči (8 8) krećemo se tako da se u jednom koraku možemo pomaknuti samo za jedno mjesto prema lijevo, desno, gore ili dolje, pri čemu ne smijemo stati na polje kojemu je zbroj koordinata prost broj. Napišite funkciju pomoću koje ćete odrediti na koliko načina je moguće iz kuta s koordinatama (1, 8) doći do kuta s koordinatama (8, 1). Obavezno napišite poziv funkcije koji će kao povratnu vrijednost imati traženi rezultat.

Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje, te službeni šalabahter. Kalkulatori, mobiteli, razne neslužbene tablice, papiri i sl., nisu dozvoljeni! Sva rješenja napišite isključivo na papire sa zadacima, jer jedino njih predajete. Ne zaboravite se potpisati na svim papirima! Skice smijete raditi i na drugim papirima koje će vam dati dežurni asistent. U svim zadacima zabranjeno je korištenje dodatnih nizova i standardne matematičke biblioteke (zaglavlje math.h), osim ako je u zadatku drugačije navedeno. [5+10+15 bodova] 1. zadatak Napišite deklaraciju tipa carolija pomoću kojeg ćete u nizu držati dva stringa duljine najviše po 301 znak i jedan realni broj dvostruke točnosti. Pri tome deklarirajte samo ona polja u strukturi koja su nužna za rješenje zadatka, te pazite da bude moguce napraviti deklaraciju poput carolija x;. Zatim napišite funkciju sort koja kao argument prima jedan niz elemenata tipa carolija (i njegovu duljinu), te taj niz sortira uzlazno po realnom broju. Elemente koji imaju jednaku vrijednost broja treba sortirati padajuće prema stringu koji se dobije spajanjem dva stringa u elementu (sami odaberite redoslijed spajanja stringova). Napišite i program koji preko komandne linije uzima dva argumenta (provjerite da su zadana točno dva!), od kojih prvi predstavlja naziv binarne datoteke s podacima tipa carolija, a drugi je neki realni broj x. Program treba učitati one podatke kojima je broj veći od x te ih sortirati funkcijom sort i ispisati. Nemojte uvoditi ograničenje na broj podataka u datoteci.

2. zadatak [10+15 bodova] Redci tablice označeni su redom brojevima 1, 2, 3,..., a stupci redom slovima A, B, C,... Polja tablice mogu biti prazna (oznaka: -) ili na njima može biti figurica (oznaka: #). (a) Učitajte prirodni broj N (pretpostavite da je manji od 300), te zatim N koordinata na kojima se na ploči nalaze figurice (vidi primjer koordinata je ureden par (redak, stupac)). Alocirajte najmanju moguću tablicu tako da se sve figurice mogu smjestiti u nju, popunite ju oznakama praznih polja i figurica, te ispišite na ekran. (b) Odredite najveći kvadrat koji se može smjestiti u tablicu alociranu u (a) tako da taj kvadrat ne obuhvaća niti jednu figuricu. U tablici znakovima o označite položaj tog kvadrata, te ispišite dobivenu tablicu na ekran. Primjer: ulaz ekran nakon (a) ekran nakon (b) 4 ------ ------ 2 B -#---- -#ooo- 3 F -#---# -#ooo# 5 D ------ --ooo- 3 B ---#-- ---#--

3. zadatak [15+10 bodova] Za opis zadatka definiran je tip Narudzba na sljedeći način. typedef s t r u c t Narudzba { i n t koliko, c i j e n a ; char proizvod [ 3 2 ] ; s t r u c t Narudzba next ; } Narudzba ; gdje proizvod označava naziv proizvoda, cijena cijenu jednog proizvoda i koliko broj naručenih proizvoda. a) Napišite funkciju void puno(narudzba *lista, int ukupno) koja ispisuje nazive naručenih proizvoda (lista je pointer na prvi element liste) za koje je ukupna cijena narudžbe veća od ukupno. Nadalje, funkcija te proizvode treba izbrisati iz liste. b) Napišite funkciju void stolica(narudzba *lista, int koliko, int cijena) (lista je pointer na prvi element liste) koja na početak liste ubacuje narudžbu koliko komada stolica po cijeni cijena.

4. zadatak [20 bodova] Po šahovskoj ploči (8 8) krećemo se tako da se u jednom koraku možemo pomaknuti samo za jedno mjesto prema lijevo, desno, gore ili dolje, pri čemu ne smijemo stati na polje kojemu obje koordinate u binarnom zapisu imaju samo jedinice. Napišite funkciju pomoću koje ćete odrediti na koliko načina je moguće iz kuta s koordinatama (8, 1) doći do kuta s koordinatama (1, 8). Obavezno napišite poziv funkcije koji će kao povratnu vrijednost imati traženi rezultat.

Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje, te službeni šalabahter. Kalkulatori, mobiteli, razne neslužbene tablice, papiri i sl., nisu dozvoljeni! Sva rješenja napišite isključivo na papire sa zadacima, jer jedino njih predajete. Ne zaboravite se potpisati na svim papirima! Skice smijete raditi i na drugim papirima koje će vam dati dežurni asistent. U svim zadacima zabranjeno je korištenje dodatnih nizova i standardne matematičke biblioteke (zaglavlje math.h), osim ako je u zadatku drugačije navedeno. [5+10+15 bodova] 1. zadatak Napišite deklaraciju tipa ciao pomoću kojeg ćete u nizu držati jedan prirodni broj i jedan string duljine najviše 401 znak. Pri tome deklarirajte samo ona polja u strukturi koja su nužna za rješenje zadatka, te pazite da bude moguce napraviti deklaraciju poput ciao x;. Zatim napišite funkciju sort koja kao argument prima jedan niz elemenata tipa ciao (i njegovu duljinu), te taj niz sortira uzlazno prema podstringovima koji počinju i-tim znakom i protežu se do kraja stringa (pri čemu su i i string dijelovi svakog elementa, deklarirani u prvom dijelu zadatka). Elemente kojima su ti podstringovi jednaki treba sortirati uzlazno prema vrijednosti cijelog stringa. Kod usporedivanja podstringova možete pretpostaviti da su svi stringovi dovoljno dugački (tj. da je pripadni broj manji ili jednak duljini stringa). Napišite i program koji preko komandne linije uzima dva argumenta (provjerite da su zadana točno dva!), od kojih prvi predstavlja naziv binarne datoteke s podacima tipa ciao, a drugi jedan prirodni broj m. Program treba učitati one podatke kojima je broj manji od m te ih sortirati funkcijom sort i ispisati. Nemojte uvoditi ograničenje na broj podataka u datoteci.

2. zadatak [10+15 bodova] Stupci tablice označeni su redom brojevima 1, 2, 3,..., a redci redom slovima A, B, C,... Polja tablice mogu biti prazna (oznaka:.) ili na njima može biti figurica (oznaka: o). (a) Učitajte prirodni broj N (pretpostavite da je manji od 400), te zatim N koordinata na kojima se na ploči nalaze figurice (vidi primjer koordinata je ureden par (redak, stupac)). Alocirajte najmanju moguću tablicu tako da se sve figurice mogu smjestiti u nju, popunite ju oznakama praznih polja i figurica, te ispišite na ekran. (b) Odredite najveći kvadrat koji se može smjestiti u tablicu alociranu u (a) tako da taj kvadrat obuhvaća točno jednu figuricu. U tablici znakovima # označite položaj tog kvadrata, te ispišite dobivenu tablicu na ekran. Primjer: ulaz ekran nakon (a) ekran nakon (b) 4.....#### B 2.o....o#### C 6.o...o.o#### E 4.....#### C 2...o.....o..

3. zadatak [15+10 bodova] Za opis zadatka definiran je tip Narudzba na sljedeći način. typedef s t r u c t Narudzba { i n t koliko, c i j e n a ; char proizvod [ 3 2 ] ; s t r u c t Narudzba next ; } Narudzba ; gdje proizvod označava naziv proizvoda, cijena cijenu jednog proizvoda i koliko broj naručenih proizvoda. a) Napišite funkciju void malo(narudzba *lista, int ukupno) koja ispisuje nazive naručenih proizvoda (lista je pointer na prvi element liste) za koje je ukupna cijena narudžbe manja od ukupno. Nadalje, funkcija te proizvode treba izbrisati iz liste. b) Napišite funkciju void polica(narudzba *lista, int koliko, int cijena) (lista je pointer na prvi element liste) koja na kraj liste ubacuje narudžbu koliko komada polica po cijeni cijena.

4. zadatak [20 bodova] Po šahovskoj ploči (8 8) krećemo se tako da se u jednom koraku možemo pomaknuti samo za jedno mjesto prema lijevo, desno, gore ili dolje, pri čemu ne smijemo stati na polje kojemu zbroj koordinata u binarnom zapisu ima samo jedinice. Napišite funkciju pomoću koje ćete odrediti na koliko načina je moguće iz kuta s koordinatama (8, 1) doći do kuta s koordinatama (1, 8). Obavezno napišite poziv funkcije koji će kao povratnu vrijednost imati traženi rezultat.