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

Слични документи
Računarski praktikum I - Vježbe 07 - Podstrukture, const, reference

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

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

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

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

Uvod u računarstvo 2+2

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

Microsoft PowerPoint - 07-DinamickeStrukturePodataka

Funkcije predavač: Nadežda Jakšić

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

PowerPoint Presentation

Računarske mreže Čas 2 Ivana Tanasijević Matematički fakultet, Beograd 1

070-ALIP2-udzbenik.indb

Microsoft PowerPoint - 12-Funkcije_1.ppt [Compatibility Mode]

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

VEŽBA 5: KLASE I OBJEKTI U C# Cilj ove vežbe je upoznavanje sa osnovama rada sa klasama i objektima u programskom jeziku C#. Pored toga, bide demonstr

Uvod u računarstvo 2+2

Uvod u računarstvo 2+2

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

Funkcije predavač: Nadežda Jakšić

Uvod u računarstvo 2+2

Zadatak 011 Razmotrite sljedeći primjer. package hr.fer.oopj.primjeri.p011; public class Main { } public static void main(string[] args) { obrada(2.71

Tutoring System for Distance Learning of Java Programming Language

Microsoft PowerPoint - Datoteke [Compatibility Mode]

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

Класе комбинација презентације (Хортона) и к о бајаги скрипте (Ово је прича коју врло радо причам) нови тип података: дефинишу могуће вредности подата

Tutoring System for Distance Learning of Java Programming Language

ZADACI ZA VEŽBU 1. Realizovati konzolnu aplikaciju koja će računati površinu kvadrata, pravougaonika ili trougla. 2. Preko konzole se unosi ocena od 1

Tutoring System for Distance Learning of Java Programming Language

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

Programiranje za UNIX Okruženje unix procesa

PowerPoint Presentation

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

Microsoft Word - Zadaci za samostalno vjezbanje 4.doc

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

Objektno orjentirano programiranje 2P

Primenjeno programiranje - Vežbe

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

PowerPoint Presentation

PHP kod

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

2015_k2_z12.dvi

Sveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 10 Zvonimir Bujanović Luka Grubišić Vinko Petričević

Datoteke predavač: Nadežda Jakšić

Projekti šabloni

Писање и превођење модула

Računarski praktikum II - Predavanje 03 - Apache Web server

Logicko projektovanje racunarskih sistema I

Objektno orjentirano programiranje

Osnove inženjerske informatike II. Uvod u programiranje Vaš prvi program K. F. & V. B.

Slide 1

Sveucilište u Zagrebu

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

Strukture predavač: Nadežda Jakšić

Datum: 20

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

07_PJISP_II_Predavanja

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 u C-u ili C++-u Pseudo-slučajni brojevi; Dinamička alokacija memorije 1 ZADACI SA ČASA Zadatak 1 Napraviti funkciju koja generišlučajan

PowerPoint Presentation

Osnovni programiranja I

Programski jezik C

1. Apsolutni pobednik na glasanju vreme memorija ulaz izlaz 0,1 s 64 Mb standardni ulaz standardni izla Apsolutni pobednik izbora je onaj ko osvoji ba

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

ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU BEOGRAD, Ispit iz Programiranja 2 Ispit traje 135 minuta Napomene: a) Pažljivo proučite U

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

Programski jezik JAVA PREDAVANJE

PowerPoint Presentation

Microsoft Word - 11 Pokazivaci

3.Kontrlne (upravlja~ke) strukture u Javi

Programiranje 1

Microsoft PowerPoint - JavaP9_2019

PowerPoint Presentation

Programski jezik C

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

PDO

Primenjeno programiranje - vezbe GUI i baze podataka

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

Slide 1

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

obavezno je koristiti spell-checker

PHP proširenja za rad sa bazama podataka Postoje pojedinačna proširenja za različite tipove baza podataka sa svojim bibliotekama funkcija npr. postoji

PowerPoint Presentation

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

UVOD - OD JAVE DO C# ELEMENTARNE RAZLIKE Veliki broj Java/C# razlika su uglavnom preimenovane ključne reči i razlike u konvencijama imenovanja. Neke o

Memorandum NT_2013

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

PowerPoint Presentation

PowerPoint Presentation

kriteriji ocjenjivanja - informatika 8

Mrežno računarstvo

Microsoft Word - ???????? ???????? ??????? ????? _1_.doc111.doc

Recuva CERT.hr-PUBDOC

Microsoft PowerPoint - 11.Programski_Jezik_C_ulaz-izlaz [Compatibility Mode]

RACUNARSKA ELEKTRONIKA – VEŽBE 3

KORISNIČKE UPUTE APLIKACIJA ZA POTPIS DATOTEKA

rk-I-ciklus-ljetni-sem.xlsx

Zadaća 4. Ova zadaća nosi ukupno 4 poena, pri čemu prva dva zadatka nose po 1 poen, treći zadatak 1,5 poen i četvrti zadatak 0.5 poena. Svi zadaci se

MergedFile

Транскрипт:

Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM I Vježbe 09 - this, static v2018/2019. Sastavio: Zvonimir Bujanović

Pokazivač this Kako funkcija članica zna na kojem objektu djeluje? class stack int element[100], size;... void push( int x ) element[size++] = x; stack S, T; S.push( 3 ); // radi sa S.element i S.size T.push( 5 ); // radi sa T.element i T.size Implicitno se funkciji zapravo šalje i pokazivač na objekt koji ju poziva. // U "pozadini" se zapravo dogadja ovo (dakle, kao u SPA!): void push( stack *S, int x ) S->element[S->size++] = x; stack S, T; push( &S, 3 ); push( &T, 5 ); 2

Pokazivač this Unutar svake funkcije članice dostupan je pokazivač this. On sadrži adresu objekta koji je pozvao funkciju. class stack... void push( int x ) this->element[this->size] = x; ++this->size; stack S; S.push( 3 ); // unutar push: this == &S T.push( 5 ); // unutar push: this == &T 3

Pokazivač this Pomoću this možemo vratiti referencu na objekt koji je pozvao funkciju. To je korisno za ulančavanje poziva. class stack... stack &push( int x ) element[size++] = x; return *this; int main () stack S; S.push(5).push(7).push(8); // OK!... Zbog čega ovo ne radi ako funkcija vraća samo stack? 4

Statičke varijable Statičke varijable možemo deklarirati unutar funkcija i unutar klasa. Statičke varijable unutar funkcija inicijaliziraju se samo prilikom prvog poziva. Njihova vrijednost se pamti i nakon izlaska iz funkcije. void f1() static int i = 0; cout << ++i; void f2() static int i = 0; cout << ++i;... f1(); // ispise 1 f1(); // ispise 2 f2(); // ispise 1 f2(); // ispise 2 5

Statičke varijable Statičke varijable se kreiraju prilikom prvog korištenja, a uništavaju na kraju izvršavanja programa. struct Test Test() cout << "Kreiran Test" << endl; ~Test() cout << "Unisten Test" << endl; void f() static Test t; int main() cout << "Poceo program" << endl; f(); cout << "Zavrsio program" << endl; return 0; 6

Statički članovi klasa Statičkog člana klase K dijele sve varijable tipa K. Takvi članovi postoje i ako ne postoji niti varijabla tipa K. Takve članove moramo inicijalizirati izvan svih funkcija (na globalnom nivou). To radimo u.cpp datoteci (a ne u.h). struct MyStruct static int brojzivihstruktura; MyStruct() ++brojzivihstruktura; ~MyStruct() --brojzivihstruktura; int MyStruct::brojZivihStruktura = 0; // inicijalizacija int main() MyStruct a, b, c; cout << MyStruct::brojZivihStruktura; // ispis: 3 cout << a.brojzivihstruktura; // ispis: 3 return 0; 7

Zadatak 1 Nadopunite definiciju strukture s prethodnog slide-a tako da osim broja trenutno živih objekata tipa MyStruct ona održava i popis (listu) svih tih objekata. Uoči: popis mora sadržavati pokazivače ili reference. Što bi se dogodilo da se u popisu nalaze samo MyStruct-ovi? 8

Statičke funkcije članice klase Statičke funkcije članice mogu pristupati samo statičkim članovima klase. Unutar takvih funkcija ne postoji pokazivač this. struct MyStruct static int brojzivihstruktura; int brojac; MyStruct() brojac = ++brojzivihstruktura; static int broj() return brojac; // greska, brojac nije static return brojzivihstruktura; // OK, ovo je static int main() MyStruct test; int x = MyStruct::broj(); // OK, x = 1 int y = test.broj(); // OK, y = 1 9

Pretpostavljeni parametri funkcija Za sve ili za nekoliko zadnjih parametara funkcija možemo postaviti defaultne vrijednosti. void f( int a, string b = "netko" ) cout << b << " ima " << a << "godina"; int main() f(20, "Mirko"); // ispis: Mirko ima 20 godina f(19); // ispis: netko ima 19 godina return 0; 10

Pretpostavljeni parametri funkcija Treba biti oprezan jer može doći do dvosmislenosti! struct MyStruct MyStruct()... MyStruct( int a = 5 )... MyStruct a; // compile error! Koji konstruktor pozvati? MyStruct b( 7 ); // OK! Jasno je koji konstruktor pozvati. 11