070-ALIP2-udzbenik.indb

Слични документи
Uvod u računarstvo 2+2

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

Funkcije predavač: Nadežda Jakšić

Uvod u računarstvo 2+2

Slide 1

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

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

ALIP1_udzb_2019.indb

Funkcije predavač: Nadežda Jakšić

PROMENLJIVE, TIPOVI PROMENLJIVIH

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

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

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

Tutoring System for Distance Learning of Java Programming Language

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

Uvod u računarstvo 2+2

Programiranje predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2016, 10. predavanje p. 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 - C-4-1

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

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

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

Uvod u računarstvo 2+2

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

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

PowerPoint Presentation

PowerPoint Presentation

Tutoring System for Distance Learning of Java Programming Language

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

Programski jezik C

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

Strukture predavač: Nadežda Jakšić

Microsoft PowerPoint - Bitovi [Compatibility Mode]

Test ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime

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

Državno natjecanje / Osnove informatike Srednje škole Zadaci U sljedećim pitanjima na odgovore odgovaraš upisivanjem slova koji se nalazi ispred

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

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

Microsoft Word - 02 Elementi programskog jezika Pascal

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

23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi

PowerPoint Presentation

Uvod u takmičarsko programiranje

Državna matura iz informatike

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

Tutoring System for Distance Learning of Java Programming Language

Microsoft PowerPoint - Datoteke [Compatibility Mode]

Pojačavači

Programiranje 1 IEEE prikaz brojeva sažetak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, IEEE 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

Microsoft PowerPoint - 03-Slozenost [Compatibility Mode]

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

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Microsoft Word - 6. RAZRED INFORMATIKA.doc

PASCAL UVOD 2 II razred gimnazije

Microsoft Word - Zadaci za samostalno vjezbanje 4.doc

SKRIPTE EKOF 2019/20 skripteekof.com Lekcija 1: Brojevni izrazi Lekcija 1: Brojevni izrazi Pregled lekcije U okviru ove lekcije imaćete priliku da nau

Logičke izjave i logičke funkcije

Programski jezik QBasic Kriteriji ocjenjivanja programiranje(b) - QBasic razred 42

Programski jezik QBasic Kriteriji ocjenjivanja programiranje(b) - QBasic razred 42

Sadržaj 1 Diskretan slučajan vektor Definicija slučajnog vektora Diskretan slučajan vektor

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

INF INFORMATIKA INF.27.HR.R.K1.20 INF D-S INF D-S027.indd :50:41

Elementi praćenja i ocjenjivanja za nastavni predmet Matematika u 4. razredu Elementi praćenja i ocjenjivanja za nastavni predmet Matematika u 4. razr

Fortran

s2.dvi

Programiranje 1

PowerPoint Presentation

Sveucilište u Zagrebu

Programski jezik C

8 2 upiti_izvjesca.indd

Uvod u PHP

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

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

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

Matematika 1 - izborna

Elementarna matematika 1 - Oblici matematickog mišljenja

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

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

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

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

Microsoft PowerPoint - 07-DinamickeStrukturePodataka

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

PowerPoint Presentation

Microsoft Word - predavanje8

NIZOVI

P11.3 Analiza zivotnog veka, Graf smetnji

Datoteke predavač: Nadežda Jakšić

Microsoft Word - 6ms001

Dvostruki integrali Matematika 2 Erna Begović Kovač, Literatura: I. Gusić, Lekcije iz Matematike 2

1.1. Programiranje i programski jezici Uvod -pojmovi programa i programiranja prisutni su danas na svakom koraku, pogotovo u masovnim medijima

Microsoft Word - 15ms261

8. razred kriteriji pravi

2015_k2_z12.dvi

0255_Uvod.p65

М А Т Е М А Т И К А Први разред (180) Предмети у простору и односи међу њима (10; 4 + 6) Линија и област (14; 5 + 9) Класификација предмета према свој

INF INFORMATIKA INF.35.HR.R.K1.24 INF D-S

Osnovi programiranja Beleške sa vežbi Smer Računarstvo i informatika Matematički fakultet, Beograd Jelena Tomašević i Sana Stojanović November 7, 2005

(Microsoft Word - Rje\232enja zadataka)

Транскрипт:

0. U uvodnom ćemo poglavlju ponoviti osnove programskog jezika C s kojima smo se susreli u. razredu. U kratkom pregledu navedeni su operatori (aritmetički, relacijski i logički), neke od funkcija iz biblioteka math.h i stdlib.h te popis osnovnih naredbi. Uz funkcije za unos i ispis podataka, navedene su naredbe za grananje (if, if-else i switch-case) te naredbe za ponavljanje (for, while i do-while). Na kraju pregleda pojašnjeno je kako se deklarira, unosi i ispisuje jednodimenzionalno polje, dvodimenzionalno polje te niz znakova string. Aritmetički operatori Opis Pseudojezik C zbrajanje + + oduzimanje množenje * * dijeljenje / / cjelobrojno dijeljenje ostatak cjelobrojnog dijeljenja Programski jezik C ponavljanje DIV / MOD % Relacijski operatori Logički operatori prema prioritetu Opis Pseudojezik C logički NE NE! logički I I && logički ILI ILI Opis Pseudojezik C manje < < manje ili jednako <= <= veće > > veće ili jednako >= >= jednako = == različito <>!=

0 2 Programski jezik C ponavljanje Osnovne definirane funkcije Opis Pseudojezik C apsolutna vrijednost abs(x) za cijele brojeve abs(x) realnoga broja fabs(x) za realne brojeve kvadrat broja sqr(x) pow(x, 2) drugi korijen realnog broja sqrt(x) sqrt(x) zaokruživanje realnog broja na najbliži cijeli broj round(x) round(x) cijeli dio realnog broja x trunc(x) trunc(x) Prioritet operatora (u tablici su navedni operatori iz C jezika) Popis osnovnih pojmova Prioritet operatora Operatori ( ) 2! 3 * / % 4 + - 5 < <= > >= 6 ==!= 7 && 8 Opis Pseudojezik C unos ulaz scanf ispis izlaz printf pridruživanje = = { { blok naredbi grananje jednostruko ako je(uvjet) onda{ if(uvjet){

grananje dvostruko grananje višestruko petlja s unaprijed poznatim brojem ponavljanja ako je(uvjet) onda{ inače{ skretnica(uvjet){ slučaj izraz_: slučaj izraz_2: slučaj izraz_n: inače: za i = p do k činiti{ Programski jezik C ponavljanje 0. if(uvjet){ else{ switch(uvjet){ case izraz_: break; case izraz_2: break; case izraz_n: break; default: for(inicijalizacija; uvjet; korak petlje){ 3

0 4 Programski jezik C ponavljanje petlja kod koje nije unaprijed poznat broj ponavljanja, a uvjet se provjerava na početku petlje petlja kod koje nije unaprijed poznat broj ponavljanja, a uvjet se provjerava na kraju petlje dok je(uvjet) činiti{ ponavljati{ dok je(uvjet); while(uvjet){ do{ while(uvjet); Inicijalizacija polja (jednodimenzionalnog, dvodimenzionalnog i niza znakova) inicijalizacija jednodimenzionalnog polja inicijalizacija dvodimenzionalnog polja inicijalizacija niza znakova (stringa) tip_polja ime_polja[broj_elemenata_polja]; tip_polja ime_polja[broj_elemenata_polja] = {elementi_polja; int x[0] = {3, 5, 9,, 4, 7, 8, 2,, 0; ime polja elementi polja x 3 5 9 4 7 8 2 0 x[0] x[] x[2] x[3] x[4] x[5] x[6] x[7] x[8] x[9] indeks prvog elementa u polju je 0 tip_polja ime_polja[broj_redaka][broj_stupaca]; tip_polja ime_polja[broj_redaka][broj_stupaca] = {elementi_polja; char x[] = "Algoritam"; char x[] = {'A','l','g','o','r','i',t','a','m','\0'; char x[9+] = {'A','l','g','o','r','i',t','a','m','\0'; x[i] A l g o r i t a m \0 i 0 2 3 4 5 6 7 8 9 Elementi polja su znakovi Indeksi polja

Programski jezik C ponavljanje 0. Učitavanje i ispis elemenata iz polja (jednodimenzionalnog, dvodimenzionalnog i niza znakova) Učitavanje n cjelobrojnih elemenata u polje: Ispis n cjelobrojnih elemenata iz polja: Učitavanje n m cjelobrojnih elemenata u dvodimenzionalno polje: Ispis n m cjelobrojnih elemenata iz dvodimenzionalnog polja: Učitavanje niza znakova (stringa) Ispis niza znakova (stringa) for(i = 0; i < n; i++) scanf("%d", &polje[i]); for (i = 0; i < n; i++) printf("%d", polje[i]); for(i = 0; i < n; i++){ for(j = 0; j < m; j++) scanf("%d", &polje[i][j]); for(i = 0; i < n; i++){ for(j = 0; j < m; j++) printf("%d\t", polje[i][j]); printf("\n");. način: funkcija gets(ime_stringa); 2. način: funkcija scanf("%s", ime_stringa);. način: funkcija puts(ime_stringa); 2. način: funkcija printf("%s", ime_stringa); 3. način (string se zove s): for(i = 0; i < strlen(s); i++) printf("%c", s[i]); 4. način (string se zove s): for(i = 0; s[i]!= '\0'; i++) printf("%c", s[i]); 5

. Funkcije Što su to funkcije i kako se njima koristimo u programima? Do sada smo se prilikom pisanja programa koristili gotovim funkcijama. Za upotrebu gotovih funkcija uvijek bismo prvo trebali napisati pretprocesorsku naredbu include unutar koje bismo naveli ime biblioteke. U svakoj biblioteci nalazi se gotov skup funkcija kojima se onda možemo koristiti. Tako primjerice ako se želimo koristiti funkcijama za unos i ispis podataka, trebamo navesti biblioteku stdio.h. Najavom ove biblioteke koristimo se gotovim funkcijama: scanf("format", &varijabla); printf("format", varijabla); Za upotrebu matematičkih funkcija koristili smo se bibliotekama math.h i stdlib.h. Ponekad prilikom pisanja programa koji je sadržavao neku gotovu matematičku funkciju možda ste zaboravili uključiti biblioteku math.h. U tom slučaju prevodilac bi vam dojavio da je došlo do pogreške. Nakon što biste najavili izostavljenu biblioteku, program bi radio. Ponovimo Prisjetimo se kako bismo napisali program koji računa vrijednost funkcije f(e) = b e, pri čemu za bazu i eksponent vrijedi: be, Q. Uz pomoć funkcije potrebno je izračunati koliko je 27 3 i 3 27 te ispisati rezultate na zaslonu računala. Rješenje: Gotova funkcija za potenciranje u C-u je: double pow(double b, double e);. To znači da funkcija za potenciranje kao rezultat vraća decimalni broj rezultat potenciranja, a baza i eksponent također mogu biti decimalni brojevi. Ova funkcija sadrži dva parametra (b i e) koja je obavezno navesti u zagradi funkcije. Ako navedemo manje ili više parametara od predviđenog broja, doći će do pogreške prilikom prevođenja koda. double pow(double b, double e); rezultat funkcije decimalni broj (dvostruke preciznosti) parametri funkcije (baza i ekesponent) Prema pravilima konverzije podataka kod poziva funkcije, kao parametre možemo koristiti i cijele brojeve (int) i decimalne brojeve jednostruke preciznosti (float). 7

8 Funkcije Program: #include <stdio.h> #include <math.h> int main(void){ float y, b, e; printf("utipkaj vrijednost baze i eksponenta: "); scanf("%f %f", &b, &e); //poziv gotove funkcije pow iz biblioteke math.h y = pow(b, e); printf("%.2f", y); return 0; Ako želimo izračunati 27 3, u program upisujemo brojeve 27 i 3. Za broj 3 27 potrebno je redom upisati 27 i 3 jer je 3 27 273. U ovom ćemo poglavlju naučiti kako možemo sami pisati vlastite funkcije koje nisu implementirane u standardnim bibliotekama programskog jezika C. To će nam olakšati pisanje složenih programa. Također ćemo pokazati kako možemo sami napisati funkciju za potenciranje koja će računati vrijednost funkcije f(e) = b e bez upotrebe već ugrađene funkcije pow. Primjer.. Površina školskih objekata Napiši program koji će računati koliku površinu zauzima školska zgrada, pripadajuća dvorana za tjelesni te školsko nogometno igralište prikazano slikom.. Treba ispisati i ukupnu površinu. Sve dimenzije su dane u metrima. ULAZNI PODATCI duljina školske zgrade a širina školske zgrade b duljina dvorane za tjelesni e širina dvorane za tjelesni f duljina nogometnog igrališta k širina nogometnog igrališta l Slika.. Tlocrt škole (površina P), tlocrt sportske dvorane (površina P2) te nogometno igralište (površina P3)

IZLAZNI PODATCI površina P površina P2 površina P3 zajednička površina školske zgrade, sportske dvorane i nogometnog igrališta PRIMJER TEST-PODATAKA Ulaz 85.8 02.2 93.4 48.5 48.5 93.4 Izlaz Površina školske zgrade: 8988.76 Površina sportske dvorane: 4529.90 Površina nogometnog igrališta: 4529.90 Ukupna površina: 28048.56 Ispis na zaslonu računala: Kôd programa #include <stdio.h> int main(void){ float a, b, e, f, k, l, P, P2, P3, P; Upisite dimenzije skolske zgrade: 85.8 02.2 Upisite dimenzije sportske dvorane: 93.4 48.5 Upisite dimenzije nogometnog igralista: 48.5 93.4 Povrsina skolske zgrade: 8988.76 Povrsina sportske dvorane: 4529.90 Povrsina nogometnog igralista: 4529.90 Ukupna povrsina: 28048.56 printf("upisite dimenzije skolske zgrade: \n"); scanf("%f %f", &a, &b); printf("upisite dimenzije sportske dvorane: \n"); scanf("%f %f", &e, &f); Funkcije. 9

0 Funkcije printf("upisite dimenzije nogometnog igralista: \n"); scanf("%f %f", &k, &l); P = a * b; P2 = e * f; P3 = k * l; P = P + P2 + P3; printf("povrsina skolske zgrade: %.2f\n", P); printf("povrsina sportske dvorane: %.2f\n", P2); printf("povrsina nogometnog igralista: %.2f\n", P3); printf("ukupna povrsina: %.2f", P); return 0; Funkcijama se općenito koristimo kada se isti programski odsječak ponavlja više puta. U. primjeru uočavamo da smo površinu pravokutnika u glavnom dijelu programa 3 puta trebali računati istom formulom (samo smo mijenjali varijable dimenzije). Općenito je preporuka da za dobivanje na preglednosti programa izračunamo tu površinu u funkciji te s pomoću nje izračunamo tražene površine. P = a * b; P2 = e * f; P3 = k * l; U ovom slučaju zadani program nije bilo teško napisati, ali općenito gledano problem pojavljivanja istog koda te upotrebe istih formula rješavamo tako da kod koji smo više puta pisali u programu napišemo na jednom mjestu te ga potom pozivamo onoliko puta koliko je to potrebno. Razdvajanjem koda na manje logičke cjeline cjelokupni kod činimo preglednijim, a broj programskih linija smanjujemo te otklanjamo mogućnost pojavljivanja pogreške. Da bismo znali napisati primjer. uz pomoć funkcije za računanje površine, prvo moramo definirati opći oblik funkcije.

.. Definiranje funkcije Opći oblik funkcije definiran je na sljedeći način: tip_funkcije ime_funkcije(tip_parametra parametar) { tijelo_funkcije; return rez; deklaracija varijabli i naredbe vrijednost koju vraća funkcija (na mjesto poziva) Definiranje funkcije.. Definicijom funkcije navodimo kojeg će tipa biti rezultat funkcije (tip_funkcije), kojim imenom se poziva funkcija, prema potrebi navodimo parametre funkcije (tip i naziv), a pod tijelo funkcije pišemo sve potrebne deklaracije i navodimo potrebne naredbe. Na kraju možemo navesti i naredbu koja vraća vrijednost, tj. rezultat izvođenja funkcije. Ovu naredbu u određenim slučajevima nije potrebno navesti. Funkcija treba biti deklarirana prije njezina prvog korištenja i zato koristimo prototipove funkcije. Prilikom pisanja programa nije nužno koristiti prototip funkcije, već se funkcija može samo definirati. U tom slučaju njezina definicija ujedno predstavlja i deklaraciju. Prototip funkcije Prototip funkcije sastoji se od sljedećih dijelova: tip_funkcije ime_funkcije(tip_parametra parametar);..2. Tipovi funkcija Funkcije mogu biti sljedećih tipova: char, short, int, long, float, double, struct i void. Kada definiramo funkciju, potrebno je navesti i kojeg je tipa. Ako definiramo funkciju koja vraća rezultat tipa float, onda za funkciju kažemo da je tipa float. Ako ne navedemo kojeg je tipa funkcija, pretpostavljeni tip funkcije je int...3. Naredba return Naredbom return vraćamo vrijednost funkcije rezultat (rez) u glavni program. tip_funkcije ime_funkcije(parametri_funkcije) { tijelo_funkcije; return rez; vrijednost funkcije

2 Funkcije Naredbom return moguće je vratiti samo jednu vrijednost, a moguće je da funkcija ne vraća niti jednu vrijednost. Pod "rez" možemo navesti bilo koji tip podatka osim polja. Nakon što se vrijednost funkcije vrati u glavni program, program dalje nastavlja s naredbama. Ako je funkcija tipa void, nije potrebno pisati naredbu return. Unutar funkcije moguće je koristiti i više naredbi return. Osim što naredbom return definiramo vrijednost koju funkcija vraća, njome možemo prekinuti i rad funkcije...4. Određivanje imena funkcije Uz pomoć imena funkcije, funkciju pozivamo u glavni program. Svaka funkcija mora imati svoje ime. Pravila za određivanje imena funkcije su ista kao i za određivanje imena varijabli. U sljedećim primjerima imena vlastitih funkcija pisat ćemo velikim slovima, a imena varijabli, konstanti i polja malim slovima...5. Parametri funkcije prijenos parametara Parametri mogu biti formalni i stvarni. U zaglavlju funkcije pišemo formalne parametre funkcije te navodimo kojeg su tipa. Možemo ih navesti više pa su zato navedene tri točkice u općem zapisu zaglavlja. Formalni parametri mogu biti osnovnog tipa, pokazivači i strukture, a ne mogu biti tipa polja. U slučaju da funkcija nema formalnih parametara, onda u zagradi pišemo ključnu riječ void. Formalni se parametri povezuju sa stvarnim parametrima. Stvarne parametre navodimo prilikom poziva funkcije tako da napišemo njihov naziv, a ako ih ima više, nazive odvojimo zarezima. Stvarni parametri mogu biti osnovni tipovi podataka, pokazivači i strukture, ali ne mogu biti polja. Kada povezujemo stvarne parametre s formalnim parametrima, trebaju si odgovarati po broju, redoslijedu i tipu. U slučaju da si ne odgovaraju po tipu, dolazi do konverzije podataka. U slučaju da funkcija nema formlanih parametara, tada na mjestu stvarnih parametara ne pišemo ništa. Stvarni parametri se u funkciju mogu prenositi na dva načina: a) call by value (prijenos po vrijednosti) u funkciju se predaju kopije vrijednosti stvarnih parametara. b) call by reference (prijenos po referenci) u funkciju se predaju adrese stvarnih parametara. O ovome će biti više riječi u poglavlju o pokazivačima. Primjeri nekih prototipova funkcija s pripadajućim tipom i imenom funkcije: tip funkcije int brojnost(int n); int usporedi(int a, int b); float opseg(float a, float b, float c); int prost(int a); ime funkcije formalni parametar te kojeg je tipa

Program općenito pišemo na sljedeći način: prvo navodimo potrebne biblioteke navodimo definicije funkcija pišemo glavnu funkciju main. Definiranje funkcije.. Napomena: Kod prototipa funkcije nije nužno pisati imena formalnih parametara. Primjerice, ispravan prototip bio bi i int brojnost (int);. #include <stdio.h> tip_funkcije Ime_funkcije(tip_parametra_x parametar_x){ tijelo_funkcije; return rez; formalni parametri tip_funkcije2 Ime_funkcije2(tip_parametra_y parametar_y){ tijelo_funkcije2; return rez2; vrijednosti koje funkcije vrate potrebno je pohraniti u varijablu koja je istog tipa kao i sama funkcija int main(void){ x = Ime_funkcije(parametar_a); y = Ime_funkcije2(parametar_b); return 0; stvarni parametri Glavna funkcija main je tipa int, a njezin prototip smo naučili još u 2. razredu. Dogovorno glavna funkcija main kao povratnu vrijednost naredbom return vraća cijeli broj 0. Napomena: Dio koda kojim su u varijable x i y pridružene vrijednosti koje su vratile funkcije Ime_funkcije i Ime_funkcije2 ne vrijedi za funkcije tipa void. Poziv funkcije tipa void objašnjen je u cjelini.3. Program možemo pisati i tako da prvo napišemo samo prototipove funkcija. Tada prije glavne funkcije main navodimo samo prototipove funkcija, a iza glavne funkcije main navodimo definicije funkcije sa zaglavljem i tijelom funkcije. 3

4 Funkcije #include <stdio.h> Ime_funkcije(tip_parametra_x parametar_x); Ime_funkcije2(tip_parametra_y parametar_y); int main(void){ x = Ime_funkcije(parametar_a); y = Ime_funkcije2(parametar_b); return 0; prototipovi funkcija tip_funkcije Ime_funkcije(tip_parametra_x parametar_x){ tijelo_funkcije; return rez; tip_funkcije2 Ime_funkcije2(tip_parametra_y parametar_y){ tijelo_funkcije2; return rez2; Prema prototipu funkcije prevodilac može provjeriti jesu li ispravno definirane funkcije...6. Tijelo funkcije U tijelu funkcije pišemo sve potrebne lokalne varijable i naredbe koje su nam potrebne za izvedbu željene funkcije. Lokalne varijable su sve varijable deklarirane unutar tijela funkcije te se koriste samo unutar bloka funkcije unutar kojeg su deklarirane, pa stoga njihove vrijednosti nisu vidljive u ostalim dijelovima programa. Za razliku od lokalnih varijabli postoje i globalne varijable. Globalne varijable deklariramo na samom početku, prije glavne funkcije main te svih ostalih funkcija koje su navedene u programu (globalne se varijable deklariraju izvan svih funkcija). Na taj način je globalna varijabla vidljiva u svim funkcijama te svaka funkcija može promijeniti vrijednost globalne varijable. Ovako možemo povezati funkcije bez upotrebe formalnih parametara.