ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU PROGRAMIRANJE 2 MATERIJALI ZA PRIPREMU ISPITA. verzija:

Størrelse: px
Begynne med side:

Download "ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU PROGRAMIRANJE 2 MATERIJALI ZA PRIPREMU ISPITA. verzija:"

Transkript

1 ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU PROGRAMIRANJE 2 MATERIJALI ZA PRIPREMU ISPITA verzija: Studentima se savetuje da programski kod ne uče napamet. Za pisanje i testiranje rešenja zadataka se predlaže upotreba nekog od razvojnih okruženja za programski jezik C. Sadržaj: OO1P2, popravni kolokvijum, jul (I način)... 4 OO1P2, popravni kolokvijum, jul (II način)... 5 OO1P2, kolokvijum, april OO1P2, kolokvijum, april OO1P2, popravni kolokvijum, jun OO1P2, kolokvijum, april OO1P2, kolokvijum, april OO1P2, kolokvijum, april OO1P2, popravni kolokvijum, jun OO1P2, kolokvijum, april OO1P2, kolokvijum, april OO1P2, popravni kolokvijum, jun SI1P2, prvi kolokvijum, mart SI1P2, prvi kolokvijum, mart SI1P2, prvi kolokvijum, mart SI1P2, prvi kolokvijum, mart SI1P2, drugi kolokvijum, april SI1P2, treći kolokvijum, jun SI1P2, prvi kolokvijum, mart SI1P2, prvi kolokvijum, mart

2 SI1P2, drugi kolokvijum, SI1P2, popravni drugi kolokvijum, jun SI1P2, prvi kolokvijum, mart SI1P2, drugi kolokvijum, SI1P2, popravni prvi kolokvijum, jun SI1P2, prvi kolokvijum, mart, SI1P2, prvi kolokvijum, mart SI1P2, popravni prvi kolokvijum, april P2, ispit, jun P2, ispit, septembar P2, ispit, jun P2, ispit, jun P2, ispit, jul P2, ispit, jul P2, ispit, septembar P2, ispit, septembar P2, ispit, oktobar P2, ispit, oktobar P2, ispit, jun P2, ispit, jul P2, ispit, jul P2, ispit, septembar P2, ispit, oktobar P2, ispit, jun P2, ispit, jul P2, ispit, septembar P2, ispit, septembar P2, ispit, jul P2, ispit, jul P2, ispit, septembar P2, ispit, oktobar P2, ispit, januar P2, ispit, jun P2, ispit, jun P2, ispit, jul P2, ispit, septembar

3 P2, ispit, oktobar P2, ispit, jun P2, ispit, jul P2, ispit, septembar P2, ispit, oktobar P2, ispit, jun P2, ispit, jun P2, ispit, jul P2, ispit, jul

4 OO1P2, popravni kolokvijum, jul (I način) Zadatak 1. Napisati program na programskom jeziku C koji određuje da li su dva skupa celih brojeva, u opsegu od 0 do 15, jednaka. Program treba da učita sa standardnog ulaza elemente skupova, najpre prvog a zatim drugog. Elementi skupova se unose u proizvoljnom redosledu, a dodavanje elementa koji već postoji u skupu se ignoriše. Nakon završenog unosa elemenata skupova, program ispiše "Skupovi su jednaki" ili "Skupovi nisu jednaki" u zavisnosti od ishoda poređenja. Program ponavlja prethodne korake (unos skupova i poređenje) sve dok korisnik ne naznači da želi da prekine program. #define MAX_SKUP 16 main () { int skup1[max_skup], skup2[max_skup]; int i, end=1, jednaki, b; while (end) { for(i=0;i<max_skup;i++) skup1[i]=skup2[i]=0; printf("unesite elemente prvog skupa: "); while(1) { scanf("%d",&b); if ((b<0) (b>=max_skup)) break; skup1[b]=1; printf("unesite elemente drugog skupa: "); while(1) { scanf("%d",&b); if ((b<0) (b>=max_skup)) break; skup2[b]=1; jednaki=1; for(i=0;i<max_skup;i++) if (skup1[i]!=skup2[i]) { jednaki=0; break; if (jednaki) printf("skupovi su jednaki!\n"); else printf("skupovi nisu jednaki!\n"); printf("0 za kraj, 1 za nastavak: "); scanf("%d",&end); Materijali za pripremu ispita iz Programiranja 2 4

5 OO1P2, popravni kolokvijum, jul (II način) Zadatak 1. Napisati program na programskom jeziku C koji određuje da li su dva skupa celih brojeva, u opsegu od 0 do 15, jednaka. Program treba da učita sa standardnog ulaza elemente skupova, najpre prvog a zatim drugog. Elementi skupova se unose u proizvoljnom redosledu, a dodavanje elementa koji već postoji u skupu se ignoriše. Nakon završenog unosa elemenata skupova, program ispiše "Skupovi su jednaki" ili "Skupovi nisu jednaki" u zavisnosti od ishoda poređenja. Program ponavlja prethodne korake (unos skupova i poređenje) sve dok korisnik ne naznači da želi da prekine program. #define MAX_SKUP 16 void main () { unsigned short skup1 = 0, skup2 = 0; int i, end=1, b; while (end) { printf("unesite elemente prvog skupa: "); while(1) { scanf("%d",&b); if ((b<0) (b>=max_skup)) break; skup1 = 1 << b; printf("unesite elemente drugog skupa: "); while(1) { scanf("%d",&b); if ((b<0) (b>=max_skup)) break; skup2 = 1 << b; if (skup1 == skup2) printf("skupovi su jednaki!\n"); else printf("skupovi nisu jednaki!\n"); printf("0 za kraj, 1 za nastavak: "); scanf("%d",&end); Napomena: Primetiti da je drugi način predstavljanja skupova znatno efikasniji sa stanovišta iskorišćenja memorije. Materijali za pripremu ispita iz Programiranja 2 5

6 OO1P2, kolokvijum, april Zadatak 1. Napisati program na programskom jeziku C kojim se u prazan jednodimenzioni niz celih brojeva umeću pozitivni celi brojevi u nerastućem poretku. U niz ne treba umetati broj ako on već postoji. Brojevi se čitaju sa standardnog ulaza, a unos se prekida kada korisnik unese vrednost koja nije pozitivna. Nakon unosa, program treba da ispiše sadržaj niza. #define MAX 20 void main () { int a[max], i, j, b, n, ind; n = 0; while (n < MAX) { printf("\nunesite broj: "); scanf("%d",&b); if (b<0) break; for(i=ind=0;i<n a[i]>b;i++) if (a[i]==b) ind=1; if (ind) continue; for (i=n-1; i>=0 && a[i]<b; i--) a[i+1] = a[i]; a[i+1] = b; n++; printf("\nunesti niz: "); for(i=0;i<n;i++) printf("%d ",a[i]); Materijali za pripremu ispita iz Programiranja 2 6

7 OO1P2, kolokvijum, april Zadatak 1. Neka se poruka sastoji od N (N 100) celobrojnih, osmobitnih reči, tipa unsigned char. Svaka reč poruke se sastoji od jednog 7-bitnog broja koji zauzima najniže bitove reči, dok najviši bit (bit najveće težine) predstavlja bit parnosti. Bit parnosti se postavlja na vrednost 0 ukoliko je broj binarnih jedinica u preostalih 7 bita paran, a u suprotnom se postavlja na vrednost 1. Napisati program na programskom jeziku C koji sa glavnog ulaza pročita dužinu poruke n, zatim učitava n celih brojeva čije vrednosti mogu biti od 0 do 127, a zatim za svaki od učitanih brojeva računa i u njegov najviši bit upisuje bit parnosti, da bi formirao ispravnu reč. Nakon toga, program ispiše dobijenu poruku. Program ponavlja postupak sve dok se za dužinu niza n ne unese negativna vrednost. #define N 100 void main () { unsigned char a[n]; int i, j, n, odd; while (1) { printf("\nn? "); scanf("%d", &n); if (n <= 0 n > N) break; printf("unesite poruku:\n"); for(i = 0; i < n; i++) scanf("%d", &a[i]); for(i = 0; i < n; i++) { odd = 0; for(j = 0; j < 7; j++) odd += (a[i] >> j) & 1; a[i] = odd % 2? 0x80 : 0; //alternativno: odd & 1 printf("poruka za slanje:\n"); for(i = 0; i < n; i++) printf("%u", a[i]); Napomena: primetiti da zbog ograničenog opsega vrednosti od 0 do 127, binarna reprezentacija elemenata niza zauzima samo najnižih 7 bita broja. Primer računanja bita parnosti na dužini od 8 bita Broj: 7910 = Broj sadrži 5 aktivnih bitova (jedinica) u binarnoj predstavi. Da bi se zadovoljilo pravilo za računanje bita parnosti, najviši bit je potrebno postaviti na vrednost 1. Broj nakon dodavanja bita parnosti: = Broj: 7810 = Broj sadrži 4 aktivna bita (jedinice) u binarnoj predstavi. Broj ne treba menjati, jer već ima paran broj jedinica i pravilo za računanje bita parnosti je zadovoljeno. Materijali za pripremu ispita iz Programiranja 2 7

8 OO1P2, popravni kolokvijum, jun Zadatak 1. Napisati program na programskom jeziku C koji odredi i ispiše najmanji neoznačeni ceo broj koji se može zapisati proizvoljnim kombinovanjem heksadecimalnih cifara koje se pročitaju sa glavnog ulaza. Broj je potrebno ispisati u decimalnom i heksadecimalnom obliku. Pretpostaviti da se cifre od A do F predstavljaju isključivo velikim slovima (ASCII kodovi cifara su manji od ASCII kodova velikih slova). Na primer, za unete cifre 5, C, 8, 5 i 2, najmanji ceo broj je 2558C. Smatrati da se celi brojevi sastoje od najviše 6 cifara. Validnost unetih podataka ne treba proveravati. #include <ctype.h> #define N 6 void main () { char broj[n+1], c; int n = 0, vred, i, j; while(((c = getchar())!= '\n') && (n < N)) { if (!(isdigit(c) (c >= 'A' && c <= 'F') (c >= 'a' && c <= 'f'))) continue; broj[n++] = c; broj[n] = '\0'; for(i = 0; i < n-1; i++) for(j = i+1; j < n; j++) if (broj[i] > broj[j]) { c = broj[i]; broj[i] = broj[j]; broj[j] = c; sscanf(broj, "%x", &vred); printf("minimalna vrednost: %d %s", vred, broj); Materijali za pripremu ispita iz Programiranja 2 8

9 OO1P2, kolokvijum, april Zadatak 1. Napisati program na programskom jeziku C koji na slučajan način generiše dva niza realnih brojeva X i Y zadate dužine koji predstavljaju koordinate tačaka u ravni. Prvo se unese dužina nizova, a zatim se generišu koordinate tačaka u opsegu[0.0, 1.0]. Nakon generisanja tačaka, iz nizova treba ukloniti sve one tačke koje ne pripadaju krugu jediničnog poluprečnika čiji se centar nalazi u koordinatnom početku. Na kraju programa ispisati rezultujuće nizove, tačku po tačku. Postupak ponavljati sve dok se za dužinu nizova ne unese nedozvoljena vrednost. #include <stdlib.h> #include <time.h> #define N 100 void main () { float x[n], y[n]; int i, j, n; srand(time(null)); while (1) { printf("\nunesite broj tacaka: "); scanf("%d", &n); if (n <= 0 n > N) break; for(i=0; i<n; i++) { x[i] = rand()/((float)rand_max); y[i] = rand()/((float)rand_max); for (i=j=0; i<n; i++) if (x[i]*x[i] + y[i]*y[i] <= 1) { x[j] = x[i]; y[j] = y[i]; j++; n = j; printf("\ntacke koje pripadaju krugu:\n"); for(i=0; i<n; i++) printf("(%f,%f) ", x[i], y[i]); Materijali za pripremu ispita iz Programiranja 2 9

10 OO1P2, kolokvijum, april Zadatak 1. Napisati program na programskom jeziku C koji vrši određenu obradu nad dva niza celih brojeva jednake dužine (najviše 100 elemenata). Program treba da utvrdi i ispiše da li je prvi učitani niz moguće dobiti rotacijom drugog učitanog niza za odgovarajući broj mesta udesno, kao i broj mesta za koji ga je potrebno rotirati. Program najpre treba da učita dimenziju nizova, zatim i same nizove. Na kraju, program treba da ispiše na standardnom izlazu ulazne nizove i rezultat provere. Postupak ponavljati sve dok se za dužinu nizova ne unese nedozvoljena vrednost. #define MAX 100 void main () { int a[100], b[100], pom[100]; int i, j, n, rot = 0, jednaki = 0, temp; while (1) { printf("unesite duzinu nizova: "); scanf("%d", &n); if (n <= 0 n > MAX) break; printf("unesite prvi niz: "); for(i = 0; i < n; i++) scanf("%d", &a[i]); printf("unesite drugi niz: "); for(i = 0; i < n; i++) { scanf("%d", &b[i]); pom[i] = b[i]; rot = 0; for(i = 0; i < n; i++) { jednaki = 1; for(j = 0; j < n; j++) if (a[j]!= pom[j]) { jednaki = 0; break; if (jednaki) break; rot++; temp = pom[n-1]; for (j = n-1; j > 0; j--) pom[j] = pom[j-1]; pom[0] = temp; printf("niz A: "); for(i = 0; i < n; i++) printf("%d ", a[i]); printf("\nniz B: "); for(i = 0; i < n; i++) printf("%d ", b[i]); if (jednaki) printf("\nniz A se dobija rotacijom niza B za %d mesta udesno!\n", rot); else printf("\nniz A se ne moze dobiti rotacijom niza B!\n"); Napomena: Zadatak se jednostavno može rešiti i bez upotrebe pomoćnog niza. Materijali za pripremu ispita iz Programiranja 2 10

11 OO1P2, kolokvijum, april Zadatak 1. Napisati program na programskom jeziku C koji vrši određenu obradu nad nizom celih brojeva. Niz može sadržati najviše 100 elemenata. Program najpre treba da učita dužinu niza i same elemente niza, a zatim na standardnom izlazu ispiše svaki element niza kao zbir stepena dvojke od kojih se on sastoji. Obezbediti da se u niz mogu uneti samo pozitivni celi brojevi. Ukoliko korisnik unese negativan broj ili nulu ponovo zatražiti unos. Prilikom ispisa usvojiti format izlaza kao što je u primeru. Postupak ponavljati sve dok se za dužinu niza ne unese nekorektna vrednost. Primer ulaza n = 4 Niz: #define MAX 100 void main(){ int n, a[max], i, j; while(1){ scanf("%d", &n); if(n<=0 n>max) break; for (i = 0; i < n; ++i){ a[i] = 0; while(a[i] <= 0) scanf("%d", &a[i]); Primer izlaza 13 = 2^3 + 2^2 + 2^0 6 = 2^2 + 2^1 21 = 2^4 + 2^2 + 2^0 4 = 2^2 for (i = 0; i < n; ++i){ int isfirst = 1; printf("\n%d = ", a[i]); for(j = sizeof(int)*8-1; j >= 0; j--) if(a[i] & 1 << j){ if(!isfirst) printf(" + "); // print the plus if not first else isfirst = 0; // clear the flag printf("2^%d", j); putchar('\n'); Napomene: Obratiti pažnju da je broj potrebno kao sumu stepena dvojke počevši od člana najveće težine ka članu najmanje težine. Takođe, nakon poslednjeg člana sume ne treba ispisati znak +. Bitsko maskiranje i provera se mogu izvršiti i na drugačiji način: unsigned int mask = 1 << (sizeof(int)*8-1), j = sizeof(int)*8-1; for(; mask; mask >>=1, j--) if(a[i] & mask){ printf("%c 2^%d", isfirst? '' : '+', j); if(isfirst) isfirst = 0; // clear the flag Materijali za pripremu ispita iz Programiranja 2 11

12 OO1P2, popravni kolokvijum, jun Zadatak 1. Napisati program na programskom jeziku C koji obrađuje poene studenata osvojene na ispitu. Rezultati studenata na ispitu su predstavljeni pomoću dva niza celih brojeva, gde prvi niz predstavlja niz osmocifrenih brojeva indeksa studenata u formi ggggiiii (npr predstavlja broj indeksa 2013/0001), a drugi niz sadrži poene koje je student, čiji je broj indeksa u prvom nizu na odgovarajućoj poziciji, osvojio na ispitu. Niz poena se na početku inicijalizuje nulama. Program učitava prvo broj studenata, a zatim i niz sa brojevima indeksa studenata u kome nema ponavljanja. Korisnik potom unosi poene studentima, tako što u svakom redu unese broj indeksa željenog studenta, a onda i broj poena koje mu želi dodati. Moguće je više puta uneti poene za istog studenta, pri čemu se poeni sabiraju. Unos poena se ponavlja sve dok se ne unese broj indeksa koji ne postoji u nizu indeksa. Nakon unosa, program treba da odredi i ispiše prosečan broja poena na ispitu za generaciju čija se godina upisa (podatak gggg iz indeksa) unese sa standardnog ulaza. #define MAX 50 void main(){ int niz_indeksi[max], niz_poeni[max]; int indeks, poeni, n, godina, suma, broj, i, j, poz; for(i = 0; i < MAX; i++) // ili inicijalizacija niz_poeni[max]={0; niz_poeni[i] = 0; printf("broj studenata? "); scanf("%d", &n); // provera prekoracenja if(n>max n<=0){ printf("nekorektan broj studenata.\n"); return; // ucitavanje indeksa for(i=0; i<n; i++) scanf("%d", &niz_indeksi[i]); // ucitavanje poena while(1){ printf("indeks poeni? "); scanf("%d %d", &indeks, &poeni); // dozvoljene negativne vrednosti // pretraga pozicije indeksa for(j=0; j < n; j++) if(niz_indeksi[j]==indeks) break; // prekid unosa poena if(j==n) break; // dodavanje poena niz_poeni[j]+=poeni; printf("godina upisa? "); scanf("%d", &godina); suma = broj = 0; for(i=0; i<n; i++){ // provera pripadnosti generaciji if(niz_indeksi[i]/10000 == godina){ suma+=niz_poeni[i]; broj++; if(broj>0) printf("prosecan broj poena za generaciju %d iznosi %lf", godina, (double)suma/broj); else printf("nema podataka o generaciji %d.\n", godina); Materijali za pripremu ispita iz Programiranja 2 12

13 OO1P2, kolokvijum, april Zadatak 1. Napisati program na programskom jeziku C koji vrši simulaciju promene broja stanovnika u gradovima. Program najpre učita broj gradova koje će obrađivati (najviše 100) i broj godina za simulaciju, a zatim brojeve stanovnika za sve gradove. Simulacija se radi na sledeći način: na godišnjem nivou broj stanovnika u svakom gradu se promeni za slučajan broj koji je u opsegu od -1% do +1% broja stanovnika u gradu na početku godine. Za svaku godinu u simulaciji u zasebnom redu treba ispisati brojeve stanovnika koje svaki grad ima na kraju te godine. Kada se završi simulacija, ispisati broj stanovnika za najnaseljeniji grad. U slučaju da se sa standardnog ulaza unese nekorektna vrednost za bilo koji podatak, ispisati odgovarajuću poruku i prekinuti izvršavanje programa. #include<stdio.h> #include<stdlib.h> #define MAX 100 void main() { int godine, n, i, j, max, int gradovi[max]; double slucajan; printf("unesite broj gradova: "); scanf("%d", &n); if (n < 1 n > MAX) { printf("greska: Broj gradova je neodgovarajuci.\n"); exit(1); printf("unesite broj stanovnika za gradove:\n"); for (i = 0; i < n; i++){ scanf("%d", &gradovi[i]); if (gradovi[i] < 2) { printf("greska: Broj stanovnika grada je neodgovarajuci.\n"); exit(1); printf("unesite broj godina: "); scanf("%d", &godine); if (godine < 1) { printf("greska: Broj godina je neodgovarajuci.\n"); exit(1); for (i = 0; i < godine; i++) { for (j = 0; j < n; j++) { slucajan = rand() / (double)rand_max * 2-1; gradovi[j] += gradovi[j] * slucajan / 100; if (gradovi[j] < 2) { printf("greska: Broj stanovnika grada je neodgovarajuci.\n"); exit(1); for (j = 0; j < n; j++) printf("%d ", gradovi[j]); printf("\n"); max = gradovi[0]; for (i = 0; i < n; i++) if (max < gradovi[i]) max = gradovi[i]; printf("grad sa najvecim brojem stanovnika je %d.\n", max); Materijali za pripremu ispita iz Programiranja 2 13

14 OO1P2, kolokvijum, april Zadatak 1. Napisati program na programskom jeziku C koji pomaže organizatorima takmičenja u kucanju uskršnjim jajima da izaberu pobednike po kategorijama. Svako uskršnje jaje je organizaciona komisija opisala sledećim podacima: rednim brojem takmičara (ceo broj), jačinom ljuske (realan broj) i kategorijom jajeta (0 kokošije, 1 guščije, 2 drveno ili neidentifikovano). Redni brojevi takmičara se nalaze u opsegu od 0 do 100, a u takmičenju učestvuje najviše 1000 jaja. Jedan takmičar se može takmičiti sa više uskršnjih jaja. Program najpre treba da učita broj uskršnjih jaja (dužinu nizova) koje komisija treba da obradi, a zatim i podatke o svakom pojedinačnom jajetu razdvojene blanko znakom, za svako jaje iz posebnog reda. Pročitane podatke treba smeštati u tri niza odgovarajućeg tipa. Nakon učitavanja, program treba da ispiše podatke o pobedničkim jajima po kategorijama, ne uzimajući u obzir jaja diskvalifikovanih takmičara. Diskvalifikovani su oni takmičari koji su prijavili barem jedno drveno ili neidentifikovano jaje. Jaje je pobedničko ukoliko ima najjaču ljusku u svojoj kategoriji. #define MAX_JAJA 1000 #define MAX_TAKMICARA 100 enum kategorija_jaja {KOKOSIJE, GUSCIJE, DRVENO; int main () { int redni_broj[max_jaja], kategorija[max_jaja], takmicari[max_jaja] = {0, n, i, max_k_ind, max_g_ind; float jacina_ljuske[max_jaja], max_k, max_g; printf("unesite broj jaja na takmicenju: "); scanf("%d", &n); if (n <= 0 n > MAX_JAJA) return 1; printf("unesite podatke o svakom jajetu:\n"); for(i = 0; i < n; i++) { scanf("%d %f %d", &redni_broj[i], &jacina_ljuske[i], &kategorija[i]); takmicari[redni_broj[i]]++; for(i = 0; i < n; i++) if (kategorija[i] == DRVENO) takmicari[redni_broj[i]] = -1; max_k = max_g = 0; max_k_ind = max_g_ind = -1; for(i = 0; i < n; i++) { if (kategorija[i] == KOKOSIJE && jacina_ljuske[i] > max_k && takmicari[redni_broj[i]] > 0) { max_k = jacina_ljuske[i]; max_k_ind = i; ; if (kategorija[i] == GUSCIJE && jacina_ljuske[i] > max_g && takmicari[redni_broj[i]] > 0) { max_g = jacina_ljuske[i]; max_g_ind = i; ; if (max_k_ind!= -1) printf("najjace kokosije jaje: %d %0.2f.\n", redni_broj[max_k_ind], jacina_ljuske[max_k_ind]); else printf("nije bilo kokosijih jaja u regularnoj konkurenciji!\n"); if (max_g_ind!= -1) printf("najjace guscije jaje: %d %0.2f.\n", redni_broj[max_g_ind], jacina_ljuske[max_g_ind]); else printf("nije bilo guscijih jaja u regularnoj konkurenciji!\n"); return 0; Materijali za pripremu ispita iz Programiranja 2 14

15 OO1P2, popravni kolokvijum, jun Zadatak Napisati program na programskom jeziku C koji za dati delimično poznat neoznačeni ceo broj pronalazi njemu najsličniji broj u nekom skupu neoznačenih celih brojeva. Program sa standardnog ulaza prvo učitava dva broja N i M, a zatim N neoznačenih celih brojeva koji predstavljaju skup u kome se traži najsličniji broj. Nakon toga se unosi delimično poznati broj i to na sledeći način. Unosi se niz od M brojeva koji predstavljaju M najnižih binarnih cifara nepoznatog broja. U nizu se mogu naći vrednosti 0, 1, i -1. Vrednost -1 označava da vrednost cifre nije poznata. Unesene cifre su na pozicijama od M 1 do 0, gde je cifra na poziciji 0 najmanje težine. Cifre koje nisu unete su nepoznate. Program treba da ispiše najsličniji broj delimično poznatom broju (ako ih ima više, ispisati sve). Najsličniji je onaj broj koji ima najviše istih binarnih cifara na pozicijama kao i delimično poznat broj. Broj N ne može biti veći od 100 i broj M ne može biti veći od konstante sizeof(unsigned)*8. Za sve operacije sa bitovima koristiti bitske operatore. Primer ulaza: Primer izlaza: 6 7 #define MAX (100) int main() { unsigned set[max]; int n, m; unsigned similarity[max]; scanf("%d %d", &n, &m); for (int i = 0; i < n; i++) { scanf("%u", &set[i]); similarity[i] = 0; for (int i = m - 1; i >= 0; i--) { int value; scanf("%d", &value); if (value == -1) { continue; unsigned mask = 1 << i; for (int j = 0; j < n; j++) { unsigned one_bit = (set[j] & mask) >> i; if (one_bit == value) { similarity[j]++; unsigned max = 0; for (int i = 0; i < n; i++) { if (max < similarity[i]) { max = similarity[i]; for (int i = 0; i < n; i++) { if (max == similarity[i]) { printf("%u ", set[i]); putchar('\n'); return 0; Materijali za pripremu ispita iz Programiranja 2 15

16 SI1P2, prvi kolokvijum, mart Zadatak 1. Napisati program na programskom jeziku C koji generiše pseudoslučajan broj u opsegu od 10 do 10000, a zatim vrši proveru da li je generisani broj Fibonačijev broj. Fibonačijevi brojevi se računaju po formuli f0=1, f1=1, fn=fn-1 + fn-2, a generisane brojeve je potrebno ispisivati na standardnom izlazu. Na kraju programa ispisati rezultat provere. #include <stdlib.h> #include <time.h> #define LOW 10 #define HIGH void main () { int broj, f0, f1, f2; srand(time(null)); broj = rand()/((double)rand_max)*(high - LOW) + LOW; printf("pseudoslucajni broj: %d\n", broj); printf("generisem Fibonacijeve brojeve: \n"); for(f0=f1=f2=1; f2 < broj;) { f0 = f1; f1 = f2; f2 = f0 + f1; printf("%d ", f2); putchar('\n'); if (f2 == broj) printf("generisani broj je Fibonacijev broj.\n"); else printf("generisani broj nije Fibonacijev broj.\n"); Materijali za pripremu ispita iz Programiranja 2 16

17 SI1P2, prvi kolokvijum, mart Zadatak 2. Napisati program na programskom jeziku C koji sa glavnog ulaza učitava niz od 12 realnih brojeva koji predstavljaju prosečnu mesečnu temperaturu za svaki mesec u godini. Program treba da izračuna i ispiše na standardnom izlazu prosečnu temperaturu po kvartalima (tromesečjima) u toku zadate godine, kao i redni broj kvartala sa najmanjom i najvećom prosečnom temperaturom. Program treba da ponavlja prethodni postupak sve dok korisnik ne učita sve vrednosti 0 u ulazni niz. #define BROJ_MESECI 12 #define KVARTALI 4 #define KVARTAL 3 void main () { double temperature[broj_meseci], kvartali[kvartali] = {0; int i, min, max, uslov; while(1) { printf("unesite prosecne mesecne temperature: "); for(i=0; i<broj_meseci; i++) scanf("%lf", &temperature[i]); for(uslov=i=0; i<broj_meseci; i++) uslov = uslov (int)temperature[i]; if (!uslov) break; for(i=0; i<kvartal; i++) { kvartali[0] += temperature[i + 0*KVARTAL]; kvartali[1] += temperature[i + 1*KVARTAL]; kvartali[2] += temperature[i + 2*KVARTAL]; kvartali[3] += temperature[i + 3*KVARTAL]; printf("prosecna temperatura po kvartalima: \n"); for(i=0; i<kvartali; i++) { kvartali[i] /= KVARTAL; printf("%d: %2.2f\n", i, kvartali[i]); min = max = 0; for(i=1; i<kvartal; i++) { if (kvartali[i] < kvartali[min]) min = i; if (kvartali[i] > kvartali[max]) max = i; printf("\nkvartal sa najmanjom prosecnom temperaturom: %d\n", min); printf("kvartal sa najvecom prosecnom temperaturom: %d\n", max); Materijali za pripremu ispita iz Programiranja 2 17

18 SI1P2, prvi kolokvijum, mart Zadatak 1. Vrednost broja PI se može statistički odrediti uz pomoć generatora pseudoslučajnih brojeva uniformne raspodele. Potrebno je generisati tačke u ravni sa obema koordinatama u realnom opsegu [0, 1]. Vrednost broja PI se tada može odrediti na osnovu odnosa broja tačaka koje se nalaze u delu kruga poluprečnika 1 sa centrom u koordinatnom početku (Tc) i broja tačaka koje pripadaju kvadratu stranice 1 koji obuhvata sve generisane tačke (Tu) pomoću sledeće formule: = 4 T T c u Napisati program na programskom jeziku C koji izračunava vrednost broja PI. Program treba da učita ukupan broj tačaka koji treba da budu generisan, izračuna vrednost broja PI i ispiše rezultat. Program treba da ponavlja opisane korake sve dok se za broj tačaka unosi pozitivna vrednost.. #include <stdlib.h> #include <math.h> void main () { double x1, y1, d, pi; int i, in_circle = 0, n; srand(time(null)); while(1) { printf("unesi broj tacaka koji treba generisati: "); scanf("%d", &n); if (n <= 0) break; for (i = 0; i < n ; i++) { x1 = rand()/(double)rand_max; y1 = rand()/(double)rand_max; d = sqrt(x1*x1 + y1*y1); in_circle += (d <= 1.0)? 1 : 0; pi = (double)4*in_circle/n; printf("izracunata vrednost PI: %f\n", pi); Materijali za pripremu ispita iz Programiranja 2 18

19 SI1P2, prvi kolokvijum, mart Zadatak 2. Napisati program na programskom jeziku C koji sa standardnog ulaza učitava niz od najviše 100 celih brojeva, a zatim proverava da li uneti niz predstavlja bitoničku sekvencu. Bitonička sekvenca je sekvenca brojeva koja se sastoji od jedne monotono neopadajuće i jedne monotono nerastuće sekvence brojeva ili obratno (x0... xk... xn-1 ili x0... xk... xn-1, gde 0 k < n). Program treba da učita dužinu i elemente niza, a zatim izvrši proveru i ispiše odgovarajuću poruku. Obezbediti da se u niz mogu uneti samo brojevi u opsegu od 0 do 50. Ukoliko korisnik unese broj van tog opsega ponovo zatražiti unos. Program treba da ponavlja opisane korake sve dok se za dužinu niza ne unese nekorektna vrednost. #define MAX 100 void main () { int niz[max], i, n, provera, tranzicija; while(1) { printf("unesite duzinu niza: \n"); scanf("%d", &n); if (n <= 0 n > MAX) break; printf("unesite elemente niza u opsegu 0..50: \n"); for(i = 0; i < n; i++) { int broj; scanf("%d", &broj); while (broj < 0 broj > 50) { printf("broj van opsega! Unesite ponovo: \n"); scanf("%d", &broj); niz[i] = broj; if (n == 1) { printf("sekvenca je bitonicka!\n"); continue; provera = 0; tranzicija = 0; for (i = 1; i < n; i++) { if (niz[i-1] < niz[i]) { if (provera == 0) provera = 1; else if (provera == -1) { tranzicija++; provera = 1; else if (niz[i-1] > niz[i]) { if (provera == 0) provera = -1; else if (provera == 1) { tranzicija++; provera = -1; if (tranzicija == 1) printf("sekvenca je bitonicka!\n"); else printf("sekvenca nije bitonicka!\n"); Materijali za pripremu ispita iz Programiranja 2 19

20 SI1P2, drugi kolokvijum, april Zadatak 2. Napisati program na programskom jeziku C koji vrši određenu obradu nad dinamičkom matricom realnih brojeva. Program treba učita dimenzije i elemente matrice, a zatim formira novu matricu koja sadrži samo one vrste čija je aritmetička sredina elemenata veća od aritmetičke sredine svih elemenata u polaznoj matrici. Nakon obrade ispisati rezultujuću matricu. Voditi računa o korektnoj upotrebi dinamičke memorije. #include <stdlib.h> float ar_sred (float *arr, unsigned int n) { unsigned int i; float suma; for (i = suma = 0; i < n; i++) suma += arr[i]; return suma / n; int main () { unsigned int m1, m2, n, i, j; float **mat, **nova_mat, ar_sred_mat, ar_sred_vr; printf("unesite dimenzije matrice: "); scanf("%d%d", &m1, &n); if (m <= 0 n <= 0) return 1; mat = malloc(m1 * sizeof(float*)); if (mat == NULL) exit(1); for (i = 0; i < m1; i++) { mat[i] = malloc(n * sizeof(float)); if (mat[i] == NULL) exit(2); for (j = 0; j < n; j++) scanf("%f", &mat[i][j]); for (i = 0; i < m1; printf("\n"), i++) for (j = 0; j < n; j++) printf("%2.2f ", mat[i][j]); ar_sred_mat = 0; for (i = 0; i < m1; i++) ar_sred_mat += ar_sred(mat[i], n); ar_sred_mat /= m1; printf("aritemticka sredina clanova matrice je: %2.2f\n", ar_sred_mat); nova_mat = NULL; m2 = 0; for (i = 0; i < m1; i++) { ar_sred_vr = ar_sred(mat[i], n); if (ar_sred_vr > ar_sred_mat) { float **nova_m; nova_m = realloc(nova_mat, (m2 + 1) * sizeof(float*)); if (nova_m == NULL) exit(3); else nova_mat = nova_m; nova_mat[m2] = malloc(n * sizeof(float)); if (nova_mat[m2] == NULL) exit(2); for (j = 0; j < n; j++) nova_mat[m2][j] = mat[i][j]; m2++; for (i = 0; i < m2; printf("\n"), i++) for (j = 0; j < n; j++) printf("%2.2f ", nova_mat[i][j]); for (i = 0; i < m1; i++) free (mat[i]); free (mat); for (i = 0; i < m2; i++) free (nova_mat[i]); free (nova_mat); return 0; Materijali za pripremu ispita iz Programiranja 2 20

21 SI1P2, treći kolokvijum, jun Zadatak 2. Napisati program na programskom jeziku C koji prepisuje sadržaj ulazne tekst datoteke u izlaznu tekst datoteku uz izostavljanje svih pojavljivanja HTML tagova. HTML tagovi su oblika <tag> ili </tag>, gde tag može biti bilo koji niz karaktera uključujući i blanko znake. Jedan HTML tag može početi u jednom, a završiti se u nekom drugom redu. Imena ulazne i izlazne datoteke se zadaju kao prvi i drugi argument komandne linije. Ukoliko se za ime izlazne datoteke zada string "-" sadržaj treba ispisati na standardni izlaz (stdout). Očuvati uređenost tekst po redovima. #include <stdlib.h> #include <string.h> int main (int argc, char* argv[]) { FILE *ulaz, *izlaz; int c, tag = 0, br = 0; if (argc!= 3) { printf("neodgovarajuci broj parametara u komandnoj liniji!"); exit(1); if ((ulaz = fopen(argv[1], "r")) == NULL) { fprintf(stderr,"greska u otvaranju ulazne datoteke %s\n", argv[1]); exit(2); if (strcmp(argv[2], "-")!= 0) { if ((izlaz = fopen(argv[2], "w")) == NULL) { fprintf(stderr,"greska u otvaranju izlazne datoteke %s\n", argv[2]); exit(3); else izlaz = stdout; while ((c = fgetc(ulaz))!= EOF) { switch(c) { case '<': tag = 1; br++; break; case '>': tag = 0; br--; break; default: if (!tag &&!br) fputc(c, izlaz); break; fclose(ulaz); fclose(izlaz); return 0; Materijali za pripremu ispita iz Programiranja 2 21

22 SI1P2, prvi kolokvijum, mart Zadatak 1. Napisati program na programskom jeziku C koji sa standardnog ulaza učitava ceo broj tipa unsigned int (pretpostaviti da je za smeštanje jednog podatka tog tipa potrebno 16 bita), a potom proverava da li je bitska reprezentacija tog broja, posmatrana od bita najveće težine ka bitu najmanje težine, komplementarna u odnosu na bitsku reprezentaciju posmatranu od bita namanje težine ka bitu najveće težine. U slučaju da jeste, na standardnom izlazu treba ispisati poruku DA, u suprotnom poruku NE. Pimer: binarna reprezentacija broja je , pa se ispisuje poruka DA. #include<stdio.h> int main(){ unsigned int broj, dmaska = 0x0001, lmaska = 0x8000, i, da = 1; scanf("%d", &broj); for (i = 0; i < 8 && da; i++, lmaska >>= 1, dmaska <<= 1) if (!((broj & dmaska) ^ ((broj & lmaska) >> (15 - i * 2)))) da = 0; if (da) printf("da"); else printf("ne"); Materijali za pripremu ispita iz Programiranja 2 22

23 SI1P2, prvi kolokvijum, mart Zadatak 2. Napisati program na programskom jeziku C koji uređuje zadati niz od najviše 100 celih brojeva tako da sadrži prvo neparne brojeve u nerastućem po retku, a zatim parne brojeve u neopadajućemporetku. Elementi niza se inicijalizuju sekvencom pseudoslučajnih celih brojeva u opsegu [100,200]. Program najpre učita dužinu niza brojeva, zatim gainicijalizuje sekvencom pseudoslučajnih brojeva izzadatog opsega, sortira elemente prema zadatom kriterijumu i na kraju ispiše rezultujući niz.navedeni koraci se ponavljaju sve dok se za dužinuniza ne unese nekorektna vrednost. #include <stdlib.h> #define DIM 100 void main() { int a[dim], n, i, j, tmp, xchg; while (1) { printf("unesite broj elemenata:\n"); scanf("%d", &n); if (n < 1 n > DIM) break; printf("generisani niz:\n"); for (i = 0; i < n; i++){ a[i] = ((double)rand() / RAND_MAX)* ; printf("%d%c", a[i], (i == n - 1)? '\n' : ' '); for (i = 0; i < n;i++) for (j = i + 1; j < n; j++){ int i_paran, j_paran; i_paran = 0 == a[i] % 2; j_paran = 0 == a[j] % 2; xchg = i_paran &&!j_paran; xchg = xchg (i_paran && j_paran && a[i] < a[j]); xchg = xchg (!i_paran &&!j_paran && a[i] > a[j]); if (xchg) { tmp = a[i]; a[i] = a[j]; a[j] = tmp; printf("obradjeni niz:\n"); for (i = 0; i < n; i++){ printf("%d%c", a[i], (i == n - 1)? '\n' : ' '); Materijali za pripremu ispita iz Programiranja 2 23

24 SI1P2, drugi kolokvijum, Zadatak 2. Napisati program na programskom jeziku C koji vrši određenu obradu nad dinamičkom matricom realnih brojeva. Program treba da učita dimenzije i elemente matrice, a zatim i same elemente. Nakon toga program iz svake kolone matrice izbaci najveći element u toj koloni. Pretpostaviti da su svi elementi kolone različiti. Nakon izbacivanja elemenata osloboditi memorijski prostor koji se više ne koristi i ispisati rezultujuću matricu. Voditi računa o korektnoj upotrebi dinamičke memorije i optimalnom iskorišćenju memorijskog prostora. #include <stdlib.h> void main() { int **matrix, tmp, m,n; int i, j; scanf("%d%d", &m, &n); if (m < 1 n < 1) return; matrix = malloc(sizeof(int *) * m); if (NULL == matrix) return; for (i = 0; i < m; i++) { matrix[i] = malloc(sizeof(int) * n); if (NULL == matrix[i]) return; for (i = 0; i < m; i++) for (j = 0; j < n; j++) scanf("%d", &matrix[i][j]); for (j = 0; j < n; j++) { int max, index; max = matrix[0][j]; index = 0; for (i = 0; i < m; i++) if (max < matrix[i][j]) { max = matrix[i][j]; index = i; for (i = index; i < m - 1; i++) matrix[i][j] = matrix[i + 1][j]; if (m > 1) { m--; free(matrix[m]); tmp = realloc(matrix, sizeof(int *) * m); if (NULL!= tmp) matrix = tmp; for (i = 0; i < m; i++) for (j = 0; j < n; j++) printf("%d%c", matrix[i][j], (j == n - 1)? '\n' : ' '); for (i = 0; i < m; i++) free(matrix[i]); free(matrix); Materijali za pripremu ispita iz Programiranja 2 24

25 SI1P2, popravni drugi kolokvijum, jun Zadatak 1. Napisati program na programskom jeziku C funkciju char *num2word(char *str); koja u znakovnom nizu str uklanja jednocifrene brojeve i zamenjuje ih rečima (nula, jedan, dva,..., devet). Funkcija treba da vrati modifikovan znakovni niz. Za realizovanje tražene funkcije nije dozvoljeno korišćenje bibliotečkih funkcija, kao ni pomoćni niz. Napisati program na programskom jeziku C koji učitava niz znakova kao liniju teksta sa standardnog ulaza, a zatim pomoću realizovane funkcije obradi učitani niz znakova i potom ga ispiše na standardnom izlazu. Niz znakova se alocira dinamički i ništa se ne pretpostavlja o njegovoj dužini. Voditi računa o korektnoj upotrebi dinamičke memorije i optimalnom iskorišćenju memorijskog prostora. #include <stdlib.h> #include <string.h> #include <ctype.h> #define EOS (-1) char *words[] = { "nula", "jedan", "dva", "tri", "cetiri", "pet", "sest", "sedam", "osam", "devet" ; enum state { LOOK, DIGIT, NO_NUM ; int position_one_digit(char *str) { int i; enum state state; state = LOOK; for (i = 0; '\0'!= str[i]; i++) { switch (state){ case LOOK: if (isdigit(str[i])) state = DIGIT; else if (!isblank(str[i])) state = NO_NUM; break; case DIGIT: if (isblank(str[i])) return i - 1; else state = NO_NUM; break; case NO_NUM: if (isblank(str[i])) state = LOOK; break; if (DIGIT == state) return i - 1; return EOS; char *word(char c) { return words[c - '0']; Materijali za pripremu ispita iz Programiranja 2 25

26 int new_size(char *str) { int size; int i; size = strlen(str) + 1; while (EOS!= (i = position_one_digit(str))) { size += strlen(word(str[i])) - 1; str += i + 1; return size; char *num2words(char *str) { int nsize, osize; char *ret; int i, j, next; osize = strlen(str) + 1; nsize = new_size(str); ret = realloc(str, nsize); if (NULL == ret) return str; str = ret; for (i = nsize - 1, j = osize - 1; j >= 0; i--, j--) str[i] = str[j]; str = str + nsize - osize; i = 0; while (EOS!= (next = position_one_digit(str))) { char *w; for (j = 0; j < next; j++) ret[i++] = str[j]; w = word(str[next]); for (j = 0; '\0'!= w[j]; j++) ret[i++] = w[j]; str += next + 1; for (j = 0; '\0'!= str[j]; j++) ret[i++] = str[j]; ret[i] = '\0'; return ret; int main() { char *str, c; int i; str = NULL; i = 0; while ('\n'!= (c = getchar())) { if (0 == i % 10) { str = realloc(str, i + 10); if (NULL == str) exit(-1); str[i] = c; i++; str = realloc(str, i + 1); if (NULL == str) exit(-1); str[i] = '\0'; str = num2words(str); printf("%s\n", str); free(str); Materijali za pripremu ispita iz Programiranja 2 26

27 SI1P2, prvi kolokvijum, mart Zadatak 1. Napisati program na programskom jeziku C koji pretražuje binarnu predstavu broja radi pronalaženja svih pojava zadate binarne sekvence. Program treba sa standardnog ulaza da učita dva broja tipa unsigned int (pretpostaviti da je veličina tipa 16 bita). Prvo se učitava broj koji se pretražuje. Iz binarne predstave drugog učitanog broja izdvaja se deo između binarnih jedinica najmanje i najveće težine (uključujući i njih), pa to predstavlja sekvencu koja se traži. Pretraživanje se vrši počevši od cifre najveće težine. Program treba da ispiše sve početne pozicije u prvom broju gde je nađen zadati sadržaj (pozicija najveće težine je 15). Na primer neka je prvi broj 0x5B5A, a drugi broj 0x0168. Pozicije koje treba ispisati su: 14, 11 i 6. #define SIZE 16 void main() { unsigned int a, b, mask, ones; int first_one, last_one, i, find_start, iter; printf("unesite dva broja (drugi broj se pretrazuje u prvom)?\n"); scanf("%x%x", &a, &b); mask = 1; find_start = 1; for (i = 0; i < SIZE; i++){ if (mask & b) { if (find_start) { first_one = i; find_start = 0; last_one = i; mask <<= 1; if (find_start) { printf("drugi broj je jednak nuli\n"); return; ones = (1 << last_one first_one + 1) 1; mask = b << (SIZE - 1) - last_one; ones = ones << (SIZE (last_one first_one) 1); iter = SIZE - (last_one - first_one); for (i = 0; i < iter; i++) { if ((ones & a) == mask)) printf("%d ", (SIZE - i) - 1); mask >>= 1; ones >>= 1; Materijali za pripremu ispita iz Programiranja 2 27

28 SI1P2, drugi kolokvijum, Zadatak 2. Napisati program na programskom jeziku C koji učita matricu, obradi je i na kraju ispiše na standardni izlaz. Prilikom učitavanja matrice, prvo se učitaju dimenzije, a potom se alocira matrica odgovarajuće veličine i popuni vrednostima koje se pročitaju sa standardnog ulaza, tako da se svaka vrsta učitava iz posebnog reda. Učitana matrica se obrađuje tako što se prvo pronađe najmanja vrednost u matrici, a zatim se izbace sve vrste koje sadrže nađenu minimalnu vrednost. Na kraju ispisati sadržaj obrađene matrice. Voditi računa o korektnoj i optimalnoj upotrebi korišćenih resursa. #include <stdlib.h> #define CHECK(x) do { if (NULL == (x)) { \ printf("greska prilikom alokacije memorije.\n"); \ exit(-1); \ \ while (0) void main() { int **matrica, **nova, m, n, i, j, k, min; printf("unesite dimenzije matrice.\n"); scanf("%d%d", &m, &n); if (m < 1 n < 1) exit(0); printf("unesite elemente matrice.\n"); matrica = malloc(m*sizeof(int *)); CHECK(matrica); for (i = 0; i < m; i++) { matrica[i] = malloc(n*sizeof(int)); CHECK(matrica[i]); for (j = 0; j < n; j++) scanf("%d", &matrica[i][j]); min = matrica[0][0]; for (i = 0; i < m; i++) for (j = 0; j < n; j++) if (min > matrica[i][j]) min = matrica[i][j]; k = 0; for (i = 0; i < m; i++) { for (j = 0; j < n; j++) if (matrica[i][j] == min) break; if (j == n) { matrica[k] = matrica[i]; k++; else { free(matrica[i]); m = k; if (m > 0) { nova = realloc(matrica, m * sizeof(int *)); if (NULL!= nova) matrica = nova; for (i = 0; i < m; i++) { for (j = 0; j < n; j++) printf("%d ", matrica[i][j]); putchar('\n'); for (i = 0; i < m; i++) free(matrica[i]); free(matrica); Materijali za pripremu ispita iz Programiranja 2 28

29 SI1P2, popravni prvi kolokvijum, jun Zadatak 1. Napisati program na programskom jeziku C koji obađuje niz celih neoznačenih brojeva. Program sa standardnog ulaza učita broj elemenata niza i elemente niza, zatim iz niza izbaci sve elemente u čijoj binarnoj reprezentaciji ima više parova susednih jedinica od prosečnog broja parova susednih jedinica u reprezentacijama svih unetih brojeva, uredi preostale elemente niza po nerastućoj vrednosti elemenata i na kraju ispiše sadržaj rezultujućeg niza. Prilikom prebrojavanja parova jedna jedinica može da bude deo dva para (npr. u broju postoje 2 para susednih jedinica). Smatrati da niz ima najviše 100 elemenata. Za svaki uneti broj dozvoljeno je najviše jednom računati broj parova susednih jedinica, pa je izračunatu vrednost potrebno čuvati u pomoćnom nizu. Osim dva pomenuta niza nije dozvoljeno koristiti druge pomoćne nizove. #define MAX 100 void main() { unsigned brojevi[100], parovi[100], n, i, j, mask; double srednja_vrednost; scanf("%u", &n); if (n < 1 n > MAX) return; for (i = 0; i < n; i++) scanf("%u", &brojevi[i]); srednja_vrednost = 0; for (i = 0; i < n; i++) { mask = 3; parovi[i] = 0; for (j = 0; j < sizeof(unsigned) * 8-1; j++) { if ((mask & brojevi[i]) == mask) parovi[i]++; mask <<= 1; srednja_vrednost += parovi[i]; srednja_vrednost /= n; for (i = j = 0; i < n; i++) if (parovi[i] <= srednja_vrednost) brojevi[j++] = brojevi[i]; n = j; for (i = 0; i < n; i++) for (j = i + 1; j < n; j++) if (brojevi[i] < brojevi[j]) { unsigned tmp = brojevi[i]; brojevi[i] = brojevi[j]; brojevi[j] = tmp; for (i = 0; i < n; i++) printf("%u ", brojevi[i]); putchar('\n'); Materijali za pripremu ispita iz Programiranja 2 29

30 SI1P2, prvi kolokvijum, mart, Zadatak 1. Napisati program na programskom jeziku C koji vrši konverziju realnog broja iz binarnog u decimalni oblik. Realan broj u binarnom brojnom sistemu se zadaje kao niz znakova koji može sadržati samo cifre 0, 1 i eventualnu decimalnu tačku. Program treba da učita niz znakova sa standardnog ulaza do kraja tekućeg reda, izvrši konverziju zadatog broja u odgovarajući realni tip programskog jezika C i ispiše rezultat u decimalnom brojnom sistemu. Prlikom učitavanja, obezbediti da korisnik unosi samo dozvoljene znakove, a u slučaju unošenja nedozvoljenog znaka zahtevati ponovni unos. Smatrati da niz znakova nije duži od 50 elemenata i obezbediti prekid unosa, ukoliko korisnik pokuša da unese više znakova. #define MAX 50 int main() { char broj[max], znak, tacka = 0; int i, n; double ceo_deo = 0, realni_deo = 0, realni; printf("unesite broj u binarnom obliku:\n"); n = 0; while ((znak = getchar())!= '\n' && n < MAX) { broj[n++] = znak; for (i = 0; i < n; i++) { znak = broj[i]; while (znak!= '0' && znak!= '1' && znak!= '.') { printf("uneli ste nedozvoljeni znak, ponovite unos!\n"); znak = getchar(); if (znak == '.') tacka++; broj[i] = znak; if (n == 0) { printf("niz je prazan!\n"); else if (tacka > 1) { printf("broj je neispravan!\n"); else { i = 0; if (broj[i]!= '.') { ceo_deo = broj[0] - '0'; while (++i < n && broj[i]!= '.') ceo_deo = ceo_deo * 2 + (broj[i] - '0'); if (i < n) while (i < --n) realni_deo = (realni_deo + broj[n] - '0') / 2; realni = ceo_deo + realni_deo; printf("konvertovani broj je: %f\n", realni); return 0; Materijali za pripremu ispita iz Programiranja 2 30

31 SI1P2, prvi kolokvijum, mart Zadatak 1. Napisati program na programskom jeziku C koji računa pobednika u nekoj kartaškoj igri. Igra se igra sa 52 karte. Karta je određena vrednošću i znakom. Vrednost može biti ceo broj od 2 do 14. Postoje četiri znaka čije su jednoslovne oznake K, H, T i P. Korisnik u prvom redu na standardnom ulazu unosi broj igrača N koji igraju igru, kao i glavni znak u partiji. Maksimalan broj igrača je 10. Nakon toga se u N redova, za svakog igrača u posebnom redu, unose karte koje poseduje. Broj karata koje jedan igrač ima je 5. Za svaku kartu se unosi vrednost karte i znak, odvojeni tačno jednim razmakom. Karte u redu su međusobno odvojene jednim razmakom. Broj poena koje jedan igrač ima računa se kao zbir poena koje svaka karta koju ima nosi. Broj poena za kartu koja ima vrednost manju od 10 je isti kao i njena vrednost. Broj poena za kartu koja ima vrednost veću ili jednaku 10 je 10. Ukoliko je znak neke karte isti kao i glavni znak u partiji, broj poena se za tu kartu duplira. Program treba da ispiše redni broj igrača (od 1 do N) i broj poena koji je osvojio taj igrač, i to u posebnim redovima, u nerastućem poretku broja poena. Smatrati da je ulaz ispravan. #define MAX_NUMBER_OF_PLAYERS 10 #define NUMBER_OF_CARDS 5 #define MAX_CARD_VALUE 10 void main() { int numberofplayers, players[max_number_of_players], points[max_number_of_players], cardvalue, i, j, temp; char cardsign, mainsign; scanf("%d %c", &numberofplayers, &mainsign); for (i = 0; i < numberofplayers; i++) { players[i] = i + 1; points[i] = 0; for (j = 0; j < NUMBER_OF_CARDS; j++) { scanf("%d %c", &cardvalue, &cardsign); if (cardvalue > MAX_CARD_VALUE) { cardvalue = MAX_CARD_VALUE; if (cardsign == mainsign) { cardvalue *= 2; points[i] += cardvalue; for (i = 0; i < (numberofplayers - 1); i++) for (j = (i + 1); j < numberofplayers; j++) { if (points[i] < points[j]) { temp = points[i]; points[i] = points[j]; points[j] = temp; temp = players[i]; players[i] = players[j]; players[j] = temp; for (i = 0; i < numberofplayers; i++) printf("%d %d\n", players[i], points[i]); Materijali za pripremu ispita iz Programiranja 2 31

32 SI1P2, popravni prvi kolokvijum, april Zadatak 1. Napisati program na programskom jeziku C koji vrši određenu obradu nad nizom cifara celog broja (prvi element niza je cifra najveće težine, poslednji je cifra najmanje težine). Program najpre treba da učita dužinu niza, a zatim popuni niz brojevima u opsegu [0, 9], pri čemu prva cifra ne sme biti nula. Brojeve korisnik zadaje sa standardnog ulaza, a treba ponovljati učitavanje sve dok broj nije u odgovarajućem opsegu. Nakon toga, treba iz niza ukloniti jedan element, tako da broj predstavljen rezultujućim nizom cifara bude najveći moguć. Formirani niz ispisati na standardnom izlazu. Niz može sadržati najviše 100 elemenata. Ukoliko se za dužinu niza unese nekorektna vrednost, ponovo zatražiti unos. Primer generisanog niza #define MAX 100 Primer izlaznog niza int main() { int niz[max], i, n; do{ printf("uneti duzinu niza: "); scanf("%d", &n); while(n<=0 n>max); for(i=0; i<n; i++){ do { printf("uneti %d. cifru: ", i+1); scanf("%d", &niz[i]); while (niz[i]<(i==0?1:0) niz[i]>9); for(i=0; i<n-1 && niz[i]>=niz[i+1]; i++); while(i<n){ niz[i] = niz[i+1]; i++; n--; for(i=0; i<n; i++) printf("%d", niz[i]); Materijali za pripremu ispita iz Programiranja 2 32

33 P2, ispit, jun Zadatak 1. U nekoj kompaniji, podaci o službenim automobilima se čuvaju u datoteci automobili.txt. Svaki red datoteke sadrži podatke o jednom automobilu najpre registarski broj automobila (string od tačno 6 karaktera), a zatim naziv automobila koji se može sastojati od više reči. U datoteci putovanja.txt se nalaze podaci o službenim putovanjima u jednom redu datoteke se nalazi datum (u formatu dd-mm-gggg), registarski broj korišćenog automobila i broj pređenih kilometara (ceo broj). Napisati program na jeziku C koji pročita sadržaj navedenih tekst datoteka i ispiše na glavnom izlazu registarski broj i naziv automobila koji su prešli najmanji i najveći broj kilometara. U slučaju postojanja više automobila koji su prešli isti broj kilometara, uzima se u obzir onaj koji se pojavljuje prvi u datoteci. #include <stdlib.h> #include <string.h> #define NAZIV 100 #define REG 9 #define DATUM 11 typedef struct elem { char reg_broj[reg]; char naziv[naziv]; int kilometraza; struct elem *sled; Elem; void main () { Elem *prvi = NULL, *tek = NULL, *novi = NULL, *pret = NULL, *min, *max; char reg[reg], datum[datum]; int km, i; FILE *automobili, *putovanja; automobili = fopen("automobili.txt", "r"); putovanja = fopen("putovanja.txt", "r"); if (automobili == NULL putovanja == NULL) { fprintf(stderr, "Ne postoji neka od datoteka!"); exit(1); while (fscanf(automobili, "%s", reg)!= EOF) { novi = malloc(sizeof(elem)); if (novi == NULL) { fprintf(stderr, "Neuspesna alokacija dinamicke memorije"); exit(2); novi->kilometraza = 0; novi->sled = NULL; strcpy(novi->reg_broj, reg); i = fgets(novi->naziv, NAZIV-2, automobili); novi->naziv[strlen(novi->naziv)-1] = '\0'; if (prvi == NULL) prvi = novi; else pret->sled = novi; pret = novi; while (fscanf(putovanja, "%s%s%d", datum, reg, &km)!= EOF) { tek = prvi; while(tek!= NULL) { if (strcmp(reg, tek->reg_broj) == 0) { tek->kilometraza += km; break; tek = tek->sled; Materijali za pripremu ispita iz Programiranja 2 33

34 min = max = prvi; tek = prvi->sled; while (tek!= NULL) { if (tek->kilometraza < min->kilometraza) min = tek; else if (tek->kilometraza > max->kilometraza) max = tek; tek = tek->sled; printf("najmanje je presao: %s%s %d km\n", min->reg_broj, min->naziv, min->kilometraza); printf("najvise je presao: %s%s %d km\n", max->reg_broj, max->naziv, max->kilometraza); while(prvi) { pret = prvi; prvi = prvi->sled; free(pret); fclose(automobili); fclose(putovanja); Materijali za pripremu ispita iz Programiranja 2 34

35 P2, ispit, septembar Zadatak 2. Napisati program na programskom jeziku C koji računa i ispisuje površinu i koordinate donjeg levog i gornjeg desnog temena pravougaonika najveće površine konstruisanog na sledeći način: iz jednostruko ulančane liste tačaka bira se par tačaka koje predstavljaju temena na jednoj od dijagonala pravougaonika čije su stranice paralelne sa x i y osama. Program sa glavnog ulaza iz svakog reda treba da učita realne koordinate jedne tačke, sve dok se ne unesu koordinate (0,0). Od učitanih tačaka se formira jednostruko ulančana lista. Koordinate (0,0) se ne unose u listu. Broj koordinata nije unapred poznat. Učitavanje, obradu i dealokaciju liste realizovati kao zasebne potprograme. Voditi računa o ispravnoj alokaciji i dealokaciji dinamičke memorije. #include <stdlib.h> #include <math.h> typedef struct tacka { double x,y; struct tacka* sled; Elem; Elem* ucitaj () { double x,y; Elem *novi, *prvi, *preth; printf("unesite koordinate tacaka: \n"); preth = prvi = NULL; while(1) { scanf("%lf%lf",&x,&y); if (x==0 && y==0) break; novi = malloc(sizeof(elem)); if (novi == NULL) { printf("greska - dinamicka memorija!"); exit(1); novi->x = x; novi->y = y; novi->sled = NULL; if (prvi == NULL) prvi = novi; else preth->sled = novi; preth = novi; return prvi; void obradi (Elem* prvi) { Elem *tek1, *tek2, *max1, *max2; double p, maxp; if (!prvi->sled) return; tek1 = max1 = prvi; tek2 = max2 = prvi->sled; maxp = fabs(tek1->x - tek2->x) * fabs(tek1->y - tek2->y); while (tek1) { tek2 = tek1->sled; while (tek2) { p = fabs(tek1->x - tek2->x) * fabs(tek1->y - tek2->y); if (p > maxp) { maxp = p; max1 = tek1; max2 = tek2; tek2 = tek2->sled; tek1 = tek1->sled; printf("\nnajveca povrisna: %f\n", maxp); printf("kooridnate temena: (%0.2g,%0.2g) (%0.2g,%0.2g)\n", max1->x > max2->x? max2->x : max1->x, max1->y > max2->y? max2->y : max1->y, max1->x < max2->x? max2->x : max1->x, max1->y < max2->y? max2->y : max1->y); Materijali za pripremu ispita iz Programiranja 2 35

Programiranje 1 grupno spremanje (zadaci) datoteke

Programiranje 1 grupno spremanje (zadaci) datoteke Programiranje 1 grupno spremanje (zadaci) datoteke Tipovi datoteka Datoteke se mogu podeliti na binarne i tekstualne. Iako su na prvi pogled ova dva tipa veoma slična oni se suštinski razlikuju. Binarne

Detaljer

Zadatak 1 strukture (C110) P2: Jedanaesta nedelja Strukture i liste. Strukture na jeziku C (2) Strukture na jeziku C (1)

Zadatak 1 strukture (C110) P2: Jedanaesta nedelja Strukture i liste. Strukture na jeziku C (2) Strukture na jeziku C (1) Zadatak 1 strukture (C110) P2: Jedanaesta nedelja Strukture i liste Date su sledeće deklaracije: typedef int CeoBroj; typedef int *PokazivacNaCeoBroj; typedef int NizCelihBrojeva[100]; CeoBroj *pokaza;

Detaljer

Strukture. Strukturirani (složeni) tip podataka koji definiše korisnik. Razlike u odnosu na niz

Strukture. Strukturirani (složeni) tip podataka koji definiše korisnik. Razlike u odnosu na niz Strukture Strukture Strukturirani (složeni) tip podataka koji definiše korisnik sastoji se od više komponenti komponente imaju identifikatore ne moraju biti istog tipa struktura se smatra jednim objektom

Detaljer

Složeni tipovi podataka

Složeni tipovi podataka Složeni tipovi podataka Složeni tipovi? C raspolaže sljedećim složenim tipovima podataka: polja (indeksirane promjenljive) jednodimenzionalno = NIZ, dvodimenzionalno = MATRICA, višedimenzionalno strukture

Detaljer

Del 1 En oversikt over C-programmering

Del 1 En oversikt over C-programmering Del 1 En oversikt over C-programmering 1 RR 2016 Starten C ble utviklet mellom 1969 og 1973 for å re-implementere Unix operativsystemet. Er et strukturert programmeringsspråk, hvor program bygges opp av

Detaljer

1. 0BLINEARNE STRUKTURE PODATAKA

1. 0BLINEARNE STRUKTURE PODATAKA 1. 0BLINEARNE STRUKTURE PODATAKA 1.1. 1BPOLJE 1.1.1. 5BDEFINICIJE I STRUKTURA Polje (array) predstavlja linearnu homogenu statičku strukturu podataka i sastoji se od fiksnog broja komponenata istog tipa.

Detaljer

Kapittel 1 En oversikt over C-språket

Kapittel 1 En oversikt over C-språket Kapittel 1 En oversikt over C-språket RR 2015 1 Skal se på hvordan man En innføring i C Skriver data til skjermen Lese data fra tastaturet Benytter de grunnleggende datatypene Foretar enkle matematiske

Detaljer

/* Adresu promenjive x zapamticemo u novoj promeljivoj. Nova promenljiva je tipa pokazivaca na int (int*) */ int* px;

/* Adresu promenjive x zapamticemo u novoj promeljivoj. Nova promenljiva je tipa pokazivaca na int (int*) */ int* px; 1. 0B 2. PODSEĆANJE 1. /* Pokazivaci - osnovni pojam */ #include main() { int x = 3; /* Adresu promenjive x zapamticemo u novoj promeljivoj. Nova promenljiva je tipa pokazivaca na int (int*)

Detaljer

1 REALNE FUNKCIJE REALNE VARIJABLE

1 REALNE FUNKCIJE REALNE VARIJABLE REALNE FUNKCIJE REALNE VARIJABLE. Neka je f() = ln 4e 3 e. Odredite a) f b) D(f) i R(f) c) Odredite min f, inf f, ma f, sup f. 2. Odredite prirodnu domenu funkcije f() = ln (3e e 3 ) + 5 log 5 +3 + ( cos

Detaljer

4. Grafič ke funkčije

4. Grafič ke funkčije 4. Grafič ke funkčije Svaki grafik možemo posmatrati kao prikaz numeričkih vrednosti. Poreklo ovih vrednosti, međutim, diktira način na koji se one koriste ili generišu. U vedini slučajeva, izvor podataka

Detaljer

Uvod u Veb i Internet tehnologije HTML

Uvod u Veb i Internet tehnologije HTML Uvod u Veb i Internet tehnologije Filip Marić Vesna Marinković Filip Marić, Vesna Marinković Uvod u Veb i Internet tehnologije 1 / 49 Jezici za obeležavanje Pristupi kreiranju dokumenata Dva osnovna pristupa

Detaljer

1. DHB-E 18/21/24 Sli art ELEKTRONIČKI PROTOČNI GRIJAČ VODE

1. DHB-E 18/21/24 Sli art ELEKTRONIČKI PROTOČNI GRIJAČ VODE ZAGREB, SRPANJ, 2017. VELEPRODAJNI CIJENIK STIEBEL ELTRON ZA 2017 G. PROTOČNI BOJLERI 1. DHB-E 18/21/24 Sli art.232016 - ELEKTRONIČKI PROTOČNI GRIJAČ VODE Protočni grijač vode za trenutno zagrijavanje

Detaljer

Rapport Semesteroppgave i datasikkerhet Harald Dahle (795955) og Joakim L. Gilje (796196)

Rapport Semesteroppgave i datasikkerhet Harald Dahle (795955) og Joakim L. Gilje (796196) Rapport Semesteroppgave i datasikkerhet Harald Dahle (795955) og Joakim L. Gilje (796196) Sammendrag Oppgaven går ut på å implementere RSA-krypteringen. Deloppgaver for denne krypteringen er å implementere

Detaljer

Neprekidne funkcije nestandardni pristup

Neprekidne funkcije nestandardni pristup nestandardni pristup Predavanje u sklopu Teorije, metodike i povijesti infinitezimalnih računa fniksic@gmail.com PMF Matematički odsjek Sveučilište u Zagrebu 10. veljače 2011. Ciljevi predavanja Ciljevi

Detaljer

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays Oversikt C programmering 1 C programmering Introduksjon Kildekode Kompilering Hello world Hello world med argumenter 2 Funksjoner 3 Datatyper 4 Pekere og arrays 5 Kontrollstrukturer Lars Vidar Magnusson

Detaljer

Del 4 Noen spesielle C-elementer

Del 4 Noen spesielle C-elementer Del 4 Noen spesielle C-elementer 1 RR 2016 Header-filer inneholder Prototypene til funksjonene i standard biblioteket Verdier og definisjoner som disse funksjonene bruker #include #include

Detaljer

do minimalno 8 kreativnih objava mjesečno Povlaštena cijena nakon završetka akcije: 900,00 kn

do minimalno 8 kreativnih objava mjesečno Povlaštena cijena nakon završetka akcije: 900,00 kn do 30.09.2015. 9 2 Društvene mreže izrada nove ili redizajn postojeće fan stranice minimalno 4 kreativnih objava mjesečno 1.200,00 kn 50% 600,00 kn Povlaštena cijena nakon završetka akcije: 900,00 kn Yellow:

Detaljer

Oving 2. Oppgave 1. #include <stdio.h> int main(int argc, char **argv) { char *navn = argv[1]; printf ("Navnet ditt er %s\n", navn); } Oppgave 2

Oving 2. Oppgave 1. #include <stdio.h> int main(int argc, char **argv) { char *navn = argv[1]; printf (Navnet ditt er %s\n, navn); } Oppgave 2 Oving 2 Oppgave 1 int main(int argc, char **argv) char *navn = argv[1]; printf ("Navnet ditt er %s\n", navn); Oppgave 2 char navn[25]; printf( "Hei hva heter du?\n" ); scanf("%s", navn); printf ("Hei:

Detaljer

Ord og begreper. Norsk Morsmål: Tegning (hvis aktuelt)

Ord og begreper. Norsk Morsmål: Tegning (hvis aktuelt) Ord og begreper Norsk Morsmål: Tegning (hvis aktuelt) Få Dobiti Mange Mnogo Venstre Lijevo Høyre Desno Øverst Iznad Nederst Niže Lite Malo Mye Mnogo Flest Vecina Færrest Najmanje Oppe Gore Nede Dole Mellom

Detaljer

Izmena i dopuna konkursne dokumentacije

Izmena i dopuna konkursne dokumentacije SPECIJALNA BOLNICA ZA LEČENјE I REHABILITACIJU 36210 Vrnjačka Banja, Bul. Srpskih ratnika br. 18 Telefon i telefaks: 036/515-514-5 Broj: 01-3114/4 Datum: 25.07.2017.godine Izmena i dopuna konkursne dokumentacije

Detaljer

Kartlegging av leseferdighet Trinn 2 og 3 på bosnisk

Kartlegging av leseferdighet Trinn 2 og 3 på bosnisk Lærerveiledning Bosnisk, 2. og 3. trinn Lærerveiledning Kartlegging av leseferdighet Trinn 2 og 3 på bosnisk Priručnik za učitelje Ispitivanje sposobnosti čitanja 2. i 3. razred na bosanskom jeziku 2013

Detaljer

Programmeringsspråket C Del 2. Michael Welzl

Programmeringsspråket C Del 2. Michael Welzl Programmeringsspråket C Del 2 Michael Welzl 1 Et eksempel Dette er lite eksempel som ber om et tall, leser det og så teller fra det nedover til 0 $> gcc countdown.c -o countdown $>./countdown ===== Countdown

Detaljer

Kako dostaviti logo. USBnet. Powered by

Kako dostaviti logo. USBnet. Powered by Kako dostaviti logo USBnet Powered by Sadržaj Sadržaj Upute za dostavljanje loga Vektorski dokumenti Bitmap dokumenti Tekst i fontovi Boje Dimenzije i površina loga 2 3 4 5 6 7 8 2 Upute za dostavu loga

Detaljer

ALUMINIJSKE VODILICE ZA ODJELJIVANJE PROSTORA

ALUMINIJSKE VODILICE ZA ODJELJIVANJE PROSTORA ALUMINIJSKE VODILICE ZA ODJELJIVANJE PROSTORA ALU. VODILICE ZA ODJELJIVANJE PROSTORA AV 04.01-04.10...jer o tome mnogo ovisi... S C H W O L L E R - L U Č I Ć AL 400 AV 04.01 minijska vodilica za odjeljivanje

Detaljer

IN 147 Program og maskinvare

IN 147 Program og maskinvare Dagens program Repetisjon Basistyper i C Typekonvertering Formater i printf Deklarasjon av nye typer Pekere i C En kort repetisjon om pekere Pekere som parametre Pekere og vektorer Regning med pekere Pekere

Detaljer

Dagens tema. Kort repetisjon om rutiner. Programmering i C Variable og adresser. Vektorer. Tekster. Preprosessoren. Separat kompilering

Dagens tema. Kort repetisjon om rutiner. Programmering i C Variable og adresser. Vektorer. Tekster. Preprosessoren. Separat kompilering Dagens tema Kort repetisjon om rutiner Programmering i C Variable og adresser Vektorer Tekster Preprosessoren Separat kompilering Innlesning og utskrift mot skjerm og fil Ark 1 av 31 Hva er en rutine?

Detaljer

IN 147 Program og maskinvare

IN 147 Program og maskinvare Dagens tema Mer om C Cs preprosessor Allokering av variable Separat kompilering Programmet make Pekere i C Operasjoner på pekere Pekere og vektorer Referanseparametre Pekere til «alt» og «ingenting» Dynamisk

Detaljer

Riješeni zadaci: Funkcije

Riješeni zadaci: Funkcije Riješeni zadaci: Funkcije Domena funkcije, kompozicija funkcija, invertiranje funkcije, parnost funkcije Domene nekih funkcija: f(x) = x D f = [0, f(x) = x D f = R \ {0} f(x) = log a x, a > 0, a D f =

Detaljer

Dagens tema: Datastrukturer

Dagens tema: Datastrukturer Dagens tema: Datastrukturer Matriser Dynamiske matriser Ringbuffere Mengder Lister Enkle listeoperasjoner Programmering av en listepakke Lister med hode og hale Toveislister Onsdag 24.3 Avslutning av IN147A

Detaljer

Del 2 Tabeller, arrays, strenger

Del 2 Tabeller, arrays, strenger Del 2 Tabeller, arrays, strenger 1 RR 2016 Tabeller Variabel som kan holde mange verdier. Styrer bruken med indeks. Det er ingen indekskontroll i C. int tab[5] = {2, 4, 6, 8, 10}; tab[4] = 12; int tab[100]

Detaljer

ZADACI ZA KVALIFIKACIONI ISPIT IZ HEMIJE. 1. Napišite elektronsku konfiguraciju broma, čiji je atomski broj Z= 35.

ZADACI ZA KVALIFIKACIONI ISPIT IZ HEMIJE. 1. Napišite elektronsku konfiguraciju broma, čiji je atomski broj Z= 35. ZADACI ZA KVALIFIKACIONI ISPIT IZ HEMIJE 1. Napišite elektronsku konfiguraciju broma, čiji je atomski broj Z= 35. 1s 2 2s 2 2p 6 3s 2 3p 6 4s 2 3d 10 4p 5 2. Utvrdite koji od navedenih parova hemijskih

Detaljer

IN 147 Program og maskinvare

IN 147 Program og maskinvare Dagens tema Deklarasjon av nye typer Typekonvertering Regning med pekere Pekere til funksjoner Pekere til pekere til... Vanlige feil ved bruk av pekere Feilsøking Debuggere lint Kompilatormeldinger Egne

Detaljer

Dagens tema INF1070. Info om C. Cs preprosessor. Feilsøking. Dag Langmyhr,Ifi,UiO: Forelesning 31. januar 2005 Ark 1 av 29

Dagens tema INF1070. Info om C. Cs preprosessor. Feilsøking. Dag Langmyhr,Ifi,UiO: Forelesning 31. januar 2005 Ark 1 av 29 Dagens tema Info om C Cs preprosessor Feilsøking Dag Langmyhr,Ifi,UiO: Forelesning 31. januar 2005 Ark 1 av 29 Informasjon om C Den viktigste kilden til informasjon om C (utenom en god oppslagsbok) er

Detaljer

Informasjon om C. Dagens tema INF1070 INF1070 INF1070 INF1070. Den viktigste kilden til informasjon om C (utenom en god. C-funksjonene.

Informasjon om C. Dagens tema INF1070 INF1070 INF1070 INF1070. Den viktigste kilden til informasjon om C (utenom en god. C-funksjonene. Dagens tema Info om C Cs preprosessor Feilsøking Dag Langmyhr,Ifi,UiO: Forelesning 31. januar 2005 Ark 1 av 29 Dag Langmyhr,Ifi,UiO: Forelesning 31. januar 2005 Ark 2 av 29 NAME sqrt - square root function

Detaljer

Vektorer. Dagens tema. Deklarasjon. Bruk

Vektorer. Dagens tema. Deklarasjon. Bruk Dagens tema Dagens tema Deklarasjon Vektorer Vektorer (array-er) Tekster (string-er) Adresser og pekere Dynamisk allokering Alle programmeringsspråk har mulighet til å definere en såkalte vektor (også

Detaljer

Dagens tema INF1070. Vektorer (array er) Tekster (string er) Adresser og pekere. Dynamisk allokering

Dagens tema INF1070. Vektorer (array er) Tekster (string er) Adresser og pekere. Dynamisk allokering Dagens tema Vektorer (array er) Tekster (string er) Adresser og pekere Dynamisk allokering Dag Langmyhr,Ifi,UiO: Forelesning 23. januar 2006 Ark 1 av 23 Vektorer Alle programmeringsspråk har mulighet til

Detaljer

Dagens tema. Rutiner i LC-2 Og her er tilsvarende kode for LC-2: Funksjoner i C Her er det samme programmet i C: Kort repetisjon om rutiner

Dagens tema. Rutiner i LC-2 Og her er tilsvarende kode for LC-2: Funksjoner i C Her er det samme programmet i C: Kort repetisjon om rutiner Dagens tema Kort repetisjon om rutiner Programmering i C Variable og adresser Vektorer Tekster Preprosessoren Separat kompilering Innlesning og utskrift mot skjerm og fil Hva er en rutine? En rutine (også

Detaljer

IN 147 Program og maskinvare. Dagens tema

IN 147 Program og maskinvare. Dagens tema Dagens tema Kort repetisjon Unioner Cs preprosessor Allokering av variable Separat kompilering Programmet make Datastrukturer Matriser Dynamiske matriser Ringbuffere Oblig2 Obligatorisk oppgave nr. 2 slippes

Detaljer

Repetisjon fra sist - 1: Plan for dagen. Repetisjon fra sist 2: Hva jeg glemte sist: Nyttige Kommandoer

Repetisjon fra sist - 1: Plan for dagen. Repetisjon fra sist 2: Hva jeg glemte sist: Nyttige Kommandoer -lxxx -c -S -E -o -g -O -I -L gcc Make man l cpp ar ranlib nm valgrind Plan for dagen Repetisjon fra sist - 1: Nyttige Kommandoer Repetisjon Språkmekanismer for programflyt Datatyper &

Detaljer

Nybegynnerkurs i C. Øyvind Grønnesby. 14. oktober Introduksjon Typer Operatorer Kontrollstrukturer Pekere Makroer Lenker

Nybegynnerkurs i C. Øyvind Grønnesby. 14. oktober Introduksjon Typer Operatorer Kontrollstrukturer Pekere Makroer Lenker Nybegynnerkurs i C Øyvind Grønnesby 14. oktober 2004 Introduksjon pass-by-value svakt typet portabel assembler siste ISO-standard er C99 Hello world #i n c l u d e < s t d l i b. h> #i n c l u d e

Detaljer

Programmeringsspråket C Del 3. Hans Petter Taugbøl Kragset

Programmeringsspråket C Del 3. Hans Petter Taugbøl Kragset Programmeringsspråket C Del 3 Hans Petter Taugbøl Kragset Repetisjon I C er ikke array en egen type, men variabler kan være arrayer! Pekere C-strenger Veldig likt Java på mange måter Programmering er fortsatt

Detaljer

MINIMARK stampac za industrijsko obelezavanje

MINIMARK stampac za industrijsko obelezavanje MINIMARK stampac za industrijsko obelezavanje SISTEM 710141 MINIMARK + Markware (evropska verzija) 800975 Markware softver PRIBOR 710118 Kofer za transport stampaca 710257 Kofer za transport potrosnog

Detaljer

Dagens tema. Adresser som parametre Dynamisk allokering Signaturer Definisjon av nye typenavn Typekonvertering Pekere og vektorer

Dagens tema. Adresser som parametre Dynamisk allokering Signaturer Definisjon av nye typenavn Typekonvertering Pekere og vektorer Dagens tema Dagens tema Adresser som parametre Dynamisk allokering Signaturer Definisjon av nye typenavn Typekonvertering Pekere og vektorer Adresser som parametre Et eksempel La oss lage en funksjon som

Detaljer

Dagens tema C, adresser og pekere

Dagens tema C, adresser og pekere Dagens tema C, adresser og pekere (Kapittel 17 i Patt&Patel-boken) Variable og adresser Pekervariable Parametre Dynamisk allokering Stakker og ringbuffere Ark 1 av 26 Adresser Som nevnt tidligere ligger

Detaljer

Ark 3 av 26. printf("i adresse %08x ligger b med verdien %d.\n", &b, b); printf("i adresse %08x ligger a med verdien %d.

Ark 3 av 26. printf(i adresse %08x ligger b med verdien %d.\n, &b, b); printf(i adresse %08x ligger a med verdien %d. Dagens tema C, adresser og pekere (Kapittel 17 i Patt&Patel-boken) Variable og adresser Pekervariable Parametre Dynamisk allokering Stakker og ringbuffere Adresser Som nevnt tidligere ligger data og programkode

Detaljer

Programmeringsspråket C Del 3. Michael Welzl

Programmeringsspråket C Del 3. Michael Welzl Programmeringsspråket C Del 3 Michael Welzl 1 Vektorer og minneallokering Vektorer blir ikke initialisert å allokere en vektor er bare en statisk måte å allokere minne på. char a, b[4], c; a = 3; b[0]

Detaljer

Programmeringsspråket C Del 2. Hans Petter Taugbøl Kragset

Programmeringsspråket C Del 2. Hans Petter Taugbøl Kragset Programmeringsspråket C Del 2 Hans Petter Taugbøl Kragset Repetisjon I C er ikke array en egen type, men variabler kan være arrayer! 28.08.17 Hans Petter Taugbøl Kragset 2 Arrays Java int[] arr1 = {1,

Detaljer

56. TAKMIČENJE MLADIH MATEMATIČARA BOSNE I HERCEGOVINE

56. TAKMIČENJE MLADIH MATEMATIČARA BOSNE I HERCEGOVINE 56. TAKMIČENJE MLADIH MATEMATIČARA BOSNE I HERCEGOVINE FEDERALNO PRVENSTVO UČENIKA OSNOVNIH ŠKOLA Osma osnovna škola Amer Ćenanović Butmir Sarajevo, 14.05.2016. godine Općina Iližda, površine je 162 km

Detaljer

IN 147 Program og maskinvare

IN 147 Program og maskinvare Dagens tema Deklarasjon av nye typer Typekonvertering mellom pekere Regning med pekere Pekere til funksjoner Pekere til pekere til... Vanlige feil ved bruk av pekere Feilsøking Debuggere lint Kompilatormeldinger

Detaljer

IN 147 Program og maskinvare

IN 147 Program og maskinvare Dagens tema Basistyper i C Typekonvertering Formater i printf Pekere i C En kort repetisjon om pekere Hva er egentlig en peker? Pekere til alt og ingenting Pekere som parametre Pekere og vektorer Ark 1

Detaljer

Pekere og vektorer. Dagens tema. I C gjelder en litt uventet konvensjon:

Pekere og vektorer. Dagens tema. I C gjelder en litt uventet konvensjon: Pekere og vektorer I C gjelder en litt uventet konvensjon: Dagens tema Det siste om C Pekere og vektorer Pekere til pekere Vanlige pekerfeil struct-er og typedef Lister Feilsøking Bruk av et vektornavn

Detaljer

Dagens tema. Det siste om C Pekere og vektorer. Pekere til pekere. Vanlige pekerfeil. struct-er og typedef. Lister. Feilsøking

Dagens tema. Det siste om C Pekere og vektorer. Pekere til pekere. Vanlige pekerfeil. struct-er og typedef. Lister. Feilsøking Dagens tema Det siste om C Pekere og vektorer Pekere til pekere Vanlige pekerfeil struct-er og typedef Lister Feilsøking Ark 1 av 35 Pekere og vektorer I C gjelder en litt uventet konvensjon: Bruk av et

Detaljer

Dagens tema INF2270. Cs preprosessor. Separat kompilering av C funksjoner. C og minnet. Dag Langmyhr,Ifi,UiO: Forelesning 5. februar 2007 Ark 1 av 15

Dagens tema INF2270. Cs preprosessor. Separat kompilering av C funksjoner. C og minnet. Dag Langmyhr,Ifi,UiO: Forelesning 5. februar 2007 Ark 1 av 15 Dagens tema Cs preprosessor Separat kompilering av C funksjoner C og minnet Dag Langmyhr,Ifi,UiO: Forelesning 5. februar 2007 Ark 1 av 15 Cs preprosessor Før selve kompileringen går C kompilatoren gjennom

Detaljer

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Dagens tema Dagens tema C-programmering Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Adresser og pekere Parametre Vektorer (array-er) Tekster (string-er) Hvordan ser minnet

Detaljer

Primena računara u fizičkoj hemiji. Profesor: Miloš Mojović Asistent: Aleksandar Ignjatović

Primena računara u fizičkoj hemiji. Profesor: Miloš Mojović Asistent: Aleksandar Ignjatović Primena računara u fizičkoj hemiji Profesor: Miloš Mojović Asistent: Aleksandar Ignjatović Literatura i ispit: Literatura: 1. Predavanja 2. Internet 3. Knjige Ocenjivanje 1. aktivnost u toku predavanja

Detaljer

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Dagens tema C-programmering Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Adresser og pekere Parametre Vektorer (array-er) Tekster (string-er) Hvordan ser minnet ut? Variabler,

Detaljer

Objektno orijentisano programiranje 2. Tipovi podataka u C#

Objektno orijentisano programiranje 2. Tipovi podataka u C# Objektno orijentisano programiranje 2 Klasifikacija tipova Osnovna podela na: vrednosne (value) tipove ukazane (reference) tipove Vrednosni tipovi: jednostavni tipovi (kao što su npr. byte, int, long,

Detaljer

PC i multimedija 3. deo: Audio

PC i multimedija 3. deo: Audio S P E C I J A L N I D O D A T A K #141 februar 2008 PC i multimedija 3. deo: Audio Zvezdan Dimitrijević PC SPECIJALNI DODATAK Organizacija audio/video fajlova Postoji mnoštvo programa za katalogizaciju

Detaljer

EKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Ingen. Elektronisk (WiseFlow) Robert Pettersen

EKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Ingen. Elektronisk (WiseFlow) Robert Pettersen Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE Eksamen i: Dato: 20.02.2017 Klokkeslett: 09:00 13:00 INF-1100 Innføring i programmering og datamaskiners virkemåte Sted: Teorifagbygget, Hus 3,

Detaljer

GJØVIK INGENIØRHØGSKOLE

GJØVIK INGENIØRHØGSKOLE GJØVIK INGENIØRHØGSKOLE Postboks 191-2801 GJØVIK KANDIDATNUMMER: E K S A M E N FAGNAVN: FAGNUMMER: Programmering i C++ / Pascal / C LO154A, LO151A og LO142A EKSAMENSDATO: 7. juni 1994 TID: 09.00-14.00

Detaljer

1 ØVING I WINDOWS FRA CHRISTIAN ANDOLO

1 ØVING I WINDOWS FRA CHRISTIAN ANDOLO 1 ØVING I WINDOWS FRA CHRISTIAN ANDOLO Program fra sekunder Lag et program som leser inn en tid i sekunder (et stort tall). Deretter skal programmet skrive ut hvor mange timer, minutter og sekunder dette

Detaljer

Projekat EUROWEB+ Ovo je program namenjem isključivo razmeni, a ne celokupnim studijama.

Projekat EUROWEB+ Ovo je program namenjem isključivo razmeni, a ne celokupnim studijama. Projekat EUROWEB+ 1. Otvoren je Konkurs za novi program mobilnosti studenata i osoblja na Univerzitetu u Nišu EUROWEB+ Konkurs je otvoren do 15.02.2015. 2. Ko može da se prijavi? Ovim programom biće omogućen

Detaljer

VERTIKALNA POLARIZACIJA

VERTIKALNA POLARIZACIJA VERTIKALNA POLARIZACIJA Driver 433 MHz Driver 145 MHz AKTIVNI ELEMENTI U JEDNOJ RAVNI Aluminijumska zica precnika 4mm(obelezena crnom bojom)savija se u U oblik,zatim provuce kroz letvicu 20 x 20x600mm(obelezenu

Detaljer

SECURIT table za pisanje kredom TABLE STONE ZA PISANJE KREDOM ILI KREDA MARKEROM...

SECURIT table za pisanje kredom TABLE STONE ZA PISANJE KREDOM ILI KREDA MARKEROM... 2 SECURIT table za pisanje kredom TABLE STONE ZA PISANJE KREDOM ILI KREDA MARKEROM... Table za pisanje sa kredom su najbolji način da ostavite željenu poruku Vašim posetiocima i gostima. Područja primene

Detaljer

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 04. Zvonimir Bujanović Slaven Kožić Vinko Petričević

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 04. Zvonimir Bujanović Slaven Kožić Vinko Petričević Sveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 04 Zvonimir Bujanović Slaven Kožić Vinko Petričević Klijent / Server paradigma internet daje infrastrukturu koja omogućava komunikaciju

Detaljer

EKSAMEN. Operativsystemer. 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater.

EKSAMEN. Operativsystemer. 1. Læreboken A Practical Guide to Red Hat Linux av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater. EKSAMEN Emnekode: ITF22506 Emne: Operativsystemer Dato: 12. desember 2007 Eksamenstid: kl. 9.00 til kl. 13.00 Hjelpemidler: 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre

Detaljer

Løsningsforslag til eksamen i IN 147 og IN 147A

Løsningsforslag til eksamen i IN 147 og IN 147A Løsningsforslag til eksamen i IN 17 og IN 17A Dag Langmyhr Øystein Gran Larsen Våren 1996 1 Oversettelse I vårt forslag har vi lagt større vekt på at oversettelsen skal vært «rett frem» og lett forståelig

Detaljer

Administrivia INF 3110/ INF /02/2005 1

Administrivia INF 3110/ INF /02/2005 1 Administrivia Arild Fines Studentassistent for INF5110 Tok INF5110 våren 2004 Ingen tradisjonelle gruppetimer Veiledning over epost og/eller ved treffetid arild.fines@broadpark.no 03/02/2005 1 Lex/Flex

Detaljer

Dagens tema INF1070. Bit fikling. Makroer. Blanding av C og assemblerkode. Mer om Core War. Dag Langmyhr,Ifi,UiO: Forelesning 22. mai 2006 Ark 1 av 25

Dagens tema INF1070. Bit fikling. Makroer. Blanding av C og assemblerkode. Mer om Core War. Dag Langmyhr,Ifi,UiO: Forelesning 22. mai 2006 Ark 1 av 25 Dagens tema Bit fikling Makroer Blanding av C og assemblerkode Mer om Core War Dag Langmyhr,Ifi,UiO: Forelesning 22. mai 2006 Ark 1 av 25 Bit fikling Når alt er bit, gir det oss som programmerere nye muligheter.

Detaljer

Løsningsforslag til 2. del av Del - EKSAMEN

Løsningsforslag til 2. del av Del - EKSAMEN Løsningsforslag til 2. del av Del - EKSAMEN Emnekode: ITD13012 Emne: Datateknikk Dato: 21. Mai 2013 Eksamenstid: kl 9:00 til kl 12:00 Hjelpemidler: 4 sider (A4) (2 ark) med egne notater. Ikke-kummuniserende

Detaljer

Dagens tema. Er maskinen big endian? Denne funksjonen tester det: INF1070 INF1070 INF1070 INF1070

Dagens tema. Er maskinen big endian? Denne funksjonen tester det: INF1070 INF1070 INF1070 INF1070 Dagens tema Bit fikling Makroer Blanding av C og assemblerkode Mer om Core War Dag Langmyhr,Ifi,UiO: Forelesning 22. mai 2006 Ark 1 av 25 Bit fikling Når alt er bit, gir det oss som programmerere nye muligheter.

Detaljer

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

INF1000 (Uke 5) Mer om løkker, arrayer og metoder INF1000 (Uke 5) Mer om løkker, arrayer og metoder Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset Praktisk informasjon Når disse

Detaljer

Dagens tema. Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene

Dagens tema. Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene Dagens tema Dagens tema Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene Inkludering av filer Cs preprosessor Før selve kompileringen går C-kompilatoren gjennom

Detaljer

KONTINUASJONSEKSAMEN

KONTINUASJONSEKSAMEN Høgskolen i Gjøvik KONTINUASJONSEKSAMEN FAGNAVN: FAGNUMMER: Grunnleggende datakunnskap og programmering L 182 A EKSAMENSDATO: 17. august 1999 KLASSE: 98HINDA / 98HINDB / 98HINEA 98HDMUA / 98HDMUB / 98HINGA

Detaljer

OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA Interaktivna manipulacija oblikom igra glavnu ulogu u CAD/CAM/CAE sistemima. Programiranje koje kreira

OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA Interaktivna manipulacija oblikom igra glavnu ulogu u CAD/CAM/CAE sistemima. Programiranje koje kreira Interaktivna manipulacija oblikom igra glavnu ulogu u CAD/CAM/CAE sistemima. Programiranje koje kreira grafički displej na displej monitoru je dakle bitan dio CAD/CAM/CAE softvera. Dakle, mi treba da analiziramo

Detaljer

Dagens tema INF1070. Signaturer. Typekonvertering. Pekere og vektorer. struct-er. Definisjon av nye typenavn. Lister

Dagens tema INF1070. Signaturer. Typekonvertering. Pekere og vektorer. struct-er. Definisjon av nye typenavn. Lister Dagens tema Signaturer Typekonvertering Pekere og vektorer struct-er Definisjon av nye typenavn Lister Dag Langmyhr,Ifi,UiO: Forelesning 24. januar 2005 Ark 1 av 20 Signaturer I C gjelder alle deklarasjoner

Detaljer

DO ŽIV LJA JI HAK L BE RI JA FI NA

DO ŽIV LJA JI HAK L BE RI JA FI NA Mark Tven DO ŽIV LJA JI HAK L BE RI JA FI NA Nas lov ori gi na la Mark Twa in Adven tu res of Huc k le ber ry Finn 1884 Pre vod Je li sa ve ta Mar ko vić Beleška Ko po ku ša da na đe ne ku po bu du u ovom

Detaljer

PROJEKTOVANJE SOFTVERA

PROJEKTOVANJE SOFTVERA Elektrotehniči fakultet Univerziteta u Beogradu Katedra za računarsku tehniku i informatiku skripta za predmet PROJEKTOVANJE SOFTVERA Igor Tartalja Beograd, 2011. Besplatan primerak This copy is not for

Detaljer

Programmeringsspråket C

Programmeringsspråket C Programmeringsspråket C Bakgrunn Implementasjon av Unix ved AT&Ts laboratorium i Palo Alto 1960 75. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI standard i 1988; omtrent alle følger

Detaljer

IN 147 Program og maskinvare

IN 147 Program og maskinvare Dagens tema Parallellitet Eksempelprogrammet Litt om X En enkelt pakke for tegning på skjerm Et program for å tegne fraktaler Kommunikasjon mellom prosesser Rør Felles lager Ark 1 av 24 Forelesning 28.4.1998

Detaljer

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: Varighet: Fagnummer: Fagnavn: Klasse(r): Studiepoeng: Faglærer(e): Hjelpemidler: Oppgavesettet består av:

Detaljer

Minneområder Det er vanlig å dele opp minnet til en prosess i disse ulike områdene: Fast minne Store og små indianere «align» ing struct er

Minneområder Det er vanlig å dele opp minnet til en prosess i disse ulike områdene: Fast minne Store og små indianere «align» ing struct er Dagens tema: Minnet Minneområder Det er vanlig å dele opp minnet til en prosess i disse ulike områdene: Fast minne Store og små indianere «align» ing struct er 0xfffffffc Variable Stakk Lister Noen nyttige

Detaljer

IN 147 Program og maskinvare

IN 147 Program og maskinvare Dagens tema Mer om C Et eksempel til (med diverse forklaringer) Representasjon av tegn og logiske verdier Vektorer Statusverdi Innhenting av definisjoner Inkrementering og dekrementering av variable for-setningen

Detaljer

Dagens tema INF1070. Vektorer (array-er) Tekster (string-er) Adresser og pekere. Dynamisk allokering

Dagens tema INF1070. Vektorer (array-er) Tekster (string-er) Adresser og pekere. Dynamisk allokering Dagens tema Vektorer (array-er) Tekster (string-er) Adresser og pekere Dynamisk allokering Dag Langmyhr,Ifi,UiO: Forelesning 17. januar 2005 Ark 1 av 23 Vektorer Alle programmeringsspråk har mulighet til

Detaljer

Dagens tema. Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene

Dagens tema. Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene Dagens tema Dagens tema Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene Inkludering av filer Cs preprosessor Før selve kompileringen går C-kompilatoren gjennom

Detaljer

Uvod u web dizajn i obrada slike

Uvod u web dizajn i obrada slike Uvod u web dizajn i obrada slike Tomislav Keščec Dragana Savić Zagreb, 2016. Autor: Tomislav Keščec Dragana Savić Urednica: Ana Belin, prof. Naslov: Uvod u web dizajn i obrada slike Izdanje: 1. izdanje

Detaljer

MODIFIKACIJE METODA MATEMATIČKOG PROGRAMIRANJA I PRIMENE

MODIFIKACIJE METODA MATEMATIČKOG PROGRAMIRANJA I PRIMENE Univerzitet u Nišu Prirodno-matematički fakultet MODIFIKACIJE METODA MATEMATIČKOG PROGRAMIRANJA I PRIMENE Mentor: Dr. Predrag S. Stanimirović, redovni profesor Kandidat:, DexterOfNis@gmail.com Modifikacije

Detaljer

Topografske karte. Dr. sc. Aleksandar Toskić, izv. prof.

Topografske karte. Dr. sc. Aleksandar Toskić, izv. prof. Topografske karte Dr. sc. Aleksandar Toskić, izv. prof. Topografske karte u RH Izradba topografskih karata srednjih i sitnijih mjerila bila je prije osamostaljenja Republike Hrvatske u nadležnosti saveznih

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Kontinuasjonseksamen i : Eksamensdag : INF1000 Grunnkurs i objektorientert programmering Fredag 7. januar Tid for eksamen : 09.00

Detaljer

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 25. mai 2005 Varighet: 4 timer (9:00 13:00) Fagnummer: LO182D Fagnavn: Programmering i C++ Klasse(r): FU

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO FASIT UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Kontinuasjonseksamen i : Eksamensdag : INF1000 Grunnkurs i objektorientert programmering Fredag 7. januar Tid for eksamen :

Detaljer

Dagens tema. Mer om C Enkle datatyper Sammensatte datatyper: Vektorer og matriser Tekster Mengder Strukturer Unioner Ringbuffere

Dagens tema. Mer om C Enkle datatyper Sammensatte datatyper: Vektorer og matriser Tekster Mengder Strukturer Unioner Ringbuffere Dagens tema Mer om C Enkle datatyper Sammensatte datatyper: Vektorer og matriser Tekster Mengder Strukturer Unioner Ringbuffere Formål: Nyttige å bruke under programmeringen Trening i programmering i C

Detaljer

VOLKSWAGEN Golf V (1K) V TDi (AZV) Motor -> Priručnik za popravak -> Remen razvodnog mehanizma: uklanjanje/postavljanje

VOLKSWAGEN Golf V (1K) V TDi (AZV) Motor -> Priručnik za popravak -> Remen razvodnog mehanizma: uklanjanje/postavljanje VOLKSWAGEN Golf V (1K) 2.0 16V TDi (AZV) 01.2004-01.2009 Motor -> Priručnik za popravak -> Remen razvodnog mehanizma: uklanjanje/postavljanje 4.2.2016. Upozorenja i preporuke Osim ako nije drugačije savjetovano

Detaljer

Dynamic Programming Longest Common Subsequence. Class 27

Dynamic Programming Longest Common Subsequence. Class 27 Dynamic Programming Longest Common Subsequence Class 27 Protein a protein is a complex molecule composed of long single-strand chains of amino acid molecules there are 20 amino acids that make up proteins

Detaljer

EKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Teorifagb, hus 3, og og Adm.bygget, Aud.max og B.

EKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Teorifagb, hus 3, og og Adm.bygget, Aud.max og B. Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE Eksamen i: Dato: 06.12.2016 Klokkeslett: 09:00 13:00 INF-1100 Innføring i programmering og datamaskiners virkemåte Sted: Tillatte hjelpemidler:

Detaljer

Tru64: Uvod - alati i naredbe. Dinko Korunić, InfoMAR d.o.o. v1.2, travanj 2006.

Tru64: Uvod - alati i naredbe. Dinko Korunić, InfoMAR d.o.o. v1.2, travanj 2006. Tru64: Uvod - alati i naredbe Dinko Korunić, InfoMAR d.o.o. v1.2, travanj 2006. O predavaču višegodišnji vanjski suradnik časopisa Mrež@, vlastita kolumna "Digitalna radionica - Linux", itd. vanjski suradnik

Detaljer

Kondisjonstest. Algoritmer og datastrukturer. Python-oppgaver. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python.

Kondisjonstest. Algoritmer og datastrukturer. Python-oppgaver. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python. Algoritmer og datastrukturer Kondisjonstest Python-oppgaver Onsdag 6. oktober 2004 Her er noen repetisjonsoppgaver i Python. Som alltid er den beste måten å lære å programmere på å sette seg ned og programmere

Detaljer

K O N T I N U A S J O N S E K S A M E N

K O N T I N U A S J O N S E K S A M E N Høgskolen i Gjøvik K O N T I N U A S J O N S E K S A M E N FAGNAVN: FAGNUMMER: Grunnleggende programmering og datastrukturer L 169 A EKSAMENSDATO: 8. januar 1998 KLASSE: 96HINDA / 96HINDE TID: 09.00-14.00

Detaljer

Cs preprosessor. Dagens tema. Betinget kompilering

Cs preprosessor. Dagens tema. Betinget kompilering Dagens tema Dagens tema Inkludering av filer Cs preprosessor Cs preprosessor Separat kompilering av C funksjoner C og minnet Før selve kompileringen går C kompilatoren gjennom koden med en preprosessor

Detaljer

Dagens tema. Dynamisk allokering Signaturer Definisjon av typer og nye typenavn Typekonvertering Pekere, vektorer og lister Dokumentasjon

Dagens tema. Dynamisk allokering Signaturer Definisjon av typer og nye typenavn Typekonvertering Pekere, vektorer og lister Dokumentasjon Dagens tema Dagens tema Dynamisk allokering Signaturer Definisjon av typer og nye typenavn Typekonvertering Pekere, vektorer og lister Dokumentasjon Verdt å huske på! Husk! Nøkkelen til å forstå C er å

Detaljer