Uvod u računarstvo 2+2

Слични документи
Programiranje 2 1. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 1. predavanje p. 1/7

Programiranje 1

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

1. OPĆE INFORMACIJE 1.1. Naziv kolegija Programiranje 1.6. Semestar Nositelj kolegija dr.sc. Bruno Trstenjak, v. pred Bodovna vrijednost

Objektno orjentirano programiranje 2P

Fizika Detaljni izvedbeni plan Prediplomski studij: Biotehnologija i istraživanje lijekova, I godina ECTS bodovi: 6 Nastavno opterećenje/sati: 40 sati

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

Diskretna matematika Sveučilište u Rijeci ODJEL ZA INFORMATIKU Radmile Matejčić 2, Rijeka Akademska 2017./2018.godina DISKRETNA MATEMATIKA Studij: Pre

I

Konstrukcija i analiza algoritama vežbe 10 Nina Radojičić 15. decembar Algoritamske strategije - podeli pa vladaj (divide and conquer) Ova stra

I

Funkcije predavač: Nadežda Jakšić

Objektno orijentirano modeliranje

I

I

Sveučilište u Rijeci

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

Osnove fizike 1

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

Microsoft Word - Izvedbeni plan - Kvantitativne metode istrazivanja final 2

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

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

Uvod u računarstvo 2+2

Uvod u računarstvo 2+2

1. OPĆE INFORMACIJE 1.1. Naziv kolegija Strani jezik 2 - engleski 1.6. Semestar Nositelj kolegija Marija Miščančuk Bodovna vrijednost (E

Računalne mreže

QS3-KOVIU-DI-R1-GM Detaljni izvedbeni plan kolegija 1. OPĆE INFORMACIJE 1.1. Naziv kolegija Gospodarska matematika Semestar I Nosi

Naziv studija Dvopredmetni diplomski sveučilišni studij filozofije Naziv kolegija Moderna logika Status kolegija Obvezni Godina Prva Semestar Prvi /zi

070-ALIP2-udzbenik.indb

RAČUNOVODSTVO

Informacijski sustav organizacije

Microsoft PowerPoint - C-4-1

I

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

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

Maksimalni protok kroz mrežu - Ford-Fulkerson, Edmonds-Karp

I

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

Računarski praktikum I - Vježbe 09 - this, static

Microsoft PowerPoint - 1. PREDAVANJE - Uvodno

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

DWA2

Pojačavači

PowerPoint Presentation

NAZIV PREDMETA OBLIKOVANJE WEB STRANICA Kod SIT132 Godina studija 3. Bodovna vrijednost Nositelj/i predmeta Haidi Božiković, predavač 6 (ECTS) Suradni

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

Microsoft PowerPoint - 13-Funkcije_2.ppt [Compatibility Mode]

NAZIV PREDMETA UNUTARNJETRGOVINSKO POSLOVANJE I Kod Godina studija 2. Nositelj/i predmeta dr.sc. Ivana Plazibat, prof. Bodovna vrijednost 6 ECTS v.š.

Oblikovanje i analiza algoritama 5. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb OAA 2017, 5. pr

NAZIV PREDMETA ISTRAŽIVANJE TRŽIŠTA Kod Godina studija 2. Nositelj/i Danijela Perkušić Malkoč Bodovna vrijednost 6 predmeta (ECTS) Suradnici Status pr

(Microsoft Word - S1-MTS-Primjena ra\350unala u poslovnoj praksi -Breslauer N)

Microsoft Word - 3.Menadžment sporta u turizmu PETU

QS3-KOVIU-DI-R3-SP Detaljni izvedbeni plan kolegija 1. OPĆE INFORMACIJE 1.1. Naziv kolegija Stručna praksa III 1.6. Semestar Nositelj k

SVEU ILIŠTE U MOSTARU EKONOMSKI FAKULTET STRU NI STUDIJ VITEZ SMJEROVI MARKETING I MENADŽMENT PREDMET: ISTRAŽIVANJE TRŽIŠTA ŠKOLSKA / GODI

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

Programiranje 1 drugi kolokvij, 2. veljače Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje,

Microsoft Word - 2.FRANCUSKI A1 MOR

Uvod u računarstvo 2+2

OBRAZAC 1. Vrednovanje sveucilišnih studijskih programa preddiplomskih, diplomskih i integriranih preddiplomskih i diplomskih studija te strucnih stud

SPO

The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature opti

Funkcije predavač: Nadežda Jakšić

1. OPĆE INFORMACIJE 1.1. Naziv kolegija Tehnološki softwer 1.6. Semestar Nositelj kolegija mr. sc. Vladimir Križaić, dig., prof Bodovna v

NAZIV PREDMETA UNUTARNJETRGOVINSKO POSLOVANJE II Kod Godina studija 2. Nositelj/i predmeta dr.sc. Ivana Plazibat, prof. Bodovna vrijednost 6 ECTS v.š.

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

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

Strukture predavač: Nadežda Jakšić

QS3-KOVIU-DI-T2-RP Detaljni izvedbeni plan kolegija 1. OPĆE INFORMACIJE 1.1. Naziv kolegija Računovodstvo za poduzetnike I 1.6. Semestar

Microsoft Word - 1.Prehrana i zdravlje ORT

Programski jezik C

Sveučilište u Rijeci Građevinski fakultet Naziv studija: DIPLOMSKI SVEUČILIŠNI STUDIJ Zimski semestar ak. god.: 2018./19. IZVEDBENI NASTAVNI PLAN ZA P

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

Microsoft Word - raspored-ispita

Microsoft PowerPoint - 07-DinamickeStrukturePodataka

I

(Microsoft Word - S1 -OR- Osnove ra\350unarstva)

2015_k2_z12.dvi

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

Microsoft PowerPoint - 03-Slozenost [Compatibility Mode]

I

Stručni studij Ekonomika poduzetništva (redovni i izvanredni studenti) Syllabus predmeta Osnove Marketinga I Akademska godina: 2018/2019. Izradio/la:

I

Sveučilišna avenija Rijeka Hrvatska S V E U Č I L I Š T E U R I J E C I Filozofski fakultet u Rijeci tel. (051) (051) faks. (

Microsoft Word - izvedbeni_GV_2016_2017

Microsoft PowerPoint - Datoteke [Compatibility Mode]

Microsoft Word - patoloska_fiziologija_i.docx

SVEU ILIŠTE U MOSTARU EKONOMSKI FAKULTET STRU NI STUDIJ MOSTAR SMJEROVI MARKETING I MENADŽMENT PREDMET: ISTRAŽIVANJE TRŽIŠTA ŠKOLSKA / GOD

Qp)-REV-T2-US-UPII. Detaljni izvedbeni plan kolegija 1. OPĆE INFORMACIJE GODINA: 2019 godina studija (1,2 ili 3): 1. OZNAKA DOKUMENTA: Qp)-REV-T2-US-U

QS3-KOVIU-DI-T-PITT Detaljni izvedbeni plan kolegija 1. OPĆE INFORMACIJE 1.1. Naziv kolegija Primjena informatičke tehnologije u Semesta

07_PJISP_II_Predavanja

Primjena hipermedije u obrazovanju 1

Naziv kolegija Tehnologija proizvodnje i prerade brašna Kod kolegija Studijski program Ciklus Diplomski studij Prehrambeno inženjerstvo Godina Studija

МОДЕЛ КОНТРОЛНЕ ВЕЖБЕ Информатика и рачунарство за шести разред разред Наставна тема: Редни број часа: 8. РАЧУНАРСТВО Циљ часа: Теститарање постигнућа

Naziv studija Integrirani prediplomski i diplomski učiteljski studij Naziv kolegija Odabrana poglavlja iz kognitivne psihologije Status kolegija Redov

Microsoft Word - 4.Istraživanje zadovoljstva klijenta - PETU

Naziv studija

Microsoft Word - 2.Ekonomika ugostiteljskih poduzeca PETU

Tutoring System for Distance Learning of Java Programming Language

Microsoft Word - 1.Prvi strani jezik Engleski B1 MOR

Транскрипт:

Programiranje 2 doc.dr.sc. Goranka Nogo PMF Matematički odsjek, Zagreb

Kontakt ured: 228, drugi kat e-mail: nogo@math.hr konzultacije: četvrtak, 12:00-14:00 petak, 11:00-12:00 neki drugi termin, uz prethodni dogovor putem e- maila. Na konzultacije je potrebno donijeti vlastite zabilješke s predavanja.

Osnovna pravila lijepog ponašanja Molim da: ne ometate pričom izvođenje nastave ne kasnite na predavanja održavate red u predavaonici (ne ostavljajte iza sebe plastične boce, papire, ) utišate i pospremite mobitele isključite računala

Preddiplomski studij - računarski kolegiji Programiranje 1 Programiranje 2 Strukture podataka i algoritmi Računarski praktikum 1

Ishodi učenja Po uspješnom završetku kolegija student/ica može: opisati koncept rekurzije i navesti primjere korištenja usporediti iterativna i rekurzivna rješenja osnovnih problema opisati najčešće primjene i napisati jednostavne programe koji koriste sljedeće strukture podataka: polja, stringove i vezane liste usporediti prednosti i mane statičkog i dinamičkog načina implementacije struktura podataka

Ishodi učenja - nastavak Po uspješnom završetku kolegija student/ica može: odabrati prikladnu strukturu podataka za modeliranje danog problema oblikovati, analizirati i implementirati brze algoritme sortiranja (Quicksort, Mergesort).

Pregled sadržaja kolegija Funkcije Struktura programa Dvodimenzionalna polja Pokazivači Strukture Datoteke Preprocesor Standardna C biblioteka

Literatura Zabilješke s predavanja i vježbi te popratni materijali dostupni na službenim stranicama kolegija. B. W. Kernighan, D. M. Ritchie: The C Programming Language, 2 nd Edition. Prentice Hall, 1988. B. S. Gottfried: Theory and Problems of Programming with C. Schaum's outline series, McGraw-Hill, (najnovije izdanje).

Način polaganja ispita Elementi ocjenjivanja: prvi kolokvij drugi kolokvij. Ukupan broj bodova na prvom kolokviju je najmanje 40, a na drugom najmanje 60 (oba kolokvija mogu imati bonus bodove).

Način polaganja ispita (2) Za prolaz kolegija je potrebno sakupiti barem 45 bodova na redovitim kolokvijima (prvi i drugi zajedno ili popravni). Pri tome na barem jednom zadatku, na prvom ili drugom kolokviju, treba sakupiti najmanje 80% mogućih bodova.

Način polaganja ispita (3) Napomene. Studenti/ce koji polože kolegij, a nisu zadovoljni ocjenom, mogu odgovarati usmeno. Nastavnik ima pravo pozvati studenta/icu na ispit. Više detalja o načinu polaganja ispita možete naći na službenim web stranicama kolegija: http://degiorgi.math.hr/prog2/

Pitanja?

Funkcije

Primjer funkcije: Fibonaccijevi brojevi f 0 = 0, f 1 = 1, f n = f n-1 + f n-2, n 2

Fibonaccijevi brojevi: iterativna verzija int fibonacci(int n) /* n 0 */ { int i; int f, f0 = 0, f1 = 1; if(n == 0) return 0; else if(n == 1) return 1; else for(i = 2; i <= n; i++){ f = f0 + f1; f0 = f1; f1 = f;} return f; } printf("%d\n", fibonacci(n));

Načini prijenosa argumenata Načini prijenosa (predavanja) argumenata prilikom poziva funkcije: prijenosom vrijednosti argumenata call by value prijenosom adresa argumenata call by reference.

Prijenos vrijednosti argumenata #include <stdio.h> void kvadrat(int x, int y) { } y = x * x; printf("unutar funkcije: \ x = %d, y = %d.\n", x, y); int main() { int x = 3, y = 5; } printf("prije poziva: x = %d, y = %d.\n", x, y); kvadrat(x, y); printf("nakon poziva: \ x = %d, y = %d.\n", x, y); return 0;

Prijenos vrijednosti argumenata (2) Funkcija main: x y 3 5 Poziv funkcije x y 3 5 Nakon poziva x y 3 5 Izvođenje funkcije: y = x * x; x y 3 9

Prijenos adrese argumenata #include <stdio.h> void kvadrat(int *x, int *y) { } *y = *x * *x; printf("unutar funkcije: \ x = %d, y = %d.\n", *x, *y); int main() { int x = 3, y = 5; } printf("prije poziva: x = %d, y = %d.\n", x, y); kvadrat(&x, &y); printf("nakon poziva: \ x = %d, y = %d.\n", x, y); return 0;

Prijenos adrese argumenata (2) Funkcija main: x y 3 0012FED4 5 0012FEC8 Poziv funkcije &x &y 0012FED4 0012FEC8 Nakon poziva x y 3 9 5 0012FED4 0012FEC8 Izvođenje funkcije: *y = *x * *x; &x &y 0012FED4 0012FEC8

Rekurzivne funkcije Osnovna ideja: funkcija (procedura) poziva samu sebe ili, preciznije u definiciji funkcije koristimo funkciju koju definiramo. Rekurzivna rješenja su u pravilu kraća (imaju elegantniji zapis). Mogu biti memorijski vremenski zahtjevnija. Uvijek moraju postojati osnovni slučajevi koji se izvršavaju nerekurzivno (inicijalizacija rekurzije).

Primjer: najveći element polja int T(int a[ ], int l, int d){ int max1, max2; if (l == d) return a[l]; else{ max1 = T(a, l, (d + l) / 2); max2 = T(a, (d + l) / 2+1, d); if (max1 > max2) return max1; else return max2; } } Primjer poziva funkcije T: int najveci; int T[100]; Najveci = T(a, 0, 99)

Primjer: algoritam Quicksort Odabere se jedan element niza, tzv. ključni element. Preslože se elementi niza tako da ključni element dođe na njegovo pravo mjesto u sortiranom nizu se lijevo od ključnog elementa nalaze svi elementi niza koji su manji (ili jednaki) od njega se desno nalaze svi elementi niza koji su veći od njega. Rekurzivno se sortiraju podniz manjih, odnosno podniz većih elemenata.

Quicksort (2) 3 7 8 2 5 1 3 5 0 9 3 0 8 2 5 1 3 5 7 9 3 0 3 2 5 1 8 5 7 9 3 0 3 2 1 5 8 5 7 9 1 0 3 2 3 5 8 5 7 9

Složenost Prosječna složenost: (nlog 2 n). Složenost u najgorem slučaju: O(n 2 ). 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 itd, ili 10 9 8 7 6 5 4 3 2 1 1 9 8 7 6 5 4 3 2 10 Autor: C.A.R.Hoare, 1961.

Funkcija swap #include <stdio.h> /* Sortiranje algoritmom Quicksort. x[l] je ključni element - dovodimo ga na pravo mjesto u polju. */ void swap(int *a, int *b){ int temp; } temp = *a; *a = *b; *b = temp; return;

Funkcija quick_sort void quick_sort(int x[], int l, int d){ int i, j; if (l < d) { i = l + 1; j = d; /* Mora se ispitati i slučaj i == j. */ while (i <= j) { } while (i <= d && x[i] <= x[l]) ++i; while (x[j] > x[l]) --j; if (i < j) swap(&x[i], &x[j]);

Funkcija quick_sort - nastavak } if (l < j) swap(&x[j], &x[l]); quick_sort(x, l, j - 1); quick_sort(x, j + 1, d); } return;

Funkcija main int main(void) { int i, n; int x[ ] = {42, 12, 55, 94, 18, 44, -67}; n = 7; quick_sort(x, 0, n - 1); } printf("\n sortirano polje x\n"); for (i = 0; i < n; ++i) { printf(" x[%d] = %d\n", i, x[i]); } return 0;