Algoritmi i programiranje

Similar documents
Prva recenica. Druga recenica.

VRIJEDNOSTI ATRIBUTA

Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list.

Programiranje III razred

PROGRAMIRANJE. Amir Hajdar

Učitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0.

Vidljivost TipPovratneVrednosti ImeFunkcije (NizParametara) { TeloFunkcije }

Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi

CSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets

Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo

Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt

Uvod u programiranje - vežbe. Kontrola toka izvršavanja programa

modifier returnvaluetype methodname(list of parameters) { // Method body; }

PREDMET. Osnove Java Programiranja. Čas JAVADOC

Uputstvo za korišćenje logrotate funkcije

RAČUNARSKI PRAKTIKUM II

Numeričke metode i praktikum

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end.

x y = z Zadaci - procedure

Računarske osnove Interneta (SI3ROI, IR4ROI)

JavaScript i HTML DOM

SVEUČILIŠTE U MOSTARU FAKULTET PRIRODOSLOVNO-MATEMATIČKIH I ODGOJNIH ZNANOSTI BAZE PODATAKA 2. Doc.dr.sc. GORAN KRALJEVIĆ BAZE PODATAKA 2 1

9. RAD S DATOTEKAMA PODATAKA

Uvod u relacione baze podataka

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010

VB komande. Programiranje 1

OSNOVE PROGRAMIRANJA

Izrada VI laboratorijske vježbe

Naredbe za kontrolu toka

f2() f6() main() f3() f7() f4()

PARALELNO PROGRAMIRANJE

KLASIFIKACIJA JELENA JOVANOVIĆ. Web:

pojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1

2. Linijska algoritamska struktura

RAČUNARSKI PRAKTIKUM II

16. Sigurnije programiranje

Vežbe - XII nedelja PHP Doc

Sberbank Business Online na Mozilla FireFox

/*#include <iostream> // Prvi zadatak sa integralnomg ispita

Zadatci Small Basic za 7. Razred ( programa)

Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje. Office 2013 / Office 365

12. Uskladištene procedure (Stored Procedures)

VDSL modem Zyxel VMG1312-B10A/B30A

namespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); }

VHDLPrimeri Poglavlje5.doc

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET

KURSORI BAZE PODATAKA U ORACLE 11g

Programske paradigme Funkcionalna paradigma

PROGRAMIRANJE. Teme. Packages Reference objekata Inheritance nasljeđivanje Exceptions. Amir Hajdar

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a

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

Iskočni okviri (eng. popup boxes)

... ; ako je a n parno. ; ako je a n neparno

Veliki računski zadaci mogu se razbiti u manje delove i time se omogućava ljudima da iskoriste ono što su neki drugi već uradili, umesto da počinju

Binarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133

dr. sc.. Josip Musić Originalne slideove izradio:

SVEUČILIŠTE U Z GRE U Fakultet prometnih znanosti Zavod za inteligentne transportne sustave Vukelićeva 4, Zagreb, HRV TSK.

Operacijski sustavi. Laboratorijska vježba 2. Petra Lončar, mag. ing. el., asistent FESB, 2016.

Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak...

var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.LoadFromFile('d:\brojevi.

Prirodno-matematički fakultet u Nišu Departman za fiziku. dr Dejan S. Aleksić Programiranje u fizici

Mašinska vizija. Dr Nenad Jovičić tnt.etf.rs/~mv

for i:=2 to n do if glasovi[i]>max then begin max:=glasovi[i]; k:=i {*promenljiva k ce cuvati indeks takmicara sa najvise glasova *} end;

PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA

6. SWITCH IZRAZ I PETLJE

PITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I POLIMORFIZAM

For. 1) program ispis; {ispisuje brojeve od 1 do 5 jedan ispod drugog} uses wincrt; var s,i:integer; begin for i:=1 to 5do writeln(i); end.

Case Study Hrvatska pošta: Korisničko iskustvo iz snova. Tomislav Turk Samostalni sistem inženjer, Combis d.o.o. Zagreb,

Dežurni nastavnik: Kolokvijum traje 1.5 sat, prvih sat vremena nije dozvoljeno napuštanje kolokvijuma. Upotreba literature nije dozvoljena.

Uvod u Javu. Programski jezik Java Izvršavanje Java programa BlueJ razvojno okruženje Elementi Jave Tipovi podataka Prvi programi

Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb,

Aktuelna verzija Matlaba je 7, koja ima dosta poboljšanja u odnosu na prethodne.

String. String. Kreiranje string objekta pomoću string literala (konstanti) Kreiranje string objekta

Funkcije, prenos parametara i dinamička alokacija memorije

Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje. WEB programiranje HTML & CSS

Rad sa MySQL bazom podataka

Uvod, varijable, naredbe, petlje

Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi.

SELECT CASE i FOR NEXT. Programiranje 1

Shell programiranje. Damir Kirasić Škola otvorenog računarstva FER Zagreb

Oracle Proprietary Joins Za upite nad više od jedne tabele korišćenjem Oracle proprietary sintakse koristiti join uslov u WHERE izrazu:

Informacioni sistemi i baze podataka

Uvod u programski jezik

Lekcija 02 Uslovni iskazi i petlje, Funkcije. Miljan Milošević

Visual Basic 6.0. Osnove VB. Uvod u računarstvo 1

Scheme je funkcionalni jezik moderna varijanta jezika LISP-a, s dodacima iz Algola (lokalni doseg identifikatora).

Broj Pitanje Bodovi 1. Navedi osnovne razloge uvođenja objektno orjentiranog pristupa? 2. Što je klasa u programskom jeziku?

PVC Eco. Eco Prozori i Balkonska Vrata Bela Boja Dezeni drveta su 40% skuplji

Sadržaj predavanja 02. Cjelobrojni tip podataka(1/3) Cjelobrojni tip podataka(2/3) Cjelobrojni tip podataka(3/3) prec(short) prec(int) prec(long) int

S E M I N A R S K I R A D Verilog sa primjerima

Uputa za instaliranje programske potpore za operativni sustav WINDOWS

Programiranje III razred

INSTALACIJA RAZVOJNOG OKRUŽENJA DEV-C++

8. NIZOVI. // deklaracija niza od 10 elemenata: data[0], data[1],..data[9] int data[10] ; S elementima niza se operira kao s prostim varijablama

NIZOVI.

NASLOV SEMINARSKOG RADA (16 pt, Bold) Seminarski rad. (16 pt, Bold)

PHP i HTML tagovi. kombinovanje

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

Zadaci za Tutorijal 2.

Primjer ispisuje rečenicu "Dobro dosli na brzi tecaj C-a" na ekranu

Transcription:

Algoritmi i programiranje Metode Prof. dr. sc. Tonči Carić

Sadržaj Definicija metoda Argument i parametar Metode s više parametara Metode bez rezultata Metode s rezultatom Logičke metode Globalne i lokalne varijable Predavanja argumenata metodi Povratne vrijednosti metoda

Definicija metoda METODA je Imenovani izdvojeni slijed naredbi Koji rješava određeni zadatak I po potrebi se poziva jednom ili više puta u programu Većina programskih zadataka može se podijeliti u više manjih pod-zadataka Metoda predstavlja u primjeni crnu kutiju Poznat ulaz i izlaz te koji se problem/zadatak rješava Način rješavanja nije poznat ni bitan Rješavanje programskog zadatka olakšano je smanjivanjem složenosti

Definicija metoda METODE doprinose Čitljivosti programa Lakšem opetovanom izvršavanju istog kôda Lakšem korištenju kôda od strane drugih autora Bržem testiranju i ispravljanju pogrešaka IME metode Jasno opisuje njenu funkciju Jedna riječ (bez razmaka i specijalnih znakova) Ne smije započinjati brojem Preporuka da ime metode počinje velikim slovom

Dijelovi metode Definicija metoda static void NoviRed() ZAGLAVLJE Console.WriteLine( ); Pozivanje metode Izgled zaslona TIJELO static void Main() Console.WriteLine( Prva recenica. ); NoviRed(); NoviRed(); NoviRed(); Console.WriteLine( Druga recenica. ); Prva recenica. Ispis01 Druga recenica.

Definicija metoda Pozivanje metoda METODA može pozvati drugu metodu static void NoviRed() Console.WriteLine( ); static void TriReda() NoviRed(); NoviRed(); NoviRed(); Istu metodu moguće je pozivati više puta za redom Jedna metoda može pozivati drugu metodu static void Main() Console.WriteLine( Prva recenica. ); TriReda(); Console.WriteLine( Druga recenica. ); Izvršavanje programa uvijek započinje u metodi Main Metoda Main poziva metodu TriReda koja poziva metodu NoviRed Ispis02

Definicija metoda REDOSLIJED definicija metoda u programu ne utječe na izvođenje programa PROGRAME nije dobro čitati odozgo prema dole, već treba pratiti tijek izvršavanja koji započinje u metodi Main ČINJENICU da jedna metoda može pozvati drugu, treba uvijek imati na umu jer se izvođenjem npr. metode TriReda prelazi u metodu NoviRed koja dalje poziva metodu WriteLine, itd. NAKON što cijeli niz poziva iz metode TriReda završi, program nastavlja izvršavanje u Main metodi na mjestu gdje je stao

Predavanja argumenata metodi ARGUMENT metode Podatak koji se predaje metodi prilikom njenog pozivanja PARAMETAR metode Varijabla metode koja prima argument Argument i Parametar moraju biti istog tipa Po potrebi treba izvršiti pretvorbu prilikom prosljeđivanja argumenta pomoćnoj metodi Lista argumenata (više argumenata) prosljeđuje se listi parametara (više varijabli metode) pri pozivanju metode

Predavanja argumenata metodi Definicija metode i parametra static void IspisiDvaput(string poruka) Console.WriteLine(poruka); Console.WriteLine(poruka); Ova metoda ima jedan parametar tipa string koji je proizvoljno nazvan poruka Pozivanje metode i postavljanje argumenta static void Main() IspisiDvaput( Ispisi me samo jednom );

Predavanja argumenata metodi METODE s više parametara Kod metoda s više parametara potrebno je deklarirati tip svakog parametra u zaglavlju metode static void IspisiVrijeme(int sat, int minuta) Console.Write(sat); Console.Write( : ); Console.WriteLine(minuta); Parametri mogu biti različitog tipa i odvajaju se zarezom Za svaki parametar potrebno je navesti i tip

Povratne vrijednosti metoda Metode bez rezultata Nemaju tip podatka kojeg vraćaju već se u zaglavlju definiraju kao void (engl. za ništavilo, praznina) Metoda može prekinuti izvršavanje pozivanjem naredbe return koja u slučaju void metode nema argument void ispisi_korijen (double broj) if (broj < 0) return; Console.WriteLine( Math.Sqrt(broj) );

Povratne vrijednosti metoda Metode sa rezultatom vraćaju vrijednosti Njih se može koristiti u izrazima kao varijable i ostale vrijednosti static double Povrsina(double r) double p = r * r * Math.PI; return p; Primjer poziva metode Povrsina Console.WriteLine(Povrsina(10.0)); double r = 5.0; double a = Povrsina(r); Povrsina01

Povratne vrijednosti metoda Metode sa rezultatom moraju vrijednost vratiti s naredbom return double Kvadrat (double x) return x*x; Argument return naredbe mora biti istog tipa kao i tip metode u kojoj se return nalazi Definirane su samo operacije između varijabli istog tipa Po potrebi se koristi pretvorba tipa varijabli

Logičke metode Metoda Logičke metode Metode mogu vratiti logičku vrijednost kao što mogu vratiti i bilo koji drugi tip podataka Metoda koja vraća logičku vrijednost true, false vrlo je prikladna za prikrivanje testova unutar metode static bool Jednoznamenkast (int x) if (x >= 0 && x < 10) Ili još kraće return true; else return false; static bool Jednoznamenkast (int x) return (x >= 0 && x < 10); LogickaMetoda Uputno je davati ime logičkoj metodi na način da predstavlja jednostavno pitanje na koje postoji DA/NE odgovor, kao npr. ime metode u ovom primjeru: Jednoznamenkast

Povratne vrijednosti metoda Metode sa rezultatom mogu imati više return naredbi u tijelu metode Metoda završava izvršavanjem samo jedne od više return naredbi string Parnost (int broj) if (broj % 2 == 0) return paran ; else return neparan ; Parnost Operator % izračunava cjelobrojni ostatak dijeljenja dva cijela broja Operator % čita se mod odnosno modulo

Kompozicija metoda static double Povrsina(double polumjer) return Math.PI * polumjer * polumjer; static double Povrsina(double x1, double y1, double x2, double y2) return Povrsina( Dist(x1, y1, x2, y2) ); Interesantno je uočiti da druga verzija metode Povrsina poziva prvu Za ovakvo komponiranje metoda potreban je oprez jer lako dolazi do zabune kada se koja verzija metode poziva

Ugrađene metode Matematičke C# poziv Opis Math.Abs(broj) Math.Cos(double kut) Math.Sin(double kut) Math.Log(double broj) Math.Log(double broj, double baza) Math.Log10(double broj) Math.Pow(double baza, double eksponent) Math.Sqrt(broj) Math.Round(double vrijednost, int znamenke) Vraća apsolutnu vrijednost predanog broja Vraća kosinus predanog kuta koji je u radijanima Vraća sinus predanog kuta koji je u radijanima Vraća prirodni logaritam predanog broja Vraća logaritam predanog broja, prema predanoj bazi Vraća logaritam s bazom 10 od predanog broja Vraća broj koji je rezultat izračuna predanih baze i eksponenta Vraća korijen predanog broja Zaokružuje decimalnu vrijednost na broj znamenka predan kao drugi parametar

Globalne i lokalne varijable Definira vidljivost pojedine varijable u programu Podjela područja vidljivosti varijabli Lokalne varijable Moguće im je pristupiti unutar metode u kojoj su definirane Globalne varijable Moguće im je pristupiti iz bilo kojeg dijela programa Varijable koje imaju isto područje vidljivosti moraju imati različita imena

Globalne i lokalne varijable Lokalne varijable Deklariraju se unutar metode i vidljive su jedino unutar metode Globalne varijable Dostupne su iz bilo kojeg dijela programa Nedostatak što mnoštvo globalnih varijabli čini vrlo složenim Ispravljanje programa Razumijevanje programa Ako metode koriste globalne varijable, tada je njihova prenosivost u druge programe znatno otežana

Globalne i lokalne varijable Globalne konstante Su nepromjenjive vrijednosti dostupne u cijelom programu S obzirom da ih program ne može promijeniti, puno su sigurnije za korištenje u takvu svrhu u odnosu na globalne varijable Preporuka je takve vrijednosti deklarirati na jednom mjestu u programu Olakšana kasnija dorada programa (npr. promjena PDV-a) Dio konstanti (stalnica) već definiran u C# Ludolfov broj (Pi) -> Math.PI Prirodni (Eulerov) broj -> Math.E

Zadaci

1. zadatak Udaljenost između točaka Potrebno je izračunati udaljenost između dvije točke u 2D koordinatnom sustavu Koordinate točaka t1(x1, y1) i t2(x2, y2) predaju se kao argumenti metodi y t2(x2, y2) Euklidska udaljenost: x t1(x1, y1)

2. zadatak Opseg trokuta Potrebno je izračunati opseg trokuta Koordinate točaka trokuta t1(x1, y1), t2(x2, y2) i t3(x3, y3) predaju se kao argumenti metodi t3(x3, y3) y t2(x2, y2) Opseg trokuta: x t1(x1, y1)

3. zadatak Površina trokuta Potrebno je izračunati površinu trokuta Heronovom formulom P = s(s a)(s b)(s c) gdje je s jednak s = a+b+c 2 Koordinate točaka trokuta t1(x1, y1), t2(x2, y2) i t3(x3, y3) predaju se kao argumenti metodi t3(x3, y3) P y t2(x2, y2) x t1(x1, y1)

4. zadatak Površina mnogokuta Potrebno je izračunati površinu nepravilnog mnogokuta Površina mnogokuta računa se dijeljenjem mnogokuta na više trokuta, računanjem njihove površine, te zbrajanjem površina O = P1 + P2 + P3 t4(x4, y4) t3(x3, y3) y P3 P2 P1 t2(x2, y2) x t5(x5, y5) t1(x1, y1)