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

Слични документи
Microsoft PowerPoint - 13-Funkcije_2.ppt [Compatibility Mode]

Tutoring System for Distance Learning of Java Programming Language

Microsoft PowerPoint - 10-Jednodimenzionalni nizovi.ppt [Compatibility Mode]

Funkcije predavač: Nadežda Jakšić

Funkcije predavač: Nadežda Jakšić

PowerPoint Presentation

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

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

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

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

Tutoring System for Distance Learning of Java Programming Language

Microsoft PowerPoint - C-4-1

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Programski jezik C

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

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

3.Kontrlne (upravlja~ke) strukture u Javi

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

Microsoft Word - 11 Pokazivaci

PROMENLJIVE, TIPOVI PROMENLJIVIH

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

Microsoft PowerPoint - 03-Slozenost [Compatibility Mode]

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

PowerPoint Presentation

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

Grananje u programu predavač: Nadežda Jakšić

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

Univerzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Br

PowerPoint Presentation

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]

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

I grupa 1. Napisati program koji izračunava i ispisuje zbir 4 najveća od pet brojeva unetih sa standardnog ulaza. ulaz izlaz Analiza: 1.

Logicko projektovanje racunarskih sistema I

Slide 1

Strukture predavač: Nadežda Jakšić

Uvod u računarstvo 2+2

Programiranje za UNIX Okruženje unix procesa

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

Microsoft PowerPoint - 07-DinamickeStrukturePodataka

Microsoft PowerPoint - Datoteke [Compatibility Mode]

PowerPoint Presentation

Програмирај!

PowerPoint Presentation

Programski jezik C

Uvod u računarstvo 2+2

Inženjering informacionih sistema

Konverzije, operatori, matematičke funkcije predavač: Nadežda Jakšić

PASCAL UVOD 2 II razred gimnazije

Microsoft PowerPoint - JavaP9_2019

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

Microsoft Word - Zadaci za samostalno vjezbanje 4.doc

13E114PAR, 13S113PAR DOMAĆI ZADATAK 2018/2019. Cilj domaćeg zadatka je formiranje petlje softverske protočnosti za minimalni broj ciklusa.

PowerPoint Presentation

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

070-ALIP2-udzbenik.indb

PowerPoint Presentation

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

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

Datum: 20

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

P1.3 Projektovanje makroasemblera

Dijagrami sekvenci

Programski jezik JAVA PREDAVANJE

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

Primenjeno programiranje - vezbe GUI i baze podataka

P9.1 Dodela resursa, Bojenje grafa

Microsoft Word - MySQL_3.doc

Tutoring System for Distance Learning of Java Programming Language

CIJELI BROJEVI 1.) Kako još nazivamo pozitivne cijele brojeve? 1.) Za što je oznaka? 2.) Ispiši skup prirodnih brojeva! 3.) Kako označavamo skup priro

Primenjeno programiranje - Vežbe

Programiranje 1 Beleške sa vežbi Školska 2007/2008 godina Matematički fakultet, Beograd Jelena Tomašević December 5, 2007

Slide 1

Teorija skupova - blog.sake.ba

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

Uvod u računarstvo 2+2

Microsoft Word - CAD sistemi

Математика 1. Посматрај слику и одреди елементе скуупова: а) б) в) средњи ниво А={ } B={ } А B={ } А B={ } А B={ } B А={ } А={ } B={ } А B={ } А B={ }

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

Uvod u takmičarsko programiranje

8 LINQ upiti LINQ (Language Integrated Query upit integrisan u jezik) jeste skup mogućnosti koje jezik C# i Framework pružaju za pisanje strukturirani

RACUNARSKA ELEKTRONIKA – VEŽBE 3

Osnovni programiranja I

ELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera

07_PJISP_II_Predavanja

MIP-heuristike (Matheuristike) Hibridi izmedu metaheurističkih i egzaktnih metoda Tatjana Davidović Matematički institut SANU

Microsoft PowerPoint - 6. Query Builder.pptx

PowerPoint Presentation

Projekti šabloni

MergedFile

PowerPoint Presentation

Рачунарска интелигенција

Generated by Foxit PDF Creator Foxit Software For evaluation only. Operativni sistem U računarstvu, operativni sistem (OS

Microsoft Word - 02 Elementi programskog jezika Pascal

Datoteke predavač: Nadežda Jakšić

P11.3 Analiza zivotnog veka, Graf smetnji

Microsoft PowerPoint - Bitovi [Compatibility Mode]

Microsoft Word - Matematika_kozep_irasbeli_javitasi_0802.doc

Транскрипт:

Osnove programiranja Funkcije - Metode http://www.introprogramming.info/english-intro-csharp-book/read-online/

Sadržaj Funkcije Metode Definisanje Pozivanje Povratne vrednosti Parametri

Metode (1) Metoda je osnovni deo programa koja rešava određeni problem, prihvata ili prosleđuje podatke (parametre) i vraća rezultat. Često se pojam funkcije i metode poistovećuje - funkcije jesu metode, ali metode predstavljaju širi pojam, pa pored funkcija obuhvataju i konstruktore i destruktore itd. Kod čine čitljivijim, a takođe se mogu koristiti za grupisanje međusobno povezanog koda. Smanjuju glavni deo koda u aplikaciji, zato što se sporedni delovi izvršavaju izvan glavnog. Koristite se pri pravljenju višenamenskog koda, jer one mogu izvršiti iste operacije nad različitim podacima.

Metode (2) Metoda se može snabdeti potrebnim podacima u obliku parametara, a rezultati metoda se mogu dobiti u obliku povratnih vrednosti. Na primer određivanje maksimalne vrednosti niza - parametar bi bio niz koji se pretražuje, dok bi povratna vrednost bila maksimalna vrednost unutar niza. U C#-u se aplikacija strukturira pomoću klasa. Funkcije koje su deo klase poznate su kao metode. Metoda je član klase koji izvršava određenu akciju, tj. to je grupa iskaza koji zajedno obavljaju neki zadatak.

C# metode Svaki C # program ima barem jednu klasu (npr. class Program) sa metodom po imenu Main (ulazna tačka programa): static (nije potrebno kreirati instancu unutar klase u kojoj je metoda definisana) void nema povratnu vrednost parametar je niz tipa string koji se zove args. Jednostavniji oblik je: static void Main ()

Definisanje metoda u C#-u Definisanjem metode u osnovi se deklariše njena struktura. <Modifikator pristupa> <Povratni tip> <Ime metode>(lista parametara) Telo metode Vidljivost metode ili promenljive iz druge klase To je vrednost tipa podatka koju vraća metoda. Ako metoda ne vraća nikakvu vrednost onda je ona tip void. Jedinstveno ime koje je case sensitive Parametri se stavljaju unutar zagrada i koriste se za prosleđivanje ili prihvatanje podataka iz metode

Pravilo za definisanje imena Preporuka Microsoft-a: metode Ime mora početi velikim slovom. Primenjuje se pravilo PascalCase. Ime mora da se sastoji od glagola ili od glagola i imenice. Dobri primeri izbora imena: Stampaj, PustiMuziku, PostaviIme. Loši primeri: Abc11, Plava_Crna

Deklarisanje i pozivanje metode

Redosled metoda nije bitan static void Main (string[ ] args) Ispisi(); Console.WriteLine("Pozdrav u Main metodi"); static void Ispisi() Console. WriteLine( Pozdrav ); Pozivanje metode Definisanje metode

Redosled metoda nije bitan static void Ispisi() Console. WriteLine( Pozdrav ); static void Main (string[ ] args) Ispisi(); Pozivanje metode Definisanje metode Console.WriteLine("Pozdrav u Main metodi");

Lokalne promenljive metode Promenljive deklarisane unutar jedne metode su lokalne promenljive i ne mogu se videti i koristiti u telu neke druge metode. Svaka metoda ima svoj skup lokalnih promenljivih. Promenljive deklarisane unutar jedne metode potpuno su nezavisne od promenljivih koje su deklarisane unutar drugih metoda, čak iako imaju ista imena. Lokalnoj promenljivoj se može dodeliti početna vrednost prilikom deklaracije. Sve dok se ne dodeli početna vrednost promenljiva je neinicijalizovana.

Lokalne promenljive int Metoda1(int x, int y) int x; Deklaracija lokalnih promenljivih int y;... static void Metoda2(int x, int y,int z) x=1; Inicijalizacija lokalnih promenljivih y=2; z=3;...

Opseg važenja promenljive Memorija u kojoj se čuvaju lokalne promenljive se alocira svaki put kada se pozove metoda i oslobađa se nakon izvršavanja metode. To znači da se bilo koje vrednosti, koje su čuvaju u ovim promenljivima, neće zadržati nakon što se jednom pozvana metoda ponovo pozove. Zagrade koje definišu telo metode istovremeno označavaju i opseg važenja svih promenljivih deklarisanih u toj metodi. Lokalne promenljive mogu se deklarisati bilo gde unutar metode i moraju biti inicijalizovane pre njihovog korišćenja.

Primer static void Main(string[] args) int x = 1; Write(); Console.WriteLine(x); Console.ReadKey(); static void Write() int x = 2; Console.WriteLine(x);

SM1 Opseg važenja promenljive

Slide 15 SM1 static void Main(string[] args) string mojstring="string koji je definisan u Main funkciji"; Write(); //Console.WriteLine(mojString); static void Write() Console.WriteLine(mojString); Suzana Marković; 29.11.2016.

S4 Opseg važenja promenljive Promenljive mojstring u metodama Main i Write su lokalne pa su i različite!

Slide 16 S4 static void Main(string[] args) string mojstring="string koji je definisan u Main funkciji"; Write(); Console.WriteLine(mojString); Console.ReadKey(); static void Write() string mojstring = "String koji je definisan u Write funkciji"; Console.WriteLine(mojString); Suzana; 7.12.2014.

Povratne vrednosti (1) Najjednostavniji način za razmenu podataka sa metodom jeste korišćenje povratne vrednosti. Metoda koja ima povratnu vrednost izračunava je na isti način kao što se unutar izraza izračunava vrednost promenljive. Povratne vrednosti, kao i promenljive, imaju svoj tip.

Povratne vrednosti (2) Kada metoda vraća vrednost onda je potrebno: navesti tip povratne vrednosti u njenoj deklaraciji, umesto ključne reči void. koristiti ključnu reč return da bi se metoda završila i prenela povratna vrednost u pozivajućikod. Jedino ograničenje je u tome da <PovratniTip> mora biti vrednost koja je tipa <PovratnaVrednost>, ili može biti implicitno konvertovana u taj tip. Static <PovratniTip> <ImeMetode>()...... return < PovratnaVrednost >;

Parametri (1) Lista parametara u deklaraciji metode jesu njeni argumenti koji se još nazivaju formalni parametri metode. Oni su po svojoj prirodi lokalni i nisu vidljivi van granica metode. Oni nemaju konkretnu vrednost (promenljive), već samo ukazuju na tip vrednosti i broj argumenata metode. Lista parametara može biti prazna, pri čemu su male zagrade obavezne.

Parametri (2) Stvarni parametri su konkretne vrednosti koje se zadaju kod poziva funkcije. To su promenljive koje prihvataju vrednosti argumenata prosleđenih metodi u trenutku njenog pozivanja. Podrazumeva se sledeći kod: Static <povratnitip> <ImeMetode>(<paramTip> <paramime>,...)... return <povratnavrednost>; double a=5.3, b=1.0; static double product (double param1, double param2) return param1 * param2;

SM3 static void Main(string[] args) int a = 25; int rezultat; rezultat = kvadriraj(a); Primer 1 Console.WriteLine("Rezultat je: 0", rezultat); Console.ReadKey(); static int kvadriraj( int a ) int rezultat; rezultat = a *a ; return rezultat; Static <returntype> <functionname>(<paramtype> <paramname>,...)... return <returnvalue>; Poziv metode Stvarni parametar (argument metode) Formalni parametar Telo metode

Slide 21 SM3 while(true) Console.WriteLine("unesite broj a:"); int a = int.parse(console.readline()); int rez; rez = kvadriraj(a); Console.WriteLine("Rezultat je: 0", rez); Console.ReadKey(); static int kvadriraj( int a ) return a *a ; Suzana Marković; 27.11.2017.

Primer 1 - modifikovan static void Main(string[] args) Console.WriteLine("Unesi a:"); int a = int.parse(console.readline()); int rezultat; rezultat = kvadriraj(a); Console.WriteLine("Rezultat je: 0", rezultat); Console.ReadKey(); static int kvadriraj(int x) int rez; rez = x * x; return rez; Poziv metode Stvarni parametar Formalni parametar Telo metode

Formalni i stvarni parametri Stvarni parametri (argumenti funkcije) moraju odgovarati formalnim parametrima po broju, redosledu i tipu parametara, ali NE moraju po nazivu.

Formalni i stvarni parametri DEKLARACIJA: int max(int a, int b, int c)... LOŠ POZIV: max(15, 6); DEKLARACIJA: string student(string ime, string prezime)... LOŠ POZIV: student("jovanović", "Ana"); DEKLARACIJA: int proizvod(int a, int b) return a*b; LOŠ POZIV: proizvod("joca", Mika");

S5 Primer 2 static void Main(string[] args) int a = 7; int b = 9; int rezultat; rezultat = zbir(a, b); Console.WriteLine("Rezultat je: 0", rezultat); Console.ReadKey(); static int zbir( int x, int y ) int s; s= x + y; return s; return x+y; Static <returntype> <functionname>(<paramtype> <paramname>,...)... return <returnvalue>;

Slide 25 S5 static void Main(string[] args) int c = 7; int d = 9; int rezultat; rezultat = zbir(c, d); Console.WriteLine("Rezultat je: 0", rezultat); Console.ReadKey(); static int zbir( int a, int b ) int s; s= a + b; return s; Suzana; 7.12.2014.

static void Main(string[] args) int n; int zbir; Console.WriteLine("Unesi n:"); n=int.parse(console.readline()); zbir = suma(n); Console.WriteLine("Rezultat je: 0", zbir); Console.ReadKey(); static int suma(int n) int zbir=0; for (int i=0;i<=n;i++) zbir=zbir+i; return zbir; Primer 3 Suma n prvih brojeva Poziv metode Inicijalizacija lok.promenljive Deklarisanje metode

static void Main(string[] args) Console.Write("a="); int a = int.parse(console.readline()); Console.Write("\nb="); int b = int.parse(console.readline()); int veci; veci = NadjiMax(a, b); Console.WriteLine("\nVeći broj je: 0", veci); Console.ReadKey(); static int NadjiMax(int broj1, int broj2) if (broj1 > broj2) return broj1; else return broj2; Primer 4

SM4 Primer 5 static void Main(string[] args) int[] mojniz = 1, 8, 3, 6, 2, 5, 9, 3, 0, 2 ; int maxprom=maxvrednost(mojniz); Console.Write("Maksimalna vrednost u nizu mojniz je 0 ", maxprom); static int MaxVrednost(int[] niz) int MaxProm = niz [0]; for (int i = 1; i < niz.length; i++) if (niz[i] > MaxProm) MaxProm = niz [i] ; return MaxProm;

Slide 28 SM4 http://www.edusoft.matf.bg.ac.rs/csharp/verzija2012/klasa2.html Suzana Marković; 1.5.2019.

Primer 6 static void Main(string[] args) Console.Write("Unesite neki broj:"); int a = int.parse(console.readline()); int fakt = Faktorijel(a); Console.WriteLine("\nFajtorijel broja "+a +" je "+a+"!="+fakt); Console.ReadKey(); static int Faktorijel(int broj) int Faktor=1; for(int i=2;i<=broj;i++) Faktor=Faktor*i; return Faktor;

Pozivanje više metoda

Pozivanje više metoda i parametri različitog tipa static void Main(string[] args) int a = 7; int b = 9; int rezultat1; double rezultat2; rezultat1 = zbir(a, b); rezultat2 = kolic(a, b); Console.WriteLine("Rezultatati su: 0, 1", rezultat1,rezultat2 ); Console.ReadKey(); static int zbir( int x, int y ) int s; s= x + y; return s; static double kolic(int x, double y) return x/y;

static void Main(string[] args) int[] niz = new int[] 1, 1, 1, 2, 3 ; Console.Write("Pre funkcije ModifikujNiz() niz je: "); StampajNiz(niz); ModifikujNiz(niz); for (int i = 0; i < niz.length; i++) if (niz[i] == niz[niz.length i 1]) continue; Console.Write("Nakon ModifikujNiz() f je niz je simetrican: "); StampajNiz(niz); static void ModifikujNiz(int[] a) for (int i = 0; i < a.length / 2; i++) if (a[i]!= a[a.length i 1]) a[i] = a[a.length i 1]; Console.Write("U funkciji ModifikujNiz() niz je: "); StampajNiz(a); static void StampajNiz(int[] a) Console.Write("["); Console.Write(a[0]); for (int i = 1; i < a.length; i++) Console.Write(", 0", a[i]); Console.WriteLine("]"); Pozivanje više metoda

Kreiranje jelke static void Jelka (n) int i, j; for (i = 0; i < n + 1; i++) for (j = n - i; j > 0; j--) //Kreiranje praznina Console.Write(" "); for (j = 0; j < (2 * i + 1); j++) //Štampanje zvezdica Console.Write("*"); Console.WriteLine(); //Skok u novi red //Glavi program static void Main(string[] args) Console.Write("Unesi broj - veličina trougla: "); int velicina = int.parse(console.readline()); Jelka(velicina); //poziv metode