Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 61

21.

Uvod u predmet i literatura


Literatura: Rajko Vulin: Od sada programiramo u C-u, k, Zagreb
Ljiljana Mileti, Sanja rabusin: Zbirka !adataka i! programskog je!ika C, "entium
d#o#o
Uvod
"rogramski je!ik C ra!$ijen je u %&'& (ell laboratories, s )iljem da se st$ori programski
je!ik koji e omoguiti br!o i e*ikasno programiranje# S ob!irom da se ta *irma ba$ila
sistemskim programiranjem, no$i programski je!ik trebao je biti na do$oljno niskoj ra!ini da
rije+i probleme koji su se do tada ugla$nom rje+a$ali u %SS,M(L,R-u, ali i na do$oljno $isokoj
ra!ini da bi se iskoristile s$e prednosti je!ika $i+e ra!ine# -a su u s$ojoj namjeni uspjeli,
poka!uje ni! programski. paketa pisani. u programskom je!iku C /OS 01234
la$ne posta$ke C-a postale su dostupne +irem krugu korisnika 5678# godine, a danas se
slobodno mo9e rei da je C programski je!ik br# 5#
0 C program se mogu direktno uklju:i$ati naredbe pisane u %SS,M(L,R-u, +to /!ajedno s
moguno+u direktnog pristupa pojedinim bito$ima, bajto$ima i bloko$ima memorije4 C :ini
$rlo pogodnim !a pisane sistemski. programa#
"rogramski je!ik C sadr9i s$e naredbe neop.odne !a strukturirano programiranje /i*, )ase,
petlju###4
Osno$ne karakteristike &0R(O C-a
"rogramski paket &0R(O C proi!$od je programske kue (ORL%1-#
0 programski paket &0R(O C uklju:en je ure;i$a: teksta /,-2&OR4, pre$odila) /COM"2L,R4,
program !a po$e!i$anje /L21<,R4 i program !a otkri$anje i uklanjanje gre+aka /-,(0,R4#
&ako;er postoji i mogunost i!$r+a$anja programa korak po korak, pa se u s$akom trenutku
mogu do!nati $rijednosti pojedini. $arijabli, +to je pogodno u *a!i ispiti$anja logike programa#
2. Struktura programa u C-u
1ajpogodniji na:in rje+a$anja programski. problema je rasta$ljanje problema u ni! manji.,
me;usobno po$e!ani. )jelina /strukturirano programiranje4# O$aj pristup rje+a$anja problema
podr9an je i u C-u# "rogrami u C-u sastoje se od ni!a me;usobno po$e!ani. *unk)ija# (roj
*unk)ija nije ograni:en# 0 programu je oba$e!na jedna i samo jedna *unk)ija - *unk)ija
main()# Ona o!na:a$a mjesto na kojem po:inje i!$r+a$anje programa# Za po!i$ *unk)ije
do$oljno je na$esti nje!ino ime# S$e *unk)ije koje se koriste u $eini programa smje+tene su u
biblioteke *unk)ija#
1akon s$ake naredbe u C-u mora stajati !nak =, koji /kao i u "as)alu4 o!na:a$a kraj jedne i
po:etak druge naredbe# 1i! naredbi grupirani. u jednu logi:ku )jelinu predsta$lja blok
naredbi# "o:etak bloka o!na:a$a se sa {, a !a$r+etak sa }#
S$e $arijable koje se koriste u programu moraju se deklarirati, obi:no na po:etku programa
ili *unk)ije, prije pr$e i!$r+ne naredbe#
&ekst napisan i!me;u >? ?> je komentar i ne utje:e na tok i!$r+a$anja programa#
"rogramski je!ik C nije po!i)ijski /kao npr# @OR&R%14, +to !na:i da kod mo9e po:eti u bilo
kojoj koloni, te da se naredbe, i!ra!i i komentari mogu prote!ati u $i+e programski. linija#
Primjer 1:
/*ucitati dva broja i ispisati veci (uvjetni operator)*/
#include <stdio.h>
#include <conio.h>
void main()
{
int a,b;
clrscr();
printf(!n "pisi dva broja# );
scanf($d,$d,%a,%b);
(a<b)& printf (!n 'eci je $d,b) # printf (!n 'eci je $d,a);
(etch();
)
3. Editor turbo C-a
0laskom u direktorij u kojem je smje+ten programski je!ik C /naj:e+e BOR!"#C4,
potrebno je ui u direktorij B$", te sa b% pokrenuti program# 1akon toga se na !aslonu
poja$ljuje t!$# osno$ni !aslon, koji se sastoji od :etiri dijela:
-osno$ni i!bor
-pro!or !a ure;i$anje teksta i status linija
-pro!or !a poruke pre$odio)a
-kratki pregled !na:enja $rui. tipki
Op)ije osno$nog i!bora akti$iraju se isto$remenim pritiskom na tipku %L& i tipku po:etnog
slo$a 9eljene op)ije, ili tipkom @5A i streli)ama#
2!borom op)ije &ile ot$ara se pro!or s dodatnim i!borom !a rad s datotekama i
direktorijima /neB, open, sa$e, sa$e as, sa$e all, ).ange dir, print, dos s.ell, Cuit4#
Standardne op)ije !a kopiranje, brisanje, undo, te s.oB )lipboard nala!e se u i!borniku
Edit#
&ra9enje i !amjena teksta neke su od op)ija i!bornika Sear%'#
Op)ija pre$o;enja i i!$r+a$anje programa nala!i se u i!borniku Run, a samo pre$o;enje u
i!borniku Compile#
0 i!borniku #ebug pota$ljaju se ra!ne op)ije programa !a pronala9enje i ispra$ljanje
gre+aka, a i!bornik (ro)e%t slu9i !a akti$iranje i deakti$iranje programa :iji se kod nala!i u
$i+e datoteka# Option* slu9i !a posta$ljanje ra!li:iti. op)ija pre$odio)a i po$e!i$a:a, a
+indo, !a ure;enje radnog okru9enja#
-. $denti.ikatori/ kl)u0ne ri)e0i i tipovi podataka
$denti.ikatori su imena koja se dodjeljuju $arijablama, *unk)ijama, i sl# Sastoje se od ni!a
al*anumeri:ki. !nako$a /brojke i slo$a4# -$a identi*ikatora su ra!li:ita ako se ra!likuju u pr$a
DE !naka# "r$i !nak identi*ikatora mora biti slo$o ili donja )rta /F4# &0R(O C do!$olja$a i
upotrebu G kao jednog od !nako$a identi*ikatora, s tim da ne mo9e biti na pr$om mjestu#
2denti*ikatori ne smiju biti klju:ne rije:i programskog je!ika C#
"rogramski je!ik C ra!likuje $elika i mala slo$a, tako da su $arijable $arij5 i Varij5 d$ije
ra!li:ite $arijable#
1l)u0ne ri)e0i su identi*ikatori koji imaju to:no odre;eno !na:enje# One, !ajedno sa
sintaksom programskog je!ika, odre;uju +to se i na koji na:in u odre;enom programskom
je!iku mo9e u:initi# <arakteristika programskog je!ika C je relati$no mali broj klju:ni. rije:i
/DEH554
1l)u0ne ri)e0i pi2u *e malim *lovima#
<lju:ne rije:i: auto, break, )ase, ).ar, )onst, )ontinue, de*ault, do, double, else, enum, eItern,
*loat, *or, goto, i*, int, long, register, return, s.ort, signed, si!eo*, stati), stru)t, sBit)., tJpede*,
union, unsigned, $oid, $olatile, B.ile H asm, F)s, Fds, Fes, Fss, )de)l, *ar, .uge, interrupt, near,
pas)al#
"rogramski je!ik C podr9a$a pet osno$ni. tipo$a podataka# &o su: 3nakovni/ %)elobro)ni/
realni/ realni dvo*truke pre%i3no*ti i tip podataka ko)i ne *adr4i vri)edno*t. <lju:ne
rije:i koje i. odre;uju su: %'ar, int, .loat, double i void# &ip podataka koji ne sadr9i
$rijednost s$rstan je u osno$ne tipo$e podataka jer se :esto koristi kkod pro$jere tipo$a
podataka, !a de*iniranje *unk)ije be! argumenata i *unk)ija koje ne $raaju nikak$u $rijednost#
"ra$ilnom i!borom tipa podataka mo9e se po$eati e*ikasnost programa# Stoga tipo$e
podataka treba !ada$ati o$isno o opsegu koji e odre;ena $arijabla poprimiti tokom i!$o;ena
programa#
Osno$ni tipo$i podataka mogu se pre)i!nije de*inirati pomou modi*ikatora, koje emo
spominjati kada se !a to poja$i potreba#
-o!$oljene su goto$o s$e $rste pret$aranja tipo$a podataka, a u i!ra!ima su do!$oljene
kombina)ije ra!li:iti. tipo$a podataka# <rajnji re!ultat u kojem se nala!e ra!li:iti tipo$i
podataka o$isi o ugra;enim pra$ilima !a pret$aranje tipo$ podataka, ili ga mo9e !adati
osobno programer#
*
Osim osno$ni. postoji i nekoliko slo9eniji. tipo$a podataka kao +to su polja, strukture, polja
struktura, unije i polja bito$a# Omogueno je i de*iniranje $lastiti. tipo$a podataka#
@ormati !a u:ita$anje i ispis podataka:
&ip podataka @ormat
)jelobrojni /int4
realni /*loat,
double4
!nako$ni /).ar4
ni! !nako$a /string4
d
*
)
s
5. #eklara%i)a vari)abli/ kon*tante i aritmeti0ki operatori
Sve $arijable koje se koriste u programu moraju se deklarirati# -eklara)ijom $arijable
!adaje se tip i ime $arijable# Opi oblik naredbe !a deklara)iju je:

tip6podataka li*ta6vari)abli7
8ip6podataka predsta$lja jedan od osno$ni. ili korisni:ki de*inirani. tipo$a podataka, a
li*ta6vari)abli predsta$lja ni! $arijabli koje e u toku i!$r+a$anja programa sadr9a$ati
$rijednosti !adanog tipa podataka, od$ojeni. !are!om#
1pr: int a/ b/ %7
"odru:je djelo$anja odre;ene $arijable o$isi o mjestu na kojem je deklarirana# -eklara)ija
$arijabli u C-u mo9e biti i!$an s$i. *unk)ija, na po:etku *unk)ije, deklara)ija argumenata
*unk)ije, te na po:etku bloka naredbi# lobalne $arijable deklariraju se i!$an s$i. *unk)ija i
mogu se koristiti u )ijelom programu, dok se lokalne $arijable deklariraju na po:etku *unk)ije
ili se deklariraju kao argumenti *unk)ije i dostupne su samo u toj *unk)iji /ili bloku naredbi4#
2!$an *unk)ije ili bloka lokalne $arijable na postoje# 2mena lokalni. $arijabli u ra!li:itim
*unk)ijama /bloko$ima4 mogu biti ista#
-e*ini)ijom globalne $arijable automatski joj se dodjeljuje po:etna $rijednost A, dok lokalne
$arijable ne sadr9e po:etnu $rijednost i moraju se ini)ijali!irati posebnom naredbom nakon
deklara)ije ili tokom deklara)ije, npr:
int aKA= ili int a=
aKA=
1eini)ijali!irane lokalne $arijable sadr9e neodre;ene $rijednosti#
<onstante su $rijednosti koje se !adaju jednom i ne mijenjaju se tokom i!$o;enja
programa# S ob!irom na tipo$e podataka ra!likuju se )jelobrojne, realne i !nako$ne konstante#
Znako$ne konstante !adaju se unutar !naka L L i ugla$nom se sastoje od jednog !naka, no
postoje i !nako$ne konstante koje se sastoje od d$a !naka# One po:inju !nakom ! i imaju
posebno !na:enje# <oriste se !a kontrolu ispisa# 1eke od spomenuti. konstanti, koje se :e+e
koriste su:
!* no$a strani)a
!n no$i red
!rpo$ratak na po:etak linije
Osim na$edeni. tipo$a konstanti programski je!ik C de*inira i konstantu ni!a !nako$a, koja
se sastoji od !nako$a unutar para na$odnika, npr# MkonstantaM#
Aritmetiki operatori
+
!brajanje H
odu!imanje -
mno9enje?
dijeljenje >
modulo N /ostatak )jelobrojnog dijeljenja4
"rioritet: modulo, mno9enje i dijeljenje, pa !brajanje i odu!imanje# <od operatora s istim
prioritetom tok i!$r+a$anja ide s lije$a na desno# "rioritet i!$r+a$anja opera)ija mo9e se
mijenjati upotrebom !agrada#
Operatori inkrement i dekrement
"rogramski je!ik C u$odi d$a no$a aritmeti:ka operatora: inkrement /HH4 i dekrement /--4,
odnosno: u$eaj !a jedan i umanji !a jedan# Oba operatora se mogu pisati ispred ili i!a
$arijable#
Primjer: IKIH5= JKJ-5= je isto +to i IHH= J--= odnosno HHI= --J=
Me;utim, kori+tenjem na$edeni. operatora u i!ra!ima st$ari se mijenjaju# O polo9aju
operatora u odnosu na $arijablu o$isi kada e se $rijednost $arijable po$eati /ili smanjiti4#
Zna:i, umjesto JKIH5= mo9emo pisati JKIHH= ili JKHHI=
1eka je IKE# 1akon i!ra!a JKHHI= $rijednost $arijabli I i J je D /$rijednost $arijable I se
u$ea !a 5, pa se ta $rijednost pridru9i $arijabli J4, a nakon i!ra!a JKIHH, $rijednost $arijable
J je E, a $rijednost $arijable I je D /najprije se trenutna $rijednost $arijable I pridru9i $arijabli
J, a !atim se $rijednost $arijable I u$ea !a 54#
9ada%i 3a v)e4bu:
5# 2!ra:unaj $rijednost i!ra!a: aHb?)-aNb ako je:
a4 aKE, bKD, )KO Rj: 58
b4 aK5D, bK5A, )KP Rj: OA
E# %ko je $rijednost $arijable aKP, kolike e biti $rijednosti $arijabli a i b nakon i!ra:una$anja
i!ra!a bKaHH, a kolike nakon i!ra:una$anja bKHHaQ
Rj:
a4 aKO, bKP
b4 aKO, bKO
;. Operator pridru4ivan)a i pretvorba tipova podataka
Operator pridru4ivan)a u programskom je!iku C je K# <ao +to !namo, njego$a je uloga da
$rijednost desne strane i!ra!a pridru9i $arijabli na lije$oj strani i!ra!a# Operator pridru9i$anja
ima najni9i prioritet i!$r+a$anja#
Opi oblik naredbe !a pridru9i$anje $rijednosti je vari)abla<i3ra37
Operator pridru9i$anja se mo9e nai u kombina)iji s aritmeti:kim operatorima, pa tak$e
kombina)ije :ine jedinst$ene konstruk)ije aritmeti:ki. i!ra!a karakteristi:ne !a programski
je!ik C, koje na pr$i pogled i!gledaju nejasno, no, ako se ima u $idu redo*l)ed i3vr2avan)a
opera%i)a pridru4ivan)a ko)i )e * de*na na li)evo uo:a$a se da taka$ na:in !apisa
predsta$lja skraeni oblik pisanja aritmeti:ki. i!ra!a#
"rimjer: aHKE= isto je +to i aKaHE=
a-KD= !na:i aKa-D=
a>K5A= je aKa>5A=
aNKD= je aKaND=
a?K5AHb= !na:i aKa?5AHb=
aHKHHbHEA= je aKaHbH5HEA=
(retvorba tipova podataka
&ip re!ultata aritmeti:ki. i!ra!a gdje su operandi istog tipa odgo$ara tipu operanda# 1pr#
,
ako su u i!ra!u aHb, a i b )jelobrojne $arijable, tada e i re!ultat biti )jelobrojnog tipa#
0 toku i!ra:una$anja i!ra!a u kojima se nala!e ra!li:iti tipo$i podataka, ti se tipo$i s$ode
na isti tip prema ugra;enim pra$ilima !a pret$aranje tipo$a podataka koja su sasta$ni dio
programskog je!ika C i orjentirana su prema $i+em tipu podataka#
&ako $rijedi:
5# S$i poda)i ).ar i s.ort pret$araju se u int
E# %ko u i!ra!u postoji bilo koji operand double, tada se s$i poda)i pret$araju u double i
re!ultat je tipa double#
D# %ko u i!ra!u postoji bilo koji operand tipa long, tada se s$i poda)i pret$araju u long i
re!ultat je tipa long#
R# %ko je bilo koji od operanada u i!ra!u deklariran kao unsigned, s$i ostali operandi
pret$araju se u unsigned i re!ultat je tipa unsigned#
P# %ko su s$i operandi tipa int, tada je i re!ultat tipa int#
<ori+tenje operatora pridru9i$anja tako;er pokree automatsko pret$aranje podataka, npr:
ako je i )jelobrojna $arijabla /int4, a j realna /*loat4, i!ra!om jKi )jelobrojna $rijednost $arijable
i najprije e se pret$oriti u realnu, a !atim pridru9iti $arijabli j# 2sto tako, u i!ra!u iKj= $arijabli i
e se pridru9iti )jelobrojna $rijednost $arijable j dobi$ena odba)i$anjem de)imalnog dijela#
-
=. U0itavan)e i i*pi* podataka
"rogramski je!ik C nema ugra;ene ula!no>i!la!ne *unk)ije, $e se ula! i i!la! podataka
oba$ljaju preko *unk)ija koje se nala!e u standardnoj ula!no>i!la!noj bibliote)i# "rogrami koji
koriste standardne ula!no>i!la!ne *unk)ije morju sadr9a$ati liniju
Sin)ludeTstdio#.U
koja se obi:no nala!i na po:tku programa# 0 datote)i stdio#. nala!e se s$e 0>2 *unk)ije#
Standardna *unk)ija !a i*pi* podataka je print.()
2spis ni!a !nako$a: print. (>ni3 3nakova>)7
Primjer 1:
#include<stdio.h>
main()
{
printf ("Od danas programiramo u C-u");
}
"rogram se pokree kombina)ijom tipki C8R-&? ili preko i!bornika birajui op)iju
RunRun# Velimo li samo pro$jeriti ima li na+ program gre+aka /nara$no, ne logi:ki.4,
biramo CompileCompile /!8-&?4
1akon i!$o;enja programa C se $raa u pro!or u kojem je kod programa, a pro!or sa
re!ultatima ostaje ne$idlji$# Velimo li $idjeti re!ultate i!$o;enja programa treba pritisnuti
kombina)iju tipki %L&-@P#
Zadatak:
2spisati na ekran s$oje ime, pre!ime i adresu, s$aki podatak u no$i red#
$*pi* vri)edno*ti vari)abli:
print.(>li*ta .ormata>/li*ta vari)abli)7
npr: ispisati $rijednosti $arijabli a i b koje su )jelobrojnog tipa#
print*/MNd NdM,a,b4=
9elimo li da u ispisu $arijable budu od$ojene !are!om pisat emo:
print*/MNd, NdM,a,b4=
-akle, i!gled ispisa na !aslonu ure;uje se unutar d$ostruki. na$odnika, a u listi $arijabli
dola!i samo popis $arijabli# Redosljed na$o;enja *ormata mora odgo$arati redosljedu
na$o;enja imena $arijabli# "ogre+no !adan *ormat u odnosu na deklara)iju $arijable re!ultirat
e pogre+nim ispisom#
"rimjer: i!$o;enjem naredbe
print.(>@n re3ultat i3ra3a AdBAd )e Ad>/ a/b/%)
ako je aKE, bKD na !aslon e se ispisati:
re!ultat i!ra!a EHD je P
@n !na:i da e se prije ispisa prijei u no$i red#
@unk)ije !a u:ita$anje:
@unk)ija !a u:ita$anje jednog !naka s tipko$ni)e: get%'() /nje!in prototip nala!i se u datote)i
%onio.'4#
"rimjer:
#include<stdio.h>
#include<conio.h>
.
main()
{
printf ("Od danas programiramo u C-u");
getch();
}
O$ak$om upotrebom *unk)ije get)./4 posti9e se to da nakon i!$r+a$anja poslijednje
naredbe ispred *unk)ije get). program :eka u:ita$anje !naka s tipko$ni)e, odnosno ekran sa
re!ultatima i!$o;enja programa ostaje $idlji$ do pritiska bilo koje tipke#
@unk)ija !a *ormatirani unos podataka je *%an.()#
*%an.(>li*ta .ormata>/li*ta vari)abli)7

kao i kod *unk)ije print*/4 u listi *ormata upisuju se *ormati !a tip $arijabli, a u listi $arijabli
popis imena $arijabli istim redosljedom kao u popisu *ormata# S ob!irom da se u C-u $arijable
koje se nala!e u popisu $arijabli prenose putem adrese, osim imena $arijable treba dodati i
adresni operator ' ispred imena, npr:
s)an*/MNd,NdM, 'a,'b4=
Napomena: %ko su o!nake *ormata od$ojene !are!om, prilikom u:ita$anja $rijednosti $arijabli
potrebno i. je tako;er od$ojiti !are!om# %ko nema !are!a $rijednosti se od$ajaju ra!makom#
Primjer: Za !adane duljine strani)a pra$okutnika ispisati opseg i po$r+inu danog pra$okutnika#
#include <stdio.h>
#include <conio.h>
main()
{
float a!po;
clrscr();
printf(""n upisi dul#ine stranica a i ! "n");
scanf("$f$f" %a %!);
o&'((a)!);
p&a(!;
printf(""n *o+rsina pra+o,utni,a i-nosi $.'f"p);
printf(""n Opseg pra+o,utni,a i-nosi $.'f"o);
getch();
}
8. Cedno*tavni programi-v)e4ba
5# 0:itaj d$a )ijela broja# 2!ra:unaj i ispi+i nji.o$ !broj, ra!liku i umno9ak#
E# 0:itaj tro!namenkasti broj i ispi+i njego$e !namenke#
D# 1api+i program koji rje+a$a d$ije jednad9be s d$ije nepo!nani)e:
aIHbJKe, )IHdJK* /a, b, ), d, e i * se u:ita$aju4
Rje+enja:
5#
#include<stdio.h>
#include<conio.h>
int a!sru;
main ()
{
clrscr();
printf(""n upisi !ro#e+e a i !. ");
scanf("$d$d"%a%!);
s&a)!;r&a-!;u&a(!;
printf(""n -!ro# !ro#e+a $d i $d #e $d ra-li,a $d a umno-a, $d"a!sru);
/
getch();
}
0
E#/*ucitava tro1namen2asti broj i ispisuje nje(ove 1namen2e*/
#include<stdio.h>
#include<conio.h>
int /0-/0-;
main()
{
clrscr();
printf(""n upisi tro-namen,asti !ro#. ");
scanf("$d"%/0-);
/&/0-1233;
0&(/0-123)$23;
-&/0-$23;
printf(""n -namen,e !ro#a $d su $d $d $d" /0-/0-);
getch();
}
4.
#include<stdio.h>
#include<conio.h>
float a!cdef/0-;
main()
{
clrscr();
printf(""n upisi ,oefici#ente sistema d+i#e #ednad-!e s d+i#e nepo-nanice.");
printf(""n a.");scanf("$f"%a);
printf(" !.");scanf("$f"%!);
printf(" e.");scanf("$f"%e);
printf(" c.");scanf("$f"%c);
printf(" d.");scanf("$f"%d);
printf(" f.");scanf("$f"%f);
-&(f-c(e)1(a(d-!(c);
/&!(-;
0&a(-;
printf(""n r#esen#a danog sistema su. /&$.'f 0&$.'f"/0);
getch();
}
3
?. Cedno*tavni programi-v)e4ba
Zada)i:
5# 1api+i program koji e !a !adani polumjer kruga ispisati njego$ opseg i po$r+inu# /!ad D, str
7#4
Uputa: r o * ,

*
r P
E# Zadane su d$ije to:ke u pra$okutnom koordinatnom susta$u# 2spisati nji.o$u udaljenost#
/!birka !adataka, str# O, !ad E#4
Uputa: koristiti *ormulu !a udaljenost d$ije to:ke u koordinatnom susta$u:
@unk)ija !a drugi korjen u C-u je sCrt/4# @unk)ija !a k$adrat nekog broja ne postoji# Za
kori+tenje *unk)ije sCrt/4 potrebno je dodati Sin)ludeTmat.#.U#
D# Zadan je kompleksan broj# 2!ra:unaj njego$ modul# /!adO, str# 5A4
Uputa: bi a z + ,
* *
b a z +
R# Zadana su d$a kompleksna broja# 2spi+i u:itane broje$e, nji.o$u sumu i ra!liku#
Uputa: bi a z +
4
, di c z +
*
, ) ( ) (
* 4
d b i c a z z + t + t
Rjeenja:
5#
#include<stdio.h>
#include<conio.h>
int r;
float oppi&4.25267;
main()
{
clrscr();
printf(""nupisi polum#er ,ruga."%r);
scanf("$d"%r);
o&'(r(pi;
p&r(r(pi;
printf("opseg danog ,ruga #e $.'f a po+rsina $.'f"op);
getch();
}
E#
#include<stdio.h>
#include<conio.h>
#include<math.h>
int /2/'020';
float d;
main()
{
clrscr();
printf(""nupisi ,oordinate toc,e 8.");
scanf("$d$d"%/2%02);
printf("upisi ,oordinate toc,e 9.");
scanf ("$d$d"%/'%0');
d&s:rt((/'-/2)((/'-/2))(0'-02)((0'-02));
printf("udal#enost i-medu danih toca,a #e $.'f"d);
getch();
}
D#/*ucitava 2omple2san broj i ispisuje nje(ov modul*/
#include<stdio.h>
#include<conio.h>
#include<math.h>
+oid main()
{
float a!m;
clrscr();
printf(";pisi #edan ,omple,sni !ro#. "n");
45
*
4 *
*
4 *
) ( ) ( ) , ( y y x x B A d +
scanf("$f$f"%a%!);
m&s:rt(a(a)!(!);
printf("<odul upisanog ,omple,snog !ro#a #e $.'f "m);
getch();
}
R#/*ucitava dva 2omple2sna broja i ispisuje njihovu sumu i ra1li2u*/
#include<stdio.h>
#include<conio.h>
main()
{
float a2!2a'!'r-rri-ir;
clrscr();
printf(" ;pisi pr+i ,omple,sni !ro#. ");
scanf("$f$f"%a2%!2);
printf(" ;pisi drugi ,omple,sni !ro#.");
scanf("$f$f" %a'%!');
r-&a2)a';
rr&a2-a';
i-&!2)!';
ir&!2-!';
printf(""n ;pisali ste !ro#e+e $.'f ) $.'fi i $.'f ) $.'fi "n"a2!2a'!');
printf(""n =#iho+a suma #e $.'f ) $.'fi"r-i-);
printf(""n >a-li,a #e $.'f ) $.'fi"rrir);
getch();
}
1D. Rela%i)*ki i logi0ki operatori
Relacijski operatori:
manje od T
$ee od U
jednako KK
manje ili jednako TK
$ee ili jednako UK
ra!li:ito WK
Rela)ijski operatori imaju ni9i prioritet od aritmeti:ki. operatora#
1pr# u i!ra!u aUIH5 najprije e se oba$iti opera)ija !brajanja, a !atim uspore;i$anja#

Logiki operatori:
logi:ki i /%1-4 ''
logi:ki ili /OR4 ||
nega)ija /1O&4 W
1aj$ei prioritet ima operator W, a ako se u i!ra!u na;u logi:ki i rela)ijski operatori prioritet
je slijedei:
W
U, UK, T, TK
KK, WK
''
||
Re!ultati rela)ijski. i logi:ki. i!ra!a mogu biti samo A ili 5 /true ili *alse4
Zada)i !a $je9bu:
1api+i u programskom je!iku C:
a4 /a %1- b4T/) OR d4 Rj: /a''b4T/)||d4
44
b4 /I OR J4K! Rj: I||JK!
)4 ab Rj: aWKb
4*
11# Cedno*truko uv)etno granan)e
Opi oblik !a jednostruko u$jetno grananje programa je:
i. (uv)et)
{
blok naredbi7
}
%ko je u$jet ispunjen i!$r+a$a se blok naredbi, koji se mo9e sastojati od jedne ili $i+e
naredbi# "o:etak bloka u C-u se o!na:a$a sa {, a kraj sa }# %ko se blok naredbi sastoji od jedne
naredbe, o!nake !a po:etak i kraj bloka nisu neop.odne#
Primjer:
1(ucita+a !ro# i ispisu#e da li #e +eci man#i ili #edna, nuli(1
#include <stdio.h>
#include <conio.h>
int a;
main()
{
clrscr();
printf("ucita# #edan !ro#. ");
scanf("$d"%a);
if (a>3) printf("ucitani !ro# #e +eci od nule");
if (a<3) printf("ucitani !ro# #e man#i od nule");
if (a&&3) printf("ucitani !ro# #e nula");
getch();
}
9adatak: 0:itaj broj I# 2!ra:unaj */I4 ako je

'

>

<

5 ,
5 , 5
5 ,
) (
*
x x
x
x x
x f #
12. E)e4ba $&
9ada%i:
5# Zadaj prirodni broj i ispitaj da li je paran ili neparan#
E# 1api+i program koji e od tri u:itana broja ispisati naj$ei#
D# 0:itaj broje$e a i b, a !atim i!ra:unaj

'


< +

b a b a
b a b a
x
, + *
, *
#
Rjeenja:
5#/*ucitava broj i ispisuje da li je paran ili neparan*/
#include <conio.h>
#include <stdio.h>
main()
{
int a;
clrscr();
printf(";pisi #edan !ro# "n");
scanf("$d"%a);
if (a$'?&3) printf (""n 9ro# $d #e neparan"a);
if (a$'&&3)printf (""n 9ro# $d #e paran"a);
4+
getch();
}
4,
'.1(ucita+a tri !ro#a i ispisu#e na#+eci(1
#include <stdio.h>
#include <conio.h>
main()
{
int ma/a!c;
clrscr();
printf(""n ;pisi tri !ro#a. ");
scanf("$d$d$d"%a%!%c);
ma/&a;
if (!>ma/) ma/&!;
if (c>ma/) ma/&c;
printf (""n =a#+eci od upisanih !ro#e+a $d $d $d #e $d"a!cma/);
getch();
}
D#
#include <stdio.h>
#include <conio.h>
int a!/;
main()
{
clrscr();
printf("upisi d+a !ro#a. ");
scanf("$d$d"%a%!);
if (a<!) /&a)'(!;
if (a>&!) /&'(a-4(!;
printf("/&$d"/);
getch();
}
13. Ei2e*truki $&
Opi obli)i naredbi $i+estruki. u$jetni. grananja programa su:
54 i. (uv)et)
{
blok naredbi17
}
el*e
{
blok naredbi27
}
tj#
E4 i. (uv)et1)
{
blok naredbi17
}
el*e i. (uv)et2)
{
blok naredbi27
}
# # #
el*e(uv)et n)
{
blok naredbi n7
}
4-
4.
Za pr$i oblik naredbe i*-else $rijedi: ako je u$jet ispunjen i!$r+a$a se blok naredbi5, a ako
nije blok naredbiE#
-rugi oblik naredbe i*-else i*-else omoguuje ispiti$anje ni!a u$jeta# %ko je bilo koji u$jet
ispunjen i!$r+a$a se blok naredbi pridru9en tom u$jetu, a ako nije ispunjen niti jedan u$jet
i!$r+a$a se blok naredbi n# (roj u$jeta nije ograni:en#
Primjer 1:
1(ucita+a !ro# i ispisu#e da li #e paran ili neparan(1
#include <conio.h>
#include <stdio.h>
main()
{
int a;
clrscr();
printf(";pisi #edan !ro# "n");
scanf("$d"%a);
if (a$'?&3)
printf (""n 9ro# $d #e neparan"a);
else
printf (""n 9ro# $d #e paran"a);
getch();
}
Primjer 2:
1(ucita+a !ro# i ispisu#e da li #e +eci ili man#i od nule(1
#include <stdio.h>
#include <conio.h>
+oid main()
{
int a;
clrscr();
printf(";pisi #edan !ro# "n");
scanf("$d"%a);
if (a>3)
printf(""n 9ro# $d #e +eci od nule"a);
else if (a<3)
printf(""n 9ro# $d #e man#i od nule"a);
else
printf(!n 6roj $d je nula,a); {
}
getch();
}
9adatak: 0:itaj broj# %ko je $ei od nule umanjiti ga !a jedan, a ako je manji od nule u$eati
ga !a 5#
Rj:
a41(negati+an !ro# u+eca# -a 2 a po-iti+an uman#i -a 2(1
#include <stdio.h>
#include <conio.h>
int a;
main()
{
clrscr();
printf(""n upisi #edan !ro#. ");
scanf("$d"%a);
if (a<3)
a));
else
a--;
printf ("$d"a);
4/
getch();
}
40
b41(negati+an !ro# u+eca# -a 2 a po-iti+an uman#i -a 2(1
#include <stdio.h>
#include <conio.h>
int a;
main()
{
clrscr();
printf(""n upisi #edan !ro#. ");
scanf("$d"%a);
if (a<3)
a&a)2;
else
a&a-2;
printf ("$d"a);
getch();
}
1-. E)e4ba $&
9ada%i:
5# 1api+i program koji e !a !adane strani)e trokuta i!ra:unati po$r+inu# /!adE, str# 5E4
Uputa: ) )( )( ( c s b s a s s P ,
*
c b a
s
+ +

u trokutu !broj bilo koje d$ije duljine strani)a mora biti $ei od tree# 2sto tako duljine
strani)a moraju biti $ee od nule#
E# 0:itaj koe*i)ijente k$adratne jednad9be i ispi+i rje+enja I5 i IE# /!ad7, str 5O#4
Uputa:
5
*
+ + c bx ax
,
5 , , , a R c b a
# O$isno o diskriminanti
ac b D ,
*
+
, imamo slijedea
rje+enja: -UA, d$a ra!li:ita realna rje+enja, -KA, d$a jednaka realna rje+enja, -TA, d$a
konjugirano kompleksna rje+enja
Rje+enja:
5#
#include <stdio.h>
#include <conio.h>
#include <math.h>
float a!cops;
main()
{
clrscr();
printf("upisi dul#ine stranica tro,uta a ! c. ");
scanf("$f$f$f"%a%!%c);
if (a)!>c %% a)c>! %% !)c>a %% a>3 %% !>3 %% c>3)
{
s&(a)!)c)1';
o&a)!)c;
p&s:rt(s((s-a)((s-!)((s-c));
printf("opseg -adanog tro,uta #e $f a po+rsina $.'f"op);
}
else
printf("-adani !ro#e+i ne cine stranice tro,uta");
getch();
}
43
E#
1(ucita+a ,oefici#ente ,+adratne #ednad-!e i ispisu#e r#esen#a(1
#include <stdio.h>
#include <conio.h>
#include <math.h>
float a!cd/2/';
main()
{
clrscr();
printf("ucita# ,oefici#ente a ! i c. ");
scanf("$f$f$f"%a%!%c);
if (a?&3)
{
d&!(!-5(a(c;
if (d>3)
{
d&s:rt(d);
/2&(-!)d)1('(a);
/'&(-!-d)1('(a);
printf("/2&$.'f /'&$.'f"/2/');
}
else if (d&&3)
{
/2&(-!1('(a));
printf("/2&/'&$.'f"/2);
}
else
{
/2&-!1('(a);
d&-d;
/'&s:rt(d)1('(a);
printf("/2&$.'f)$.'fi /'&$.'f-$.'fi"/2/'/2/');
}
}
else
{
printf("a mora !iti ra-licit od nule #ednad-!a ni#e ,+adratna");
}
getch();
}
*5
15. Uv)etni operator
<ao krai !apis jednosta$niji. i* naredbi mo9e se upotrijebiti u$jetni operator Q:
(i3ra31)Fi3ra32:i3ra337
gdje je i!ra!5 u$jetni i!ra!, a i!ra!E i i!ra!D aritmeti:ki i!ra!i ili *unk)ije#
1a$edena konstruk)ija koristi se !a !amjenu ni!a naredbi
i.(i3ra31)
i3ra327
el*e
i3ra337
Primjer:
1(ucitati d+a !ro#a i ispisati +eci (u+#etni operator)(1
#include <stdio.h>
#include <conio.h>
+oid main()
{
int a!;
clrscr();
printf(""n ;pisi d+a !ro#a. ");
scanf("$d$d"%a%!);
(a<!)@ printf (""n Aeci #e $d"!) . printf (""n Aeci #e $d"a);
getch();
}
9ada%i:
5# 1api+i program koji e od $eeg broja odu!eti manji# !ad E, str 584
E# 1api+i program koji e !a !adani broj ispisati njego$u apsolutnu $rijednost /be! upotrebe
*unk)ije abs4# /!ad R, str 564
D# sgn *unk)ija: !a broj $ei od nule ispisuje 5 !a nulu ispisuje A, a !a broj manji od A -5# /!ad
P, str 564
Rje+enja:
5# a4
1( od +eceg !ro#a odu-ima man#i (1
#include <stdio.h>
#include <conio.h>
+oid main()
{
int a!re-;
clrscr();
printf(""n ;pisi d+a !ro#a. ");
scanf("$d$d"%a%!);
(a<!)@ printf(""n $d - $d & $d"!a!-a).printf(""n $d - $d & $d"a!a-!);
getch();
}
b4
1( od +eceg !ro#a odu-ima man#i (1
#include <stdio.h>
#include <conio.h>
+oid main()
{
int a!re-;
clrscr();
printf(""n ;pisi d+a !ro#a. ");
scanf("$d$d"%a%!);
re- & (a<!)@ !-a.a-!;
printf(""n $d"re-);
*4
getch();
}
**
E#
1(ispis apsolutne +ri#ednosti -adanog !ro#a(1
#include <stdio.h>
#include <conio.h>
+oid main()
{
int a!;
clrscr();
printf(""n ;pisi #edan !ro#. ");
scanf("$d"%a);
!& (a<3)@ -a . a;
printf(""n 8psolutna +ri#ednost ucitanog !ro#a #e $d"!);
getch();
}
D#
1( sgn fun,ci#a (1
# include <conio.h>
# include <stdio.h>
+oid main()
{
int a!;
clrscr();
printf(""n ;pisi #edan !ro#. ");
scanf("$d"%a);
!& (a>3)@ 2. (a<3)@ -2 . 3;
printf(""n pred-na, !ro#a #e $d"!);
getch();
}
*+
1;. S+$8CG-C!SE naredba
koristi se kod $i+estrukog grananja programa# Omogua$a i!bor
jednog i!me;u $i+e mogui. pute$a daljnjeg i!$o;enja programa, +to o$isi o $rijednosti
$arijable ili i!ra!a# Opa struktura naredbe glasi:
*,it%' (i3ra3)
{
%a*e kon*tanta 1:
blok naredbi 17
break7
%a*e kon*tanta 2:
blok naredbi 27
break7
. . .
%a*e kon*tanta n-1:
blok naredbi n-17
break7
de.ault:
blok naredbi n7
break7
}
&ok i!$r+a$anja sBit).-)ase naredbe je slijedei: pr$o se i!ra:una $rijednost i!ra!a, a !atim
se uspore;uje sa konstantama /5 do n-54# %ko je i!ra:unati i!ra! jednak nekoj od konstanti,
i!$r+a$a se blok naredbi pridru9en toj konstanti, a ako re!ultat i!ra!a nije jednak niti jednoj od
na$edeni. konstanti, i!$r+a$a se blok naredbi naredbi pridru9en op)iji de*ault# 2!$r+a$anje
bloka naredbi pridru9enog odre;enoj konstanti prekida se naredbom break# %ko blok naredbi
u )ase ne !a$r+a$a sa break, nasta$lja se i!$r+a$ati blok slijedeeg )ase# Op)ija de*ault se
mo9e i!osta$iti# &ada se, u slu:aju da $rijednost i!ra!a nije jednaka ni jednoj konstanti,
i!$r+a$anje programa nasta$lja od pr$e naredbe koja slijedi i!a sBit).-)ase strukture#
Primjer: 0:itaj broj i u o$isnosti o ostatku pri dijeljenju s brojem 7 ispi+i dan u tjednu#
#include <stdio.h>
#include <conio.h>
#include <math.h>
int /;
float f/;
main()
{
clrscr();
printf("ucita# #edan !ro#.");scanf("$d"%/);
sBitch(/$C)
{
case 3.
printf(""n poned#el#a,");
!rea,;
case 2.
printf(""n utora,");
!rea,;
case '.
printf(""n sri#eda");
!rea,;
case 4.
printf(""n cet+rta,");
!rea,;
case 5.
printf(""n peta,");
!rea,;
case 6.
printf(""n su!ota");
!rea,;
*,
default.
printf(""n ned#el#a");
!rea,;
}
getch();
}
9adatak: 0:itati d$a broja# O$isno o i!abranoj opera)iji ispisati sumu, umno9ak ili koli:nik
u:itani. broje$a#
RjeXenje:
#include<stdio.h>
#include<conio.h>
main()
{
float a!/;int i;
clrscr();
printf(" -ada# d+a !ro#a a i !. ");
scanf("$f$f" %a %!);
printf("i-!or.");
printf(" "n 2. -!ro# ucitanih !ro#e+a "n '. umno-a, "n 4. ,olicni,");
printf(" "n i-a!eri -el#enu operaci#u. ");
scanf ("$d" %i);
sBitch(i)
{
case 2.
/&a)!;
printf (""n /&$.'f)$.'f&$.'f"a!/);
!rea,;
case '.
/&a(!;
printf (""n /&$.'f($.'f&$.'f"a!/);
!rea,;
case 4.
if (!&&3)
printf(""n di#el#en#e s nulom ni#e do-+ol#eno");
else
{
/&a1!;
printf (""n /&$.'f1$.'f&$.'f"a!/);
}
!rea,;
default.
printf(""n ;citani !ro# mora !iti i-medu 2 i 4");
!rea,;
}
getch();
}
*-
1=. E)e3ba C!SE
9ada%i:
5# <oristei )ase naredbu i jednu numeri:ku )jelobrojnu $arijablu ispi+i mjese) u godini#
D# Zadaj d$a kompleksna broja# O$isno o i!boru, i!ra:unaj i ispi+i re!ultat !brajanja,
odu!imanja, mno9enja ili dijeljenja !adani. broje$a#
Uputa: di c z bi a z + +
* 4
, , ) ( ) (
* 4
d b i c a z z + + + t , ) (
* 4
ad bc i bd ac z z + + ,
* * * *
*
4
d c
ad bc
i
d c
bd ac
z
z
+

+
+
+

#
Rje+enja:
5#
#include <stdio.h>
#include <conio.h>
int /;float f/;
main()
{
clrscr();printf("ucita# #edan !ro#.");scanf("$d"%/);
sBitch(/$2')
{
case 3.printf(""n si#ecan#");!rea,;
case 2. printf(""n +el#aca");!rea,;
case '. printf(""n o-u#a,");!rea,;
case 4. printf(""n tra+an#");!rea,;
case 5. printf(""n s+i!an#");!rea,;
case 6. printf(""n lipan#");!rea,;
case D. printf(""n srpan#");!rea,;
case C. printf(""n ,olo+o-");!rea,;
case E. printf(""n ru#an");!rea,;
case 7. printf(""n listopad");!rea,;
case 23.printf(""n studeni");!rea,;
default.printf(""n prosinac");!rea,;
}
getch();
}
*.
D#
#include<stdio.h>
#include<conio.h>
main()
{
float a!cdr-rrrur,i-iriui,; int i;
clrscr();
printf(" ;pisi pr+i ,omple,sni !ro#."); scanf("$f$f"%a%!);
printf(" ;pisi drugi ,omple,sni !ro#.");
scanf("$f$f" %c%d);
printf(""n i-!or.");
printf(""n2)-!ro# ucitanih !ro#e+a "n')ra-li,a "n4)umno-a, "n5),olicni,");
printf(""n oda!eri -el#eni !ro#. "); scanf("$d"%i);
sBitch (i){
case 2.
r-&a)c; i-&!)d;
printf(""n =#iho+a suma #e $.'f ) $.'fi"r-i-);
!rea,;
case '.
rr&a-c; ir&!-d;
printf(""n >a-li,a #e $.'f ) $.'fi"rrir);
!rea,;
case 4.
ru&a(c-!(d; iu&!(c)a(d;
printf(""n ;mno-a, #e $.'f ) $.'fi"ruiu);
!rea,;
case 5.
if (c&&3 %% d&&3)
printf("di#el#en#e s nulom");
else
{
r,&(a(c)!(d)1(c(c)d(d); i,&(!(c-a(d)1(c(c)d(d);
printf(""n Folicni, #e $.'f ) i $.'fi" r,i,);
}
!rea,;
default.
printf("upisali ste pogresan !ro#");
!rea,;}
getch();
}
1H. IO8O naredba
1aredba goto !a.tje$a simboli:ku o!naku linije na koju se program grana nakon i!$r+ene
naredbe# Simboli:ka o!naka linije u C-u je identi*ikator sa !nakom :#
&reba imati u $idu da $elik broj goto naredbi smanjuje :itlji$ost programa, pa tako i ote9a$a
e$entualne naknadne ispra$ke# Me;utim, ako je o:ito da e kori+tenjem naredbe goto
program postati pregledniji, krai i ra!umlji$iji, nema ra!loga da se goto ne upotrijebi#
Primjer: 2spis broje$a od 5AA do EAA u! pomo naredbe goto#
1(ispisu#e !ro#e+e od 233 do '33(1
#include <stdio.h>
#include <conio.h>
int a&233;
main()
{
clrscr();
poc.printf("$d"a);
a));
if (a<&'33)
goto poc;
getch();
}
*/
Zada)i:
5# 1api+i program koji e !a !adani prirodni broj ispisati umno9ak njego$i. !namenki /!ad E,
str D84#
E# 1api+i program koji e !a u:itani broj ispisati njego$e proste *aktore# 0puta:5EK5?E?E?D
R)e2en)a:
5# 1(ucita+a !ro# i ispisu#e umno-a, n#ego+ih -namen,i(1
#include <stdio.h>
#include <conio.h>
int a-u&2;
main()
{
clrscr();
printf("ucita# #edan prirodan !ro#. ");
scanf("$d"%a);
poc.-&a$23;
u&u(-;
a&a123;
if (a?&3)
goto poc;
printf("umno-a, -namen,i ucitanog !ro#a #e $d"u);
getch();
}
E#1(rasta+l#a ucitani !ro# na proste fa,tore(1
#include <stdio.h>
#include <conio.h>
int af&';
main()
{
clrscr();
printf("ucita# prirodni !ro#. ");scanf("$d"%a);
printf("$d&2"a);
poc. if (a?&2)
{
if (a$f&&3)
{
printf("($d"f);
a&a1f;goto poc;
}
else
{
f&f)2;goto poc;
}
}
getch();
}
1?. (riprema 3a pi*meni
Zada)i:
5# i*: 1api+i program koji e od tri broja ispisati najmanji#
E# )ase: Zadane su strani)e pra$okutnika# O$isno o i!boru i!ra:unaj opseg, po$r+inu ili duljinu
dijagonale !adanog pra$okutnika#
0puta: ) ( * b a o + , ab P ,
* *
b a d +
#
D# goto: Omogui da se u:ita$aju realni broje$i s$e dok se ne u:ita A# 2spi+i:
a4 koliko je u:itani. elemenata
b4 koliko je me;u u:itanim broje$ima po!iti$ni., koliko negati$ni.
)4 aritmeti:ku sredinu u:itani. broje$a /!birka snje!, !ad#E7, str#D54
*0
Rje+enja:
5#1(ucita+a tri !ro#a i ispisu#e na#man#i(1
#include <stdio.h>
#include <conio.h>
main()
{
int mina!c;
clrscr();
printf(""n ;pisi tri !ro#a. ");
scanf("$d$d$d"%a%!%c);
min&a;
if (!<min) min&!;
if (c<min) min&c;
printf (""n =a#+eci od upisanih !ro#e+a $d $d $d #e $d"a!cmin);
getch();
}
E#
#include <stdio.h>
#include <conio.h>
#include <math.h>
main()
{
int i;float a!pod;
clrscr();
printf(""n upisi dul#ine stranica a i !. ");
scanf("$f$f" %a %!);
if (a>3 %% !>3)
{
printf(""n -elis li i-racunati."n 2)opseg "n ')po+rsinu "n 4)dul#inu
di#agonale");
printf(""n i-a!eri -el#eni !ro#. ");
scanf("$d"%i);
sBitch (i)
{
case 2.
o&'((a)!);
printf(""n Opseg pra+o,utni,a i-nosi $.'f"o);
!rea,;
case '.
p&a(!;
printf(""n *o+rsina pra+o,utni,a i-nosi $.'f"p);
!rea,;
case 4.
d&s:rt(a(a)!(!);
printf(""n dul#ina di#agonale #e $.'f"d);
!rea,;
default.
printf ("i-a!rali ste pogresan !ro#");
!rea,;
}
}
else
printf ("niste upisali stranice pra+o,utni,a");
getch();
}
*3
D# /*ucitava realne brojeve sve do2 se ne ucita nula, ispisuje 2oli2o je ucitanih brojeva, 2oli2o
po1itivnih, 2oli2o ne(ativnih, 2oli2a je aritmetic2a sredina ucitanih elemenata*/
#include <stdio.h>
#include <conio.h>
float sa!rpo-negas;
main()
{
clrscr();
poc. printf(""nucita# !ro#");
scanf("$f"%a);
if (a?&3)
{
!r&!r)2;
s&s)a;
if (a>3)
po-&po-)2;
else
neg&neg)2;
goto poc;
}
as&s1!r;
printf("ucitano #e $.3f !ro#e+a od toga $.3f po-. a $.3f neg. "!rpo-neg);
printf(""n 8ritmetic,a sredina ucitanih !ro#e+a #e $.6f"as);
getch();
}
22. (rogram*ke petl)e/ .or petl)a
"rogramske petlje u programskom je!iku C su: @OR, YZ2L, /s ispunja$anjem u$jeta na
po:etku petlje4 i -O-YZ2L, /s ispunja$anjem u$jeta na kraju petlje4
&OR petl)a:
.or (i3ra317i3ra327i3ra33)
{
blok naredbi7
}
gdje je i!ra!5 po:etna $rijednost kontrolne $arijable, i!ra!E u$jet koji kontrolna $arijabla
mora !ado$oljiti da bi se i!$r+io blok naredbi, a i!ra!D je dio u kojem se mijenja stanje
kontrolne $arijable#
Primjer:
1(ispisu#e pr+ih 23 prirodnih !ro#e+a(1
#include <stdio.h>
#include <conio.h>
int i;
main()
{
clrscr();
for(i&2;i<&23;i)))
printf("$d "i);
getch();
}
+5
9adatak 1: 2spi+i pr$i. EA prirodni. broje$a u obrnutom redosljedu /od EA do 54
Rjeenje:
1(ispisu#e pr+ih '3 prirodnih !ro#e+a u o!rnutom redosl#edu(1
#include <stdio.h>
#include <conio.h>
int i;
main()
{
clrscr();
for(i&'3;i>&2;i--)
printf("$d "i);
getch();
}
9adatak 2: 2spi+i pr$i. 5A prirodni. broje$a, s$aki broj u no$i red#
Rjeenje:
1(ispisu#e pr+ih 23 prirodnih !ro#e+a s+a,i !ro# u no+i red(1
#include <stdio.h>
#include <conio.h>
int i;
main()
{
clrscr();
for(i&2;i<22;i&i)2)
printf("$d "n"i);
getch();
}
23. E)e4ba .or
9ada%i:
5# 1api+i program koji e !brojiti s$e )ijele broje$e i!me;u EAA i DAA koji su dijelji$i sa 7#
<oliko ima tak$i. broje$aQ
E# Zadaj n broje$a# 2!ra:unaj nji.o$u aritmeti:ku sredinu#
D# 1api+i program koji e u:itati n broje$a i ispisati naj$ei od nji.#
R# 0pi+i te9ine !a n u:enika# 2spi+i prosje:nu te9inu i koliko ima u:enika :ija je te9ina manja od
OP kg#
R)e2en)a:
5# /*suma brojeva i1medu *55 i +55 dijeljivih sa /*/
#include <conio.h>
#include <stdio.h>
main()
{
int si!r;
clrscr();
s&3;!r&3;
for(i&'33;i<&433;i)))
if (i $ C && 3)
{
s&s)i;
!r&!r));
}
printf(""n suma !ro#e+a di#el#i+ih sa C #e $d a ima ih $d"s!r);
getch();
}
+4
E# /*7ritmetic2a sredina n brojeva*/
#include <conio.h>
#include <stdio.h>
main()
{
int i!r;
float asars;
clrscr();
s&3;
printf(""n Foli,o imas !ro#e+a@ ");
scanf("$d"%!r);
for(i&2;i<&!r;i)))
{
printf(""n Gada# $d. !ro#. "i);
scanf("$f"%a);
s)&a;
}
ars&s1!r;
printf(""n 8ritmetic,a sredina -adanih !ro#e+a #e $.'f"ars);
getch();
}
D# 1(na#+eci od n !ro#e+a(1
#include <stdio.h>
#include<conio.h>
+oid main()
{
int in;
float !rma/;
clrscr();
printf(""n Foli,o imas !ro#e+a@ ");scanf("$d"%n);
printf(""n Gada# 2. !ro#. ");scanf("$f"%!r);
ma/&!r;
for(i&';i<&n;i)))
{
printf(""n Gada# $d. !ro#. "i);
scanf("$f"%!r);
if (!r>ma/) ma/&!r;
}
printf(""n =a#+eci od upisanih !ro#e+a #e $.'f" ma/);
getch();
}
R# 1(pros#ecne te-ine -a n uceni,a(1
#include <conio.h>
#include <stdio.h>
main()
{
int i!r&3n;
float asars;
clrscr();s&3;
printf(""n Foli,o imas uceni,a@ ");scanf("$d"%n);
for(i&2;i<&n;i)))
{
printf(""n Gada# te-inu $d. uceni,a. "i); scanf("$f"%a);
s)&a;
if (a<D6) !r&!r));
}
ars&s1n;
printf(""n *ros#ecna te-ina o+ih uceni,a #e $.'f a la,sih od D6 ,ila ima
$d"ars!r);
getch();
+*
}
++
2-. (rogram*ka petl)a ,'ile
Opi oblik programske petlje B.ile glasi:
,'ile (uv)et)
{
blok naredbi7
}
tj#
dok )e (i*pun)en uv)et)
{
radi...
}
-akle, blok naredbi u petlji se pona$lja s$e dok je u$jet istinit# <ad u$jet postane la9an
program se grana na pr$u naredbu i!a B.ile# 0$jet pona$ljanja petlje ispituje se na po:etku
petlje, +to !na:i da blok naredbi ne mora nu9no biti i!$r+en niti jednom#
Primjer:
1(ispisu#e pr+ih 23 prirodnih !ro#e+a(1
#include <stdio.h>
#include <conio.h>
int i;
main()
{
clrscr();
i&2;
Bhile(i<&23)
{
printf("$d "i);
i));
}
getch();
}
"apomena: 0 o$ak$im situa)ijama prikladnija je petlja *or#
25. E)e3ba ,'ile
9ada%i:
5. 2!ra:unaj !broj neparni. broje$a od 5 do 5AA# /EPAA4
E# 0:itaj n i ispi+i nW#
D# 0:itaj n i i!ra:unaj
n
s
4
,
4
+
4
*
4
4 t + + #
Rje+enja:
5#
a41(ispisu#e sumu neparnih !ro#e+a i-medu 2 i 233 ,oristeci Bhile(1
#include <stdio.h>
#include <conio.h>
main()
{
int is;
clrscr();
i&2;s&3;
Bhile(i<&233)
{
if(i$' ?&3)
s)&i;
i&i));
+,
}
printf(""n suma #e $d"s);
getch();
}
+-
b4 1(na drugi nacin suma neparnih !ro#e+a man#ih od 233(1
#include <stdio.h>
#include <conio.h>
main()
{
int is;
clrscr();
i&2;
s&3;
Bhile(i<&233)
{
s)&i;
i&i)';
}
printf(""n suma #e $d"s);
getch();
}
E# 1(-a ucitani n ispisu#e n?(1
#include<conio.h>
#include<stdio.h>
+oid main()
{
int ifn;
clrscr();
i&2;
f&2;
printf(""n ;pisi #edan !ro#. ");
scanf("$d"%n);
Bhile(i<&n)
{
f&f(i;
i&i));
}
printf(""n $d? & $d"nf);
getch();
}
D# 1(-a ucitani n ispisu#e s&2-21')214-...)-21n(1
#include<conio.h>
#include<stdio.h>
main()
{
int pin;
float s;
clrscr();
i&2;
s&3;
p&2;
printf(""n ;pisi #edan !ro#. ");
scanf("$d"%n);
Bhile(i<&n)
{
s)&(float)p1i;
i));
p&-p;
}
printf(""n suma #e $.4f"s);
getch();
}
+.
2;. (rogram*ka petl)a do-,'ile
predsta$lja grupu programski. petlji kod koji. se u$jet pona$ljanja ispituje na kraju bloka
naredbi petlje, +to !na:i da se blok naredbi mora i!$esti barem jednom#
Opi oblik petlje do-B.ile glasi:
do
{
blok naredbi7
},'ile (uv)et)7
O$ak$e petlje koriste se u slu:aje$ima kada se blok naredbi mora i!$r+iti barem jednom, no
:e+e se koriste petlje *or i B.ile#
"rimjer:
1(ispisu#e pr+ih 23 prirodnih !ro#e+a(1
#include <stdio.h>
#include <conio.h>
int i;
main()
{
clrscr();
i&2;
do
{
printf("$d "i);
i));
}Bhile(i<&23);
getch();
}
Zada)i:
5# 1api+i program koji e !brojiti pr$i. 5A prirodni. broje$a#
E# "omou do-B.ile petlje !broji tro!namenkaste broje$e djelji$e sa 57# <oliko ima tak$i.
broje$aQ
Rje+enja:
1.1(ispisu#e i -!ra#a pr+ih 23 prirodnih !ro#e+a(1
#include <stdio.h>
#include <conio.h>
int is&3;
main()
{
clrscr();
i&2;
do
{
printf("$d "i);
i));
s&s)i;
}Bhile (i<&23);
getch();
}
+/
2.1(ispisu#e sumu tro-namen,astih !ro#e+a d#el#i+ih sa 2C i n#iho+ !ro#
,oristeci Bhile(1
#include <stdio.h>
#include <conio.h>
main()
{
int i&233s&3!r&3;
clrscr();
do
{
if(i$2C&&3)
{
s)&i;
!r));
}
i&i));
} Bhile (i<&777);
printf(""n suma #e $d a ima ih $d"s!r);
getch();
}
2=. E)e4ba petl)i
9ada%i:
5# <oristei *or petlju !a u:itani n i!ra:unaj:
n
n s + + + +
+ *
+ * 4
#
E# "omou B.ile petlje i!ra:unaj !broj s$akog treeg od pr$i. n prirodni. broje$a#
D# <oristei do-B.ile, !a u:itani n i!ra:unaj sumu
n
s
4
-
4
+
4
4 t +
R)e2en)a:
1.1(-a ucitani n i-racuna+a 2)'H')4H4)...)nHn(1
#include <stdio.h>
#include <conio.h>
#include <math.h>
+oid main()
{
int i&3 s&3 n#pot;
clrscr();
scanf("$d"%n);
for (i&2;i<&n;i)))
{
pot&i;
for(#&';#<&i;#)))
pot&pot(i;
printf(""n $d"pot);
s&s)pot;
}
printf (""n suma #e $d"s);
getch();
}
+0
2# 1(ispisu#e sumu s+a,og 4. od n ucitanih !ro#e+a pomocu Bhile(1
#include<conio.h>
#include<stdio.h>
main()
{
int isn;
clrscr();
i&4;
s&3;
printf(""n ;pisi #edan !ro#. ");
scanf("$d"%n);
Bhile(i<&n)
{
s&s)i;
i&i)4;
}
printf(""n Iuma s+a,og treceg od $d !ro#e+a #e $d"ns);
getch();
}
3.
#include <stdio.h>
#include <conio.h>
main()
{
int i&2n;
float p&2.3s&3.3;
clrscr();
printf("ucita# !ro# n. ");
scanf("$d"%n);
do
{
s&s)(p(21float(i));
i&i)';
p&-p;
} Bhile (i<&n);
printf(""n s&$.4f"s);
getch();
}
+3
31. Jednodimenzionalna polja - uitavanje i ispis
82up podata2a isto( tipa 2oji nosi 1ajedni92o ime na1iva se polje. :lan polja jedno1na9no je odre;en svojim
polo<ajem u polju 2oji se is2a1uje inde2som. =nde2si polja u >?u 2re@u se od 5.
npr# ) , , , (
* 4 n
a a a a
deklaracija polja: tip_polja ime_polja[dimenzija];
(dje je tip_polja jedan od osnovnih tipova podata2a u >?u (int, float, double, char), ime_polja identifu2ator, a
dimenzija broj 9lanova polja.
Primjer: u9itavanje i ispis elemenata u jednodimen1ionalnom polju.
1(ucita+a n elemenata u pol#e i ispisu#e ih(1
#include <conio.h>
#include <stdio.h>
+oid main()
{
int inaJ'3K;
clrscr();printf("upisi !ro# elemenata u pol#u. ");
scanf("$d"%n);
if (n<&'3)
{
printf(""n upisi elemente pol#a."n");
for (i&3;i<n;i)))
{
printf("aJ$dK "i);scanf("$d"%aJiK);
}
printf(""n ucitani elementi su. "n");
for (i&3;i<n;i)))
printf(""n $d. el. #e $d"iaJiK);
}
else
printf(""n upisali ste pre+eli, !ro#");
getch();
}
32. Pretraivanje jednodimenzionalnog polja
Aadaci#
4. "9itaj polje od najviBe 45 elemenata. Crona;i i ispiBi najve@i element.
*. "9itaj u polje 45 elemenata, a 1atim upiBi jedan broj. =spiBi mjesta u polju na 2ojima se u9itani broj nala1i.
+. "9itaj n elemenata u polje, n<45. =spiBi najve@i i najmanji u9itani broj, te njihovu aritmeti92u sredinu.
,. "9itaj uspjeh 1a n u9eni2a, n<,5. =spiBi 2oli2o ima odli9nih, 2oli2o vrlo dobrih, dobrih, dovoljnih i nedovoljnih
u9eni2a. Aatim ispiBi prosje9nu ocjenu i broj u9eni2a i1nad prosje2a.
-. "9itaj n elemenata u jedno polje. =spiBi sumu parnih i sumu neparnih brojeva posebno, te sumu elemenata na
parnim i sumu elemenata na neparnim mjestima (ne inde2sima) u polju.
,5
DjeBenja#
4. (pola+.cpp)
#include <conio.h>
#include <stdio.h>
+oid main()
{
int inaJ23Kma/;
clrscr();
printf("upisi !ro# elemenata u pol#u. ");
scanf("$d"%n);
if (n<&23)
{
printf(""n upisi elemente pol#a."n");
for (i&3;i<n;i)))
{
printf("$d. "i)2);
scanf("$d"%aJiK);
}
ma/&aJ3K;
for (i&2;i<n;i)))
if (aJiK>ma/) ma/&aJiK;
printf (""n na#+eci od upisanih !o#e+a #e $d"ma/);
}
else
printf(""n upisali ste pre+eli, !ro#");
getch();
}
*. (polja*.cpp)
1(-a n ucitanih !ro#e+a u pol#u ispisu#e na ,o#em m#estu #e tra-eni !ro#(1
#include <conio.h>
#include <math.h>
#include <stdio.h>
+oid main()
{
int inaJ23Kt!&3;
clrscr();
printf("upisi !ro# elemenata u pol#u. ");
scanf("$d"%n);
if (n<&23)
{
printf(""n upisi elemente pol#a."n");
for (i&3;i<n;i)))
{
printf("$d. "i)2);
scanf("$d"%aJiK);
}
printf(""n upisi !ro# ,o#i tra-is. ");
scanf("$d"%t);
for (i&3;i<n;i)))
{
if (aJiK&&t)
{
printf(""n tra-eni !ro# se nala-i na $d. m#estu u pol#u"i)2);
!&2;
}
}
if (!&&3)
printf(""n tra-enog !ro#a nema u pol#u");
}
else
printf(""n upisali ste pre+eli, !ro#");
,4
getch();
}
,*
+. (polja-.cpp)
#include <conio.h>
#include <stdio.h>
int naJ23Kminma/s&3i;
float as;
+oid main(+oid)
{
clrscr();
printf(""n upisi !ro# elemenata u pol#u. "); scanf("$d"%n);
if (n<23)
{
1(ucita+an#e elemenata pol#a(1
for (i&3;i<n;i)))
{
printf("$d. "i)2);scanf("$d"%aJiK);
}
ma/&aJ2K; min&aJ2K;
1(pretra-i+an#e pol#a(1
for (i&3;i<n;i)))
{
s&s)aJiK;
if (aJiK>ma/) ma/&aJiK;
if (aJiK<min) min&aJiK;
}
as&(float)s1n;
printf("na#+eci element pol#a #e $d na#man#i $d a ar. sred.
$.'f"ma/minas);
}
else
printf(""n upisali ste pre+eli, !ro#");
getch();
}
,. (polja..cpp)
#include <conio.h>
#include <stdio.h>
int aJ53Ks n od&3+do!&3do!&3do+&3nedo+&3ip&3i;
float as;
+oid main(+oid)
{
clrscr();
printf("upisi !ro# uceni,a. ");
scanf("$d"%n);
if (n<&53)
{
for (i&3;i<n;i)))
{
printf("upisi usp#eh $d. uceni,a"i)2);
scanf("$d"%aJiK);
if (aJiK&&2) nedo+&nedo+));
if (aJiK&&') do+&do+));
if (aJiK&&4) do!&do!));
if (aJiK&&5) +do!&+do!));
if (aJiK&&6) od&od)2;
s&s)aJiK;
}
as&(float)s1n;
for (i&3;i<n;i)))
if (aJiK>as) ip&ip));
printf(""n odlicnih #e $d +rlo do!rih $d do!rih $d do+ol#nih $d a
nedo+ol#nih $d"od+do!do!do+nedo+);
printf(""n pros#ecna oc#ena ra-reda #e $.'f a !ro# uceni,a i-nad pros#e,a #e
$d"asip);
,+
}
else
printf ("upisali ste pre+eli, !ro#");
getch();
}
33. Zbrajanje jednodimenzionalni polja i s!alarni produ!t
Zada"i#
4. EapiBi pro(ram 2oji spaja dva jednodimen1ionalna polja.
Uputa: ) ,..., , (
* 4 n
a a a a , ) ,..., , (
* 4 m
b b b b ) ,..., , ,... (
4 4 m n
b b a a c
*. "9itaj jedno polje od n elemenata i jedan broj (posebno). =spiBi s2alarni produ2t u9itano( broja sa poljem.
Uputa: ) ,..., , (
* 4 n
a a a a
+. EapiBi pro(ram 2oji 1braja dva u9itana polja jedna2e veli9ine.
Uputa: ) ,..., ( ) ,..., ( ) ,..., , (
4 4 4 * 4 n n n n
b a b a b b a a a b a + + + +
DjeBenja#
4.
#include <conio.h>
#include <stdio.h>
+oid main(+oid)
{
int inm:aJ'3K!J'3KcJ'3K;
clrscr();
printf("upisi !ro# elemenata pr+om pol#u. ");
scanf("$d"%n);
printf("upisi !ro# elemenata drugom pol#u. ");
scanf("$d"%m);
if (n<&'3 %% m<&'3)
{
printf(""n upisi elemente pr+og pol#a."n");
for (i&3;i<n;i)))
{
printf("aJ$dK "i)2);
scanf("$d"%aJiK);
}
printf(""n upisi elemente drugog pol#a."n");
for (i&3;i<m;i)))
{
printf("aJ$dK "i)2);
scanf("$d"%!JiK);
}
:&m)n;
for(i&3;i<:;i)))
{
if (i<n) cJiK&aJiK; else cJiK&!Ji-nK;
printf("$d "cJiK);
}
}
else
printf(""n upisali ste pre+eli, !ro#");
getch();
}
,,
*.
#include <conio.h>
#include <stdio.h>
+oid main()
{
int inmaJ'3K!J'3K;
clrscr();
printf("upisi !ro# elemenata u pol#u. ");
scanf("$d"%n);
printf("upisi !ro# s ,o#im -elis mno-iti pol#e. ");
scanf("$d"%m);
if (n<&'3)
{
printf(""n upisi elemente pol#a."n");
for (i&3;i<n;i)))
{
printf("aJ$dK "i)2);
scanf("$d"%aJiK);
}
for(i&3;i<n;i)))
{
!JiK&m(aJiK;
printf("$d "!JiK);
}
}
else
printf(""n upisali ste pre+eli, !ro#");
getch();
}
+.
#include <conio.h>
#include <stdio.h>
+oid main()
{
int inaJ'3K!J'3KcJ'3K;
clrscr();
printf("upisi !ro# elemenata u pol#ima. ");
scanf("$d"%n);
if (n<&'3)
{
printf(""n upisi elemente pr+og pol#a."n");
for (i&3;i<n;i)))
{
printf("aJ$dK "i)2);
scanf("$d"%aJiK);
}
printf(""n upisi elemente drugog pol#a."n");
for (i&3;i<n;i)))
{
printf("aJ$dK "i)2);
scanf("$d"%!JiK);
}
for(i&3;i<n;i)))
{
cJiK&aJiK)!JiK;
printf("$d "cJiK);
}
}
else
printf(""n upisali ste pre+eli, !ro#");
getch();
}
,-
3$. %jeba polja
Aadaci#
4. "9itati jednodimen1ionalno polje i na osnovu nje(a formirati dru(o, ta2o da bude
n n
a a a b b a b b a + + + + ... ,..., ,
* 4 5 5 4 5 5
.
*. EapiBi pro(ram 2oji @e u9itati dva jednodimen1ionalna polja od najviBe 455 elemenata i na osnovi njih formirati
tre@e polje ta2o da je i?ti element tre@e( polja jedna2 manjem od i?tih elemenata u9itanih polja. 72o su i?ti elementi
prvo( i dru(o( polja jedna2i, i?ti element novodobiveno( polja treba poprimiti vrijednost 4+.
DjeBenja#
4.
#include <conio.h>
#include <stdio.h>
+oid main()
{
int ins&3aJ'3K!J'3K;
clrscr();
printf("upisi !ro# elemenata u pol#u. ");
scanf("$d"%n);
if (n<&'3)
{
printf(""n upisi elemente pol#a."n");
for (i&3;i<n;i)))
{
printf("aJ$dK "i)2); scanf("$d"%aJiK);
s)&aJiK;!JiK&s;
}
for (i&3;i<n;i)))
printf("!J$dK&$d"n"i)2!JiK);
}
else
printf(""n upisali ste pre+eli, !ro#");
getch();
}
*.
#include <conio.h>
#include <stdio.h>
+oid main()
{
int inaJ233K!J233KcJ233K;
clrscr();
printf("upisi !ro# elemenata u pol#ima. ");scanf("$d"%n);
if (n<&233)
{
printf(""n upisi elemente pr+og pol#a."n");
for (i&3;i<n;i)))
{
printf("aJ$dK "i)2); scanf("$d"%aJiK);
}
printf(""n upisi elemente drugog pol#a."n");
for (i&3;i<n;i)))
{
printf("aJ$dK "i)2); scanf("$d"%!JiK);
}
for(i&3;i<n;i)))
{
if (aJiK<!JiK) cJiK&aJiK;
else if(aJiK>!JiK) cJiK&!JiK;
else cJiK&24;
printf("$d "cJiK);
}
}
,.
else printf(""n upisali ste pre+eli, !ro#");
getch();
}
,/
3&. 'ortiranje
Zadata!# "9itati ni1 od n elementa. =spisati u9itane elemente poredane po veli9ini, od najmanje( prema najve@em, a
1atim od najve@e( prema najmanjem.
Uputa: Aa sortiranje elemenata polja postoji ne2oli2o al(oritama. Fbjasnit @emo jedan od jednostavnijih, ia2o nije baB
efi2asan. " prvom 2ora2u, na prvo mjesto dovodimo najmanji broj, u dru(om 2ora2u, na dru(o mjesto dovodi se dru(i
po redu broj. Costupa2 se nastavlja sve do2 se ne do;e do potpuno sre;eno( ni1a.
Primjer:
7G4H 7G*H 7G+H 7G,H 7G-H
- , * + 4
4. 2ora2
7G4H 7G*H 7G+H 7G,H 7G-H
- , * + 4
*. 2ora2
7G4H 7G*H 7G+H 7G,H 7G-H
, - * + 4
+. 2ora2
7G4H 7G*H 7G+H 7G,H 7G-H
* - , + 4
,. 2ora2
7G4H 7G*H 7G+H 7G,H 7G-H
* - , + 4
De1ultat na2on prvo( prolas2a 2ro1 polje#
7G4H 7G*H 7G+H 7G,H 7G-H
4 - , + *
" dru(om prolas2u 2ro1 polje ponavljamo isti postupa2 sa dru(im elementom polja#
7G4H 7G*H 7G+H 7G,H 7G-H
4 - , + *
4. 2ora2
7G4H 7G*H 7G+H 7G,H 7G-H
4 - , + *
*. 2ora2
7G4H 7G*H 7G+H 7G,H 7G-H
4 , - + *
+. 2ora2
7G4H 7G*H 7G+H 7G,H 7G-H
4 + - , *
De1ultat na2on *. prolas2a 2ro1 polje#
7G4H 7G*H 7G+H 7G,H 7G-H
4 * - , +
" tre@em prolas2u 2ro1 polje u1imamo tre@i element i uspore;ujemo (a sa ,. i -. Aatim, u ,. prolas2u 2ro1 polje
u1imamo ,. element i uspore;ujemo (a sa -. Co potrebi 1amjenimo. Ea 2raju ovo( postup2a po9etni ni1 i1(leda
ova2o#
7G4H 7G*H 7G+H 7G,H 7G-H
4 * + , -
,0
Ia2le, al(oritam 1a sortiranje i1(leda ova2o#
1a iJ4 do n?4 radi
1a jJiK4 do n radi
a2o je a[i]> a[j] tada 1amjeni a[i] i a[j]
DjeBenje#
#include <conio.h>
#include <stdio.h>
int naJ23Ki#pom;
+oid main(+oid)
{
clrscr();
printf(""n upisi !ro# elemenata u pol#u. ");
scanf("$d"%n);
if (n<23)
{
1(ucita+an#e elemenata pol#a(1
for (i&3;i<n;i)))
{
printf("$d. "i)2);
scanf("$d"%aJiK);
}
1(sortiran#e(1
for (i&3;i<n-2;i)))
for (#&i)2;#<n;#)))
if (aJ#K<aJiK)
{
pom&aJiK;
aJiK&aJ#K;
aJ#K&pom;
}
printf("sortirano pol#e #e."n");
for (i&3;i<n;i)))
printf("$d "aJiK);
}
else printf("upisali ste pre+ise elemenata");
getch();
}
,3
3(. 'ortiranje polja - vjeba
Zadata!#
"pisati bodove 1a + 1adat2a na natjecanju i1 matemati2e 1a sva2o( od n (n<+5) u9eni2a. =spisati ran( listu ? redni broj
natjecatelja i broj ostvarenih bodova.
3). *ad sa stringovima
Ei1 1na2ova (strin() nije u(ra;en 2ao osnovni podat2ovni tip pro(rams2o( je1i2a >. Ledan od na9ina definicije
ni1a 1na2ova je pre2o jednodimen1ionalno( polja 1na2ova (char str[45] je ni1 1na2ova duljine 45). Mod definicije
duljine ni1a 1na2ova treba imati na umu da se on sastoji od jednodimen1ionalno( polja 1na2ova o(rani9eno( nul
1na2om (!5).
Funkcije za rad sa strinom:
gets+,?u9itava ni1 1na2ova sa standardno( ula1a
strlen+,?vra)a duljinu 1adano( ni1a 1na2ova
Primjer: "9itati strin( i ispisati nje(ovu duljinu
Rje!enje:
a)
#include<conio.h>
#include<stdio.h>
char aJE3K;
int i&3;
+oid main(+oid)
{
clrscr();
printf("unesi string. ");
gets(a);
Bhile (aJi)2K?&L"3L) i));
printf("$d"i)2);
getch();
}

b)
#include<conio.h>
#include<stdio.h>
#include<string.h>
char aJE3K;
int n;
+oid main(+oid)
{
clrscr();
printf("unesi string. ");
gets(a);
n&strlen(a);
printf("$d"n);
getch();
}
-5
Zada"i#
4. EapiBi pro(ram 2oji @e u9itanu re9enicu ispisati s desna na lijevo.
*. EapiBi pro(ram 2oji @e 1a u9itanu rije9 provjeriti da li je palindrom.
+. EapiBi pro(ram 2oji @e ispisati 2oli2o se puta u9itani 1na2 pojavljuje u u9itanom strin(u.
DjeBenja#
4.
1(string4.cpp
ucita+a string i ispisu#e ga unatras,e(1
#include<conio.h>
#include<stdio.h>
#include<string.h>
char aJE3K;
int ni;
+oid main(+oid)
{
clrscr();
printf("unesi string. ");
gets(a);
n&strlen(a)-2;
1(ispisu#e string unatras,e(1
for(i&n;i>&3;i--) printf("$c"aJiK);
getch();
}
*.
1(string5.cpp
ucita+a ri#ec i ispisu#e da li #e palindrom(1
#include<conio.h>
#include<stdio.h>
#include<string.h>
char aJE3K;
int ni,&3;
+oid main(+oid)
{
clrscr();
printf("unesi string. ");
gets(a);
n&strlen(a)-2;
for(i&3;i<&n;i)))
if (aJiK?&aJn-iK),&2;
if (,&&3)printf("ucitana ri#ec #e palindrom");
else printf ("ucitana ri#ec ni#e palindrom");
getch();
}
-4
+.a)
1(string6.cpp
!ro#i po#a+l#i+an#e ucitanog -na,a u stringu
ne radi -a ucitano +eli,o slo+o ,ao -na, a,o se string ucita malim slo+ima(1
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<ct0pe.h>
char aJE3K!;
int ni!r&3;
+oid main(+oid)
{
clrscr();
printf("unesi string. ");
gets(a);
n&strlen(a)-2;
printf("upisi slo+o ,o#e tra-is. ");
scanf("$c"%!);
for(i&3;i<&n;i)))
if (aJiK&&! MM aJiK&&toupper(!)) !r));
if (!r?&3) printf("-na, $c se u ucitanom stringu po#a+l#u#e $d puta"!!r);
else printf("-na,a $c nema u stringu"!);
getch();
}
b)
1(string6a.cpp
upisu#e string i !ro#i tra-eni -na,(1
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<ct0pe.h>
char aJE3K!c;
int ni!r&3;
+oid main(+oid)
{
clrscr();
printf("unesi string. ");
gets(a);
n&strlen(a)-2;
printf("upisi -na, ,o#i tra-is. ");
scanf("$c"%!);
for(i&3;i<&n;i)))
{
aJiK&toupper(aJiK);
c&toupper(!);
if (aJiK&&c) !r));
}
if (!r?&3) printf("-na, $c se u ucitanom stringu po#a+l#u#e $d puta"!!r);
else printf("tra-enog -na,a nema u stringu");
getch();
}
Eapomena# toupper() je fun2cija 2oja pretvara mala u veli2a slova. Aa nju je potrebno u2lju9iti jedinicu ctNpe.h.

-*
3-. %jeba stringova
Aadaci#
4. EapiBi pro(ram 2oji @e ispisati 2oli2o rije9i ima u9itana re9enica.
*. EapiBi pro(ram 2oji @e u 1adanom strin(u ispisati broj najdu<e( ni1a u1astopno jedna2ih 1na2ova. =spiBi taj ni1.
+. EapiBi pro(ram 2oji @e rije9i 1adane re9enice ispisati jednu ispod dru(e.
,. "9itaj re9enicu i ispiBi da li je palindrom.
DjeBenja#
4.
1(stringD.cpp(1
1(ispisu#e !ro# ri#eci u ucitano# recenici(1
#include<conio.h>
#include<stdio.h>
#include<string.h>
char aJE3K;
int ni,&3!r&3#;
+oid main(+oid)
{
clrscr();
printf("unesi string. ");
gets(a);
n&strlen(a)-2;
1(!ro#i ra-ma,e(1
for(i&3;i<n;i)))
if (aJiK&&L L %% aJi)2K?&L L) !r));
printf("ucitana recenica ima $d ri#eci"!r)2);
getch();
}
*.
1(stringE.cpp(1
1(ispisu#e na#+eci podni- #edna,ih -na,o+a(1
#include<conio.h>
#include<stdio.h>
#include<string.h>
char aJE3K;
int ni#,l&2-namma/&3;
+oid main(+oid)
{
clrscr();
printf("unesi string. ");
gets(a);
n&strlen(a)-2;
for(i&3;i<&n;i)))
{
if (aJiK&& aJi)2K)
{
l));
if (l>ma/)
{
ma/&l;
-nam&aJiK;
}
}
else l&2;
}
printf("na#du-i tra-eni podni- ima dul#inu $d i glasi. "ma/);
for (i&3;i<ma/;i))) printf ("$c"-nam);
getch();
}
-+
+.
1(stringC.cpp(1
1(ispisu#e ri#eci u sli#edeci red(1
#include<conio.h>
#include<stdio.h>
#include<string.h>
char aJE3K;
int ni#,l;
+oid main(+oid)
{
clrscr();
printf("unesi string. ");
gets(a);
n&strlen(a)-2;
l&3;
for(i&3;i<&n;i)))
{
if (aJiK&&L L MM aJiK&&LL MM i&&n)
{
for (,&l;,<&i;,))) printf("$c"aJ,K);
if (aJiK&&LL %% aJi)2K&&L L) l&i)';
else
{
l&i)2;
printf(""n");
}
}
}
getch();
}
,.
1(string5a.cpp(1
1(pro+#era+a da li #e ucitani string palindrom(1
#include<conio.h>
#include<stdio.h>
#include<string.h>
char aJE3K;
int ni,&3!r&3#;
+oid main(+oid)
{
clrscr();
printf("unesi string. ");
gets(a);
n&strlen(a)-2;
1(!ro#i ra-ma,e(1
for(i&3;i<&n;i)))
if (aJiK&&L L) !r));
1(i-!acu#e ra-ma,e(1
for(i&3;i<&!r-2;i)))
for(#&3;#<&n;#)))
{
if(aJ#K&&L L)
{
aJ#K&aJ#)2K;
aJ#)2K&L L;
}
}
1(pro+#era+a da li #e ucitani string palindrom(1
n&n-!r;
for(i&3;i<&n;i)))
if (aJiK?&aJn-iK),&2;
if (,&&3)printf("ucitani string #e palindrom");
-,
else printf ("ucitani string ni#e palindrom");
getch();
}
--
3.. Ponavljanje jednodimenzionalni polja
4. "9itati ni1 od n cijelih brojeva (n<*5). =spisati najve@i ne(ativni u9itani broj.
*. "9itati cijeli broj pa (a ispisati u o2talnom brojevnom sustavu.
+. "9itati ni1 od n cijelih brojeva (n<*5). =spisati po1iciju najve@e( elementa po apsolutnoj vrijednosti.
,. "9itati ni1 od n cijelih brojeva(n<*5). =spisati sumu svih dvo1namen2astih u9itanih brojeva i njihov broj.
-. "9itati cijeli broj i ispisati (a u he2sadecimanom brojevnom sustavu.
.. "9itati re9enicu od najviBe 05 1na2ova i ispisati broj su(lasni2a.
/. "9itati ni1 od n cijelih brojeva. =spisati najve@i ne(ativni broj i nje(ovu po1iciju.
0. "9itati re9enicu od najviBe 05 1na2ova. =spisati re9enicu be1 ra1ma2a.
3. "9itaj ni1 od najviBe *5 elemenata (broj elemenata se u9itava). =spiBi 1broj svih neparnih u9itanih elemenata i
njihov broj.
45. "9itaj ni1 od najviBe 45 elemenata i poredaj ih po veli9ini, od najve@e( prema najmanjem.
$1. /vodimenzionalna polja - uitavanje i ispis
'iBedimen1ionalno polje mo<e se opisati 2ao s2up jednodimen1ionalnih polja. Ia bi se pristupilo odre;enom
elementu potrebno je 1adati po1iciju elementa u polju. Aa ra1li2u od jednodimen1ionalnih polja, 2od
dvodimen1ionalnih polja treba 1adati i red i stupac u 2ojem se element nala1i.
" matematici, dvodimen1ionalna polja na1ivaju se matrice. Aa matricu 2oja ima m redova i n stupaca 2a<emo da
je matrica tipa n m . 72o matrica ima isti broj redova i stupaca (npr. n) 1ove se 2vadratna matrica (reda n).
1
1
1
1
]
1

mn m m
n
n
a a a
a a a
a a a
a

* 4
* ** *4
4 4* 44
8 ob1irom da bilo 2oji element dvodimen1ionalno( polja odre;uje broj reda i broj stupca, 1a u9itavanje i ispis
jedno( ta2vo( polja potrebne su dvije petlje, jedna 1a red, a dru(a 1a stupac.
-.
Primjer: "9itavanje i ispis dvodimen1ionalno( polja od n redova i m stupaca. =spis je u obli2u matrice (tablice).
#include<conio.h>
#include<stdio.h>
int aJ23KJ23Ki#nm;
+oid main(+oid)
{
clrscr();
printf ("upisi !ro# redo+a matrice. ");scanf("$d"%n);
printf("upisi !ro# stupaca matrice. ");scanf("$d"%m);
printf("upisi elemente pol#a."n");
1(ucita+an#e elemenata pol#a(1
for(i&3;i<n;i)))
for(#&3;#<m;#)))
{
printf("aJ$dKJ$dK. "i#);
scanf("$d"%aJiKJ#K);
}
1(ispis u o!li,u ta!lice(1
printf("ucitali ste elemente. "n");
for(i&3;i<n;i)))
{
for(#&3;#<m;#)))
printf("$d "aJiKJ#K);
printf(""n"); 1(-!og prelas,a u no+i red(1
}
getch();
}
$2. Zbrajanje i oduzimanje dvodimenzionalnog polja
Zadata!# "9itaj dvije matrice od n redova i m stupaca. =spiBi njihov 1broj i ra1li2u.
"apomena: Oatrice se 1brajaju ta2o da se 1broje elementi s istim inde2sima. Oo(u se 1brojiti samo matrice s istim
brojem redova i stupaca.

1
1
1
1
]
1

+
1
1
1
1
]
1

+
mn m m
n
n
mn m m
n
n
b b b
b b b
b b b
a a a
a a a
a a a
b a c

* 4
* ** *4
4 4* 44
* 4
* ** *4
4 4* 44
1
1
1
1
]
1

1
1
1
1
]
1

+ + +
+ + +
+ + +
mn m m
n
n
mn mn m m m m
n n
n n
c c c
c c c
c c c
b a b a b a
b a b a b a
b a b a b a

* 4
* ** *4
4 4* 44
* * 4 4
* * ** ** *4 *4
4 4 4* 4* 44 44
-/
Rjeenje:
#include<conio.h>
#include<stdio.h>
int aJ23KJ23K!J23KJ23KcJ23KJ23KdJ23KJ23Ki#nm;
+oid main(+oid)
{
clrscr();
printf ("upisi !ro# redo+a matrica. ");scanf("$d"%n);
printf("upisi !ro# stupaca matrica. ");scanf("$d"%m);
printf("upisi elemente pr+e matrice."n");
for(i&3;i<n;i)))
for(#&3;#<m;#)))
{
printf("aJ$dKJ$dK. "i#);
scanf("$d"%aJiKJ#K); }
printf("upisi elemente druge matrice. "n");
for(i&3;i<n;i)))
for(#&3;#<m;#)))
{
printf("$d !J$dKJ$dK."i#);
scanf("$d"%!JiKJ#K); }
for(i&3;i<n;i)))
for(#&3;#<m;#)))
{
cJiKJ#K&aJiKJ#K)!JiKJ#K;
dJiKJ#K&aJiKJ#K-!JiKJ#K;}
clrscr();
printf(""n -!ro# ucitanih matrica #e. "n");
for(i&3;i<n;i)))
{
for(#&3;#<m;#)))
printf("$d "cJiKJ#K);
printf(""n");}
printf(""n ra-li,a ucitanih matrica #e. "n");
for(i&3;i<n;i)))
{
for(#&3;#<m;#)))
printf("$d "dJiKJ#K);
printf(""n"); }
getch();
}
-0
$3. 0nozenje matri"a
Zadata!# "9itati dvije matrice i pomno<iti ih.
"apomena: Ono<iti se mo(u jedino dvije matrice 2od 2ojih je broj redova dru(e matrice jedna2 broju stupaca prve
matrice.
72o je 7 matrica tipa (n,m), a 6 tipa (m,2) onda @e >J7*6 biti tipa (n,2).

1
1
1
1
]
1

1
1
1
1
]
1


mk m m
k
k
nm n n
m
m
b b b
b b b
b b b
a a a
a a a
a a a
b a c

* 4
* ** *4
4 4* 44
* 4
* ** *4
4 4* 44
1
1
1
1
]
1

1
1
1
1
]
1

+ + + + + +
+ + + + + +
+ + + + + +
mn m m
n
n
mk nm k n k n m nm n n
mk m k k m m
mk m k k m m
c c c
c c c
c c c
b a b a b a b a b a b a
b a b a b a b a b a b a
b a b a b a b a b a b a





* 4
* ** *4
4 4* 44
* * 4 4 4 *4 * 44 4
* * ** 4 *4 4 * *4 ** 44 *4
4 * 4* 4 44 4 4 *4 4* 44 44
DjeBenje#
#include<conio.h>
#include<stdio.h>
int aJ23KJ23K!J23KJ23KcJ23KJ23KdJ23KJ23Ki#n
m,l;
+oid main(+oid){
clrscr();
printf ("upisi !ro# redo+a pr+e matrice. ");
scanf("$d"%n);
printf("upisi !ro# stupaca pr+e matrice. ");
scanf("$d"%m);
printf("upisi !ro# stupaca druge matrice. ");
scanf("$d"%,);
printf("upisi elemente pr+e matrice."n");
for(i&3;i<n;i)))
for(#&3;#<m;#)))
{
printf("aJ$dKJ$dK. "i#); scanf("$d"%aJiKJ#K);
}
printf("upisi elemente druge matrice. "n");
for(i&3;i<m;i)))
for(#&3;#<,;#)))
{
printf("!J$dKJ$dK."i#);scanf("$d"%!JiKJ#K);
}
for(i&3;i<n;i)))
for(#&3;#<,;#)))
{
cJiKJ#K&3;
for(l&3;l<m;l)))
cJiKJ#K&cJiKJ#K)aJiKJlK(!JlKJ#K;
}
printf(""n umno-a, ucitanih matrica #e. "n");
for(i&3;i<n;i)))
{
for(#&3;#<,;#)))
printf("$d "cJiKJ#K);
printf(""n");
}
getch();
}
-3
$$. Pretraivanje dvodimenzionalnog polja +dijagonale,
Zadata!# "9itati jednu 2vadratnu matricu reda n# =spisati matricu u obli2u tablice, te elemente na (lavnoj i sporednoj
dija(onali.
"apomena: Plementi (lavne dija(onale su oni elementi matrice 2ojima je jedna2 inde2s reda i stupca. Aa elemente
sporedne dija(onale vrijedi da je suma inde2sa reda i stupca jedna2a nK4, odnosno da se inde2s reda pove@ava, a
inde2s stupca smanjuje 1a 4.
Rjeenje:
#include<conio.h>
#include<stdio.h>
int aJ23KJ23K!J23KcJ23Ki#n;
+oid main(+oid)
{
clrscr();
printf ("upisi red matrice. ");scanf("$d"%n);
printf("upisi elemente matrice."n");
for(i&3;i<n;i)))
for(#&3;#<n;#)))
{
printf("aJ$dKJ$dK. "i#); scanf("$d"%aJiKJ#K);
}
for(i&3;i<n;i)))
{
!JiK&aJiKJiK;
cJiK&aJiKJn-i-2K;
}
for(i&3;i<n;i)))
{
for(#&3;#<n;#)))
printf("$d "aJiKJ#K);
printf(""n");
}
printf(""n elementi na gla+no# di#agonali su. ");
for(i&3;i<n;i))) printf("$d "!JiK);
printf(""n elementi sporedne di#agonale su. ");
for(i&3;i<n;i))) printf("$d "cJiK);
getch();
}
.5
$&. 1raenje najmanjeg i najve2eg elementa redova i stupa"a matri"e
Zadata!# "9itaj jednu 2vadratnu matricu reda n. =spiBi najve@i i najmanji element u sva2om redu i stupcu. Iobivene
elemente smjestiti u jednodimen1ionalna polja.
Rje!enje:
#include<conio.h>
#include<stdio.h>
int aJ23KJ23Kma/rJ23Kma/sJ23KminrJ23KminsJ23Ki#n;
+oid main(+oid)
{
clrscr();
printf ("upisi red matrice. ");scanf("$d"%n);
printf("upisi elemente matrice."n");
for(i&3;i<n;i)))
for(#&3;#<n;#))) {
printf("aJ$dKJ$dK. "i#); scanf("$d"%aJiKJ#K); }
for(i&3;i<n;i))) {
minrJiK&aJiKJ3K; ma/rJiK&aJiKJ3K;
minsJiK&aJ3KJiK; ma/sJiK&aJ3KJiK;
for (#&2;#<n;#))) {
if(aJiKJ#K<minrJiK)minrJiK&aJiKJ#K;
if(aJiKJ#K>ma/rJiK)ma/rJiK&aJiKJ#K;
if(aJ#KJiK<minsJiK)minsJiK&aJ#KJiK;
if(aJ#KJiK>ma/sJiK)ma/sJiK&aJ#KJiK; } }
for(i&3;i<n;i))) {
for(#&3;#<n;#)))
printf("$d "aJiKJ#K);
printf(""n"); }
for(i&3;i<n;i)))
printf(""n na#+eci u redu $d #e $d a na#man#i $d "i)2ma/rJiKminrJiK);
for(i&3;i<n;i)))
printf(""n na#+eci u stupcu $d #e $d a na#man#i $d "i)2ma/sJiKminsJiK);
getch();
}
$(. Priprema za pismeni
Aadaci#
4. "9itaj jedno jednodimen1ionalno polje od n elemenata, (n<45) ispiBi sumu svih parnih i svih neparnih u9itanih
elemenata.
*. "9itaj jedno jednodimen1ionalno polje. =spiBi najprije sve u9itane nule, 1atim po1itivne elemente, a na 2raju sve
ne(ativne u9itane elemente.
+. "9itaj jednu 2vadratnu matricu reda n. =spiBi sumu elemenata na (lavnoj i sporednoj dija(onali.
,. "9itaj jednu matricu od n redova i m stupaca. =spiBi nje1inu transponiranu matricu.
-. "9itaj jednu 2vadratnu matricu reda n. =spiBi da li je u9itana matrica simetri9na.

.4

You might also like