Funkcije predavač: Nadežda Jakšić

Слични документи
Funkcije predavač: Nadežda Jakšić

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]

Tutoring System for Distance Learning of Java Programming Language

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

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

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Strukture predavač: Nadežda Jakšić

070-ALIP2-udzbenik.indb

Programski jezik C

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 PowerPoint - 13-Funkcije_2.ppt [Compatibility Mode]

Uvod u računarstvo 2+2

Uvod u računarstvo 2+2

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

Microsoft PowerPoint - 03-Slozenost [Compatibility Mode]

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

Tutoring System for Distance Learning of Java Programming Language

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

PROMENLJIVE, TIPOVI PROMENLJIVIH

Uvod u računarstvo 2+2

Microsoft Word - 11 Pokazivaci

Uvod u takmičarsko programiranje

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

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

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

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

Uvod u računarstvo 2+2

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

PowerPoint Presentation

Datoteke predavač: Nadežda Jakšić

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

Tutoring System for Distance Learning of Java Programming Language

Microsoft Word - Zadaci za samostalno vjezbanje 4.doc

07_PJISP_II_Predavanja

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

Microsoft PowerPoint - Datoteke [Compatibility Mode]

PowerPoint Presentation

Programski jezik C

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

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

Microsoft PowerPoint - Bitovi [Compatibility Mode]

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

PowerPoint Presentation

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

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

Microsoft PowerPoint - C-4-1

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

Microsoft PowerPoint - 07-DinamickeStrukturePodataka

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

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

My_P_Red_Bin_Zbir_Free

PowerPoint Presentation

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

Алгебарски изрази 1. Запиши пет произвољних бројевних израза. 2. Израчунај вредност израза: а) : ; б) : (

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

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

P2.1 Projektovanje paralelnih algoritama 1

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

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

P11.2 Izbor instrukcija, IBURG

NIZOVI

MJEŠOVITA SREDNJA TEHNIČKA ŠKOLA TRAVNIK PROGRAMIRANJE I PROGRAMSKI JEZICI PROGRAMSKI JEZIK C -SKRIPTA ZA INTERNU UPOTREBU-

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

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

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

Osnovni programiranja I

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

3.Kontrlne (upravlja~ke) strukture u Javi

1 Polinomi jedne promenljive Neka je K polje. Izraz P (x) = a 0 + a 1 x + + a n x n = n a k x k, x K, naziva se algebarski polinom po x nad poljem K.

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

СТЕПЕН појам и особине

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

Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: min c T x Ax = b x 0 x Z n Gde pretpostavljamo da je A celobrojna matrica

Konstrukcija i analiza algoritama Nina Radojičić februar Analiza algoritama, rekurentne relacije 1 Definicija: Neka su f i g dve pozitivne fun

My_P_Trigo_Zbir_Free

6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe

P9.1 Dodela resursa, Bojenje grafa

1

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

Microsoft Word - uputstvo-estudent-v2.docx

Microsoft Word - Matematika_kozep_irasbeli_javitasi_0802.doc

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

P11.3 Analiza zivotnog veka, Graf smetnji

Microsoft Word - 02 Elementi programskog jezika Pascal

SELECT statement basic form

Fortran

Орт колоквијум

P1.2 Projektovanje asemblera

RACUNARSKA ELEKTRONIKA – VEŽBE 3

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

Slide 1

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

Inženjering informacionih sistema

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

OPIS RAČUNARSKOG SISTEMA Računarski sistem se sastoji od procesora, operativne memorije, tajmera i terminala. Sve komponente računarskog sistema su me

Programski jezici i strukture podataka

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

Транскрипт:

Funkcije predavač: Nadežda Jakšić

funkcije delovi programa koji izvršavaju neki zadatak, celinu; dele na ugrađene, korisničke i main funkciju ugrađene funkcije printf,scanf... da bi se one izvršile potrebno je uključiti datoteke zaglavlja; nesamostalne su korisničke funkcije imenovani i samostalni delovi kôda koji izršavaju neki zadatak; funkcija ima jedinstveno ime koje joj daje korisnik, to ime služi za to da bi bila pozvana preko njega; mogu da se izvrše bez interakcije sa ostatkom kôda korisničke funkcije se pišu nezavisno i pozivaju se iz main funkcije; obrađuju vrednosti koje dobiju putem argumenata i vraćaju ih nazad funkcijama koje su ih pozvale

#include <stdio.h> float a, stranica, povrsina; float kvadrat (float stranica); int main() printf ("Unesite duzinu stranice kvadrata\n "); scanf ( %f", &a); povrsina = kvadrat (a); printf ("Povrsina kvadrata je %.2f\n", povrsina); return 0; float kvadrat (float stranica) prototip funkcije, informiše kompajler o tipu promenljive koja će biti vraćena, o imenu funkcije i koje argumente funkcija koristi poziva se funkcija kvadrat; prethodno je promenljiva a dobila vrednost; pošto je a unutar zagrada naziva se argument funkcije; pri prenošenju izvršavanja prenosi se samo vrednost argumenta return stranica * stranica; korisnička funkcija kvadrat; ona zahteva argument, preuzima ga, tj. uzima vrednost od promenljive a i pridružuje je svojoj promenljivoj stranica; računa površinu kvadrata i vraća vrednost naredbom return

sintaksa: tiprezultata imefunkcije (formalniargumenti) definicije i deklaracije; naredbe; tiprezultata je tip koji ima rezultat funkcije; rezultat je ono što funkcija vraća kada se pozove; ako se ne navede podrazumeva se int; kod funkcija koje ne vraćaju vrednost navodi se void imefunkcije je identifikator formalniargumenti su argumenti pomoću kojih se unose početni podaci u funkciju; oni rezervišu mesta za veličine sa kojima funkcija operiše posle njenog poziva; za svaki argument mora posebno da se navede tip (int a, int b, float c...) vrednosti koje se dodeljuju formalnim argumentima nazivaju se stvarni argumenti

dva načina dodeljivanja vrednosti formalnim argumentima: pozivanje po vrednosti (formalnim argumentima se dodeljuje vrednost stvarnog argumenta, nema izmene stvarnog argumenta po izlasku iz funkcije); pozivanje po referenci (ako se umesto vrednosti stvarnih argumenata prosleđuju adrese tih argumenata onda se menja vrednost stvarnim argumentima kada se izađe iz funkcije) definicije i deklaracije i naredbe čine telo funkcije naredba return se koristi za povratak iz funkcije; rezultat koji ova funkcija vraća može da bude promenljiva, pokazivač ili aritmetički izraz dva slučaja naredbe: return (povratnavrednost) kada funkcija vraća neku vrednost ili return kada ne vraća vrednost; tip funkcije koja ne vraća vrednost je void ako se funkcija piše ispod main funkcije, onda iznad main funkcije mora da se navede prototip funkcije tipfunkcije imefunkcije (formalniparametri); poziv funkcije: ako funkcija vraća vrednost onda imefunkcije (stvarniparametri), a ako ne vraća vrednost onda imefunkcije ()

//funkcija ne vraća vrednost.. void pozdrav () //ako funkciju pišemo ispod funkcije main, onda ovde //mora da se navede prototip funkcije void pozdrav (); printf ("Zdravo\n"); int main () int i; for (i=1;i<=10;i++) pozdrav (); //poziv funkcije pozdrav koja ne vraća vrednost return 0;

//funkcija vraća vrednost zbir dva broja.. int zbir (int a, int b) //funkcija će vratiti rezultat tipa int, formalni //argumenti su int a, int b, za svaki mora posebno da se navede tip int c; c=a+b; return c; //može i return a+b; naredba return vraća zbir koji je tipa int int main () int broj1, broj2; printf ("Unesite dva broja\n"); scanf ("%d%d",&broj1,&broj2); printf ("Zbir ova dva broja je %d",zbir (broj1, broj2); return 0; poziv funkcije zbir, broj1 i broj2 su stvarni argumenti

//funkcija ne vraća vrednost zbir dva broja.. void zbir (int a, int b) //funkcija ima tip void int c; c=a+b; printf ("Zbir ova dva broja je %d", c); int main () int broj1, broj2; printf ("Unesite dva broja\n"); scanf ("%d%d",&broj1,&broj2); zbir (broj1, broj2); //poziv funkcije zbir return 0;

//funkcija vraća vrednost kub nekog broja int kub (int x) int rez; rez=x*x*x; return rez; int main () int a,k; printf ("Unesite broj\n"); scanf ("%d", &a); k=kub (a); printf ("Kub unetog broja je %d", k); return 0;

//funkcija računa prosek dva broja float nadjiprosek (float a, float b) float prosek; prosek=(a+b)/2; return (prosek); int main () float a=5, b=15, rezultat; rezultat=nadjiprosek (a,b); printf ("prosek je %.2f", rezultat);

//funkcija prikazuje kvadrate brojeva od 1 do 9 void kvadrati () int i; for (i=1;i<=9;i++) printf ("%d\n", i*i); int main () kvadrati (); return 0;

//funkcija ispituje da li je broj prost u intervalu od m do n int prostbroj (int broj); int main() int m,n,i; printf ("Unesite dva broja (interval):\n"); scanf ("%d%d", &m,&n); printf ("Prosti brojevi u intervalu od %d do %d su:\n", m, n); for (i=m; i<=n; i++) if (prostbroj (i)) printf ("%d", i); return 0; int prostbroj (int broj) int i, prost=1; for( i=2;i<=broj/2;i++) if (broj%i==0) prost=0; break; vrednost promenljive prost se vraća u glavnu funkciju i ako promenljiva ima vrednost jedan prikazuje se broj return prost; //obezbediti da početak intervala bude broj koji je veći od jedan

1. funkcija koja n puta ispisuje neki tekst, broj n se unosi u glavnom programu 2. u glavnoj funkciji se unose tri broja, napisti funkciju koja ispisuje najveći od tri broja 3. u glavnoj funkciji učitati n brojeva, napisti funkciju koja računa aritmetičku sredinu unetih brojeva 4. napisti funkciju koja prihvata dva broja i vraća veći od ta dva broja 5. u glavnoj funkciji učitati dva broja, napisti funkciju koja računa zbir brojeva u intervalu od prvog do drugog broja 6. u glavnoj funkciji učitati broj n, napisati dve funkcije, prva treba da računa sumu parnih brojeva do n, a druga proizvod neparnih brojeva do n 7. napisati funkciju koja zamenjuje vrednosti dvema promenljivima 8. učitavati brojeve dok su pozitivni, za svaki od pozitivnih brojeva u funkciji izračunati i ispisati njegov koren

rekurzivne funkcije su funkcije koje pozivaju same sebe primer: računanje faktorijela unetog broja (npr. 3!=3*2*1) bez rekurzije int f1 (int n) //n je 3 if (n==0) else return 1; return (n*f2(n-1)); int f2 (int n) //n je 2 if (n==0) else return 1; return (n*f3(n-1)); int f3 (int n) if (n==0) return 1; else return (n*f4(n-1));// n je 1 int f4 (int n) //n je nula if (n==0) return 1; else return (n*f5(n-1));

1. int f1(int n) 2. 3. if (n==0) 4. return 1; 5. else 6. return (n*f1(n-1)); 7. 8. int main () 9. 10. int r: 11. r=f1(3); 12. printf ("tri faktorijel je %d", r); 13. return 0; 14. dok main izvršava liniju 11 poziva f1(3) dok f1(3) izvršava liniju 6 poziva f1(2) dok f1(2) izvršava liniju 6 poziva f1(1) dok f1(1) izvršava liniju 6 poziva f1(0) dok f1(0) izvršava liniju 4 (n==0), vraća vrednost 1 funkciji f1(1) f1(1) vraća vrednost 1*1=1 funkciji f1(2) f1(2) vraća vrednost 2*1=2 funkciji f1(3) f1(3) vraća vrednost 3*2=6 funkciji main funkcija main u liniji 12 prikazuje broj 6

1. suma kvadrata od jedan do n 2. suma kvadrata od m do n uzlazna rekurzija silazna rekurzija 3. funkcija računa sumu neparnih brojeva od jedan do zadatog (u main funkciji) broja n; u main funkciji ispisati rezulatat funkcija main proverava da li je broj neparan rekurzivna funkcija proverava da li je broj neparan 4. suma brojeva deljivih sa tri od jedan do zadatog u (u main funkciji) broja n; u main funkciji ispisati rezulatat funkcija main proverava da li je broj deljiv sa tri rekurzivna funkcija proverava da li je broj deljiv sa tri 5. naći n ti Fibonačijev broj (Fibonačijev niz je niz brojeva u kome zbir prethodna dva broja daju vrednost narednog člana) 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144

kada se izvršni program učita u radnu memoriju računara, biće mu dodeljena određena memorija i započinje njegovo izvršavanje; dodeljena memorija sadrži: segment koda (code segment ili text segment) segment podataka (data segment) stek segment (stack segment) hip segment (heap segment) u stek segmentu čuvaju se svi podaci koji karakterišu izvršavanje funkcija; podaci koji odgovaraju jednoj funkciji (ili, preciznije, jednoj instanci jedne funkcije jer rekurzivna funkcija može da poziva samu sebe i da tako u jednom trenutku bude aktivno više njenih instanci) organizovani su u takozvani stek okvir (stack frame);

stek okvir jedne instance funkcije obično, između ostalog, sadrži: argumente funkcije; lokalne promenljive (promenljive deklarisane unutar funkcije); međurezultate izračunavanja; adresu povratka (koja ukazuje na to odakle treba nastaviti izvršavanje programa nakon povratka iz funkcije); adresu stek okvira funkcije pozivaoca hip memorija je neiskorišćena memorija programa koja može biti upotrebljena da se u toku izvršavanja programa dinamički zauzme za određene potrebe; programeri ne znaju unapred koliko im je potrebno memorije za čuvanje određenog tipa informacija ili podataka; taj podatak će biti određen tek u toku izvršavanja programa; u toku izvršavanja programa moguće je dinamički alocirati memoriju u hipu korišćenjem malloc ili calloc naredbi; korišćenjem naredbe free izvršiće se oslobađanje memorijskog prostora koji je deo hip memorije