Professional Documents
Culture Documents
01 Uvod
01 Uvod
01 Uvod
Krunoslav Žubrinić
Ožujak
j 2012.
Creative Commons
slobodno smijete:
dijeliti — umnožavati,
avati distribuirati i javnosti priopćavati djelo
remiksirati — prerađivati djelo
pod slijedećim uvjetima:
iimenovanje. j . Morate
M t priznati
i ti i označiti autorstvo
t t dj djela
l na
način kako je specificirao autor ili davatelj licence (ali ne
način koji bi sugerirao da Vi ili Vaše korištenje njegova djela
imate njegovu izravnu podršku).
nekomercijalno.. Ovo djelo ne smijete koristiti u
komercijalne svrhe.
dijeli pod istim uvjetima.. Ako ovo djelo izmijenite,
preoblikujete
blik j t ili stvarate
t t kkoriste
i t ći ga, preradu
d možete t
distribuirati samo pod licencom koja je ista ili slična ovoj.
U slučaju daljnjeg korištenja ili distribuiranja morate drugima jasno dati do znanja licencne uvjete ovog
djela. Najbolji način da to učinite je linkom na ovu internetsku stranicu.
Od svakog od gornjih uvjeta moguće je odstupiti, ako dobijete dopuštenje nositelja autorskog prava.
Ništa u ovoj licenci ne narušava ili ograničava autorova moralna prava.
DA
Početak
opseg=4*duljina
Unesi duljinu stranice kvadrata
i d lji i k d
Duljina <=0:
Vrati se na unos duljine stranice Prikaži na zaslonu
izračunati opseg
Duljina > 0:
Izračunaj opseg=4*duljina
Kraj
Prikaži izračunati opseg
Kraj2011/12. Programiranje 2 4
Programski
g jjezik C
Jeda
Jedan od najvažnijih
aj a j p programskih
og a s je
jezika
au
povijesti komercijalne računalne industrije.
Jezik vrlo niske razine
razine, programi napisani u
njemu vrlo su bliski načinu rada hardvera.
Koristi
K i ti se kkada
d jje klj
ključna
č brzina
b i iizvođenja
đ j i/ili
prenosivost (igre, mobilni uređaji,...)
Jezik opće namjene, što znači da se u njemu
može napraviti apsolutno sve
operacijski sustavi, namjenski programi,
upravljački driveri, igre, aplikacije na mobilnim
t l f i
telefonima,...
2011/12. Uvod u programski jezik C 5
Obiteljsko
j stablo C-
C -a
JavaScript
Pod
P d utjecajem
tj j C
C-a razvijeni
ij i
su brojni drugi programski
j i i
jezici
Mnogig od njihj su naslijedili
j PHP
njegovu sintaksu:
C++
C++, Java
Java, JavaScript
JavaScript, C#
C#, C#
PHP, Objective-C,…
2011/12. Programiranje 2 6
Izrada izvršnog
gCp
programa
g
C datoteka
d t t k sadržid ži izvorni
i i IIzvornii kkodd se prevodi
di IIzvršni
š i kkodd ((.exe
C programski kod pomoću programa datoteka na MS Win)
razumljiv čovjeku. prevoditelja (compiler). razumljiv je računalu,
Programski kod možete Prevoditelj pronalazi i može se izvesti na
pisati u bilo kojem prijavljuje greške, a kada određenom OSu.
pprogramu
g za unos teksta. jje sve u redu stvara Sam izvršni kod jje niz
izvršni kod. binarnih znamenki.
2011/12. Uvod u programski jezik C 7
Izrada izvršnog
gpprograma:
g Dev
Dev--C++
1 2
3
4
5
2011/12. Programiranje 2 9
Opseg
p g kvadrata v01
Početak
{
Tijelo funkkcije je omeđeeno vitičastim zagradama
printf("Opseg kvadrata je %d.\n", str*4);
Ispis teksta i izračunate
system ("pause");
system ( pause ); vrijednosti
ij d ti ((množenje
ž j
unesenog cijelog broja sa
return 0; Pauza u izvođenju programa (kako 4) na zaslonu. Broj se
bismo vidjeli rezultat izvođenja). ispisuje na poziciji %d
} Main funkcija vraća cijeli broj pozivatelju (operacijskom sustavu).
0 znači da se program uspješno izvršio.
2011/12. Uvod u programski jezik C 11
Opseg
p gippovršina p
pravokutnika
Izmijenite
j program
p g za izračun opsega
p g
kvadrata tako da omogući izračun i ispis
površine i opsega pravokutnika Početak
Unesi duljine
stranica
pravokutnika a i b
opseg=2*a+2*b
površina=a*b
Aritmetički operatori koji će vam (možda) trebati:
Matematičke funkcije
j su definirane u datoteci
zaglavlja math.h #include <math.h>
Vađenje korijena: sqrt(broj)
Potenciranje: pow(baza, potencija)
Apsolutna vrijednost: fabs(broj)…
fabs(broj)
2011/12. Uvod u programski jezik C 13
Duljina
j hipotenuze
p Početak
Unesi duljinu
#include <stdio.h> stranica
pravokutnika a i b
#include <math.h>
int main(){
int a, b; c = a2 + b2
float c;
printf("Unesite duljine stranica a i b: "); Prikaži na zaslonu
izračunatu duljinu
scanf("%d %d", &a, &b); hipotenuze
c = sqrt(a*a + b*b);
Kraj
printf("Duljina hipotenuze je %.2f\n", c);
system ("pause");
return 0;
}
2011/12. Uvod u programski jezik C hipotenuza.c
Anatomija
j Cp
programa
g
math.h sadrži opis matematičkih
funkcija (sqrt, pow, fabs, log, log10,…
ax 2 + bx + c = 0; a ≠ 0
Unesi koeficijente
jednadžbe:
jed ad be a, b i c
Kraj
2011/12. Programiranje 2 17
Kvadratna jjednadžba
Ako netko unese nulu na mjesto prvog
koeficijenta to više nije kvadratna jednadžba
Naš program se za takav slučaj ponaša drugačije
Koristimo programsku strukturu grananje
Ako je izraz u zagradama iza if istinit (bilo koji izraz koji
može biti istina ili laž), izvršava se ovaj blok instrukcija. PAZI!
… a==00 uspoređuje
đ j vrijednost
ij d t a s nulom
l
if (a == 0) { a=0 pridružuje nulu varijabli a
// riješi linearnu jednadžbu
return 1;
Osnovni operatori koje se mogu
} koristiti kod if instrukcije
… inače se izvršava
else
l { bl k iinstrukcija
blok t k ij iiza else
l a<0 da li je a
d li j manje
j od 0 d
// riješi kvadratnu jednadžbu a>0 da li je a veće od 0
a<=0 da li je a manje ili jednako 0
return 0
a>=0 da li je a veće ili jednako 0
} a==0 da li je a jednako 0
2011/12. Uvod u programski jezik C 18
a!=0 da li je a različito od 0
Što ako imamo više uvjeta?
j
Unose se 3 cijela
broja
broja.
if Koji od njih je
medijan (središnji
else if po veličini)?
else
2011/12. Programiranje 2 19
Što ako imamo više uvjeta?
j
Instrukcije
j ggrananja
j se mogu
g
ulančavati i međusobno ugnježđivati
Ako je c veći od max, medijan=max, a obrada završava s
ovom instrukcijom.
…
Inače, ako c NIJE veći od max, ali je c manji od min,
if (c > max)
( ) medijan=min,
j , a obrada završava s ovom instrukcijom.
j
3/6 = 0.5
Problem je što program ne pokazuje
ispravno
p znamenke iza decimalne točke
Rješenje je pretvorba cjelobrojnog
podatka u realni
Dovoljno je pretvoriti barem 1 broj u izrazu
x = (‐1.*c) / b; ili x = (‐1*(float)c) / b;
2011/12. Uvod u programski jezik C 22
Aritmetička sredina
#include <stdio.h>
int main() {
int i a suma=0;
int i, a, suma=0;
float asred;
for (i=0;i<10;i=i+1){
( ){
printf("Unesite broj: ");
scanf("%d", &a);
suma=suma+a;
}
printf("Aritmeticka
printf( Aritmeticka sredina je %.2f.
sredina je % 2f ", (float)suma/i);
(float)suma/i);
return 0;
}
printf("Aritmeticka sredina je %.2f.", (float)suma/i);
return 0;
} %.2f ispisuje realan broj s 2 decimale
2011/12. Uvod u programski jezik C 24
Faktorijeli
j
Napišite
p Cp program
g za izračun
Početak
faktorijela
Unesi broj N do
kojeg se žele
izračunati
faktorijeli
0!=1;
0! 1 1!
1!=1;
1 2!
2!=2*1!;
2*1! 3!
3!=3*2!
3*2! DA
NE
Općenito: n!=n*(n-1)! i<2
DA
fakt=1 fakt=fakt*i
Prikaži izračunatu
vrijednost
faktorijela na
zaslonu
l
i=i+1 Kraj
Za jako velike brojeve, cjelobrojni int
j j , j j tip podatka nije dovoljan jer je raspon
p p j j j j p
32
brojeva tog tipa na PC platformi 2 od ‐2147483647 do 2147483647.
Za izračun faktorijela brojeva većih od 12 pokušajte koristiti tip double koji
2011/12. Uvod u programski jezik C 25
može pohraniti broj duljine do 308 znamenaka (format ispisa je %lf)