Programiranje 2 3. predavanje
|
|
- Ερατώ Καζαντζής
- 6 χρόνια πριν
- Προβολές:
Transcript
1 Programiranje 2 3. predavanje Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2017, 3. predavanje p. 1/76
2 Sadržaj predavanja Struktura programa (kraj): Blokovska struktura jezika (prošli puta). Doseg varijable lokalne i globalne varijable. Vijek trajanja varijable, memorijske klase. Program smješten u više datoteka. Vanjski simboli. Primjer operacije s vektorima u R 3. Višedimenzionalna polja (prvi dio): Deklaracija višedimenzionalnog polja. Spremanje višedimenzionalnog polja u memoriji. Inicijalizacija višedimenzionalnog polja. Višedimenzionalno polje kao argument funkcije. Prog2 2017, 3. predavanje p. 2/76
3 Informacije kolokviji Programiranje 2 je u kolokvijskom razredu C3. Službeni termini svih kolokvija su: Prvi kolokvij: petak, , u 15 sati. Drugi kolokvij: petak, , u 15 sati. Popravni kolokvij: utorak, , u 15 sati. Uputa: izbjegnite popravni obavite to ranije! Prog2 2017, 3. predavanje p. 3/76
4 Informacije Konzultacije: petak, sati, ili po dogovoru. Ne zaboravite, žive su i domaće zadaće na adresi Dodatni bodovi čekaju na vas. Prog2 2017, 3. predavanje p. 4/76
5 Struktura programa (nastavak) Prog2 2017, 3. predavanje p. 5/76
6 Sadržaj Struktura programa (kraj): Blokovska struktura jezika (prošli puta). Doseg varijable lokalne i globalne varijable. Vijek trajanja varijable, memorijske klase. Program smješten u više datoteka. Vanjski simboli. Prog2 2017, 3. predavanje p. 6/76
7 Atributi varijable ponavljanje Varijabla je ime (sinonim) za neku lokaciju ili neki blok lokacija u memoriji (preciznije, za sadržaj tog bloka). Sve varijable imaju tri atributa: tip, doseg (engl. scope) i vijek trajanja (engl. lifetime). Tip = kako se interpretira sadržaj tog bloka (piše i čita, u bitovima), što uključuje i veličinu bloka. Vijek trajanja = u kojem dijelu memorije programa se rezervira taj blok. Stvarno, postoje tri bloka: statički, programski stog ( run time stack ) i programska hrpa ( heap ). Doseg = u kojem dijelu programa je taj dio memorije dohvatljiv ili vidljiv, u smislu da se može koristiti čitati i mijenjati. Prog2 2017, 3. predavanje p. 7/76
8 Atributi varijable ponavljanje (nastavak) Prema tipu, imamo varijable tipa int, float, char, itd. Prema dosegu, varijable se dijele na: lokalne (unutarnje) i globalne (vanjske). Prema vijeku trajanja, varijable mogu biti: automatske i statičke (postoje još i dinamičke). Doseg i vijek trajanja odredeni su, u principu, mjestom deklaracije, odnosno, definicije objekta (varijable) unutar ili izvan neke funkcije. Upravljanje vijekom trajanja (a, ponekad, i dosegom) vrši se tzv. identifikatorima memorijske klase (ključne riječi auto, extern, register i static) i to kod deklaracije objekta. Prog2 2017, 3. predavanje p. 8/76
9 Automatske varijable Automatska varijabla je svaka varijabla kreirana unutar nekog bloka (dakle, unutar neke funkcije), koja nije deklarirana s ključnom riječi static. Automatske varijable kreiraju se na ulasku u blok u kome su deklarirane i uništavaju se na izlasku iz tog bloka. Memorija koju su zauzimale oslobada se tada za druge varijable (vrijednosti su izgubljene). Sve ovo se dogada na tzv. run time stacku (programski ili izvršni stog). Prog2 2017, 3. predavanje p. 9/76
10 Automatske varijable (nastavak) Primjer:... void f(double x) { double y = 2.71; static double z;... } Automatske varijable su: x (formalni argument) i y. Varijabla z nije automatska, nego statička jer ima static. Automatske varijable mogu se inicijalizirati (kao što je to slučaj s varijablom y). Prog2 2017, 3. predavanje p. 10/76
11 Automatske varijable inicijalizacija Inicijalizacija se vrši (ako je ima) prilikom svakog novog ulaza u blok u kojem je varijabla definirana ( rezerviraj memoriju i inicijaliziraj ). Automatska varijabla koja nije inicijalizirana na neki način, na ulasku u blok u kojem je definirana dobiva nepredvidljivu vrijednost ( rezerviraj memoriju, bez promjene sadržaja). Inicijalizaciju automatske varijable moguće je izvršiti: konstantnim izrazom (v. prošli primjer), ali i izrazom koji nije konstantan, kao u sljedećem primjeru. Prog2 2017, 3. predavanje p. 11/76
12 Automatske varijable inicijalizacija (nast.) Primjer: void f(double x, int n) { double y = n * x;... } U trenutku inicijalizacije varijable x i n već imaju neku vrijednost. Prog2 2017, 3. predavanje p. 12/76
13 Identifikatori memorijske klase Identifikatori memorijske klase (engl. storage class ) su auto, extern, register i static. (Stvarno još i typedef, ali s drugom svrhom, v. kasnije). Oni (osim extern) služe preciziranju vijeka trajanja varijable, tj. u kojem dijelu memorije se nalazi varijabla. Identifikator extern služi za deklaraciju objekata koji se nalaze u drugim datotekama (v. kasnije). Neki (poput static) služe još i za kontrolu dosega varijabli i funkcija. Prog2 2017, 3. predavanje p. 13/76
14 Identifikatori memorijske klase nastavak Pišu se u deklaraciji varijable (ili funkcije) ispred identifikatora tipa varijable (ili funkcije). Opći oblik deklaracije: Primjer: identif_mem_klase tip_var ime_var; identif_mem_klase tip_fun ime_fun... ; auto int *pi; extern double l; register int z; static char polje[10]; Prog2 2017, 3. predavanje p. 14/76
15 Identifikator auto Identifikator auto deklarira automatsku varijablu. Medutim, sve varijable deklarirane unutar nekog bloka implicitno su automatske (ako nisu deklarirane kao static), a sve varijable deklarirane izvan svih blokova implicitno su statičke. Zato se riječ auto obično ne koristi u programima (ali smije). Primjer. Ekvivalentno je napisati { { char c; auto char c; int i, j, k; auto int i, j, k; } } Prog2 2017, 3. predavanje p. 15/76
16 Identifikator register Identifikator memorijske klase register sugerira prevoditelju da varijablu smjesti u registar procesora, a ne u običnu memoriju (ako ide). Napomena: prevoditelj to ne mora poslušati. Ideja: dobiti na brzini izvodenja programa, tako da se smanji vrijeme pristupa do te varijable. Oznaka register obično se koristi za najčešće korištene varijable, poput kontrolne varijable petlje ili brojača. Može se primijeniti samo na automatske varijable (unutar nekog bloka), a ne smije se primijeniti na globalne (ili statičke) varijable. Prog2 2017, 3. predavanje p. 16/76
17 Identifikator register (nastavak) Primjer: int f (register int m, register long n) { register int i;... } Zabranjeno je primijeniti adresni operator & na register varijablu, koristiti pokazivač na takvu varijablu. Naime, registri nemaju standardne adrese. Savjet: pustiti stvar optimizaciji prevoditelja, da sam bira što će staviti u registre. Prog2 2017, 3. predavanje p. 17/76
18 Statičke varijable Statička varijabla je varijabla definirana izvan svih funkcija, ili varijabla deklarirana u nekom bloku (na primjer, funkciji) identifikatorom memorijske klase static. Statičke varijable žive svo vrijeme izvršavanja programa: kreiraju se na početku izvršavanja programa i uništavaju tek na završetku programa. Moguće ih je eksplicitno inicijalizirati, ali samo konstantnim izrazima. Ako nisu eksplicitno inicijalizirane, prevoditelj će ih sam inicijalizirati na nulu. Prog2 2017, 3. predavanje p. 18/76
19 Statičke varijable (nastavak) Primjer. Sljedeći kôd nije ispravan, jer nije inicijaliziran konstantnim izrazom. int f(int j) { static int i = j; /* greska */... } Statička varijabla deklarirana unutar nekog bloka: inicijalizira se samo jednom i to pri prvom ulazu u blok, zadržava svoju vrijednost pri izlasku iz bloka (iako više nije dohvatljiva). Prog2 2017, 3. predavanje p. 19/76
20 Statičke varijable primjer Primjer. Statička varijabla deklarirana unutar funkcije. void foo() { int a = 10; static int sa = 10; } a += 5; sa += 5; printf("a = %d, sa = %d\n", a, sa); return; Varijabla a je automatska i inicijalizira se prilikom svakog ulaska u funkciju. Varijabla sa je statička i inicijalizira se samo prilikom prvog ulaska u funkciju. Zadržava vrijednost kod izlaska iz funkcije. Prog2 2017, 3. predavanje p. 20/76
21 Statičke varijable primjer (nastavak) Glavni program 3 puta poziva funkciju foo. int main(void) { int i; for (i = 0; i < 3; ++i) foo(); return 0; } Izlaz je: a = 15, sa = 15 a = 15, sa = 20 a = 15, sa = 25 Prog2 2017, 3. predavanje p. 21/76
22 Statičke varijable (nastavak) Primjer za statičke varijable deklarirane unutar nekog bloka je varijanta funkcije za Fibonaccijeve brojeve (na vježbama). Napomena: nije lako naći pravi primjer ovog tipa. Prog2 2017, 3. predavanje p. 22/76
23 Doseg varijable Doseg varijable je područje programa u kojem je varijabla dostupna ( vidljiva ). Prema dosegu, varijable se dijele na: lokalne (imaju doseg bloka) i globalne (imaju doseg datoteke). Svaka varijabla definirana unutar nekog bloka je lokalna varijabla za taj blok. Ona nije definirana izvan tog bloka, čak i kad je statička. Statička lokalna varijabla postoji za cijelo vrijeme izvršavanja programa, ali može se dohvatiti samo iz bloka u kojem je deklarirana. Prog2 2017, 3. predavanje p. 23/76
24 Globalne varijable Globalna varijabla je varijabla definirana izvan svih funkcija. Globalna varijabla (deklarirana izvan svih blokova) vidljiva je od mjesta deklaracije do kraja datoteke, ako nije prekrivena varijablom istog imena unutar nekog bloka. Običaj: globalne varijable deklariraju se na početku datoteke, prije svih funkcija. Svaka funkcija može doseći takvu globalnu varijablu i promijeniti njezinu vrijednost. Na taj način, više funkcija može komunicirati bez upotrebe formalnih argumenta. Na primjer, brojač poziva u fib_r. Prog2 2017, 3. predavanje p. 24/76
25 Broj particija globalni brojač Primjer. Brojanje particija smo prije realizirali funkcijom koja vraća int = broj particija. Istu stvar možemo napraviti void funkcijom koja koristi globalni brojač particija. Svaki put kad nademo novu particiju, povećamo brojač za 1 (v. parts_2.c). #include <stdio.h> int broj = 0; /* globalni brojac */ Napomena: inicijalizacija na 0 bi se napravila i bez da smo to eksplicitno napisali (statička varijabla). Prog2 2017, 3. predavanje p. 25/76
26 Broj particija funkcija void particije(int suma, int prvi) { int i; } if (suma == 0) ++broj; else for (i = prvi; i <= suma; ++i) /* Rekurzivni poziv - dodavanje sljedeceg pribrojnika */ particije( suma - i, i ) ; return; Prog2 2017, 3. predavanje p. 26/76
27 Broj particija glavni program int main(void) { int n; printf(" Upisi prirodni broj n: "); scanf("%d", &n); particije(n, 1); printf("\n Broj particija p(%d) = %d\n", n, broj); } return 0; Prog2 2017, 3. predavanje p. 27/76
28 Globalne varijable (nastavak) Primjer. Varijabla a vidljiva je i u funkciji main i u funkciji f, dok je varijabla b vidljiva u funkciji f, ali ne i u funkciji main. int a; /* static */ void f(int); int main(void) { int c, d; /* auto */... } int b; /* static */ void f(int i) { int x, y; /* auto */... } Prog2 2017, 3. predavanje p. 28/76
29 Program smješten u više datoteka C program može biti smješten u više datoteka. Na primjer, svaka funkcija definirana u programu može biti smještena u zasebnu *.c datoteku. Globalne varijable i funkcije definirane u jednoj datoteci mogu se koristiti i u bilo kojoj drugoj datoteci, uz uvjet da su korektno deklarirane u toj drugoj datoteci. Za deklaraciju objekta koji je definiran u nekoj drugoj datoteci koristimo ključnu riječ extern ( vanjski ). Riječ extern ispred deklaracije objekta (varijable ili funkcije) informira prevoditelj da se radi o objektu koji je definiran u nekoj drugoj datoteci. Prog2 2017, 3. predavanje p. 29/76
30 Program smješten u više datoteka (nastavak) Primjer. U datoteci 2 koristi se funkcija f iz datoteke 1. Sadržaj datoteke 1: #include <stdio.h> int g(int); void f(int i) { printf("i = %d\n", g(i)); } int g(int i) { return 2 * i - 1; } Prog2 2017, 3. predavanje p. 30/76
31 Program smješten u više datoteka (nastavak) U drugoj datoteci navodi se prototip funkcije f, kao extern. Sadržaj datoteke 2: extern void f(int); /* extern i prototip */ int main(void) { f(3); return 0; } Nakon prevodenja obje datoteke i povezivanja (linker), izvršavanje daje rezultat: i = 5 Prog2 2017, 3. predavanje p. 31/76
32 Vanjski simboli U programu smještenom u više datoteka sve funkcije i globalne varijable mogu se koristiti i u drugim datotekama, ako su tamo deklarirane. Stoga kažemo da su imena funkcija i globalnih varijabli vanjski simboli (tzv. javni ili public ). Povezivanje deklaracija vanjskih simbola s njihovim definicijama radi linker ( povezivač ). Kada funkciju ili globalnu varijablu deklariramo kao static, ona prestaje biti vanjski simbol i može se dohvatiti samo iz datoteke u kojoj je definirana (tzv. private ). Ovdje static služi za ograničavanje dosega. Prog2 2017, 3. predavanje p. 32/76
33 Vanjski simboli (nastavak) Primjer. Želimo onemogućiti korištenje funkcije g izvan prve datoteke tj. hoćemo da je g private, a ne public simbol. Sadržaj datoteke 1: #include <stdio.h> static int g(int); /* static ogranicava doseg */ void f(int i) { printf("i = %d\n", g(i)); } static int g(int i) { /* static definicija */ return 2 * i - 1; } Prog2 2017, 3. predavanje p. 33/76
34 Vanjski simboli (nastavak) Funkciju g više ne možemo dohvatiti iz druge datoteke, pa je sljedeći program neispravan očekuje g kao vanjski simbol. Sadržaj datoteke 2 (prevodi se bez greške): #include <stdio.h> extern void f(int); /* extern i prototip */ extern int g(int); /* nije vanjski simbol! */ int main(void) { f(3); /* ispravno */ printf("g(2) = %d\n", g(2)); /* neispravno */ return 0; } Grešku javlja linker, jer ne može pronaći funkciju g. Prog2 2017, 3. predavanje p. 34/76
35 Vanjski simboli (nastavak) Primjer. Globalne varijable i funkcije definirane su u jednoj datoteci, a korištene u drugoj gdje su deklarirane kao vanjski simboli. Sadržaj datoteke 1: #include <stdio.h> int z = 3; /* definicija varijable z */ void f(int i) /* definicija funkcije f */ { printf("i = %d\n", i); } Prog2 2017, 3. predavanje p. 35/76
36 Vanjski simboli (nastavak) Potrebni vanjski simboli moraju biti deklarirani (kao vanjski) prije upotrebe. Sadržaj datoteke 2: extern void f(int); /* deklaracija funkcije f */ extern int z; /* deklaracija varijable z */ int main(void) { f(z); return 0; } Izvršavanjem dobivamo izlaz: i = 3 Prog2 2017, 3. predavanje p. 36/76
37 Definicija i deklaracija globalnih varijabli Kod globalnih varijabli treba razlikovati definiciju varijable i deklaraciju varijable (slično kao kod funkcija). Pri definiciji varijable, deklarira se njezino ime i tip, i rezervira se memorijska lokacija za varijablu. Kod deklaracije, samo se deklarira ime i tip, bez rezervacije memorije. Podrazumijeva se da je varijabla definirana negdje drugdje, i da joj je tamo pridružena memorijska lokacija. Definicija varijable je uvijek i njezina deklaracija. Globalna varijabla može imati više deklaracija, ali samo jednu definiciju. Prog2 2017, 3. predavanje p. 37/76
38 Pravila kod definicije i deklaracije Globalne (ili vanjske) varijable dobivaju prostor u statičkom dijelu memorije programa, kao i sve statičke varijable. I pravila inicijalizacije su ista. U definiciji, globalna varijabla može biti inicijalizirana konstantnim izrazom. Globalna varijabla koja nije eksplicitno inicijalizirana, bit će inicijalizirana nulom (ili nulama). Dodatna pravila: U deklaraciji globalne varijable, mora se koristiti ključna riječ extern, a inicijalizacija nije moguća. U definiciji globalnog polja, mora biti definirana njegova dimenzija (zbog rezervacije memorije). Kod deklaracije, dimenzija ne mora biti prisutna. Prog2 2017, 3. predavanje p. 38/76
39 Sužavanje dosega globalnih varijabli static Oznaka memorijske klase static može se primijeniti i na globalne varijable, s istim djelovanjem kao i za funkcije. static sužava doseg (područje vidljivosti) varijable na datoteku u kojoj je definirana. Ime takve varijable više nije dohvatljivo kao vanjski simbol (postaje private ). Upozorenje: Oznaka memorijske klase static ispred globalne i lokalne varijable ima različito značenje! Primjer: static int z = 3; /* z nevidljiv izvan datoteke */ void f(int i) { static double x; /* x je staticka varijabla */... } Prog2 2017, 3. predavanje p. 39/76
40 Datoteke zaglavlja Kad se program sastoji od više datoteka, onda se grupe deklaracija vanjskih simbola (varijabli i funkcija) smještaju u posebnu datoteku zaglavlja (*.h), koja se uključuje s #include "*.h" u svaku *.c datoteku kojoj su te deklaracije potrebne. Na taj se način osigurava konzistentnost svih deklaracija. Primjer. Deklaracije vanjskih simbola grupiramo u datoteku zaglavlja dekl.h. Sadržaj datoteke dekl.h: extern void f(int); /* extern se smije ispustiti */ extern int g(int); extern int z; Prog2 2017, 3. predavanje p. 40/76
41 Datoteke zaglavlja (nastavak) Sadržaj datoteke 1: #include <stdio.h> #include "dekl.h" int z = 3; /* definicija varijable z */ void f(int i) /* definicija funkcije f */ { printf("i = %d\n", g(i)); } int g(int i) /* definicija funkcije g */ { return 2 * i - 1; } Prog2 2017, 3. predavanje p. 41/76
42 Datoteke zaglavlja (nastavak) Sadržaj datoteke 2: #include <stdio.h> #include "dekl.h" int main(void) { f(z); printf("g(2) = %d\n", g(2)); return 0; } Uočite razliku izmedu uključivanja sistemskih (<...>) i korisničkih ("...") datoteka zaglavlja. Prog2 2017, 3. predavanje p. 42/76
43 Datoteke zaglavlja (nastavak) U datotekama zaglavlja *.h implicitno se dodaje extern za sve deklaracije, tj. podrazumijeva se da su svi objekti definirani negdje drugdje. Zato extern tada ne treba pisati. U Code::Blocks postoje projekti. Sve potrebne datoteke treba dodati u projekt. Prog2 2017, 3. predavanje p. 43/76
44 Primjer vektori u prostoru Primjer. Treba napisati biblioteku funkcija za operacije s vektorima u prostoru R 3. Vektor a R 3, oblika a = a x i+a y j +a z k, implementiramo poljem a s 3 elementa, koje (redom) sadrži prostorne koordinate a x,a y,a z. Našu biblioteku funkcija realiziramo tako da se lako koristi u raznim programima: deklaracije svih funkcija stavljamo u datoteku zaglavlja vekt.h, a definicije svih funkcija (zajedno s tijelima) pišemo u programskoj datoteci vekt.c. Prog2 2017, 3. predavanje p. 44/76
45 Primjer vektori u prostoru (nastavak) Funkcije i operacije u biblioteci: norma vektora: a = a 2 x +a 2 y +a 2 z, skalarni produkt dva vektora: a b, kosinus kuta izmedu dva vektora: cos ( a, b) = a b a b. vektorski produkt dva vektora: c = a b, zbroj dva vektora: c = a+ b, množenje vektora skalarom: b = λ a, ispis vektora u obliku: (a x,a y,a z ). Prog2 2017, 3. predavanje p. 45/76
46 Primjer vektori u prostoru (nastavak) Datoteka zaglavlja vekt.h sadrži deklaracije svih funkcija: /* Datoteka zaglavlja vekt.h: - operacije s vektorima u R^3. Implementacija je u datoteci vekt.c. */ double norma(double a[]); double skal_prod(double a[], double b[]); double kosinus_kuta(double a[], double b[]); void vekt_prod(double a[], double b[], double c[]); void zbroj(double a[], double b[], double c[]); void skal(double a[], double lambda, double b[]); void vekt_print(double a[]); Prog2 2017, 3. predavanje p. 46/76
47 Primjer vektori u prostoru (nastavak) Datoteka vekt.c sadrži definicije svih funkcija: #include <stdio.h> #include <math.h> #include "vekt.h" Prog2 2017, 3. predavanje p. 47/76
48 Primjer vektori u prostoru (nastavak) double norma(double a[]) { int i; double suma = 0.0; for (i = 0; i < 3; ++i) suma = suma + a[i] * a[i]; } return sqrt(suma); Prog2 2017, 3. predavanje p. 48/76
49 Primjer vektori u prostoru (nastavak) double skal_prod(double a[], double b[]) { int i; double suma = 0.0; for (i = 0; i < 3; ++i) suma = suma + a[i] * b[i]; } return suma; Prog2 2017, 3. predavanje p. 49/76
50 Primjer vektori u prostoru (nastavak) double kosinus_kuta(double a[], double b[]) { return skal_prod(a, b) / (norma(a) * norma(b)); } void vekt_prod(double a[], double b[], double c[]) { c[0] = a[1] * b[2] - a[2] * b[1]; c[1] = a[2] * b[0] - a[0] * b[2]; c[2] = a[0] * b[1] - a[1] * b[0]; } return; Prog2 2017, 3. predavanje p. 50/76
51 Primjer vektori u prostoru (nastavak) void zbroj(double a[], double b[], double c[]) { int i; for (i = 0; i < 3; ++i) c[i] = a[i] + b[i]; } return; Prog2 2017, 3. predavanje p. 51/76
52 Primjer vektori u prostoru (nastavak) void skal(double a[], double lambda, double b[]) { int i; for (i = 0; i < 3; ++i) b[i] = lambda * a[i]; } return; Prog2 2017, 3. predavanje p. 52/76
53 Primjer vektori u prostoru (nastavak) void vekt_print(double a[]) { printf("(%g, %g, %g)\n", a[0], a[1], a[2]); } return; Prog2 2017, 3. predavanje p. 53/76
54 Primjer vektori u prostoru (nastavak) Primjer. Glavni program (v. vektori.c) #include <stdio.h> #include "vekt.h" int main(void) { double a[3] = { 1.0, 2.0, 0.0 }; double b[3] = { 0.0, 1.0, 1.0 }; double c[3]; printf(" a = "); vekt_print(a); printf(" b = "); vekt_print(b); Prog2 2017, 3. predavanje p. 54/76
55 Primjer vektori u prostoru (nastavak) printf(" norma(a) = %g\n", norma(a)); printf(" norma(b) = %g\n", norma(b)); printf(" a * b = %g\n", skal_prod(a, b)); printf(" cos(a, b) = %g\n", kosinus_kuta(a, b)); zbroj(a, b, c); printf(" a + b = "); vekt_print(c); vekt_prod(a, b, c); printf(" a x b = "); vekt_print(c); } return 0; Prog2 2017, 3. predavanje p. 55/76
56 Primjer vektori u prostoru (nastavak) Izlaz programa (v. vektori.out): a = (1, 2, 0) b = (0, 1, 1) norma(a) = norma(b) = a * b = 2 cos(a, b) = a + b = (1, 3, 1) a x b = (2, -1, 1) Zadatak. Dodajte ovoj biblioteci funkciju za mješoviti produkt tri vektora: a ( b c). Prog2 2017, 3. predavanje p. 56/76
57 Višedimenzionalna polja Prog2 2017, 3. predavanje p. 57/76
58 Sadržaj Višedimenzionalna polja (prvi dio): Deklaracija višedimenzionalnog polja. Spremanje višedimenzionalnog polja u memoriji. Inicijalizacija višedimenzionalnog polja. Višedimenzionalno polje kao argument funkcije. Prog2 2017, 3. predavanje p. 58/76
59 Primarni operatori Pojedini element polja zadajemo tako da, iza imena polja, u uglatim zagradama pišemo pripadni indeks tog elementa: ime[indeks] Uglate zagrade [ ] su ovdje primarni operator pristupa elementu polja. Sasvim analogno, kod poziva funkcije funkcija(...) okrugle zagrade ( ) su primarni operator poziva funkcije. Primarni operatori pripadaju istoj grupi s najvišim prioritetom, a asocijativnost im je uobičajena L D. Prog2 2017, 3. predavanje p. 59/76
60 Jednodimenzionalna i višedimenzionalna polja Niz podataka nekog tipa odgovara jednodimenzionalnom polju podataka tog tipa u C-u. Do sada smo koristili samo nizove sastavljene iz podataka jednostavnog tipa (standardni tipovi u C-u). Odgovarajući matematički pojam je vektor = uredeni niz skalara (odredenog tipa). U C-u možemo koristiti i višedimenzionalna polja. Na primjer, matematičkom pojmu matrice odgovara dvodimenzionalno polje u C-u. Kako se višedimenzionalna polja realiziraju i interpretiraju u C-u? Prog2 2017, 3. predavanje p. 60/76
61 Višedimenzionalna polja Dvodimenzionalno polje je jednodimenzionalno polje, čiji elementi su jednodimenzionalna polja (istog tipa), a ne skalari. To znači da matricu (iz matematike) ovdje gledamo kao vektor, čiji elementi su vektori. Analogno, trodimenzionalno polje je jednodimenzionalno polje, čiji elementi su dvodimenzionalna polja (istog tipa). Ovu strukturu možemo matematički gledati kao vektor, čiji elementi su matrice. I tako redom, za više dimenzije. Prog2 2017, 3. predavanje p. 61/76
62 Višedimenzionalna polja deklaracija Deklaracija višedimenzionalnog polja ima oblik: mem_klasa tip ime[izraz_1]...[izraz_n]; Primjer. Polje m deklarirano s static double m[2][3]; predstavlja matricu s dva retka i tri stupca. Njezine elemente možemo prostorno zamisliti u obliku: m[0][0] m[0][1] m[0][2] m[1][0] m[1][1] m[1][2] Ovi elementi pamte se u memoriji računala jedan za drugim, tj. kao jedno jednodimenzionalno polje. Kojim redom? Prog2 2017, 3. predavanje p. 62/76
63 Višedimenzionalna polja (nastavak) Odgovor slijedi iz asocijativnosti L D operatora [ ]. To znači da je višedimenzionalno polje s deklaracijom: mem_kl tip ime[izraz_1][izraz_2]...[izraz_n]; potpuno isto što i jednodimenzionalno polje duljine izraz_1, a elementi tog polja su polja dimenzije manje za jedan, oblika tip[izraz_2]...[izraz_n] I tako redom, za svaku dimenziju, slijeva nadesno L D. Prog2 2017, 3. predavanje p. 63/76
64 Višedimenzionalna polja (nastavak) Točno tako se spremaju elementi polja u memoriji računala: najsporije se mijenja prvi (najljeviji) indeks, a najbrže se mijenja zadnji (najdesniji) indeks. Za matrice (dvodimenzionalna polja) to znači da su elementi poredani po recima, tj. prvi redak, drugi redak,... (onako kako čitamo matricu), jer se brže mijenja zadnji indeks indeks stupca. Napomena: U Fortranu je obratno! Primjer. Dvodimenzionalno polje m[2][3] iz prethodnog primjera sastoji se od dva polja m[0] i m[1], istog tipa double[3]. Prog2 2017, 3. predavanje p. 64/76
65 Višedimenzionalna polja (nastavak) U memoriji se prvo sprema element m[0], a zatim m[1]. Kad raspakiramo ta dva polja u elemente tipa double, poredak elemenata matrice m u memoriji je: m[0][0], m[0][1], m[0][2], m[1][0], m[1][1], m[1][2]. Stvarno linearno indeksiranje elemenata, onako kako su spremljeni indeksima od 0 do 5, radi se na sljedeći način. Element m[i][j] spremljen je u memoriji na mjestu i MAX_j+j, gdje je MAX_j = 3 broj stupaca matrice iz deklaracije polja m. Prva dimenzija polja (MAX_i = 2), tj. broj redaka matrice m, ne treba za indeksiranje, već samo za rezervaciju memorije. Prog2 2017, 3. predavanje p. 65/76
66 Višedimenzionalna polja (nastavak) Primjer. Trodimenzionalno polje float MM[2][3][4]; je jednodimenzionalno polje s 2 elementa MM[0] i MM[1]. Ti elementi su dvodimenzionalna polja tipa float[3][4]. Element MM[i][j][k] smješten je na mjesto (i MAX_j+j) MAX_k+k, gdje su MAX_i = 2, MAX_j = 3 i MAX_k = 4 dimenzije polja. Prva dimenzija polja (MAX_i = 2) nije nužna za indeksiranje, već za rezervaciju memorije. Prog2 2017, 3. predavanje p. 66/76
67 Pristup elementima polja Pojedinim elementima polja možemo pristupiti na dva načina: navodenjem pripadnog indeksa za svaku dimenziju polja, preko pokazivača, koristeći ekvivalenciju izmedu polja i pokazivača (o tome malo kasnije). Pristup elementima polja preko indeksa: Svaki indeks mora biti u svojim uglatim zagradama [ ]. Nije dozvoljeno odvajanje indeksa zarezom, kao u nekim drugim jezicima (Fortran, Pascal)! Primjer. U prethodnim primjerima, elemente smo naveli kao m[i][j], odnosno, MM[i][j][k]. Nije dozvoljeno napisati m[i, j] ili MM[i, j, k]. Prog2 2017, 3. predavanje p. 67/76
68 Inicijalizacija polja Primjer. Dvodimenzionalno polje m iz prethodnih primjera možemo inicijalizirati na sljedeći način: static double m[2][3] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0}; Inicijalne vrijednosti pridružuju se elementima matrice onim redom kojim su elementi smješteni u memoriji (tj. po recima): m[0][0] = 1.0, m[0][1] = 2.0, m[0][2] = 3.0, m[1][0] = 4.0, m[1][1] = 5.0, m[1][2] = 6.0. Prog2 2017, 3. predavanje p. 68/76
69 Inicijalizacija polja (nastavak) Prethodni način inicijalizacije je nepregledan. Zato se inicijalne vrijednosti mogu vitičastim zagradama grupirati u grupe, koje se pridružuju pojedinim recima. Ekvivalentna inicijalizacija: static double m[2][3] = { {1.0, 2.0, 3.0}, {4.0, 5.0, 6.0} }; Grupiranje odgovara dimenzijama. Ako je neka grupa kraća od odgovarajuće dimenzije, preostali elementi se inicijaliziraju nulama (i to bez obzira na static). Prog2 2017, 3. predavanje p. 69/76
70 Inicijalizacija polja (nastavak) Prvu dimenziju polja (ako nije navedena) prevoditelj može izračunati iz inicijalizacijske liste: char A[][2][2] = { {{ a, b }, { c, d }}, {{ e, f }, { g, h }} }; Kao rezultat dobivamo dvije matrice znakova A[0] i A[1], tipa char[2][2]: [ ] [ ] a b e f A[0] =, A[1] =. c d g h Prog2 2017, 3. predavanje p. 70/76
71 Višedimenzionalno polje kao argument funkcije Višedimenzionalno polje kao formalni argument funkcije može se deklarirati navodenjem: svih dimenzija polja, ili svih dimenzija polja, osim prve. Primjer. Funkcija koja čita matricu s MAX_m redaka i MAX_n stupaca može biti deklarirana ovako: int mat[max_m][max_n];... void readmat(int mat[max_m][max_n], int m, int n) Argumenti m i n su stvarni brojevi redaka i stupaca koje treba učitati. Prog2 2017, 3. predavanje p. 71/76
72 Višedimenzionalno polje kao argument funkcije Drugi način deklaracije, bez prve dimenzije: void readmat(int mat[][max_n], int m, int n) Prva dimenzija MAX_m = broj redaka matrice nije bitan za adresiranje elemenata matrice u funkciji. Princip je isti kao za jednodimenzionalna polja. Treći način, preko pokazivača (v. sljedeće poglavlje): void readmat(int (*mat)[max_n], int m, int n) Ovdje je mat = pokazivač na redak, tj. na polje od MAX_n elemenata tipa int, odnosno, mat = polje redaka matrice. Prog2 2017, 3. predavanje p. 72/76
73 Razlika matrica i niz nizova Napomena. Takozvani četvrti način (v. sljedeće poglavlje) void readmat(int **mat, int m, int n) nije korektan. Naime, deklaracija int **mat kaže da je mat = pokazivač na pokazivač na int, pa mat možemo interpretirati kao polje pokazivača na int, odnosno, kao niz nizova. Medutim, to nije matrica, jer ovi drugi nizovi nemaju fiksnu duljinu (za razliku od redaka), već njihova duljina smije varirati (v. argumenti komandne linije ), i još ne moraju biti spremljeni u bloku, a matrica mora biti u u bloku redak za retkom. Prog2 2017, 3. predavanje p. 73/76
74 Primjer funkcije Euklidska norma matrice Primjer. Napišimo funkcija koja računa Euklidsku (ili Frobeniusovu) normu matrice. Neka je A matrica tipa m n s elementima a i,j (ili, skraćeno) a ij, i = 1,...,m, j = 1,...,n. Euklidska ili Frobeniusova norma matrice A definira se ovako m n A E = a 2 ij. To je isto kao da sve elemente matrice A posložimo u jedan vektor i onda izračunamo Euklidsku normu tog vektora. i=1 j=1 Prog2 2017, 3. predavanje p. 74/76
75 Funkcija E_norma Primjer. Prva varijanta s normalnim poretkom petlji: double E_norma(double a[10][10], int m, int n) { int i, j; double suma = 0.0; for (i = 0; i < m; ++i) for (j = 0; j < n; ++j) suma += a[i][j] * a[i][j]; return sqrt(suma); } Poziv: printf("%g\n", E_norma(a, 3, 5)); Prog2 2017, 3. predavanje p. 75/76
76 Funkcija E_norma obratne petlje Primjer. Ista funkcija s obratnim poretkom petlji: double E_norma(double a[10][10], int m, int n) { int i, j; double suma = 0.0; for (j = 0; j < n; ++j) for (i = 0; i < m; ++i) suma += a[i][j] * a[i][j]; return sqrt(suma); } Pitanje: Koja od ove dvije funkcije je bolja (brža) bar za velike matrice? Uputa: Brži je sekvencijalni prolaz po memoriji. Prog2 2017, 3. predavanje p. 76/76
3.1 Granična vrednost funkcije u tački
3 Granična vrednost i neprekidnost funkcija 2 3 Granična vrednost i neprekidnost funkcija 3. Granična vrednost funkcije u tački Neka je funkcija f(x) definisana u tačkama x za koje je 0 < x x 0 < r, ili
Osnovni primer. (Z, +,,, 0, 1) je komutativan prsten sa jedinicom: množenje je distributivno prema sabiranju
RAČUN OSTATAKA 1 1 Prsten celih brojeva Z := N + {} N + = {, 3, 2, 1,, 1, 2, 3,...} Osnovni primer. (Z, +,,,, 1) je komutativan prsten sa jedinicom: sabiranje (S1) asocijativnost x + (y + z) = (x + y)
Operacije s matricama
Linearna algebra I Operacije s matricama Korolar 3.1.5. Množenje matrica u vektorskom prostoru M n (F) ima sljedeća svojstva: (1) A(B + C) = AB + AC, A, B, C M n (F); (2) (A + B)C = AC + BC, A, B, C M
Linearna algebra 2 prvi kolokvij,
Linearna algebra 2 prvi kolokvij, 27.. 20.. Za koji cijeli broj t je funkcija f : R 4 R 4 R definirana s f(x, y) = x y (t + )x 2 y 2 + x y (t 2 + t)x 4 y 4, x = (x, x 2, x, x 4 ), y = (y, y 2, y, y 4 )
INTEGRALNI RAČUN. Teorije, metodike i povijest infinitezimalnih računa. Lucija Mijić 17. veljače 2011.
INTEGRALNI RAČUN Teorije, metodike i povijest infinitezimalnih računa Lucija Mijić lucija@ktf-split.hr 17. veljače 2011. Pogledajmo Predstavimo gornju sumu sa Dodamo još jedan Dobivamo pravokutnik sa Odnosno
Elementi spektralne teorije matrica
Elementi spektralne teorije matrica Neka je X konačno dimenzionalan vektorski prostor nad poljem K i neka je A : X X linearni operator. Definicija. Skalar λ K i nenula vektor u X se nazivaju sopstvena
M086 LA 1 M106 GRP. Tema: Baza vektorskog prostora. Koordinatni sustav. Norma. CSB nejednakost
M086 LA 1 M106 GRP Tema: CSB nejednakost. 19. 10. 2017. predavač: Rudolf Scitovski, Darija Marković asistent: Darija Brajković, Katarina Vincetić P 1 www.fizika.unios.hr/grpua/ 1 Baza vektorskog prostora.
Linearna algebra 2 prvi kolokvij,
1 2 3 4 5 Σ jmbag smjer studija Linearna algebra 2 prvi kolokvij, 7. 11. 2012. 1. (10 bodova) Neka je dano preslikavanje s : R 2 R 2 R, s (x, y) = (Ax y), pri čemu je A: R 2 R 2 linearan operator oblika
1 Promjena baze vektora
Promjena baze vektora Neka su dane dvije različite uredene baze u R n, označimo ih s A = (a, a,, a n i B = (b, b,, b n Svaki vektor v R n ima medusobno različite koordinatne zapise u bazama A i B Zapis
PRAVA. Prava je u prostoru određena jednom svojom tačkom i vektorom paralelnim sa tom pravom ( vektor paralelnosti).
PRAVA Prava je kao i ravan osnovni geometrijski ojam i ne definiše se. Prava je u rostoru određena jednom svojom tačkom i vektorom aralelnim sa tom ravom ( vektor aralelnosti). M ( x, y, z ) 3 Posmatrajmo
Strukture podataka i algoritmi 1. kolokvij 16. studenog Zadatak 1
Strukture podataka i algoritmi 1. kolokvij Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i službeni šalabahter. Predajete samo papire koje ste dobili. Rezultati i uvid u kolokvije: ponedjeljak,
IZVODI ZADACI (I deo)
IZVODI ZADACI (I deo) Najpre da se podsetimo tablice i osnovnih pravila:. C`=0. `=. ( )`= 4. ( n )`=n n-. (a )`=a lna 6. (e )`=e 7. (log a )`= 8. (ln)`= ` ln a (>0) 9. = ( 0) 0. `= (>0) (ovde je >0 i a
Dijagonalizacija operatora
Dijagonalizacija operatora Problem: Može li se odrediti baza u kojoj zadani operator ima dijagonalnu matricu? Ova problem je povezan sa sljedećim pojmovima: 1 Karakteristični polinom operatora f 2 Vlastite
IZVODI ZADACI ( IV deo) Rešenje: Najpre ćemo logaritmovati ovu jednakost sa ln ( to beše prirodni logaritam za osnovu e) a zatim ćemo
IZVODI ZADACI ( IV deo) LOGARITAMSKI IZVOD Logariamskim izvodom funkcije f(), gde je >0 i, nazivamo izvod logarima e funkcije, o jes: (ln ) f ( ) f ( ) Primer. Nadji izvod funkcije Najpre ćemo logarimovai
Trigonometrija 2. Adicijske formule. Formule dvostrukog kuta Formule polovičnog kuta Pretvaranje sume(razlike u produkt i obrnuto
Trigonometrija Adicijske formule Formule dvostrukog kuta Formule polovičnog kuta Pretvaranje sume(razlike u produkt i obrnuto Razumijevanje postupka izrade složenijeg matematičkog problema iz osnova trigonometrije
2 tg x ctg x 1 = =, cos 2x Zbog četvrtog kvadranta rješenje je: 2 ctg x
Zadatak (Darjan, medicinska škola) Izračunaj vrijednosti trigonometrijskih funkcija broja ako je 6 sin =,,. 6 Rješenje Ponovimo trigonometrijske funkcije dvostrukog kuta! Za argument vrijede sljedeće formule:
18. listopada listopada / 13
18. listopada 2016. 18. listopada 2016. 1 / 13 Neprekidne funkcije Važnu klasu funkcija tvore neprekidne funkcije. To su funkcije f kod kojih mala promjena u nezavisnoj varijabli x uzrokuje malu promjenu
ELEKTROTEHNIČKI ODJEL
MATEMATIKA. Neka je S skup svih živućih državljana Republike Hrvatske..04., a f preslikavanje koje svakom elementu skupa S pridružuje njegov horoskopski znak (bez podznaka). a) Pokažite da je f funkcija,
DISKRETNA MATEMATIKA - PREDAVANJE 7 - Jovanka Pantović
DISKRETNA MATEMATIKA - PREDAVANJE 7 - Jovanka Pantović Novi Sad April 17, 2018 1 / 22 Teorija grafova April 17, 2018 2 / 22 Definicija Graf je ure dena trojka G = (V, G, ψ), gde je (i) V konačan skup čvorova,
UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET SIGNALI I SISTEMI. Zbirka zadataka
UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET Goran Stančić SIGNALI I SISTEMI Zbirka zadataka NIŠ, 014. Sadržaj 1 Konvolucija Literatura 11 Indeks pojmova 11 3 4 Sadržaj 1 Konvolucija Zadatak 1. Odrediti konvoluciju
PARCIJALNI IZVODI I DIFERENCIJALI. Sama definicija parcijalnog izvoda i diferencijala je malo teža, mi se njome ovde nećemo baviti a vi ćete je,
PARCIJALNI IZVODI I DIFERENCIJALI Sama definicija parcijalnog ivoda i diferencijala je malo teža, mi se njome ovde nećemo baviti a vi ćete je, naravno, naučiti onako kako vaš profesor ahteva. Mi ćemo probati
Funkcije dviju varjabli (zadaci za vježbu)
Funkcije dviju varjabli (zadaci za vježbu) Vidosava Šimić 22. prosinca 2009. Domena funkcije dvije varijable Ako je zadano pridruživanje (x, y) z = f(x, y), onda se skup D = {(x, y) ; f(x, y) R} R 2 naziva
7 Algebarske jednadžbe
7 Algebarske jednadžbe 7.1 Nultočke polinoma Skup svih polinoma nad skupom kompleksnih brojeva označavamo sa C[x]. Definicija. Nultočka polinoma f C[x] je svaki kompleksni broj α takav da je f(α) = 0.
(P.I.) PRETPOSTAVKA INDUKCIJE - pretpostavimo da tvrdnja vrijedi za n = k.
1 3 Skupovi brojeva 3.1 Skup prirodnih brojeva - N N = {1, 2, 3,...} Aksiom matematičke indukcije Neka je N skup prirodnih brojeva i M podskup od N. Ako za M vrijede svojstva: 1) 1 M 2) n M (n + 1) M,
Iskazna logika 3. Matematička logika u računarstvu. novembar 2012
Iskazna logika 3 Matematička logika u računarstvu Department of Mathematics and Informatics, Faculty of Science,, Serbia novembar 2012 Deduktivni sistemi 1 Definicija Deduktivni sistem (ili formalna teorija)
Matematička analiza 1 dodatni zadaci
Matematička analiza 1 dodatni zadaci 1. Ispitajte je li funkcija f() := 4 4 5 injekcija na intervalu I, te ako jest odredite joj sliku i inverz, ako je (a) I = [, 3), (b) I = [1, ], (c) I = ( 1, 0].. Neka
radni nerecenzirani materijal za predavanja R(f) = {f(x) x D}
Matematika 1 Funkcije radni nerecenzirani materijal za predavanja Definicija 1. Neka su D i K bilo koja dva neprazna skupa. Postupak f koji svakom elementu x D pridružuje točno jedan element y K zovemo funkcija
Pismeni ispit iz matematike Riješiti sistem jednačina i diskutovati rješenja sistema u zavisnosti od parametra: ( ) + 1.
Pismeni ispit iz matematike 0 008 GRUPA A Riješiti sistem jednačina i diskutovati rješenja sistema u zavisnosti od parametra: λ + z = Ispitati funkciju i nacrtati njen grafik: + ( λ ) + z = e Izračunati
Riješeni zadaci: Nizovi realnih brojeva
Riješei zadaci: Nizovi realih brojeva Nizovi, aritmetički iz, geometrijski iz Fukciju a : N R azivamo beskoači) iz realih brojeva i ozačavamo s a 1, a,..., a,... ili a ), pri čemu je a = a). Aritmetički
a M a A. Može se pokazati da je supremum (ako postoji) jedinstven pa uvodimo oznaku sup A.
3 Infimum i supremum Definicija. Neka je A R. Kažemo da je M R supremum skupa A ako je (i) M gornja meda skupa A, tj. a M a A. (ii) M najmanja gornja meda skupa A, tj. ( ε > 0)( a A) takav da je a > M
Teorijske osnove informatike 1
Teorijske osnove informatike 1 9. oktobar 2014. () Teorijske osnove informatike 1 9. oktobar 2014. 1 / 17 Funkcije Veze me du skupovima uspostavljamo skupovima koje nazivamo funkcijama. Neformalno, funkcija
Riješeni zadaci: Limes funkcije. Neprekidnost
Riješeni zadaci: Limes funkcije. Neprekidnost Limes funkcije Neka je 0 [a, b] i f : D R, gdje je D = [a, b] ili D = [a, b] \ { 0 }. Kažemo da je es funkcije f u točki 0 jednak L i pišemo f ) = L, ako za
Veleučilište u Rijeci Stručni studij sigurnosti na radu Akad. god. 2011/2012. Matematika. Monotonost i ekstremi. Katica Jurasić. Rijeka, 2011.
Veleučilište u Rijeci Stručni studij sigurnosti na radu Akad. god. 2011/2012. Matematika Monotonost i ekstremi Katica Jurasić Rijeka, 2011. Ishodi učenja - predavanja Na kraju ovog predavanja moći ćete:,
Numerička matematika 2. kolokvij (1. srpnja 2009.)
Numerička matematika 2. kolokvij (1. srpnja 29.) Zadatak 1 (1 bodova.) Teorijsko pitanje. (A) Neka je G R m n, uz m n, pravokutna matrica koja ima puni rang po stupcima, tj. rang(g) = n. (a) Napišite puni
1.4 Tangenta i normala
28 1 DERIVACIJA 1.4 Tangenta i normala Ako funkcija f ima derivaciju u točki x 0, onda jednadžbe tangente i normale na graf funkcije f u točki (x 0 y 0 ) = (x 0 f(x 0 )) glase: t......... y y 0 = f (x
SISTEMI NELINEARNIH JEDNAČINA
SISTEMI NELINEARNIH JEDNAČINA April, 2013 Razni zapisi sistema Skalarni oblik: Vektorski oblik: F = f 1 f n f 1 (x 1,, x n ) = 0 f n (x 1,, x n ) = 0, x = (1) F(x) = 0, (2) x 1 0, 0 = x n 0 Definicije
Prikaz sustava u prostoru stanja
Prikaz sustava u prostoru stanja Prikaz sustava u prostoru stanja je jedan od načina prikaza matematičkog modela sustava (uz diferencijalnu jednadžbu, prijenosnu funkciju itd). Promatramo linearne sustave
Funkcija gustoće neprekidne slučajne varijable ima dva bitna svojstva: 1. Nenegativnost: f(x) 0, x R, 2. Normiranost: f(x)dx = 1.
σ-algebra skupova Definicija : Neka je Ω neprazan skup i F P(Ω). Familija skupova F je σ-algebra skupova na Ω ako vrijedi:. F, 2. A F A C F, 3. A n, n N} F n N A n F. Borelova σ-algebra Definicija 2: Neka
RIJEŠENI ZADACI I TEORIJA IZ
RIJEŠENI ZADACI I TEORIJA IZ LOGARITAMSKA FUNKCIJA SVOJSTVA LOGARITAMSKE FUNKCIJE OSNOVE TRIGONOMETRIJE PRAVOKUTNOG TROKUTA - DEFINICIJA TRIGONOMETRIJSKIH FUNKCIJA - VRIJEDNOSTI TRIGONOMETRIJSKIH FUNKCIJA
21. ŠKOLSKO/OPĆINSKO/GRADSKO NATJECANJE IZ GEOGRAFIJE GODINE 8. RAZRED TOČNI ODGOVORI
21. ŠKOLSKO/OPĆINSKO/GRADSKO NATJECANJE IZ GEOGRAFIJE 2014. GODINE 8. RAZRED TOČNI ODGOVORI Bodovanje za sve zadatke: - boduju se samo točni odgovori - dodatne upute navedene su za pojedine skupine zadataka
Pismeni ispit iz matematike GRUPA A 1. Napisati u trigonometrijskom i eksponencijalnom obliku kompleksni broj, zatim naći 4 z.
Pismeni ispit iz matematike 06 007 Napisati u trigonometrijskom i eksponencijalnom obliku kompleksni broj z = + i, zatim naći z Ispitati funkciju i nacrtati grafik : = ( ) y e + 6 Izračunati integral:
Matematičke metode u marketingumultidimenzionalno skaliranje. Lavoslav ČaklovićPMF-MO
Matematičke metode u marketingu Multidimenzionalno skaliranje Lavoslav Čaklović PMF-MO 2016 MDS Čemu služi: za redukciju dimenzije Bazirano na: udaljenosti (sličnosti) među objektima Problem: Traži se
MATRICE I DETERMINANTE - formule i zadaci - (Matrice i determinante) 1 / 15
MATRICE I DETERMINANTE - formule i zadaci - (Matrice i determinante) 1 / 15 Matrice - osnovni pojmovi (Matrice i determinante) 2 / 15 (Matrice i determinante) 2 / 15 Matrice - osnovni pojmovi Matrica reda
LINEARNA ALGEBRA 1, ZIMSKI SEMESTAR 2007/2008 PREDAVANJA: NENAD BAKIĆ, VJEŽBE: LUKA GRUBIŠIĆ I MAJA STARČEVIĆ
LINEARNA ALGEBRA 1 ZIMSKI SEMESTAR 2007/2008 PREDAVANJA: NENAD BAKIĆ VJEŽBE: LUKA GRUBIŠIĆ I MAJA STARČEVIĆ 2. VEKTORSKI PROSTORI - LINEARNA (NE)ZAVISNOST SISTEM IZVODNICA BAZA Definicija 1. Neka je F
Sume kvadrata. mn = (ax + by) 2 + (ay bx) 2.
Sume kvadrata Koji se prirodni brojevi mogu prikazati kao zbroj kvadrata dva cijela broja? Propozicija 1. Ako su brojevi m i n sume dva kvadrata, onda je i njihov produkt m n takoder suma dva kvadrata.
PRIMJER 3. MATLAB filtdemo
PRIMJER 3. MATLAB filtdemo Prijenosna funkcija (IIR) Hz () =, 6 +, 3 z +, 78 z +, 3 z +, 53 z +, 3 z +, 78 z +, 3 z +, 6 z, 95 z +, 74 z +, z +, 9 z +, 4 z +, 5 z +, 3 z +, 4 z 3 4 5 6 7 8 3 4 5 6 7 8
Neka je a 3 x 3 + a 2 x 2 + a 1 x + a 0 = 0 algebarska jednadžba trećeg stupnja. Rješavanje ove jednadžbe sastoji se od nekoliko koraka.
Neka je a 3 x 3 + a x + a 1 x + a 0 = 0 algebarska jednadžba trećeg stupnja. Rješavanje ove jednadžbe sastoji se od nekoliko koraka. 1 Normiranje jednadžbe. Jednadžbu podijelimo s a 3 i dobivamo x 3 +
( , 2. kolokvij)
A MATEMATIKA (0..20., 2. kolokvij). Zadana je funkcija y = cos 3 () 2e 2. (a) Odredite dy. (b) Koliki je nagib grafa te funkcije za = 0. (a) zadanu implicitno s 3 + 2 y = sin y, (b) zadanu parametarski
IspitivaƬe funkcija: 1. Oblast definisanosti funkcije (ili domen funkcije) D f
IspitivaƬe funkcija: 1. Oblast definisanosti funkcije (ili domen funkcije) D f IspitivaƬe funkcija: 1. Oblast definisanosti funkcije (ili domen funkcije) D f 2. Nule i znak funkcije; presek sa y-osom IspitivaƬe
Zavrxni ispit iz Matematiqke analize 1
Građevinski fakultet Univerziteta u Beogradu 3.2.2016. Zavrxni ispit iz Matematiqke analize 1 Prezime i ime: Broj indeksa: 1. Definisati Koxijev niz. Dati primer niza koji nije Koxijev. 2. Dat je red n=1
TRIGONOMETRIJA TROKUTA
TRIGONOMETRIJA TROKUTA Standardne oznake u trokutuu ABC: a, b, c stranice trokuta α, β, γ kutovi trokuta t,t,t v,v,v s α,s β,s γ R r s težišnice trokuta visine trokuta simetrale kutova polumjer opisane
k a k = a. Kao i u slučaju dimenzije n = 1 samo je jedan mogući limes niza u R n :
4 Nizovi u R n Neka je A R n. Niz u A je svaka funkcija a : N A. Označavamo ga s (a k ) k. Na primjer, jedan niz u R 2 je dan s ( 1 a k = k, 1 ) k 2, k N. Definicija 4.1. Za niz (a k ) k R n kažemo da
Determinante. a11 a. a 21 a 22. Definicija 1. (Determinanta prvog reda) Determinanta matrice A = [a] je broj a.
Determinante Determinanta A deta je funkcija definirana na skupu svih kvadratnih matrica, a poprima vrijednosti iz skupa skalara Osim oznake deta za determinantu kvadratne matrice a 11 a 12 a 1n a 21 a
Matrice linearnih operatora i množenje matrica. Franka Miriam Brückler
Matrice linearnih operatora i množenje matrica Franka Miriam Brückler Kako je svaki vektorski prostor konačne dimenzije izomorfan nekom R n (odnosno C n ), pri čemu se ta izomorfnost očituje odabirom baze,
1 Afina geometrija. 1.1 Afini prostor. Definicija 1.1. Pod afinim prostorom nad poljem K podrazumevamo. A - skup taqaka
1 Afina geometrija 11 Afini prostor Definicija 11 Pod afinim prostorom nad poljem K podrazumevamo svaku uređenu trojku (A, V, +): A - skup taqaka V - vektorski prostor nad poljem K + : A V A - preslikavanje
41. Jednačine koje se svode na kvadratne
. Jednačine koje se svode na kvadrane Simerične recipročne) jednačine Jednačine oblika a n b n c n... c b a nazivamo simerične jednačine, zbog simeričnosi koeficijenaa koeficijeni uz jednaki). k i n k
Kontrolni zadatak (Tačka, prava, ravan, diedar, poliedar, ortogonalna projekcija), grupa A
Kontrolni zadatak (Tačka, prava, ravan, diedar, poliedar, ortogonalna projekcija), grupa A Ime i prezime: 1. Prikazane su tačke A, B i C i prave a,b i c. Upiši simbole Î, Ï, Ì ili Ë tako da dobijeni iskazi
- pravac n je zadan s točkom T(2,0) i koeficijentom smjera k=2. (30 bodova)
MEHANIKA 1 1. KOLOKVIJ 04/2008. grupa I 1. Zadane su dvije sile F i. Sila F = 4i + 6j [ N]. Sila je zadana s veličinom = i leži na pravcu koji s koordinatnom osi x zatvara kut od 30 (sve komponente sile
M086 LA 1 M106 GRP Tema: Uvod. Operacije s vektorima.
M086 LA 1 M106 GRP Tema:.. 5. 10. 2017. predavač: Rudolf Scitovski, Darija Marković asistent: Darija Brajković, Katarina Vincetić P 1 www.fizika.unios.hr/grpua/ 1 2 M086 LA 1, M106 GRP.. 2/17 P 1 www.fizika.unios.hr/grpua/
TRIGONOMETRIJSKE FUNKCIJE I I.1.
TRIGONOMETRIJSKE FUNKCIJE I I Odredi na brojevnoj trigonometrijskoj kružnici točku Et, za koju je sin t =,cost < 0 Za koje realne brojeve a postoji realan broj takav da je sin = a? Izračunaj: sin π tg
Cauchyjev teorem. Postoji više dokaza ovog teorema, a najjednostvniji je uz pomoć Greenove formule: dxdy. int C i Cauchy Riemannovih uvjeta.
auchyjev teorem Neka je f-ja f (z) analitička u jednostruko (prosto) povezanoj oblasti G, i neka je zatvorena kontura koja čitava leži u toj oblasti. Tada je f (z)dz = 0. Postoji više dokaza ovog teorema,
Sortiranje prebrajanjem (Counting sort) i Radix Sort
Sortiranje prebrajanjem (Counting sort) i Radix Sort 15. siječnja 2016. Ante Mijoč Uvod Teorem Ako je f(n) broj usporedbi u algoritmu za sortiranje temeljenom na usporedbama (eng. comparison-based sorting
16 Lokalni ekstremi. Definicija 16.1 Neka je A R n otvoren, f : A R i c A. Ako postoji okolina U(c) od c na kojoj je f(c) minimum
16 Lokalni ekstremi Važna primjena Taylorovog teorema odnosi se na analizu lokalnih ekstrema (minimuma odnosno maksimuma) relanih funkcija (više varijabli). Za n = 1 i f : a,b R ako funkcija ima lokalni
2. Ako je funkcija f(x) parna onda se Fourierov red funkcije f(x) reducira na Fourierov kosinusni red. f(x) cos
. KOLOKVIJ PRIMIJENJENA MATEMATIKA FOURIEROVE TRANSFORMACIJE 1. Za periodičnu funkciju f(x) s periodom p=l Fourierov red je gdje su a,a n, b n Fourierovi koeficijenti od f(x) gdje su a =, a n =, b n =..
5. Karakteristične funkcije
5. Karakteristične funkcije Profesor Milan Merkle emerkle@etf.rs milanmerkle.etf.rs Verovatnoća i Statistika-proleće 2018 Milan Merkle Karakteristične funkcije ETF Beograd 1 / 10 Definicija Karakteristična
NOMENKLATURA ORGANSKIH SPOJEVA. Imenovanje aromatskih ugljikovodika
NOMENKLATURA ORGANSKIH SPOJEVA Imenovanje aromatskih ugljikovodika benzen metilbenzen (toluen) 1,2-dimetilbenzen (o-ksilen) 1,3-dimetilbenzen (m-ksilen) 1,4-dimetilbenzen (p-ksilen) fenilna grupa 2-fenilheptan
radni nerecenzirani materijal za predavanja
Matematika 1 Funkcije radni nerecenzirani materijal za predavanja Definicija 1. Kažemo da je funkcija f : a, b R u točki x 0 a, b postiže lokalni minimum ako postoji okolina O(x 0 ) broja x 0 takva da je
MATEMATIKA Pokažite da za konjugiranje (a + bi = a bi) vrijedi. a) z=z b) z 1 z 2 = z 1 z 2 c) z 1 ± z 2 = z 1 ± z 2 d) z z= z 2
(kompleksna analiza, vježbe ). Izračunajte a) (+i) ( i)= b) (i+) = c) i + i 4 = d) i+i + i 3 + i 4 = e) (a+bi)(a bi)= f) (+i)(i )= Skicirajte rješenja u kompleksnoj ravnini.. Pokažite da za konjugiranje
IZVODI ZADACI (I deo)
IZVODI ZADACI (I deo Najpre da se podsetimo tablice i osnovnih pravila:. C0.. (. ( n n n-. (a a lna 6. (e e 7. (log a 8. (ln ln a (>0 9. ( 0 0. (>0 (ovde je >0 i a >0. (cos. (cos - π. (tg kπ cos. (ctg
APROKSIMACIJA FUNKCIJA
APROKSIMACIJA FUNKCIJA Osnovni koncepti Gradimir V. Milovanović MF, Beograd, 14. mart 2011. APROKSIMACIJA FUNKCIJA p.1/46 Osnovni problem u TA Kako za datu funkciju f iz velikog prostora X naći jednostavnu
Ispitivanje toka i skiciranje grafika funkcija
Ispitivanje toka i skiciranje grafika funkcija Za skiciranje grafika funkcije potrebno je ispitati svako od sledećih svojstava: Oblast definisanosti: D f = { R f R}. Parnost, neparnost, periodičnost. 3
MATEMATIKA 2. Grupa 1 Rexea zadataka. Prvi pismeni kolokvijum, Dragan ori
MATEMATIKA 2 Prvi pismeni kolokvijum, 14.4.2016 Grupa 1 Rexea zadataka Dragan ori Zadaci i rexea 1. unkcija f : R 2 R definisana je sa xy 2 f(x, y) = x2 + y sin 3 2 x 2, (x, y) (0, 0) + y2 0, (x, y) =
REKURZIVNE FUNKCIJE PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK. Diplomski rad. Voditelj rada: Doc.dr.sc.
SVEUČILIŠTE U ZAGREBU PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK Brigita Švec REKURZIVNE FUNKCIJE Diplomski rad Voditelj rada: Doc.dr.sc. Zvonko Iljazović Zagreb, Rujan, 2014. Ovaj diplomski
Kaskadna kompenzacija SAU
Kaskadna kompenzacija SAU U inženjerskoj praksi, naročito u sistemima regulacije elektromotornih pogona i tehnoloških procesa, veoma često se primenjuje metoda kaskadne kompenzacije, u čijoj osnovi su
Ispit održan dana i tačka A ( 3,3, 4 ) x x + 1
Ispit održan dana 9 0 009 Naći sve vrijednosti korjena 4 z ako je ( ) 8 y+ z Data je prava a : = = kroz tačku A i okomita je na pravu a z = + i i tačka A (,, 4 ) Naći jednačinu prave b koja prolazi ( +
Numerička analiza 26. predavanje
Numerička analiza 26. predavanje Saša Singer singer@math.hr web.math.hr/~singer PMF Matematički odjel, Zagreb NumAnal 2009/10, 26. predavanje p.1/21 Sadržaj predavanja Varijacijske karakterizacije svojstvenih
Funkcije. Definisanje funkcija. [tip] ime(argumenti) telo
Funkcije Definisanje funkcija Potprogrami: dekompozicija složenih problema na jednostavnije procesna apstrakcija samo funkcije (nema procedura) funkcija - n-arni operator najvišeg prioriteta vraća rezultat
Programiranje 1 6. predavanje
Programiranje 1 6. predavanje Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2016, 6. predavanje p. 1/91 Sadržaj predavanja Konstante i varijable: Konstante.
XI dvoqas veжbi dr Vladimir Balti. 4. Stabla
XI dvoqas veжbi dr Vladimir Balti 4. Stabla Teorijski uvod Teorijski uvod Definicija 5.7.1. Stablo je povezan graf bez kontura. Definicija 5.7.1. Stablo je povezan graf bez kontura. Primer 5.7.1. Sva stabla
POTPUNO RIJEŠENIH ZADATAKA PRIRUČNIK ZA SAMOSTALNO UČENJE
**** MLADEN SRAGA **** 011. UNIVERZALNA ZBIRKA POTPUNO RIJEŠENIH ZADATAKA PRIRUČNIK ZA SAMOSTALNO UČENJE SKUP REALNIH BROJEVA α Autor: MLADEN SRAGA Grafički urednik: BESPLATNA - WEB-VARIJANTA Tisak: M.I.M.-SRAGA
Program za tablično računanje Microsoft Excel
Program za tablično računanje Microsoft Excel Teme Formule i funkcije Zbrajanje Oduzimanje Množenje Dijeljenje Izračun najveće vrijednosti Izračun najmanje vrijednosti 2 Formule i funkcije Naravno da je
Pravilo 1. Svaki tip entiteta ER modela postaje relaciona šema sa istim imenom.
1 Pravilo 1. Svaki tip entiteta ER modela postaje relaciona šema sa istim imenom. Pravilo 2. Svaki atribut entiteta postaje atribut relacione šeme pod istim imenom. Pravilo 3. Primarni ključ entiteta postaje
2.2 Srednje vrijednosti. aritmetička sredina, medijan, mod. Podaci (realizacije varijable X): x 1,x 2,...,x n (1)
2.2 Srednje vrijednosti aritmetička sredina, medijan, mod Podaci (realizacije varijable X): x 1,x 2,...,x n (1) 1 2.2.1 Aritmetička sredina X je numerička varijabla. Aritmetička sredina od (1) je broj:
Univerzitet u Nišu Građevinsko-arhitektonski fakultet. Informatika2. 4. Ciklična algoritamska struktura 5. Jednodimenzionalno polje.
Univerzitet u Nišu Građevinsko-arhitektonski fakultet Informatika2 4. Ciklična algoritamska struktura 5. Jednodimenzionalno polje Milica Ćirić Ciklična algoritamska struktura Ciklična struktura (petlja)
Neka su A i B skupovi. Kažemo da je A podskup od B i pišemo A B ako je svaki element skupa A ujedno i element skupa B. Simbolima to zapisujemo:
2 Skupovi Neka su A i B skupovi. Kažemo da je A podskup od B i pišemo A B ako je svaki element skupa A ujedno i element skupa B. Simbolima to zapisujemo: A B def ( x)(x A x B) Kažemo da su skupovi A i
2log. se zove numerus (logaritmand), je osnova (baza) log. log. log =
( > 0, 0)!" # > 0 je najčešći uslov koji postavljamo a još je,, > 0 se zove numerus (aritmand), je osnova (baza). 0.. ( ) +... 7.. 8. Za prelazak na neku novu bazu c: 9. Ako je baza (osnova) 0 takvi se
π π ELEKTROTEHNIČKI ODJEL i) f (x) = x 3 x 2 x + 1, a = 1, b = 1;
1. Provjerite da funkcija f definirana na segmentu [a, b] zadovoljava uvjete Rolleova poučka, pa odredite barem jedan c a, b takav da je f '(c) = 0 ako je: a) f () = 1, a = 1, b = 1; b) f () = 4, a =,
KVADRATNA FUNKCIJA. Kvadratna funkcija je oblika: Kriva u ravni koja predstavlja grafik funkcije y = ax + bx + c. je parabola.
KVADRATNA FUNKCIJA Kvadratna funkcija je oblika: = a + b + c Gde je R, a 0 i a, b i c su realni brojevi. Kriva u ravni koja predstavlja grafik funkcije = a + b + c je parabola. Najpre ćemo naučiti kako
Osnovne teoreme diferencijalnog računa
Osnovne teoreme diferencijalnog računa Teorema Rolova) Neka je funkcija f definisana na [a, b], pri čemu važi f je neprekidna na [a, b], f je diferencijabilna na a, b) i fa) fb). Tada postoji ξ a, b) tako
Više dokaza jedne poznate trigonometrijske nejednakosti u trokutu
Osječki matematički list 000), 5 9 5 Više dokaza jedne poznate trigonometrijske nejednakosti u trokutu Šefket Arslanagić Alija Muminagić Sažetak. U radu se navodi nekoliko različitih dokaza jedne poznate
PID: Domen P je glavnoidealski [PID] akko svaki ideal u P je glavni (generisan jednim elementom; oblika ap := {ab b P }, za neko a P ).
0.1 Faktorizacija: ID, ED, PID, ND, FD, UFD Definicija. Najava pojmova: [ID], [ED], [PID], [ND], [FD] i [UFD]. ID: Komutativan prsten P, sa jedinicom 1 0, je integralni domen [ID] oblast celih), ili samo
Sustav dvaju qubitova Teorem o nemogućnosti kloniranja. Spregnuta stanja. Kvantna računala (SI) 17. prosinca 2016.
17. prosinca 2016. Stanje qubita A prikazujemo vektorom φ A u Hilbertovom prostoru H A koristeći ortonormiranu bazu { 0 A, 1 A }. Stanje qubita B prikazujemo vektorom φ B u H B... Ako se qubitovi A i B
6 Polinomi Funkcija p : R R zadana formulom
6 Polinomi Funkcija p : R R zadana formulom p(x) = a n x n + a n 1 x n 1 +... + a 1 x + a 0, gdje su a 0, a 1,..., a n realni brojevi, a n 0, i n prirodan broj ili 0, naziva se polinom n-tog stupnja s
ZBIRKA POTPUNO RIJEŠENIH ZADATAKA
**** IVANA SRAGA **** 1992.-2011. ZBIRKA POTPUNO RIJEŠENIH ZADATAKA PRIRUČNIK ZA SAMOSTALNO UČENJE POTPUNO RIJEŠENI ZADACI PO ŽUTOJ ZBIRCI INTERNA SKRIPTA CENTRA ZA PODUKU α M.I.M.-Sraga - 1992.-2011.
Matematika 1 - vježbe. 11. prosinca 2015.
Matematika - vježbe. prosinca 5. Stupnjevi i radijani Ako je kut φ jednak i rad, tada je veza između i 6 = Zadatak.. Izrazite u stupnjevima: a) 5 b) 7 9 c). d) 7. a) 5 9 b) 7 6 6 = = 5 c). 6 8.5 d) 7.
SEMINAR IZ KOLEGIJA ANALITIČKA KEMIJA I. Studij Primijenjena kemija
SEMINAR IZ OLEGIJA ANALITIČA EMIJA I Studij Primijenjena kemija 1. 0,1 mola NaOH je dodano 1 litri čiste vode. Izračunajte ph tako nastale otopine. NaOH 0,1 M NaOH Na OH Jak elektrolit!!! Disoira potpuno!!!
VJEROJATNOST I STATISTIKA Popravni kolokvij - 1. rujna 2016.
Broj zadataka: 5 Vrijeme rješavanja: 120 min Ukupan broj bodova: 100 Zadatak 1. (a) Napišite aksiome vjerojatnosti ako je zadan skup Ω i σ-algebra F na Ω. (b) Dokažite iz aksioma vjerojatnosti da za A,
9. GRANIČNA VRIJEDNOST I NEPREKIDNOST FUNKCIJE GRANIČNA VRIJEDNOST ILI LIMES FUNKCIJE
Geodetski akultet, dr sc J Beban-Brkić Predavanja iz Matematike 9 GRANIČNA VRIJEDNOST I NEPREKIDNOST FUNKCIJE GRANIČNA VRIJEDNOST ILI LIMES FUNKCIJE Granična vrijednost unkcije kad + = = Primjer:, D( )
( , treći kolokvij) 3. Na dite lokalne ekstreme funkcije z = x 4 + y 4 2x 2 + 2y 2 3. (20 bodova)
A MATEMATIKA (.6.., treći kolokvij. Zadana je funkcija z = e + + sin(. Izračunajte a z (,, b z (,, c z.. Za funkciju z = 3 + na dite a diferencijal dz, b dz u točki T(, za priraste d =. i d =.. c Za koliko
Verovatnoća i Statistika I deo Teorija verovatnoće (zadaci) Beleške dr Bobana Marinkovića
Verovatnoća i Statistika I deo Teorija verovatnoće zadaci Beleške dr Bobana Marinkovića Iz skupa, 2,, 00} bira se na slučajan način 5 brojeva Odrediti skup elementarnih dogadjaja ako se brojevi biraju