P. 1
Rešeni zadaci C

Rešeni zadaci C

5.0

|Views: 5,114|Likes:
Programski jezik C, rešeni zadaci
Programski jezik C, rešeni zadaci

More info:

Published by: Zeljko theFluxmeister Stevanovic on Jul 12, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

09/21/2015

pdf

text

original

8

Zadatak 1.1:

.. , ',' k t' na glavnoJ]1 izlazu ra~1.l11anl.

prog11l!11 kOJI [SP'SlIJC IS'

Sasta iti 113 jeziku

Resenje:

I"~ pozdr8V.C - !SpiSivanje pozdr"va. ,include <stdio,h>

main I) {

printf (!Ipozdrav svima!\n");

Obrada programa:

1) pod UNIX-om (Linux na PC-u)

I. Unos izvornog teksta 2+3. Prevodenje i povezivanje

- ako se koriste matematicke funkcije

4. Izvrsavanje

% vi imeprog,e

% ee imeprog.c -0 imeprog

% ee imeprog.c -1m -0 imeprog % imeprog

2) na PC-u s TURBO C-om c:\> edit imeprog.c c:\> tee imeprog c:\> imeprog

Pokretanje integrisanog okruzeuja: c : \> te imeprog

I. 2+3. 4.

Unos izvornog teksta Prevodenje i povezivanje Izvrsa vanje

l ; nL S (~ 1 ,1 1115~ rt. fnden t TJD r i '1

pczm-av.c • Ispls1vanje pczdr-ava .• ,

inc'luee cs tdi o.hs

3) na PC-u s MS C-om C:\> di

• t imeprng, c

c : ~ el .imeprog,C

r_: ~ _., lmt=<pJ:09

l. 21 4,

lIliUS h-:VIIl'l1ogtl,)ksta l'n'vlllhlj • i ,;i.W ·;jvlIllj.:

b:vl', II V [lI);il) ,

ObrBda una . d .,

IJ prB prtprBmljenlh PO,dBt'Bka

'VII In "kru1.eni~ je IIlfJgu , i fill Tn ,,(/ <' I }Jo( 1(" j

u skr 'Illlljcm 'I

II "Vll0I:lIlIIl~" Iflli ' "

> r 21/ i r ,it: (J~II:

*j

*/

zadatak 1.2:

S ravit: na [eziku C program koji pt.'oeita dva ccla broja s glavnog ulaza x ,

as 0" . . , ra"ullara lZ •

, 'c [~zultat rut glavnorn izlazu racunara, ., ra"Una njli:tov <bl'r '

~~ .u. I

Re~enj'e:

r zbirl.c - I z re cune v srrj e zbira dva cela broja,

lipclucre <stdio, h>

main () {

int al b, CI·

orintf ("Unesite dva cela broja: "); ~canf ("%d%d", &a, &b);

c = a + b;

printf (" Zbir unetih broj eva: %d\n", c);

UN1X

r % vi zbirl ,. c

i ee zbirl, C -0 zbir1 % zbirl

Iunesite dva cela broja: 123 -45 Zbir unetih brojeva: 78

MS-DOS

:C:~ edit zbirl,c c:.\> tee zbirl

c:.\> zbirl

Unesite dva cela broja: 123 -45 Zbir unetih brojeva; 78

I

__j

fO

Zadatak 1.3:

ReienJe:

/' krug. c _ [zracunavanJe obJ.ma kruga i .povrsine

kruga.

':inclu~ <stdio. h> ~4eflne PI 3.14159265359

main () (

dQuble r:

printf ("poluprecnik? ") i

scant (''%If'', &r); .

pr irrt f ("Obim -

pr i nt f ("P , - %.3f\n" I

ovrSlna = %.3t\n",

2*r*PI) ; r*r*PI) ;

% 'vi krug.c

i ee kru

i krug g.e -0 kruq

61uprec 'k

Obim o i«> IGl

Bvrsina _ ~ 62.832

- 314.159

Ic:~ _eli

c:~ tee tll:ruq.e

c:-" 11:. kruq lJluprerug

Ob im cnl:? Ie

lJvrSina 62.832 314.159

zadatak 1.4:

Sasl8Vi1i (18 jcziku C program za izracunavanje povrsine trou~la u ruvni ako su z~dlltc koordinate temena. I'oln,:bnc podatke irati S glavnog ulaza racunara, a rezultat prikazati na glavnorn izlazu racunara.

Resenje:

A.(x A' Y A), 8(x '" Y B), C(x", h), a=~(xH-Xc)2+(y.-Yc)' , b=~(X('-XA)2+(YC-YA)2 , c=~(x. -XB)2 +(YA - Yo)' , s=(a+b+c)/2,

p= Js(s-a)(s-b)(s-c).

I' crougao.c - 6vrsina trougla LI ravni. */ linclude <stdio.h>

linclude <math. h>

main () {

double xA, yA, xB, yB, xC, yC, a, b, c, s, P;

/: Temena trougla: */

rintf ("Koordinate temena trougla\n"); printf ("- prvo teme? ");

scanf (''%If%lf'', &xA, &yA);

printf ("- drugo teme? H);

scanf ("%I£%1f"', &xB, &yBI;

printt ("- trece teme? "J;

scant ("Uf%lf", &xC, &yC);

/+ Stranice trOLigla: */

a sqrt (pow (xB-xC, 2) + pow (yB-yC, 2)); b = sqrt (pow (xC-xA, 2) + pow (yC-yA, 2»); c = sqrt (pow (xA-xB, 2) + pow (yA-yB, 2));

;, ~vrsina troLigla: ,/

S = (a + b + c) / 2;

P = sqrt (s • (s-a) • (s-b) * (s-c); printE ("Povrsina trougla: %f\n", P);

UNrx

% vi tr,ougao. c

i cc trougao. C -0 trougao i t.;ouqao

Koo! inate em~na trougla - prvo eme? 1 1

- rlrugo erne? 5 2

rp.ce temr-? .3 6

Yvr~jna rougJa: 9.000000

MS·/)OS

c:~ ,.ait trouqao.c v : \ tee trQuq!l.O

'", .\- 'trQW]Jao

r(Jrn-(ljndt'~ ''''''mr--IJ(J I.tUIlt]lt} t-r v., /t·m, " 'I 1 '1

rlr 1J(/iJ I,om,", 5 2

I I b("'~· t I /II ... 'I J 6

11I111111/t 'I;HJ(/I ... : '/.(J{){)O()()

U~~k1.~---------- ~ ~ ~

11

l

12

Zadatak 1.5:

Vrcme 'e zal1laje, pornocu broja ~odinll, meseca, dana, sal a i n~inuta. Sas~avili nil jeziku C program za kovame I obrnuti proces raspakivanja podataka 0 vremcnu u jednu 32-brtl'lu cclcbrcjnu promenJ" . parrebne podatke cit~t'i s gtavnog ulaza racunara, a rczultatc prikazati na glavnorn izlazu racunara, )IVU. Po-

AeAenje:

~ ------------~

0·59 0·23 1 ·31 1-12

minut: sat: daD: mcsec:

godina:

6 bitova (0 - 63) 5 bitova (0 - 31) 5 bitova (0 - 31) 4 bita (0·15)

12 bitov8 (0 - 4095) 32 bite

12

I'~

II ; I

godina

mesec dan sat mima

/* vremel.c - §kovanje i

linclude <stdio.h> main () (

unsigned short godina,

unlli- ...... 1 mesec, dan,

. "'~ 'ong vreme;

printf ("Dan me .

scanf" I sec,godl.na?")·

( %hd%hd%hd" .,

printf (.Sat . ,&dan, 'mesee

, ~nut?")' ' &godina);

s can f I"%hd%hd'" r

vreme _ (un' ,&sat, &m1nut)·

- (uns~gned long) god1na ~< 20 s1gned long) mesec

« 16

prin f("Pakovano' dan« 11

godioa _ vreme »' %lu (%Ix) \n" sat « 6

me s 20;' ! vreme, vr ema) "

se.c - vrer e

dan » 16 & OllOf,'

a vreme » 11

I:, Ox1f;

: ~~::~!» 6 & Ox] f· ("R 5 Oxjf:

~a~~kovan' "

an, ill Rec~' Ihd.'hd.lhd *hd

gOdina, sa1;,.· :~hd\n".

rllinut) ; r

sa~ minut printf

raspikovanje vremena.

sat, minut:

r ~. vi V&--.l _,c

minut:

*/

2

NAREDBE

13

Z8datalt 2,' :

Relen)':

m i n L. C - Najman)' i od ·tr·; b

• roja,

#iDclude <stdio,h>

main () I

in~ ar b, c, mi nr prIntf ("Tri br ~

scanf ("%d%d%d"o]a? "J;

nu.n ~ a' ' &a, &b, &cJ;

if (b <' min) ,

if (e < min mn = bi printf " ~ mIn = e;

( NaJmanJ' i=

%d\n" "

min) ;

/* .

, % minl 'I'd broja? 4

,Najmanji=' 2 2 7

./

__ J

/» uredil. e - Uredi vanje tri broja.

*/

1S

Zadatak 2.2:

S3cl'3\ iri na jeziku C program za uredivanje tri realna broja po ncopadajuccm redosledu.

Resenje:

.--- -- -- -~ ------ -
U 5 cilaj: G, b, c
~>~F
2 8 5 Ip ~ a
'--'" a=b -
2 8 5 b=_p_
\...J ~>~
2 5 8 l.e_ =a
a=c -
c=_p
b l~>~F
? = b
b=c -
c =_p
p pis]: a, b, c 'include <stdio.h>

main () (

double a, b, c, Pi prinrf ("Tri broja? seanf ("%If%lf%lf'', if (a > bl (p a; if (a > c) ! P = a; if (b > c) 1 p = b; prin f ("Uredjeno=

") ;

&a, .lob, .I.e); a = b; b p; a = c; c = p; b = e; e = p;

%f %f %f\n", a, b , c i ,

% Uredil

rn brajd? 8 2 5

Uredjeno 2.000000 5.000000 8.000000

zadatak ~.3: d d e Ji)1erane jednacine s dve nepoznate.

. . '(ema 0 v

_ za resava'1Je srs

. ik C 1}rOszrall1 -

a:tavi'l i na .fezi u .... -

/. linjed.c - Resavanje sistema od dve linearne jednacine. . /
lincluds <stdio.h>
main () (
double a l , bl, eli a2, b2, c2, 0, Ox, Dy, x, YI
printf ("Koeficijenti prve jednaeine? ") i
scanf (''%If%lf%1f'', &a1, "bl, &cl) ;
printf ("Koeficijenti druge jednacine? U) ;
scanf ("%1[%lf%1f" , &a2, &b2, &c2) ;
0 = al * b2 - a2 . bl;
Dx = cl * b2 - c2 • bl;
Dy = al • c2 - a2 * el; cita]: a" b[, c,. il2. b2, C2
if (D != 0) { D - Qlb2 - a2b,
x = Ox / 0; D., - clb2 - c2b,
'I = Dy / D;
printf {"x= %10 .. 2f\n", x) ; D, - ajC2 - Qg::, S II
printf ("y= %10 .. 2f\n", y) ; T~Dt-O_ ---
) ,else,
if (Dx==O s s OY==O) );-D"ID T~A~f
Ptintf ('''Sistelll DylD
,e18e je neodredjen.\n") ; y pisi: I pi~i:
pri tf ( "Sistem je pisi:x.y "neodreden" "protil'rotan"
J protivreean.\n") ;
-:~
r! linjed _.J ReAenje;

_-

~:

o,x+h,.l''''('' o,x+b,y=c,

I Kceficij n i _ Ko tiel]' .' p rv« jednaC:in ? n I druge ]' d

,,~ -J . 00 e nacine?

y... 2.,00

123 456

1 2 l 246

D cs D, = Dy == 0.: nedodredeno

inace:

protivrecno

ReA

D Y =:.....!.

D

123 245

zadatak 2.4:

S~slavili ria jC7.iku C program Z3 rcsavanje kvadratnc jednacine.

Resenje:

Jednucina:

I Di skri minanra:

I

r Vrstc rcsenja:

I razlicita realna

2 dvostruka realna

3 razlicita kompleksna

4 linearna [ednacina

5 nema rp_.~pl'1i(J

-b+.Jd

x'~--2-a-

ax' +bx+c+O

d = b' -40c

-b±Jd

xu=~~

-b

Xu = 20

-b±iN

(0'" Ol\d > 0)

21,2 =

20

-c X=-

b

(o=Ol\b=O)

f

.F

x ~I 20

vrsla=KOMPLEKSNI -b

XI =~~ x2 =x!

vrsra=POGRESNA

.i.;

Y, =2a; Y2 =-Y

17

I' vadjed, c -

<stdio,h:> linclu~e <mati,. 11> #indude

main 0 ( b c,

double a, ,

d,

xL :<2, yl, y2;

typed_f enum r

/* /'" /" /* /*

POGRESNA

f'ci]'enti j&dnadine.

Koe 1 -ea _,

'kriminanta ]e naClne.

D151· ' de Lov i ko .. r ens .

Rea n1 ' ,

.: 'narl1.i. delov1 korena.

Imagl , , 'd .,

t re§en]a]9 naClne.

Vrs a

) Vrsta;

vosrfWKI, REALNI, D LINEARNA, KOMPLEKSNI,

v.r s a; , dnacine?

vrsta 'dratne Je

" nt i kva )

, f ("Koefic1Je &b, &C ;

pr i.n t .... 1f%1f%1f .. r &a,

scant ( •

") ;

if (a) b _ 4 • a • C;

d ~ b •

'f (d > 0) (

l. ALNl' ) .

vrs_ta =_ bRE+ sqr't (dl) I (2 * a ,

( I (2 * a);

xl - b _ sqrt (d»)

')(2 .= (-

"f' (d == 0) ( else l.

v!'sta = DVOSTRUKI; x l = - b / (2 • a); else {

vrsta = KOMPLEKSNI;

1 = - b I (2 • e l :

:1 = sqrt(-dl f (2*a); :<2 = xl;

y2 = - yl;

I

else if {bl

vrsta = LINEARNA; x l = - c I b; 'else

vLSta, = POGRESNA;

if (vrsta == REl\.LNI I

riOt! C"Realni koreni su %.2£ i %.2£\n", x l , x2); else if (vrsta =~ DVOSTRUKI)

printf (" DvOstruki realni koren j e %.2 f\nti, xl); ebe it (vrsta == K0l1PLEKSNI)

printf ("Kompleksni kcr ni au (%.2f,%.2£) i (%. f,I!i.2f)\n",

«i , yl, x2, y2); .

el.e it (vrata -_ LINEARNA)

printf ("P.eS€t1je linearn!;! j clnac:tn ~.2f\n",'xlll

.be it (vrata -_ POGRESNAj

pr.intf ("Ppdacl !'lemajll arnlal",!\n");

1 1 1

(-0.50, n.87)

Zadat

Sastav

y

zasva

Rete

/> 1

mail d<

Zadatak 2.5:

.lstavijj na jeziku - program za tabeliranjc vrednosti izraza xl-2.r-2

_1" x' + I

zn s ako X,,,n - .r ::;; x"''' s korakom ~x .

Resenje:

/* tabelal.c - Tabeliranje vrednosti izraza.

*/

#include <stdio.h>

main () {

double xmin, xmax, dx, x, y; printf (nxmin, xmax , dx? If);

s canf ('''If%lf%lf'', s xmt.n , s xmax , &dx);

printf I"\n x y\n-=-=================\n");

for {x=xm i n ; x<=xmax; x+r=dx ) {

y = {x= x - 2*>< - 2) I (x*x tl); printf ("%10. 3.f%10. 3f\n", x , yJ;

x' -2x-2 Y=

x' +1

% tabelal

xmin, xmax, dx? -2 2 .2

pikx,y

x y

=~======~========~==

-2.000 1.200
-1.800 1..142
-1.600 1.056
-1. 400 0.932
-1.200 0.754
-1. 000 0.500
-0.800 0.146
-0.600 -0.324
-0.400 -0.897
-0.200 -1.500
-0.000 -2.000
0.200 -2.:169
0.400 -2.276
f). 600 -2.081.1
0.800 -J .fi05
i . 000 -J.jOO
1.?On -l.211
7.400 -fl. %9
l.(,'!)() -fl. 74;'-
J . hOI) a , ~',"7
;;. oo» -0.100 ........

19

_e enJe:
8) citaj: n
s = 0, i= 1:
/* izrazl.c - Izracunavanje zbira uzastopnih i-: n
prirodnih brojeva. */ r
- -
'include <stdio.h> s+=i++
main o { pisi: S -:::.
int n, s, i; -- -_._;::=;;:;.
printf {lin? ") ; scanf ("%d" 1 &n) ; [, iaro"
for (5=0, i=l; i<=ni
S+=i++) ; n? 5
printf ("5= %d\n", s) ;
) s'" 15
-. - .. _ ~
.... =-- R S

b)

. ledcCih jzraZ~l:

k 2 6' ednostl S

Zadata .' .. Cl1llavanJe vr

e ZlllZI8

lk 1 CplOgT3111

SastHvit1 na J~ZI 1 n

+11'= 'i

a) S " 1+ 2 + 3 + .. , f::

n

, 23 "I",TIi

- -III", j ...... - .' " I

.\ - ,.1 + 1.2.3 ..... n = t i! = L n j

'I . 2 + 1 . 2 ·3 + .. , i~1 i-I j=1

1 3'+ +JI'=I+

s=i!+2.+.·.. .

c)

1/ il

)1 2! 3! + n! = L~

-~+---j.-+ ... I , i=1 "'--

s-, , , , I' -+-+-+ .. +~ 7=1;+1

;+; ;+;+~ 2 3 4

d)

e)

1+2 2 3 1+2+3+ ... +n

1+ + _ +(-1),,-' 2 2

s=i-~-+ ')2 ~l'" 1+22+3 + ... +n

1+21 1+_ +.)

;" izraz2.c - IZracun

vanje proizvadlJ uz, s

lJ.nclUde 'Btdio.h,

Ilia' q {

int n, i; lonq s' Prin:r~f ("n? II • r

tor: !:>.i=l' .I, 'CdTlf ("'Lel" print1 pi ' )c"-n; !3'" ,11,"),'

J d Ilil, 3); -,

--

main () {

int n, ii double s, g; long f; printf (nn? "); scanf ("%d", &n); for (s=g=O, f=i=l; i<=n; iff) {

f *= il

9 += 1. I (i + 1) ; ; 5 += fig;

,-

21

*/

izra:t3. c - Izracunavanje zbi:ra fakto:rijela.

main () i .._

int 11, i; 10tl.q s , f;

printf ("n? "); scanf ("%d", &n); for (5=0, f=i=l; Lx=n , i++) {

f *r:::. ii s += f;

}

printf ("5= %ld\n", s);

.v.

n? 5

s= 153

~tiie:

foz (S=O.,,:f:i=l; i<=n; s+=(f*=i++));

d~

IT izraz4. c - Izracunavanje s Lo z enoq zbira.

*/

'include <stdio.h>

printf ("s= %f\n", sl;

% izraz4 n? 5

s= 111.398381

/" izraz5.c - Izracunavanje slozenog zbira.

"I

linclude <stdio.h>

main () {

int n, i, f, g, z ; double 5; Pr'ntf (nn? "); scanf ("%d", &n); 'for (s~f"'g .. O, i-z~l; i·<-n; i++) {

f += i.;

9 +1 i * i;

e +E Z * (double)f I g; z = -Z;

pr1.n f ("8 %t\n", 8) I

- .... --

~~~. :

~~ .~~/~"

',~,','

. '. vrcdl10sti izraza "

Zadlltak 2.7: rn Z3 labehral1JC 2 3 _ + (_1),,-1 X" = "\' (-1)/-1 1

.' 'progra- - . _ r + X··· L.... . X

'Ii 11'1 ICZlku . b) ~ ~ .X .' '~I

S(\~(:lVI I. n ~ -' I

.11' rJ + ... -+.\' ::: f.,.J.x.

~ ,=X+J ~

- kQI:akOUl I1x . . < r~Xn1&~ S .

za s vako '~flun -'

Reiienje: 81

vrednosti izraza.

b la? c - Ta.beliranje /= t e e ".

linclude stdio.h>

*/

X=Xmll'); x:5 Xm:'lx

s=o,p=;= I; i::,n

s += (p '=x)

i++

main I I I x s p; int n , i;

double xmi n, x.maXr dx , !I I " r &n); .

Printf ("n? "I; scan f ( %~ : f (''%If%lf%lf'' r &xm~nr " a x dx ? ), sea n \ ,,).

printf I' "min, xma x , . 5\11==================== 11 ,

printf ("\11 x _ r-:- -===;_::

:f,or (x=xrn.i.n; xc=xmaxr x+-dx) [ % tabela2

for (s-O, p=i=l; i<=n; i++1 s t= (p *_ xl;

printf 1"%l0.3f%10.3f\n", x , 5);

b

/' T.dbela3.c - Tabeliranje vrednosti izraza. *j

pisi: x, s

n? 5

s xmax , &dx);

dx? -1 1 .2

s

-1.000

-0.590

-0.404

-0.289

-0.167

-0.000

0.250 0.660 1.383 2.689 5.000

'include <s d.i.o _ h> main (I { doUble xmin, "max, dx , x , s , P' int n r . pnntf ("n? "I; sca.of ("%d" &'). r l, prlfltf t " xmi n, xmax dx > II: n I

pr ntf ("\n l\ ,l\. I, \ S=:~f (''%If%lf%lf'', &xmin, sxmax ,

for 1,,='1 in; x<:xmax' . + d 5 o---~====~===========\nn) .

f - , x = xl ( ,

or (s~o, p=r-L, i=l; i<=n' _

7 •• (p ,_ -xl; , i++ I % tabel.3

pnntf 1"\ O.3fUO.3f\n", n? 5

x , ~); xmin, ICmax,

xmin,

xmax,

x

-1.000

-0.800

-0.600

-0.400

-0.200

-0.000

0.200 0.400 0.600 0.800 1.000

Ie

..... _.

-l.OOO

-0,800

-0.600

-0.400

-0.200

-0.000

0.200 0.400 0.'00 o

&dx) ;

zadata

Sastavi.t real nih ~ menata 1

Rasenj

l:inc

::~

in1 pri wru

I

I Braj

ElemE s rear Stan

IBr j

Eleme See 11 Stan..:J

Bc.;);} &'1e ... Sr.cIA

I SCoInQ

B!' s ,

Zadatak 2.8:

23

S3s1aviti na j ziku program za izracunav8njc arirrnetickc srednje vrednosti i standardne devijacijc niza reafnih trojevlI. Pro~ta111 treba da ella i obradujc nizovc i ispisuje dobijene rczultatc sve dok za broj clemcnala niza lie procita null! IiI negauvnu vrednosr,

t-c...,.it__,aj-;:-: n_~~_-lll 11>0

s=d= 0

i= I;

i <: n citaj: a

/ " statist.c - Srednja vrednost i standardna devijacija

niza realnih brojeva. */

int n, i;

printf (U\nBroj e Leme ne.t a niza? rI)i scanf ("%d", &n); while (n > 0) {

printf ("Elementi niza? "); s = d = 0;

for (i=l; i<=o; i++) { scanf (''%If'', &a); s += a; d += a * a; ) 5 /= n; d = sqrt (d / n - s * s);

priotf (" Srednj a vrednost: %.4 f\o", 5); priotf ("Standardna devijacija: %.4f\0", d);

priotf ("\nBroj elemenata niza? 0); scanf ("%d", &11);

,include <stdio.h> #include <math. h>

main [) { doub.Le a,

Sf d;

s+=a

d+=a-

i++

Braj elemenata niza? 10

Element' ti i z e ? 0 1 2 3 4 5 6 7 8 9 Srednja vr dnost: 4.5000 Standardna d.vijacija; 2.8723

braj 1 menata n i ze ? 10

Elementi o i z s » 4 4 4 4 4 5 5 S 5 5 Sr:ednja v xeanasr . «. sooo Standar.dna d_vijacija: O. ~aoo

Rroj ~l~menatR n1za? 10

E)Rm.nli niZd? 0 0 0 0 0 9 9 9 9 9 Sr"'-iflJ" v r rinon t: 4 .. 'i000 [hd"d'Jrr:irld drcvijacija: 4,:;000

s l= n

d=l/dln - s'

pisi: s, d

cilaj: n

1:" 1 opadaJ' u6CI11 i po rastucern redosledu s· bi

, . _ _ po _ a IraL.

0"' ac,UI1i:lV.-j., -. .2 J\Cl

. . ',', C rograml<OJ! ,zr ,., I

$3.l.a\l,I' II" Jcl1kl. P -

" ilr~B1etra "I.

. I' oroi vrcdnostt P' c

'o,zvo J~n ,

ladatak 2.9:

7~1 1" - ~ -_
oitaj: n
Reienje: 11>0 ----
20acaj redosleda sabiranja */ s, = 0 -
.-- redos1ed.c - .._____
/: realnih brojeva. i= 1;
i<n
<stdiO.h:> Is, += lit -
,include i++ -=1
main () { s2: Sl = 0
long n , i; float s l ,
while ( 1) { i= n; -I
scanf ("%ld" , s n) ; i> 1
if (n <= 0) break; 1. I i I i ,- L~l += l/P
i++) sl += J
s1 = 0; for {i=l; i<=n; i--
for (i=n; i>=l; i--) s2 +~ l. I i I i;
s2 = 0; s2) ; pisi: n"s" $2
printf ("\71d %10.6f %10. 6f\n", n, s 1,
)
) Prethodni program je pogodan za obradu unapred pripremljenih podataka koji se citaju (skretanjem 1 glavnog ulaza) iz neke datoteke - nerna pitanja pre ciranja, a procitani podaci se kasnije ispisuju.

redosled,pod

1100 200 500 1000 2000 5000 10000 20000 50000 100000 1000000 2000000 5000000 a

% redo81ed <redosled.pod

100 1.634984 1.634984 200 1.639947 1,639946

500 1.642936 1.642936

1000 1.643935 1 643934 ~~~~ 1.644432 1:644434

1.644725 1 644734 10000 1.644725 1:644834 20000 1.644725 1

50000 1.644725 . 44884

100000 1.644725 1.641914

200000 1,644725 1.644 24

500000 1.6447- 1.64192

1000000 1,644725 1.644932 2000000 1 644725 1.G4493J

5000000 1'64~2,B 1.li449H

, . 725 1.614414

Realni hrojevi II flta da .

Ako . n rdllllJ LatnoNLi hn'\l u 6

,Ii rn!:U~ud' ~~ve brojeva .reha N h' • 7 "'nu~lIjnlh ciflU'li. ::)

e \llJUVul' II In~li po

jno vcliki da uti~e na lb' rlls~u LU r dOll I du (zbir

. rr JcunoD\ y likom vN!dD,'*!ul.

Zadatak 2

Sastaviti n eita daturnd

Resenje:

/. 5Ul,r:

flinc~ main ()

int 4

whilJ pd

-.

/*

.wi ca,

ea.

I' if 81

pr

% sutr

trsne s :

Sut rd~

2S

Zadatak 2.10:

. La iti 113 jeziku C program za odrediv3Jlje narednog daturna u odnosu na zadati dan. Program treba da ~ita daturne j da ispisujc rezultare sve dok za jednu ad komponenata daturna ne procita nulu.

Resenje;

F

;* sutra. c - Odredi van j e da tuma sutrasnjeg dana.

~;

,include <stdio.h>

.110

main () {

int dan, mes, god, d;

r

while (1) {

printf ("Danas? ");

scant ("td%d%d", &dan, 'mes, &god); if (dan==O I I mes==O I I god==O) break;

pisi: dan, mes, god

/* Braj dana u tekucem mesecu: * / ,s .• itch (mes)

case r: case 3: case 5: case 7: case 8: case 10: case 12: d = 31; break;

case 4: case 6: case 9: case II: d = 30; break;

case 2:

d = 28 + (god%4==O && god%100'=O I I god%400==O); break;

t

/: ObrazDvanje datuma za s Ledec i dan: */ if (dan < d) dan++;

e'lse {

dan = 1;

if (mes < 12) mes++; e,lsel [ mes = 1; god++;

Godina je prestupna ako je deljiva sa 4 i ne sa 100. lpak, ako je deljiva sa 400, ona je prestupna, - Vrednost logickog izrazaje 0 iii I.

prin f ("Sutra= %2.2d. %2.2d. %d.\n\n", dan, mes, god);

t Butra

i..Jana.?? 16 5 2005

Du r~~ 17. 0;. POU~.

[JdIJa.~? 31. 5 2005 SU'Td 01. OG. 20a~.

I)""".~:, 31 12 2005 SUlr~ 0/. 01. 2U06.

2.6

Zadatak 2.11 :

Sastaviti on jeziku C program koji 6ita decimalnc ccle brojeve i ispisuje njihovu vrednsot u binarnom obJiku. Pretpostaviti da se za inreruo predstavljanje celih brojeva koriste po 16 bitova, Program treba da

tita brojeve i da ispisuje rezultate sve dok ne pro~ita vrednost 9999.

Reienje:

/* binar.c - iSpisivanje u binarnom brojevnom sistenw. *1
linclude <stdio.h>
dec I xl I I I I I I I I I I I I I I I} { ~ 0 (x=O)
main 0 ( ~~~~~ &~ #-0 (pi)
short dec, i., bit; 8 0 0 0
while (1 ) {
printf ("Decimalni broj? n) ;
scanf ("%hd" r s de c) ; I Citaj: dec
if (dec == 9999) break; dec - 9999
printf ("Binarni broj: ") ; pisi: naslov
for (i=l; i<=16; i++) {
bit = (dec s Ox8000) ~= 0; i-I;
printf ("%d" , bit) ; i:;:16
if (i % 4 -- 0) printf (" ") ; bit - (dec & Ox8000) != 0
dec «; 1 ; pisi: bit
) T~4~
printf (" \n") ;
) pisi: razmak 1
) - I
dec «- 1 I
i++ I
% bine:r ' -,
pisi: novi red ! f
Decimalni broj? 1 IBlnarnL bro]· 000

D .' =:»: a 0000 0000 0001

eClmalnl broj? -1

Blnarni b ro j : 1111

l~eCimalni broj? 327671111 1111 1111

lnarnl broj; 0111

tiec ims ; ' 1111 1111 11· J1

E - ru broj? -32768

D narn.i broj: 1000

ecl 1 . 0000 0000 0000

, rna n i broj? 1234

Bln~Wj bruj; 0000

DeczmaJni broj? -1,65 0100 110.1 0010

Einarn1 bro]· l'

DecJmaJn. b .. ]11 J 101 ooo 001]-

} rGJ? 9999

3

NIZOVI

28

Zadatak 3.1:

Sastaviti no jeziku C program za rabeliranje vrednosti polinoma, koji jc zadat nizom koeficijenata, za svako "'"". S x S x,"'" s korakom r .

Reienje:

.~--~~------.------------~---

p(x) = to/x' '" a.x· + a •• lx·-I + ... + alx + ao '" ( ... «a.x + a._I )x·+ a._l)x+ ... + al )xi-a, • .0

/~ pol inoml. c - Tabeliranje polinoma zadtog pomocu koefi cijena ta.

linclude <stdio.h>

main () { int n , i;

float poli[200], P, xmin, xmax, dx, x;

printf C"Red polinoma? "); scanf ("%d", &n); printf ("Koeficijenti? ");

for (i=n; i>=O; i--] scanf ("%f" I &poli [i]);

printf C:: xmin I xmax I dx? "); scanf (" % f% f% t " I &xmin, sxrnax I &dx]; pr Ln t.f ( \n x p (x) \n====================\n") .

for (x=xrm n , x<=xmax; x+=dx) ( I

for (p=poli[nl, i=n-1; i>=O; p=p*x+poli[i--]);

printf ("%10.2f%10.2f\n", x , p); I

*/

eita]: n

citaj: poli[i] (i=n, 0, -I) citaj: xmm, x"""', tu:

% poinoml

Red pol inoma? 3 Koeficijenti? 1 -2 3 4 xmin,xmax,dx? -5 5 .5

==~=============~===

x pix)

-5.00

-4.50

-4.00

-3.50

-3.00

-2.50

-2.00

-1. 0

-1. 00

-0.50

0.00 0 .. 50 i . 00 .1.50 2.00 1. ',0 3.0C) J. 'H) '1.00 4. ',0 ~.O(J

-186 .. 00

-141.12

-104.00

-73.88

-50.00

-31.62

-18.00

-8.38

-2. 00

1. 88 4.00 5.12 6.00 7.33

10.00 14.62 2;:.()0 11.88 48. (] ('k.U g". oo

X=Xmin; x $xma.'l

p = poli[n], i = 0-1; i2> 0

pisi: ~\', P .- -

29

Zadatak 3.2:

Sa taviti 11:1 jeziku program za izracunavanjs srcdnje vrednosti onih elemenata niza celih brojeva koji su dcljivi sa hi Program lreba da procita niz, izvrsi trazenu obradu, ispi~e dobijcni rezultat i ponavlja prethodne korake sve dok za duzinu niza nc procita ncdozvoljenu vrednost,

Re!enje:

~i;taj: n
srvredl.c Sx edn j e vrednost brojeva li<o 1111>100
I"~ - ci.taj: ali] (i=O, n-I)
deljivih sa trio */
s s= i - k- 0;
linclude <stdio.h> i<n
~%3~
main () { s+=a[i] I
int a [100J, i, k, n; -
double s; k++ I
while (1) { itt
printf (Un? II) i scanf (lI%d" r s n ) ; ;--.___ k _____ F
if (n < a II n >100) break; s /= k I
printf ("A? U) ; -
for (i=O; i<n; i++) scanf (f1%d", &a [il ); pisi: s
for (s=i=k=O; i<n; i++)
if (a [i) % 3 == 0 ) { S += ali] ; k++; }
if (k) s /= k;
pr i n t f ("s= %f\n", s) ;
}
) % srvredl n? 10

A? 1 2 3, 4 5 6 7 8 9 0 s= 4 .. 500000

n? 5

A? 3 6 9 12 15 s= 9.000000

n? 5 M1ll11 s= 0.000000

n? -1

30

zadatak 3.3:

SastaViti na jezisu C program koji procita dva vektora zadate dnzine s realntm komponentama, izraCll1l ,p'" ""IMn' pro'mod , "p".j' dobi)'"' rezultat- p"thoOO, radnje ponavlia sve dok se za duzinu vek-

tora ne proti1.a nedozvoljeoa. yredlloSt.

Resenje:

/* skalprol.c - Skalarni proizvod dva vektora. #include <stdio.h>

#define DIl'! 50

*/

skal jpro = i = 0; i<n

skal_pro += a[i]*b[i] i++

main () {

double a[DIM], b[DIM], skal_pro;

int i, ni

while (I) {

printf ("\nDuzina vektora (na j v i

. scanf ("%d" I &n); a s e %d)? "! DIM);

1f (n <= 0 I In> DIM) b k'

, f rea,

pr1nt, ("Komponente vektora A? ") "

for {l=O; i<n; scanf" " . .

printf ("Kom . (%If I &a[l++]));

f . ponente vektora B? n).

or (1=0; i<n; scanf ("%1f" . r

for (ska1 pro=i=O" .' &b[i++]));

. f ~ ! a cn , 1++) sk 1

pr i nt ("Skalarni' a _pro += a [i) * b [i] .

proJ.zvod A*B= %10 3£\ " '

. n, ska1_pro);

pili: skalp _pro

tltalPrOl

I Duzina ve« t.o r«

Komponen (najvise

K e vek ora A? 1

ompon n ~ . . - Ska l e r . ~ Vp.kLora B? 5 n] prOJ.zvod 11*8-

50)? 5 2 345 432 1

3".000

Duzina v k.tora ..

Kampon nte (na.1vlse 50) 7 10

K vekLora II? '

, ompOftl2n t e ·1 -2 3 -4

,'ike1 ' lieklord J3? 10 .' 5 -6 7 -8 " -I' 0

arnl proizv ~ .. 9 -8 -7 6 ~

, DC, II' B . 5 -4 -3 2 1

IIJu7.1ntl ' a.OOO

vr-k i o r n (ria ] .

jVJ .~" 00)? 0

Zadatak 3.4:

Sasl<lViti program najeziku za nalazenje vrednosti najmanjeg elementa u nizu realnih brojeva. Program rreba da cita i obradujc nizove ve dok za duzinu niza ne procita nedozvoljenu vrednost.

Resenje:

-- -~
Prvi lement niza se. proglasi za najmanji, Posle se trazi da Ii u J Maj:n
nizu poston lO~ mania vrednost. n<-O II n>NMAX
citaj: ali] (i=O. n-i)
/* min2. c - Najmanji element niza. */ min - a[OJ
i-I;
Ifinclude <stdio.h> i<n
'define NMAX 100 IT~<~F
main () ( [min -ali] I -
double a[NMAXj! min: i++
int n, i; pisi: min
while (1 ) {
printf ("n? II) ; scanf {1I%d" , &n) ;
if (n<=O II n>NMAX) break;
printf ("A? II) i for (i=O, i<n; scanf ("%1f", &a[i++j));
min = a [OJ;
for (i=l ; i<n; i++) if (a [ iJ < mini min = a [iJ;
prin~f ("min= %.2f\n\n", min) ;
J
J 1% min2 n? 5

)!.? 8 3 6 2 3 min= 2.00

n? -1

31

32

",uri. pro "j"i'" C,. ,b_j, ,00,,1"'" el ern enata (0· za "m'DO P""O, elernenta s posted-

Dji", s ""'''''',I edn ;'''' itd.) "d,ro, niza ",.Inih brojOV" Pro",'" Ire.' do 'ita i obraduje nizove

sve dok za dtdinu nizs ne procita nedozvo1jen1J vrednost.

Zadatak 3.5:

'include <stdio.h> ,#define NMAX 100

i++

-

RetenJe:

l ~itaj: n

'1/* obrnil. c

*/

n<O II n>NMAX

cita]: a[il (1=0, n-I)

i-O,j""n-l; i<0_

b - afi]

Obr'tanje redosleda elemena ta n i z e .

a[l1- aU]

main ()

double a [NMAX 1 ; int, n , L, j; while (1) {

• printf ("n? H); scanf ("%d" &n'

1f (nx=D '1 I n>NMAX) b '. ' ) ,

, reak,

pnntf ("A? H); for ('- '

for u-o '_ ,1-0; i cn: scanf

• )-n-1; l<j" '

double b = a [i i. '[ ,l+ 1+' J"_'-) {

I ,a1 =a[J];a[jJ

printf ("A="); for

printf ("\n\n") " (i=O; i<n; printf

) (" %.2f", a[i++]»;

a(jl- b

pisi: ali] (j=0, n-l)

(''%If'',

&a[i++J»;

= b;

n? 5

A? 1 ,2 34 5 IA= 5.00 4.00

3.00 2.00 1 .00

% obmil

n> 6

II? 1 2 3 4 5 jll= 6.00 5.00

l:? 0

6

4.00 3.00 2.00 1

" 00

Zadatak 3.6:

Bjnomni koeficijcnti su definisani formulomfc B",k '= B,,-I,k-I + Bn-I,k za 0 < k < n, odnosno Bn,o = Bn.n = I (n=O 1, 2, .... ). Sastav:iti na jeziku C program za ispisivanje svih binomnih koeficijenata za svako 0::; n:S

Resenje:

1>:1 ~ I.~ L~ I ~ I Z I s citai: nmax
I I I I (11=4)
n = 0;

b:1 ~Il I I I I (n=5) n <= nmax
brill = 1
k: k= 11-1;
k>O
Ih[k] += h[k-I]
Ispisivanje binomnih koeficijenata. */
/* binkol.c - k~
li:nclude <stdio.h> pis]: b[~J (k=O, n)
n++
main () { I
int n, k, nma x , b [20 1 ;
printf ('!Inmax? 11 ) ; scanf ("%d", &nmax) ; I
printf ("'\n") ;
for (n~O; n<=nmax; n++) {
b[nl = 1 ;
for (k=n-1; k>O; k--) b[kl += b[k-1];
for (k=O; k<=n; printf ("%4d" , b[k++l» ;
printf ("\n") ;
I
I 1% binltol
Ilmax? 12
1
1 1
1 2 1
1 3 3 1
1 I} 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 2lO 252 210 120 45 10 1
1 II 55 165 330 462 462 330 165 55 11 1
1 12 66 220 495 792 924 '192 4% 20 ; , 1, 34

ladatak 3.7:

Sa'taviti na jcziku C progml1\ za izost'1Vljanjc. svih cleIl1cnata zadato~ niza brojcva koji irnaju neku zadatu vn.-dnost. Pr(lgr;tI11I~eba da obrmluJc I rOlzvo1Jan hroj kOl11pleta ulaznih podalaka.

Reienje:

j:~ l

::~}ljI214IjI3Iil \

-rn ~al

b) posle obrade ~

I Element! se ispitujU redom (indeks i). Ako i-ti clement trcba da oslane. premdla se naj-to mesla.

I . ova dUZln3 run je zavrsna vred-

nost mdeksaj.

;:~ ::~~ 1318131213 M r

»rn

0) pre abrade

I' izostl.c Izostavljallje odredenil1
elemenata niza.
* include <stdio.h> */
,define N 100
main () {
int i., j, k , 11, a[NJ;
"hile (1) {
printf ("n? "): scanf (U%d" I
if (n<=O II n>N) break: &n) :
printf ("A? "); for (i=O;
printf (" k" "); i<n; scanf (lI%d"! &a[i++J»;
for scanf ("%d" I &k) ;
(i=j=O; i<n; i++)
n = j; if (a [i J != k) a[j++J
= a [iJ;
rintf ("1'.= "); for (i=O;
printf ("\n\n") ; i<n; printf ("%d "
) ,a[i++)));
)
lcitai: II
c---
® izolltl 1I<-OIIIl>N IJ
n? 8
A? 3 2 5 8 3 2 Ntaj: afi] (;·-0. II I) I~
k? 3 4 3 ciJaj: k
11- 2 5 8 2 ; .i-O;
4 i<n
n? 5 ~[j1!-~1
A? 1 2 3 4 5
k? 9 La(j++I· <I[i1 1 ..
. 1
2 3 4 5 i-H
? 5 ~=.i
? 1 1 1 1 I '-1pi~i: lI[il Ii 0.11 It
? 1 1 ~
~ II

n II k II

nl 0

Zad;

S8StJ

d.cnj

Re

n;

A? b?

A~

'}_""

printf ("A~ "); for (i~O; i<n; printf ("%d" a[i++J»); printf ("\n\n");

3S

Zadatak 3.8;

asia iIi na jeziku C program kojim se u urcdcni niz brojeva urnece novi br j tako da niz i daljc bude ureden. Program treba da obraduje proizvoljan broj kornplcta ulaznih podataka,

Resenje;

I p~ev ad kr; niza, elementi so porneraju za po jcdno rnesto unapred (prcma kraju), sve dok HLl veci od novog broja.

Broi se stavlja iza prvog nepomerenog elcmcnta (na pocctak niza aka SlI svi clementi pomereni),

----------~--------------~--~

Q I 2

-- --_ ~-~~--

a.-I I I I I I 1,)0 I

sb

,I,I~-"

I:

b:D

/~ ume t n i , c - Umetanje broja u v reaen i n i z ,

*/

#include <stdio,h> #define N 50

main () j

int i. n, b, a[N+l]; while (1) I

p r i n t.f ("n? "I; scanf("%d", &n);

if In<'~O I I n>N) break;

printf ("A? "); for (i~O; i<n; scanf ("%d", &a[i++]); printf ("b? "); scanf ("%d", &b);

for (i=n-l; i>~O && a[i]>b; i--) a[i+l] = a[i]; a[i+l] ~ b;

n++;

umetni
n? 12
A? 2 41 ,6 8 10 12 14 16 18 20 22 24
b? 9
Jlr 2 4 6 8 9 10 12 14 16 18 20 22 24 n? tz
A? 2 4 6 8 10 12 14 16 18 20 22 24
h? 1
A- 2 1 6 8 10 ]2 14 Ie; 18 Oil 22 ?I)
II? 12
,~ ? 2 4 6 8 10 12 14 16 lS 20 22 24
br 27
II ;; 1 v II 10 12 II) 1 G 18 :!(J ?" ;'11 ;;! '/
. ,.
ft:'" 12
III 2 C Ii 8 10 1.2 14, 1I!l 19 20 22 24
I,t 14
II 4 , II J() lot 14 14 J, I Ii 'IJ ' , 'I
.
I. 0 z..w... ...

36

Zadsts!! 3.9:

Sastaviti na jeziku C program za razvrstavanje nizu brojeva u dva niza tako da sc u jcdnom nalaze nega, rivni. a II dmgmn ostali elementi poeetnog niza. Program trcba da obraduje proizvoljan broj kornpleta

ulaznih podataka.

ResenJe:

;, razvrst,c - Razvrstavanje elemeneta n.iza ,
*/
linclude <stdio.h>
,define N 100
m~in () {
int a (N], bIN). c IN]. na. nb, ne, i;
.. hill! (1) I
printf ('l\nn? "); scanf ("%d", &na) ..
if Ina<=O II na>N) break;
printf ("1\? ") ; for (i~O; i<na; scanf ("%d" •
for (nb~nc=i~O; i<na; a[i)<O &a[i++J»;
? (blnb++)=a[i++] )
printf ("B= "); for (i=O; i<nb; printf ( "%d " :. (c[nc++]=a[i++]»;
printf ("C= I'); for (i=O; i<nc; t b[1++]»; printf ("\n");
printf I"%d n
) r C[H+]»; printf ("\nn) ;
)
f ~ lcit~: na ~
razvrst na<-O II na>N
]n? 5 citaj: ali] Ii O,n I}
nb nc i 0;
A? 1 -2 3 -4 5
B= -2 -4 i<na
le= 1 3 5 l ' I
o[i]<O? (b[nb++] a[i++]) : (e[nc++) a[i++]) I,
n? 3 pisi: b[i) (i 0, nlr-l) I
A? -1 -2 -3
B= -1 -2 -3 pisi: e[i] (FO, nc 1) ~
c= n? 4.
)17 1 2 3 "
I~: ? 3 4
In? 0 III)? fi

H '1 2

4

,;

37

Zadatak 3.10:

astaviti na jeziku program za nalazcnje fuzijc dva niza celih brojeva koji 511 urcdeni po neopadaJucem rcdosledu 1I treci. na isti nacin urcdcni, niz. Program treba da obradujc proizvoljan broj kompleta ulaznih podataka.

IResenje:

~ Uporeduju se po jedan clement iz oba niza, manji se stavlja na kraj rezultata
i uoci se slcdeci element niza kojem je taj manji pripadao .
. 4: Kad se dode do kraja jednog od nizova, ostali elemcnti drugog niza se
la: doda j u na k raj rezultata,
ia = ib = ic = 0;
b:~ , ~ io-cna II ibcnb
I -
iii: • .c: 7314151517171813 c[ic++] = (a[ia]<b[ibJ)?
tc: a[ia++] : b[ib++]
a) Pocetni nizovi b) Rezultantni niz ia« na
I c[ic++]- a[ia++]
/* fuzija.c - Fuzija dva uredena niza ib < nb
celih brojeva. '"I I c[iC++] = b[ib++]
nc = ic
#include <stdio.h>
ldefine H 100
main () {
int a[N] , na, b[N] , nb, c [2*N], nCr La , ib, iCi
while (1 ) {
printf ("na? ") ; scanf (It%d" , &na) ;
if (na<O II na>N) break;
printf ("A ? ") ; for (ia=O; ia<na; scanf {'! %dP, &a [ia++]»;
if (na ==; 0) printf ("\n") ;
print[ ("nb? If) ; scanf ("%d" t &nb) ;
if (nb<O II nb>N) break;
printf ("8 ? ") ; fo,r (ib=O; ib<nb; scanf (lI%d!l, &b[ib++]));
if (rib ~= 0) printf (" \n") ;
for (i a=ib=ic=O; ia<na&&ib<nb; clic++]=(a[ia]<b[lbj)?ali ++]:blib++]);
.. hile (ia ,; na) clictt) = a[ia++];
while (ib < nb) c [iCH] = b I ib++];
ne c;
printf (" r: - ") ; for ( i -0; ic<nc; pI:" ntE ("%d " elL +. J) ) ;
r
prir,tf (" n \nfi);
)
J il J? 4

II ;" 1 2 3 .. JiJ,. 0

1\ '

j, fU:tij,a
II/a? 6
/, ? 1 2 3 4 e 6
III) I 5
,I. 4 5 6 '1 ,B
t : I ? I 1 1 r :; (, I Ii II

t: 12 3 4

(' ? J I. ,.

1M_.10

38

zadatak 3.11:

SoSlov;t; on j~ziku C ptogTum za urcd;vanje nizlI brojcva po neopadajuCe111 redoslcdu mclodom izbora.

progf~m treh~ do protito dtd:inu nize, popuni niz lucajnim jed110cifrenim decimalnim cclim brojevima, "p'" doh'j~' niz ","", niz, ispise dobi jOP' rezu ,., , P"'" j 0 ,,,,,,,,p, korake sv dok za d,."" pi"

ne pre 6l~ ncd()ZVllljenu vr~dnost.

~eSenje:

• sott2,C _ rJredivanje niza brojeva ,include <stdio,h>

'includ4 <stdlib .11>

,define N 500

main II (

int n , a [NJ, while (11 {

b, i, ji

1* Citanje duiine /liza: *1 printf ("\nDUZina niza? "I; scanf ("%d". s n l :

if In <~ 0 I In> N) break;

/',Stvaranje i ispisivanje niza: ./ prlntf ("\nPacetni niz:\n\n"); for li=O; i cn: i++) [

pr in t f (" %d ", a i i 1 = r and (I / 1f Il%3a~-29 II i=~n-11 p r i.n t f

I

Ii'" Uredivanje n i ze : *1 for (i-O; i<n-1; i++1

for (j=i+1; j<n; j++1 ~f (a [i 1 > a [j J 1 { b

= ali]; IT. Ispisivanje u redenoq niza· */ ~rlnLf_("\nUredjeni niz:\n\n~l·

or (1-0; i cn , i++1 { ,

~rlnLf ("%d ", a j i l j ,

1f I i%30==29 I I '--

I 1--n-l) printf

metodom izbora, * /

r----·- - -

U i-tom prolazu (i=0,1, .. "n-2) na-i-~ =

se d~vodi (bira) najrnanji broj m, edu elernentirna mza od z-tog mesta do kraja niza.

.,N,'I I "~I ,,,, t~, \

~

(RAND MAX + 1.1 * 10); (" \n");

a [i] =

a[j]; a[j] = b; 1

i 0; 0
;<n-[ Ii
j ;+1: ("\0") ;

d+

T~i]>~

b- ali] 11

ali] = a[il - ~

avO] = b

, uredi2

Duzi.oa niza? 100 Pocetn" nix:

05185438 16130678 ;0600922

9 "1 3 1 641)

j++

871 8 753

5387 0031194

995 1

5687427 428278

65 449715

1 _.:;,_
0 5
9 9 u
3 :! :! 8 0
7 6 c ~
" .J
c Ucedjeni n i z:

o 0 a 0 a 0 0 33"333°00 ~66~ 313 8 I 9 ~ ~ 0 6 666

9 9 9 9

ImZJfld nll"')

"' -1

0 J 1
4 4 4 1 ., , ,
6 7 4 4 ~ .~ ~' , ,
I 7 " 5 ., r
7 7 II cl <; 5 "
,I II ,,' Ji
~~ <' ~\~
" ~ NIWVI -

Zadatak,

Transpono Sastaviti n da obradu

Reilenje

I· tra·

/li,rJolu lldefin

main ( dout int "hi]

/ pl

if

I

39

Zadatak 3.12:

Tronsp0l10V8J18 matricaje matrica koja se dobije kada se vrste pocetne matrice poredaju po koJonama. Saswvili na jeziku C program za transponovanje kvadratne rnatrice s realnirn eJementima. Program treba da obraduje prol7;volJna broj pocetnih matnca.

ReSenje:

main 0 {

double a [N] [N], b; int L, j, n :

while (1) [

j=

'Jim

0[11[11 = a[l1[O aU][11 = b

/: transpl. c - Tt"ansponovanj e kvadra tne ma tri ce.

,------

*j

Svaki element alj unutar trougla iz-I nad glavne dijagonale treba zameniti njegovim simetrienim elementom aji ispod te dijagonale,

linclude <stdia.h> #define N 20

i++

i = 0;

j<n-I '

r---:-~----i I j= i+l;

j<n

b = a[i](il

/* titanje dimenzije matrice */

printf ("\nDimenzija? "): scanf ("%d", &n);

j++

if (n <=0 I In> N) break:

/* titanje elemenata matrice */ for (i=O; i<n; i++) (

printf ("%2d. vrsta? ", i);

for (j=O; j<n; scanf (''%If'', &a til [j++]));

j* Transponovanje matrice */ for (i=O; i<n-l; i++)

fo,r (j=i+l; j<n; j++)

{b = a[i][j]; a[i][j] = a[j][i]: a[j][i] = b; }

j' Ispisivanje matrice */

printE ("\nTranspanavana matrica:\n"); for (i=O; i<n; i++) [

for (j~O; j<n; prlnt.f ("%6.2lf", a[i][j++j)); p r ntf ("'n"l;

Dim_nzij r 3
0, vrs r u r 1 2 3
1. VI .'1 a? , 5 s
1.. vr,C;la? ., B 9 mrJ t r 1 co : t.UI! !l.on

'/. 00

'/11 II i,UIIOVrJllti

i . fI(J 4, on

c, (JU '. {JU

,(II) II. (IV

/Jjl/l I, l ) • -1

Zadatak 3.13:

SasUiviti 08 [eaiku C program za uredivanje kolona puvougaone rnatrice s realnim eJementima po neopa-

dajucem redosledu zbirov3 elemenatll po koionaIlla. Program treba da obraduje proizvoljna broj pocetnih

mattiea.

Ralenje:

"/

/" matrical.c - uredivanje !IIstrice po zbirovima kolona. 'include <stdio.h> "define N 30

t matrioal

main () {

float a [Nl [N], 5 [N] i p; int m, n, i, jl min;

m, n7 3 5

O. vrsta? 2 7 3 5 4

1. vrsta? 7 2 5 • 1

2. vrsta? 6 3 1 2 3

III, n? -1 -1

while (1) {

1* Citanje di!llenzija matrice: *1 printf ("\nm,' n? ");

scanf ("%d%d", sm, &n);

Uredjena roatrica: 4.00 3.00 5.00 1.00 5.00 4.00 3.00 1.00 2.00

7.00 2.00 3.00

2.00 7.00 6.00

if (m<=O II m>N II n<=O II n>N) break; /» Citan]'e elemenata matrice: 'I

for {i=O; i<m;' i++1 {

printf ("%2d. vrsta? ", i); for (j=O; j<n; scant ("%f",

8.00

9.00 11.00 12.00 15.00

&a[i] [j++l»;

/* Racunanje zbirova elemenata po kalanama: */ for ()=O; )<n; j++)

for (s[j]=i=O; i<m; s[j)+=a[i++)[jll;

/» Un~di vanje kalona po ve l i c i neme b i .

for (1=0; i<n-1; i++) r z z rova : */

I' traien~e najmanjeg zbi.ra *1

fo~, (m1n=,-,j=i+1; j<n; j++)

,.1£ (5 [J I <s [min]) min = j;

1f (mi n '= i) {

P:S[il; 5[i]=s[minl; s[minl=p; / zamena kolona */

for (j=O; j<m; j++)

i p=a(jl [i); a[j] [i]=a[j] [mini,;

a [ j 1 [mi n J =p; J

I~.I p i s: vanje ur Cl .'

r i n t ("\nUred "e ne mat.r u: : */

for (i-O" j eria ma tr I a: \n")' .

. ,I'm; i++) ! '

prIn f '" ") .

for Ij-O; j<n' . :

, ptintr ,1"'11'''1,: Ptl.nU ("¥.Ii U"

• " i a [1, [1 HI));

prj ".! tOr (j ):>r1.11 j prill j fOr Ii r" i fI! t

I"

0; j <n I 1"\ n") . (II I

C): j'll; (" n") ~

'') ;

prilli! ( " ,h. ~! "

. I Jill)) i

4

POKAZIVACI

.,

Zadatak 4.1 :

Sast8viti prognIDlllajezjku C z~ r.1ala~enje vrednosti najl~an~eg elern~nta. U nizu celih brojeva. Za pristup eiementima niza konst!'l po,kaz",ace. program treba da ~lta • obraduje nrzove sve dok za duzinu niza ne

p~ita nedozvoljenu vrednost

ReienJe:

/» min3.c - Nalaienje najmanjeg elementa niza. linclude <stdio.h>

#defitle NMAX 100

main o !

int a INMAX) , n , min, *p:

while (1) !

. pri.nt f ("n? "): scanf ("%d", &n): 1f (n<=O I I n)NMAXl break'

pr,intf I"A? "); for (p=~,. p<a+n,'

tm n = 'a; scanf ("%d", p++));

for (p=a+l; p<a+n; p++) if (*p

p r i nt f ("min= %d\n\n", min); < min) min = *p;

It ain3

n? 5 A? 6 3 9 2 4

Imin= 2

n? -1

*/

/* obrni2.c - Obrtanje redosleda elemenata niza.

*/

Zadatak 4.2:

Sastaviti program na jeziku C za obrtanje redosleda elemenata (tj. za zamenu prvog elemema s posJednjim. drugog s pre!posled~ji~ itd.) za~atog niza celih brojeva: Za pristup elementima niza koristiti pokazivace. Program treba da 6ta I obraduje nizove sve dok za duzmu mza ne procita nedozvoljenu vrednost.

Resenje:

linclude <stdio.h> ,Idefin.e N.MlIX 100

main () {

l.nta[NMAXj, *p, =q , n; while (1) {

.. p.rintf (nn? "); scanf ("%d", &n); if (n<=O I I n>NMAX) break;

f ("%d", p++»,' printf InA? "); for (p=a; p<a+n; scan

f,o~ (p=a, q=a+n+Lr p<q; p++, q--) {

int b = *p; *p = *q; *q = b;

} , tf In %d", .p++»; printf("\n\n");

printf (nA="); for (p=a; p<a+n; prln

[I

% obrn12
II? 5
JI? 1 2 .3 4 5
A= 5 4 3 2 1
III? 6
A? 1 2 J 4 5 6
JjK 6 :5 -1 3 2 1
!If -1 Zadatak 4,3:

Sasl0viti na jeziku C program za uredivanjc n:iza brnjcva po neopad~juc<:_Jn redo,sledu. metod.om umetanja. Prognul1 {reba da prot1ta duill'lu mza, popunl nil sltltaJ!lIm JcdnOClfrcllntl dcctmalmm celim brojevirna ispi~e dobijeni niz, uredi niz, ispisc dohijcni rezultat i ponavlja prctblldne korakc sve dok za duzinu ni:a: ne pro~ita nedozvoljcl1u vrcdnost. Niz smestit! II dinamicku zonu memorije.

ReAenJe:

i-I; i<n

*/

;, uredi .c - uredivilnje niza brojeva metodom umetanja.

,include <stdio.h> 'include <stdlib. h>

main o {

U i-10m prolazu (/= I ,2, .. "n-I) i-ti eJemem Ie umece na .odgovarajuce mesto izrnedu prvih I vee uredenih clernenata.

int n , *a, b, i, j;

i;~

Q ! ? . I

a,~[!:H I ~,I .. J.~ I I I I ('" I

5(b=arm j:

whila (1) {

1* Citanje duzine niza: */ printE {"\nDuzina niza? "j; scanf ("%d", &n);

if (n <~ 0) brea'lt;

/* Stvaranje i i sp i s i vanje niza: "/ a ~ malloc (n*sizaof(int));

pr1nt~ (,,\~pocetni niz:\n\n");

for (FO; l<n; i++) (

printf ("%d ", ali] = rand() /

} If (~%30==29 II i==n-l) p r i ntf (RAND MAX + 1.) * 10); (U\nnT;

~

~b=-=a~(i=J=====~ I

j=i-Y;

/>=0 && a[j]>b I l a[j+l): ali1

i-Ii r:a~[j+';-;I~J-;- =b ---1[1

I" UreC!ivanJe niza: */ for (i=l; i<n; i++) {

b ~ a [iJ;

for (j=i-l; j>=O &&

a[)+lJ = b; a[j]>b; j--) a[j+l] =

J

a [j];

/: Ispisivanje ur C! .

printf ("\nUr d' e. en~g n z z a : */ for (i=O' i e jeru, n i z : \n\n" I '

. ' <n; 1++) ! r

pnntf ("%d", a[i])'

~f (i%30-~29 I I '-- '

l--n-1) printf '"\n");

i++

-

/» Uolstavanje

free (al; niZ8: ,'/

)

I

'r-

i \lred!3

D!Jz1nB niZd? 25 POCetI1i ni

I 2:

() ~ )

55138117)

ur a1 ' B 1 j i a

nn; ni z : - 0 J / J I) -I

,(JOOoo ]UO

I ) 1

l)Jjzj /iii 'I' ?rJ t

-1

J J i

j '1 4 1/ 'J :J IJ

./ I II Ii II II 'I

Zadatak 4.4:

Sa taviti na jeziku C program za nalaicnje unije preseka i lik d .

.. di .. k ..' esexa ] raz 1 c va skupa real h L.. •

mesnn U inarnic U ZOIlU memonje. Program treba da ob . duie _. . . . III lJroJeva. Skupove

. fa uje proizvoljan broj parova skupova.

Resenje:

*/

/* s k up L, c - Obrada skupova rea.Lnih brojeva. ,i.nclude <stdio.h>

,include <stdlib,h>

main ()

float *sl, *s2, *53: int n l., n2, n3, i, j;

while (1) {

/* Citanje podataka: */

printf ("\nnl? "); scanf ("%d", &n1);

if (n1<0) break;

sl ~ malloc (n1*sizeof(float));

printf ("Sl? "); for (i=O; i<nl; scanf ("%f", &s1[i++]));

if (nl == 0) printf ("\n"):

printf ("n2? "); scanf ("%d", &n2);

if (n2<0) break;

s2 = ma110c (n2*sizeof(float));

printf ("S2? "); for (i=O; i<n2; scanf ("%f", &s2[i++]));

if (n2 == 0) printf ("\n");

/* Unija dva skupa: */

s3 = ma Ll.oc «01+n2) *sizeof(float));

for (n3=0; n3<01; n3++) s3 [03) = sl [n3]; fO·.r (j"'O; j<n2; j++) {

for (i=O; i<nl &.& sl[i)!=s2[j); i++); if (i == n1) 83[n3++) '" s2[jj;

9~ - ~ea11oc Is3, n3*sizeof(float));

pri t ("cl 32- If); for (i"'O; i<n3; printf ("%.2£ ", $ [H+I»:

p r Ln f (If n");

fr<1te (&3);

/» Pr .. 3 k dvu akupu : ./

,'1 m 1101; ((nl .... nZ·fnl:nZ)·'.iz.of(float»;

fo,1:' (rl,-1 0; i"-nl; in) I

tor ("\ 0; j .... 02 I, h !lll J 'I ! -112 1111 j I I ) ;

if (j .... n21 fl31n3tlJ ,1 [! 1 i

".110{~ Is'l, nV.ill.ot(floatl) i

("B]*tl2 ")1 for; (i OJ I rd, pi Lntf ('''Lit ".

(" "jj);

'j J ;

~"~ .. t
I" flU
I' r ,,! t
t f ( II [1++1)) 1

d~ ------------------------------------------~

/'< Iladika dva skupa: • / 53 ~ malloe (nl·si~eof(float));

fo~ (n3~i~O; i<111; iH) {

fo~ (j~O; j<n2 && sUi] !=s2lj]; j++);

if (j P= 112) 53l113++1 ~ sl[il;

53 _ real10c (53, n3·aiEeoflfloat));

pril1tf ("51-s2= "); fo~ (i=O; ;'<113; printf ("%.2f ", s3[i++l));

printf ("\11");

free (53);

free (sl); free (52);

nl? 4

5l? 2 4 3 1

n2? 5

52? 7,5 6 3 ,4

51+s2- 2.00 4.00 3.00 1.00 7.00 5.00 6.00

51"52= 4.00 3.00

51-s2= 2.00 1.00

n1? ,5
51 ? 7 2 5 1 4
n2? 3
52? 6 B 3
51 +52- 7.002.00 5.00 1. 00 4.00 6.00 8.00 3.00
151'52-
51-52- 7.00 2.00 5.00 1. 00 4.00
11' 4
51? 7 2 5 4 n2?

152?

51+s2- sl <'52-

151-52=

n1? 5

51? 2 8 4 7 9

fl2? 0

'52?

sl+s2- 2 00 8

sl's?- - .00 4.00

ls1-32- 2.00 8.00 4.00

I nl? 0

81 ?

4 275 7.00 7.00

4

2.00 5.00 4.00 2.00 5.00 4.00

7.00 9.00 7.00 9.00

,n2? 0
S2?
~,J '112_
,11',,2u
'J1-s2
I rd? -1 Zadatak4.

Sastaviti na dinamicku :

Relenje:

to' tran: #incJ,ud Unclud

main (J whill int

1* p r ; set

if (I

/. a fo

Zadatak 4.5:

tavili na jcziku C program za transponovanjs pravougaone rnatrice celih brojeva, Matricu smestiti u dinarni ku ZOl1U mcrnorije. Program [reba da obraduje proizvoljna broj pocctnih matrica.

Resenje:

/' transp2.c - Transponovanje matrice. #iJlclude <stdio.h>

linclude <stdlib.h>

main () { while (I)

int **a, **b, m , n , if j;

/* Citanje dimenzija matrice: */ printf ("\nBroj vrsta i kalona? "); scanf ("%d%d", sm, &n);

if (m<=O I I n<=O) brea.k;

/* Citanje elemenata matrice: */ a = malloc (m*sizeof(int*));

for (i=O; i<m; itt) {

a[iJ = malloe (n*sizeof(int)); printf ("%2d. vrsta? ", itl);

for (j=O; j<n; scanf ("%d", &a[iJ[j+t]));

/~ Obrazovanje transponovane matrice: */ b = malloe (n*sizeof(int*»);

for (i=O; i<n; itt) {

b[i] = malloc (m*sizeof(int));

for (j=O; j<m; j++) b[i] [jJ = a[j] [ill

/» Zamena stare matJ:ice novom matricom: */ for (i=O; i<m; free (a[i++])); free (a);

A = b; i = m; m = n; n = i;

/* Ls p i s i v s n j e rezultata: */

prin f ("'.nTransponovana rna t r Ica : \n"); for (~-O; i"m; i +) {

for (j-O; j"n;

p r i n t f ("'t5d", arilrjl~J)); fJr r.lf (" n" J;

/» U1ili!Jrav"Tljp. malI 1('(1; "/

for (j 0; i'-III; fr.,,, ("'1 I I I J) I i' 1 r,=(~ (a I i

r----- -_

o I 2 n-I

. ..[ I I I I I I I

a:Gt· ~m .. ' .. oj I I I I I

, ... • -'-'l~:;::1 ~I ~~I~I~J ! m-I· '-:::;=::~=:::~!=!

"'--1- I I I I I

o I .. m-l

47

"/

ko,l;_")lld.' 3 5
vrs ra:' 1 2 3 4 5
vz !~t ,]? 6 7 8 II 10
\'r :;ta;' 11 12 13 14 15 Tz ~lll~:pc"hl\\ '1.1 /u.ir.l J.I,- .... ioi:

,i 11

1 '

8 1 I

" 'J ! ~

lO j

Zadatak 4,6:

sus(avili naj~7ikll C program 7~1 izracunuvanje zadatog stepena simelricne matrice ceJih brojeva. Matricu

'lllesti1i u din3mii'ku zonu l1Iemorijc. I'rogranl treba dll obruduj proizvoljan bmj rnatrica.

Reienje:

I' mattica2.c _ Stepellovanje 5imetricne matrice. ,include <stdio.h>

, .. nelude <stdlib.h>

main () (

while (1) f

lonq ~ *a, **b, j""c, * ~ d; int m, n , i, j, k , s t ,

I~ Citanje dimenzije matrice: ./ printf ("\nDimenzija matrice? 'I);

scanf ("%d", &m);

if (m <~ 0) break;

/* ci <lnje elemenata matrice: */ a ~ malloe fm*sizeoff10n'1*));

b - mailoe fm*s.izeof(10n'1"));

e ~ ma Ll oc (m*s.iz:eofflon'1'))'

for (i~O; i<l11; i++) f '

a Ii) : malloe f fi+l) ·sizeof 110n'1)); ~[.) = ealloe (.+1, 8i%eofllon'1));

l i l _ malloe f (1+1) 'si%eof lion))' p r Lrrt f ("%2d. vrsta? ", i+1); '1 •

f r (J~O; j c=L: s can f ("%ld"

b[i]liJ ~ 1; , &a[i][j++]));

1-. Citanje s t epene : * /

pr i nt.f ("Stepen? .. ); scanf f "%d",

/ &n) ;

• 5 epenovanje matrice' */

for fst~l; s t c=n , st++)' {

for (.~O; i<m; i++)

fo.l: (k~O; k-c=.i , k++)

for (c l i J [k J = . ~O·· .

c I I J I. kJ _ J. " ) <m; J ++ I

d +- Il>J? ('J .

= c : e = b; b ~ d r .a 1 [JJ :a[j] [ i j )

/» l ep i s iven ie

print! ("\n%~ rezultata: */

foz: (i-O" . stepen matnce' \n"

, 1 <m, ~ + +) ( ., n);

fo.l: (j~O; j<-i'

. printf f ';\71d" ..

pnntf ("'n"); , b l i l fj++I));

/. U 'X

nll>tavanje

for (i-a; i.<m' matrical */

) fr~a (a[ll); 1.4) I

fLoe iblil).'

1 fr(.(~

rBe la); fr€(l

(b) J !'re·j· ((;) i

(c III) ;

, ' __ It I

o 2

o 0 4 8 2 080

* I j >k?b [j ] (k] : b r k] [j ] ) ;

% matrica2 -

Dimenzija matrice" ,

1. vIsta? 5 .

2. V!'sta? 3 0

3. V sLa? 0 0 , t, vrNtd~ 2 0 8 0

Sreppn? J

3, ;'i tep'HI ~~:; 114 144 :.104

Dlm.n.Jjlt

matri 'e:

4S

48 5'1'

30 '72

,/

Zadatak"

Sastaviti n elirninacije ulaza na ne

Re§enje:

a)E' . ~+ ~+ -~-:

-.1j-

Zadatak 4.7:

49

astaviti na jeziku C program za re~avallje .j tern l lineurnih jednacina Gatlsovom (Gauss) metodom climin3.cije. Matricu i nizovc smcstui 11 dinamicku zonu mcmorije. Podaci se citaju skretalljem glavllog ulaza na ncku datoteku, Program treba da obrudujc proizvoljna broj sistema jednacina,

Resenje:

alixi + allx1 + .. , + al.x" = bl (121XI + a22x, + ... + Q,.Xn = b,

a) Eliminac.ija unapred:
XI + 3x, - 4x)= 8 ) -a'l
x--
XI + X, - 2xJ = 2 all
-xl-2x,+5x3= -1
XI + 3x, - 4x) = -! ) -a12
- 2X2 + 2x) = x--
a22
- Xl - 2x, + 5X3 = -1
XI + 3x2 - 4x) = 8
- 2x, + 2x] = -6 ) -a)1
x--
x, + x) = 7 all
XI + 3x, - 4x] = 8
- 2x, + 2x] = -6
2xJ = 4 b) Zamcnjivanjc unazad:

I

=2 5

PROBLEM:

Resenje:

X, "" tb, - o:JX1)1 a'l

XI =(bl-oI2x,-allxl)lall

Q'II (111 ... al" Xl b,
all a22 ." a2n X2 b,
x
ani an"]. .. , a'in Xn h.
3 -4 8
1 -2 xK= 2
-1 -2 5 -1
3 lX=~~
0 -2
-1 -2
3 -4 8
0 -2 2xK= -6
0 7
1 3 -4 8
0 -2 2xK= -6
0 0 2 4 Kako izbeci deljenje nulom? poNt . Permutacijom vrsta i/ili kolona. Pre UJ se dovodeni . na ghwnu dijagonalu. clemena-

, " . rednostllDL

ta sa najvcclm apsolutnim v

IHnclum. <s t.d i o . tl' _i=lw:I..- s t ,j] ib. tJ .

so

/" f:limit1M:j]H unapn'd; 'j for t L' OJ ;,<n-1; i-ti-}

for: I)-HI; ),n; j'c.) I

c aljlli1 I ali1lil;

fo~ lk-i; k<n; kH) aljllk1 -- ali} [k1 • c ;

b I j I -- b r j 1 • c;

I" Zamenjjvanje LJnazad: *1 for lj~n-l; j>~O; ]--) !

c = b I j l :

for (~=j~l; k<n; k·H) C xl]J = c / a[j] I)J;

alj) IkJ * x(kJ;

,"' Ispisivanje rezultdta: .. / printf (" \nResenja sistema: \11\n") ;

for (i-O; i<n; pr i nt t 1"~7.3f", xli++]II; put cha r (' \n' ) ;

j' Oslobadanje dinamickj dodeljene memoriJe: *j hI' (iaO; i c n , free (a[i++]);

free (a); free (hi; free Ix);

gau" <gaus.pod,

S~s""em IJ.flearnih jednacina:

r;US.POd

1 3 -4

\1 1 -2 2

1 -2 5 -1 (1

J.ooa J.OOO -4.000 1.000 1.000 -2.000 -1.000 -2.000 5.000

8.000 2.000 -J.OOO

PeselljiJ sistema:

1.000 5.000 2.000

~~----------------------------------------------------~----~--

~

5

ZNAKOVI

52

Zadatak 5.1 :

Sa taviti na [cziku C progrrun za ispisiv(lnje tab lice ASCJJ k6dova za svc §ta111pajuce znakove.

Relenje:

./

" ascii. C _ Prikad viinje tablice ASCJ I kodova.

linclude <stdi .h>

main () {

char c : int i :

prinl.f ("\t\t Tablica ASCII kodova\n\n"); for (c~' '; c<' '+19; c++) (

for (i=O; i<95; i+~19)

printf ("t3d \c c+i, c+i);

putchar ('\n');

I % ascii Tablica ASCII kodova
32 51 3 70 F 89
y 108 1
33 52 4
34 71 G 90 Z 109 m
53 5 72 H 91 [
35 , 54 110 n
6 73 I 92 \
36 s 55 7 111 0
37 II 74 J 93 J 112
56 8 75 K 94 P
38 & 57 9 76 113 q
39 L 95 114
58 r
40 77 M 96 115
59 s
4J 78 N 97 a 116
60 < t
42 79 0 98 b 117
61 80 P u
43 62 > 99 c 118
81 Q v
44 63 100 d 119
45 82 R w
64 @ 101 e 120
46 83 S 102 x
65 A f 121
47 ! 66 84 T 103 y
B g 122
48 0 67 85 U 104 h z
49 C 86 123 {
1 V 105
SO 68 D 87 i 124 I
2 W
69 E 88 106 j 125
X 107 k }
126 Zadatak 5.2:

Reilenje:

nzv :::: for (j for for put, if nzv

put cb.

! ugao6 n? 3

. . .

..... ,.,. ,..

In? •

. .

.. .. .. II "" .. .. ..

... .. . ... ..

I .,.".

n" 0

Sasta iti program na jeziku za crtanje sesl:ougaone figure prerna slici na glavnom izlazu racunara,

. . .

I< 'JI .. *

1* • * • .,

n * * * .., * * *

IJn-IJ

53

Zadatak 5.2:

Resenje:

/" ugao6. c - Crtanj e ses tougaone figure i1a glavnom i zla zu.

*/

Ii.nc~ude <stdio.h>

main ()

int n , i, j, nzv, nrz, while (1) {

printf ("n? "); scanf

if (n <= 0) break; putchar (' \n' I ;

nzv = n; nrz = n - 1; kor = 1; for (i-I; i<=2*n-l; i++) (

fo.r (j-l; j<=nrz; j++) pu t cha r (' for (j=l; j<=nzv; J++) printf ("* putchar ('\n'); if (i == n) kor

korl

(U%d",

&n) ;

I) ;

It) ;

-1;

nzv += kar, nrz -= karl

}

putchar ('\n');

% ugao6 n? .3

* • *

* • *

n? 4

" '" * :* *

,.,. ... ... /if ... "

Ii' ,.. '.i At- ,At ,. "

,,'I 0

~1lI' III 1'1'1 nll\\ n I j"/iku (' 10 crtanjc strelioc prcma slici O_Q glavnorn izlazu 'Ill

RdenJe:

n

*.

Sastaviti Prctprosta

... *1II.1t**~1r***** n ~*****~****~*. "''''''Ir**********

"

Rd.n].:

\ .

3'1 .. \

k/

j++) putchar (rep) ;
j++) putchar (1;11'1) ;
rep 1*' ;
kor -1;
rep , ; .,,'0 n

int , i, j, char re ~, while (1)

ri r ("n? "J : scanf if (0 <~ 0) break;

11~V,

kor;

, . ,

put che r I' \0' J ;' n2V = 0; kor = 1;

for (i=l; i<=3*0; i++) n2V += kor;

for (j=l; j<=3*0; for {j=l; j<=nzv; putchar ('\n');

if (~ n)

if (i 3*0/2+1)

if ( i 2*nl

putchar (' \n ' ) ;

&0) ;

lavl10m izlazu.

/» "" 'inCl1 maio (

int char fl_ whi.l

pr

if ( pu 01 fa

% .tr.lie. n? 3)

~~,.,..;.."."."'*it"!r"* ~,,. 11 .. ., -.r" lr'lr ~.,.".

n~ ,

.* ***

* **:i' **Ii.** **********~*~**~*.*** ************~~*****i*. .*~*~****~* ~*** *~.-~~ **~*~~~*******(*~.~*~~ ~* •• **~~~~.**:i •• ~.Mt*.

~,!'i *' 1'I:,.it

. ,

n? 0

pu

ZadatakS.4:

Sasta iti program na .i ziku C za crtanje sahovskc table zadate dimenzije na glavnom izlazu ratl!lnara .. Pre~pr(1staviti da u I ern stanu 4 znaka, odnosno 3 reda,

14 drcml
~ ~I d·3
nil **** **** **** **** n, =-=0375d
**** **** 8 '
,j,,- * * * **** d·4
**** n2 =--=O,5d
'** ** 8
..
.. Rde"je:

/* tabla.c - Crtanje s eriov sk e table na glavnom izlazu. l'iDclude <stdio. h >

main ()

int 01, n2, if j, k, m; char belo floa't d;

"hile (I)

printf {ltd? "); scanf ("%f" I

if (d <~ 0) break; putchar (' \n ' ) ;

nl = 0.375 .. d; n2 = 0.5 * d; for (i=I; i<=8; i++) {

for (j",l; j<=nI; j++) { fo.r (k=I; k<"'4; k++) { for (m=1; m<"'n2; m++) putchar (belo);

for (m=1; m<=n2; m++) putchar (erno);

erne =

'" ,

znak;

&d)

pu eha r (. \n • ) ;

z na k bele Cl: 0

belo; c rno , zn:;k;

put cb ar t ' \n' )

% tabla
d? 8
** *'* **** **** ",.**
**** **** ****
**** **** **** it.,. .....
**** **** **** ****
**** **** **** ... ,.,.
**** **** ,.**t .. It"_
**** **** .*Jt.
**** **1t* ***iIt
,,*** **'* tt It •• *
**** *** .. .........
****
**** *It'** ........
**** **,.at< ..... It' */

**** **** • •
**'''''''' **1It'1t ......
*.*
** ..... •• ..
....... ,.. Itlt ••
• ••
**.
• * • Zadat.k 5.5:

Saslaviti najeziku C glavni ZII tabeliranje i graficki prikaz funkcije .y = e--o·I.t sin x za svako Xmi~ S korakom l~.:r na glavnmn izlazu ra¢unara. Graficki prikazati vrednosti fUJ!kcije izmedu Ymill i Y ..... · Potreb,

ne podatkc ~it.ati s glavnog ulaza ra¢unara.

Relenje:

I"~ grafikl.c _ Tabeliranje i graficki prikaz funkcije be. x-o ••.

11Dcluta <stdio.h> lincludJlt <math.h>

'defin. SIR 40 ;, ~irilla slike. ,;

main () {

doubl. xm i n , xma x, dx , ymLn, ymax , dy , Y» x; int k :

printf ("xmin, xmax , dx? "); scanf e'%lf%lf%lfUr s xrni.n , s xmax , &dx.);

printf ("ymin, ymax? "); scanf (''%If%lf'', &ymin, &ymax);

pu t ha r (' \ n ' ) ;

dy ~ (ymax - ym i n ) I (SIR - 1); for (x=xmin: x-c=xmax r x+=dx I {

y ~ exp (-O.l*x) * sin (x); k ~ (y - ymin) I dy; p r i n t f ("%9.3f %9.3f ", x , y);

If (k>=O s s k<SIR) printf ("%*c", k+l, ,*,). putchar (' \n"); ,

% qrafikl
j xm~n" xmax, dx? 0 12 .5
ymIn, ymax? -1 1
0.000 0.000
0.500 *
0.456
1.000 0.761 *
1.500 0.859 *
2.000 0.744
2.500 0.466 *
3.000 0.105 *
3.5{)0 -0.247
4.000 -0.507 *
4.500 '.
5. 000 -0.623 *
5.500 -0.582 *
-0.407
6.000 -0.153 *
6.500 0.112 *
7.000 0.326
7.500 0.443
8.000
8.500 0.445 *
9.000 0.341 *
9.500 0.168 ~
10.000 ~O. 029 ~
10.500 -0.200
11.000 -0.308
11. 500 -0.333
12.000 -0.277
-0.162 * "/

/» q r a r i k v c - Tabeliran_i i graficki prika;z; funkci_i S X-08om.

57

r s

) else if' (xosa>=O II XCSIR) p.rintf ("%*c", x05a+1, 'I'); putchar (! \n ' ) ;

'include ~ tdio.h> 'include 'l11al:h.l1>

#define SIr< 40 I"~ Sirina siike.';

main () !

double xm i n , xmax , dx , yin i n , ymax , dy , y, x; .int xc s a , k,;

p r Ln t.f ("xmin, xme x , dx? "); s c an f ("%l:E%lf%l£", &xmin, &xmax, &dx);

p r i nt.f ("ymin, ymax z "); s c a n f ("%l£%lf", &ymil1, &ymax);

u t cha r (' \n') "

dy = (ymax - yminl I (STR - II; xosa = -ymin i dy;

for (x=xmin; xC=xmax; x+=dxI f

y = exp (-O.l'xl • sin (x} , k (y - ynu n j I dy;

printf ("%9.3£ %9.3£ ", x , yi;

if (k>=O && kCSIR) {

if (k c= xo se ) [

printf ("%*0", k+l, "'1;

if (xosa>k Ii. xosacSIR) p.rintf ("%*0", xo s a-x , 'I'); else. {

if (xosa >=0) printf ("%*o%*c", x05a+1, 'I', k-xosa, ''');

else, printf (t'%*CIlI k+l1 r'*f);

% grafik2
rm~n, xmax, dx? 0 12 .5
ym~n, ymax? -1 1
0.000 0.000
0.500 0.456 I
1.000 O. 761 I
1. 500 0.859 I
2.000 0.744 I "
2.500 0.466 I
3.000 0.105 I "
3.500 -0.247 " I
4.000 -0.507 " I
4.500 -0.623 * I
5.000 -0.582 " J
5.500 -0,407 " I
6.000 -0.153 I
6.~00 0.112 I "
7.000 0,326 I
7.500 0.443 I
8.000 0.445 I
8.500 0,341 I *
9.000 O.1.61l J
9.500 -0.029 *1
If).OOO -0.200 I
10.500 -0. J08 I
17.00f) -0. 'in I
I ] . ',{)O -0.;07 J
/".{JiJQ -0.162 I
.......
Zaa_e.B */

ZlId_k5.6:

Sa IBvili na jeziktl C program za odredivanjc broja velikih slov8, maim slova i cifara u tekstu koji se iz proizvllljnog brejs reo;lova ti1a s glavlJog tll~za, Tekst sc zavr~ava signalom za kraj datoteke,

j' ,znakovil, C - /3t'ojanje slovlil j, ciflilt'Iil,

Rei.nje:

'1DClu~ <stdio,h>

main 0 I

lnt z nak , vel_51 ~ 0, mal_51 = 0, cifra 0;

"hil. «znak = getchar (» ! = EOF) (

if (znak >~ 'A' && znak <- 'Z') vel 51++; if (zna k >~ 'a' &~ znak <= 'z') mal-51++' if (znak >~ '0' && z na k -c= '9') 'f- '

I - Cl ra ++;

pr i nt.f ("BroJ' I' k'

ve ~1h slova u tek5tu je %d \ "

printf ("8roj mal1h slova u tek5tu J'e %d,\n'nn • printf ("8ro)' f

Cl ara u tekstu je %d,\n", '

vel sll mal- sl) cifra )

ji Enakovil <znakovil.c

~!;~~ velikih slova u tekstu je 9, ] me I ib slava u tekst '

Broj c i t e re u t k . u]e 232.

e stu )e 6.

~

/' znakovi2.c - Bro]an]e '~nclude <stdio.h> '~nclude <ctype,h>

slovd i cifdrr,d3.. ------------------------------------

main {) I

int znak, vel 51 =

0, mal 51 = a

while (znak -, - ,

vel 81 +~ i~ getchar I)) != EOF) mal-sl +m i ~pper: (z na k) != 0; citra +_.8 ower (znak)

- lsdigit I z na k) ,:: 0;

0;

("Broj ("Broj ("Broj

cifra

0;

pr i. tf prjotf pr nU

velikih sl

malih ova u t ks '

c" sloua u tek t~ Je %d.\n"

~ e ra u t e ka: ,stu Je 'lid \" '

stu J e 'lid. \ n",' n v ,

vel_sl); mal 51)' ciE~ );

& I!ftakovi2 -

B <:r;fta -

raj veJikih kovi2.c

Broj mali h "lova u te

StO) ct t" s ) ova u t k/rtu io ./ 8r.", 1I t ek a c esst:» je 24"

tu ie 'I. e ,

. ,....

Zadatak 5

Sastaviti na razdvajanje razmaka iii ocuva.

,/

RelenJe:

/. razm

linclud Id#lfi_ I<»fi_

main () int z

.hil. if

{ 81.

OJ

% razmakl <razmakl.pod

Ova linija sadrzi suvis.ne.znakove razmaka.

h z nekov s .razmaka.

U ovoj liniji nema suv~sn~

~-~~~~----------~

51

Zadatak 5.1:

astaviti najeziku C program kojim sc tekst s glavnog ulaza racunara prepise na gla.vni izlaz racunara uz 9zdvajanje l'e~i po jednim znakom razmaka. Rcci SU na ulazu razdvoiene proizvoljnim brojem znakova razmaka i/ili rabulacije, Tckst se zavrsava. signalorn za kraj datoteke. Raspodela reci u redove treba da se 01:UV8.

Resenje:

/ •. razmakl. c - Izostavljanje suvisnih razmaka medu rec3ima.

*/

.Iinclude <stdio.h> #derine F 0 #derine T 1

main (I

int znak, irna = T;

~hile «(znak = getchar ()) != EOF) if (znak != ' , && znak '= '\t')

{ putchar (znak); ima = znak == ' \n'; } .else if (! ima) { putchar (' '); ima = T;

I'· Ova linija sadrzi

U ovoj liniji nerna suvisnin

l::= === === === ===

suvisne znakove razmaka. znakova razrnaka.

razmakl.pod

Zadatak 5.10:

Sastaviti program na jeziku C za titanjc niza unena gradova uz njihovo uredivanje po abecednom redo. sledu i ispisivanje rezultata. lz svakog reda treba da Sf: tita po jedno ime sve dok se ne procita prazan red Niz imena srneslili, u dinamitku ZOI1I1 memorije. .

Reienje:

/" gradovi,c - tjredi ven je i mene gradova smestenih u dinamiCiku matriclJ.

gradovl: CO

o I 2 3

'include <stdio.h> 'include <string.h> 'include <std1ib.h> lde£ine MAX GRAD 100 lde£ine MAX=DUZ 30

main (I (

char "gradovi, -grad;

i:nt br_grad=O, duz , i;

;*, Ciftanje i obr sds po j ed i na cn i h i mene : *;

pr i nt; ("\nNeured]'e " "

gr d '_ n nlZ lrnena gradova:\n\n"I'

a OVl - malloe (MAX GRAD * . ' do ( s1zeof (char *»;

grad = malloe (MAX_DUZ);

gets (grad); ;* cs tanje sledeceg imena.

/» Kraj ako je d ". , */

if ((du _ UZlna lmena nula. * /

z - strlen (grad» == 0)

grad = reaUoe ( ( free (grad); break;

puts (grad); g~ad, dU~+l);

/- Uv"t . ; Lsp.i s i vanje p i oc i; tanog

rs avanJe nov ' imena. */

for {i=br grad-I' og _ lme?a u uredeni

if (- , 1>-0; 1--) n i z starih imena. */

strcmp (gradovi '

gradovi [i+1] _ (1], grad) > 0)

.lse break; - gradovi [ i ] ;

gradovi ti+1) -

- g.J:'ad;

/" Nastavakrad

while ( +b a aka iroa jos s I '

gradovi = re~li;ad < MAX_GRAD); oooaa in vrsta u matrici

/*, c (gradovi b .

P ,ISp~s:ivanje uret: . ,r_grad * Sizeof

tlntf ("\ u nog ru ' (char *);

for ('-0 ?Uredjeni niz l,LZ imena: */

; l<br ' mena gr d

,_grad; PULa ('1:' r a DVa:\n\n")'

9 dovi[i+~l); ,

::<q~r:-~~V:i~'~P:Od~.--:-:-:-~~~~~-------------- .J1I

Weur djen

niz iman.a oJ

g.1.' dOVEl."' l J Odj l~J) j

1'1 i 2' ~'lIIt Ila

*/

h('{)"I;',I(( /JOl

1 ~1kL1Vdt~ /'il"l ,'II/hilt .L(\j 1 jIlt, ru «

*;

6

FUNKCIJE

.___ 83_

· a,hl\ili lIajclikll C rU!lkciju 7'" iZf';'l~1.I1l9Van.l~ datoS binon1JlOg koeficijenta.

:>3 'lnvili UB jaiku C glllvni progrdtn knji. kori§ccnjcm prclhodl1c [unkcije ispisujc PaskalQv (Pascal) tro,

'IgAO .lalC \'oh 'me.

RelenJe:

rB•4 : (n)=_n_! =~(~)~'~I-k';-'I k ki(n-kV 1·2·.,,·k _j

: 2(n .... ·n) 1
n=O~
I: 1 1
2: 1 2 1
3: 1 3 3 1
I'1nlVl=4: 1 4 6 4 1
.' .f W
k=O I 2 3 4 /. bink02. c - lZl'dCUnavanje da tog binoillnog

koeficijen t a ,

main I) f

il*l~ n , k , i, nmax : pnntf ("nmax? "):

put char ('\n')' • scanf ("%d", &nmax);

for (n~O; n<- .

for fi~O' -:-nmax; nt+) (

f ' l<nmax-n" .

or Ik~O; k<=n' k • ~++) printf (" ");

put cha r (' \n' J: t+) printf I "%~d"

J I binko (n, k));

b=b·j--/i++) ;

i'nt blnko (in't n , int k ) int i. j. b;

for (b=i~l. j=n . .i c=k . ,return b,

/' Ispisivanje P

askalovog trougla.

linclude <stdio.h>

\ binko2 nm.>:? 10

](J

2

3 3

4 6

10 1

6 15 0 5

7 21 "20 15 28 < ~5 35 21

9 ~6 ~4 .. 6_ 70 jfi

4', DC" l?F, In zs

I 210 ;152 2 81 16

10 120 4'>

10

• '""lcclll

b*=j/i

(J : i nije u vek ceo broj - b J I ~ je uvek ceo broj)

Nije dobra:

I

zadatak 6.2

Sastaviti na j vag (Taylor)

Sastaviti lIa j sli i:aacunav

Resenje;

/* ekspo

linc~uds lincludAt

double e double for Ii retur"

*/

main I) doubl. int printf printf k = pI

*/

for Ii for (>

for e> e> a! n pl

8- .!tsper xm i n , xt. nsu n , tHl

.50

zadatak 6.2:

65

S Stwiti no [cziku C tunkcijc koje izra~unavaiu e" .' .

a ' . . " , cos I SlIlx na osnovu ih k I"k

vog (r(1vlor) raz oja. prvi nc 0 I 0 clanova Tejloro-

sasta iii na jeziku glavne prograrne koji tabcliraju rezultar th dni '. . .. '.

ti izra~ul1avanja. Za tacne vrednosti uzeti rczultate Odgoe ~rhe bO nih !UJlk~IJa uz ptikaZlVanje tacno-

. vataJUCl iblioteckih lunkcija.

Resel1je:

*/

/" ekspon.c - Izracunaval)je exp(x) pomocu T '1

e] o r ov oq razvoja.

#include <s dio.h> #include <math. h>

~ ~ Xi Xl x2 _ x3 x"

e '" L...-"'I+-+-+-+-+

'cO i! I! 2! 3! 4! ...

double ekspon (double x, int n) double ex = 1, clan 1; int i;

for (i~l; i<n; i++) { clan *= x I i: ex += clan; )

main () {

double· x , xrn i.n , xma x , dx , ex, ext, apsgr, relgr;

int n, nmin, nmax, dn, i, k;

printf ("xmin, xmax , dx? "I; scanf ("%1f%1f%1f", &xmin, s xrnax , &dxl; printf ("nmin, nmax, dn? "I; scanf ("%d%d%d", &nmin, &nmax, &dn); k = printf ("\n%6s %12s %35 %14s %10s\n",

"x ", "ext", "n", !lex", "relgr");

for (i=O; i<k-2; i++) putchar ('='); putchar ('\n'); for (x=xmin; x<=xmax; x+=dx)

for (n=nmin; n<=nrnax; n+=dn)

ex ekspon (x , n i . /* Izracunata vrednost. */

ext = exp (x); /* Tacna vrednost. */

apsgr = ex - ext; /* Apsolutna greska. */

re1gr = apsgr I ext; /* Relativna greska. oil

printf ("%6.2f %#12.7g %3d %#14.7g %10.2e\n", x, ext, n, ex, relgr); ,

~ I

return ex;

%ekapon

y.min, xmax, dx? 0.5 5 0.5 nmin, nmax, dn? 5 10 5

x

ex re Lq r

0.50 0.50 1.00 1. 00 1. 50 I. 'J(j ? flO ?{)O ;'.'..IJ c . ',0 1,(10 f.OI

1 .. 64872,1 5

1.648721. 10

2.71.8282 b

2./.18282 i.o 1.481689 5

1.4fJJ6BfI 10

7. ]B90[j{j 'i

7. (B9D~6 1(1

/7. J H24' 'j

J?111249 10

;tU.08',r;4 'j

ro . ()fJr,~4 ](1

1.618438 1.6118721 2 .. 708333 2.7Ui282 4. J'J8·P8 4. 'It! I (, 'f.1 7. ()OOOOO 7. W8 '/1 ~ ]Il,B'){j'1'l 12.J7fJJI 10.n',(J0 ."0.0(, J III

-1.7e-O~

-L7,-10

-3,7,,-0';

-1 . :1J,-()7

-1.90'-02

-4.1fl-O/'i

-'J. i _0.'

-4.t,.·-V~

- 1 .• 1.'-0 I

~J. >,-V4 -1.II'·-V I _ /,1,' 0 I

l

-~----;;;;;;:;:;~---

,~ -2.7-01

ee )1.11545.~ 24.0020~~; -3.3 .. 03

3. "0 /0 3J. -3.7e-01

.J. ~)O .1154.~ 4. J33J 03

'4.3Q81.5!> 54.15414 -e i te-:

4.00 ~4. 59815 10 47.89844 -4.7-01

4.rO 9(1.017U 5 88.4784 -1.7e-02

4.$ aO.01713 10 65.37500 -5.6e-Ol

~.50 148.4132 S 14 .6895 -3.2e-02

. 0 14R.412 10

.5.00

x

0.50

-l.7e-l0

-3.7e-03

"dx) ; .. dn);

1. 00

-1.1e-07

doubl" kosinus (double x, int 0) { double COSI< = 1, clan = 1; int i;

for - (i=1; i<n; i++) { clan k~ - x • x I (2*i-l) I (2*i) ; cosx +~ clan; l return cosx;

1. 00 2.00 2.00 3.00 3.00 4.00 1.00 5.00 5.00

-5.3e-02

-4.6e-05

-5.6e-01

-3.2e-0~

l z recunev srrje cos (x) POIIIOCU Tejlorovog razvoja.

/' kosinus. C - ~

linclua. <s dio.h linclude <math.h>

main () !

double x , xmi n, xrnax , dx , co sx , cosxt, apsgr, relgr;

int n, nminl nmax. dnl i, k;

printf ("xmin, xrnax , dx? "); scanf {''%If%lf%lf'', &xmin, s xmax , printf ("nmin, nmax, dn? "); scanf ("%d%d%d", &nenin, &nmax, k ~ printf ("\n%6s %l2s %3s %l4s %10s\n",

"Xl', "co.sx t ", tln"t flCOSX", "relgrll),o.

for (i=O; i<k-2; iH) putchar ('~'); putchar ('\n'); for (x=xmin; x<=xmax; x+=dY.)

for (n=nmin; n<=nmax; n+=dn) I.

cosx = kosinus (x, n); cosxr c cos (x);

apsgr = COSX - cosxt.

if (COSy.t) relg~ = apsgr I cosxt;

el .. if (apsgr) relgr = apsgr>O ? le38 :

el.", relgt" = O.

J pr ntf (·~6.2f '~12.7g %3~ %'14.7g % lO.2e\n", X,COsxt,n,c

*/

x , relgr);

l itoUnu.

-

1* Izracunata vrednost. ,;

1* Tacna vrednost. ,;

1* ApsOlutna greska. _;

1* Relativna gre§ka. ,;

-le38;

xminT xmax, dx? 1 5 1 nlT/ln, nllUi><, dn? S 10 5

><

-- .... _ a.

..

1. 00

- ...... _--

COSX

- -

• '1MII!cIjo

5. h-07

~-O~--~0~.~~r.~4~~0~2~3--~1~0~----~~~;;;;--~~;:~;---------~ __ ~ !61~

2. ~O' -0.4161468 5 .5103023 -.1 -16

-0.4758730

2.00 -0.41614 8 10 -0.41614 8 -6.6 -01

.00 -0. 899925 5 -0.9747768 -~:~e=~~

3.00 -0.9899925 10 -0.9899925 1.4e-09

4.00 -0. 65J6436 5 -0.3968254

O 65 6436 -3.ge-Ol

4.0 -. 10 -0.6536'41

O 2836622 • 6. 7 -07

5.00· 5 2.528398

O 28 6 2 7.ge+00

5.00 . 3 62 10 0.2836250

-1.3e-04

__ I

1* sinu$.C - Tz re c urie v srrj e sin ( x ) po 6

mo U Tejlorovog razvojll.

. ..." _ X2itl J.5 7 I}

sm x = "(_1)'___ _ x x x x

i.., -x--+-- +

1&0 (2i+l)! 3! 5! 7! 91-'"

linclude <stdio.h> #include <math.h>

double sinus (doub~e x , int n) [ double s i nx = x , clan = x; int i;

for (i=1; i<n; i++) { clan *= - x • x / (2*i) / (2*i+1) return sinx;

main () {

double, x , xm i n , xma x , dx , sinx, s i.nxt , aps q r , re1gr;

int n, nrm n , nma x t dn Ii, k;

printf ("xmin, xma x , dx? "); scanf (''%If%lf%lf'', &xmin, &xmax, &dx); printf ("nmin, nrnax , dn? "I; scanf ("%d%d%d", &nmin, &nmax, &dn); k = printf ("\n%65 %125 %3s %145 %105\n",

"x ? , "s i nx t ? , lin", "s i nx ", "relgrrt);

for li=O; i<k-2; i++) putchar ('='); putchar ('\n'); for (x=xmin; x<=xmax; x+=dx)

for (n=nmin; n<=nmax; n+=dn)

s i nx += clan; I

s i nx sinus (x, n);

sinxt = sin (x); apsgr = sinx - sinxt;

if (sinxtl relgr ap s q r I sinxt; else if (apsgr:) relgr apsgr>O? 1e38

else relgr 0;

printf ("%6.2f %#12.7g %3d %114.7g %10.2e\n", x,sinxt,n,sinx,relgr);

I~ Izracunata vrednost. */

/* Tacna vrednos t. * /

1* Apsolutna greska. */ 1* Relativna greska.. */

-1e38;

t sinus

xmin, rme x , dx? 1 5 1 nmin, nmax, dn? 5 10 5

s i nx

relgr

sinxt

x

n

___ ar_~_"'_''''_ =- IS __

1.00 0.8114710 5 0.8'114710 3.0e-08
1 .. 00 0.8414710 io 0.81111710 O.Oe+OO
2,00 0 .. 9092974 5 0.9093474 5.513-05
2. (J!) 0" 9092974 10 0.9092974 -4.519-11
1,00 O.74J1200 ;; O. J45~12') 3.0f-:;-O"l
i. DO 0.1111200 .10 0.141.1200 -1" 4,,-Og
1.0() -0 .. 75 802!J ~ -0.6(,1 721'14 _., .1,,-01
4.00 u . 'j ',r,(W2!J 10 -0. '1c,r,80.!b 1. J ,,-07
}.O{) t), 'JJ8924"J 'J 0.08' HJlIW -1.1 [) I Otl
',.O(J IJ" ')c,f:J 924'j 10 _O.'1r,84~1": 11. ],,-01.
z.... •. a Postupci u praksi:

e' =' 2 ~ 1081" 10' = 2 '"'.,10

2' 2'" 2'2'

(/ ceo broj; 0Sr<1 ~

i uti(!e sarno na eksponent I'Qlllata)

sin x - sin a+2br (~ dlljim~ og,<KI4)

.,.....

*;

~-----------------------------------------

-

Zadata~

Zadatllk 6.3:

SB~la\lili (III jClikll C funktiJu Z<I ispitivlIlljC du Ii jc ncki prirodni broj prost.

S"~I'l\'ili ,,;] jcziku C glavni program 7a 'ispitivanjc te funkcije za proizvoljan broj podataka.

g"Maviti oca dva 1

Sastaviti grasn Ire

Funkcij

ReAerlJe:

[)QVIlljno jc (Sp,t,vafl dcljivost s brujevil11u koji nisu veci ad kvadratnog korcna ispitanog bToja'j oont)S1l0 eiji kvat!rat nije vcCi od ispilllnug broja.

ReSen

*/

/» posl.c" _ Ispitivanje da 1i je tn.o] pr os t: . int prost tun~igned p) l

unsigned k:

if ( - 1) return 0; if II' -:') return 1; for (k-2; k " <-p; ~H)

/* n

0) return 0;

unsi wt:

if (p%k

ret,urn ] i

*/

I' IspJ:rjllanje ftll1kci]e p ro s t . 'include <stdio.h>

ma i n () l UDsigned b; while (1) {

. p r i.n t f ("B,oj? "): scanf ("%d" &b)' ~f ( 9999) break: "

puts ( rost (b) ? "Broj je p ro s t c " :

"Broj nije prost.");

, pros·t Broj? 0

Bra j 111J e PL"OS t . Braj? 1

Broj nije prost

Bloj? 2 .

BIOj je prost

BIOj? 3 .

BIOj je prost Brcj? 10 .

Broj nije prost

ro]? 11 .

Broj ]e pros :

Bra)? 97

Bro~ je orost: 8m]? 111

BJ:O) njje r Broj 7 999/ c.n

ladatak 6.4:

Soswvi(i IlHj'ziku Cfunkcije 7.<1 llalazcl1j~ I1ltjVCCLlg za d ick deli .' .'

nca d fl pdrodnu broja. . ~'JC 111 og clioca I lluJmaJ1jcg zaJednickog sudrza-

S9SW iii na jcziku C gla ni program za ispilivanJ·e lib fLI11k .',_._ . _ .

da i ·1 d· . .eIJ!! Z,!I PTOI7.VoI181l broj parov: d t 1. •

gl"~·1ll1rcba a JC pruago ell 7.>1 skrctanjn glavnug U1a7.8 IHI neku dutotcku_·· j parova po a a ... 'L Pro-

Funkcijc i glavni program stvaljati u zascbne datotcke.

Resenje:

nzdta.b ; = {a IIzd(h,a%h)

tlzs(a,h) = -.!!!!__ J nzd(a,b)

Naj veei zajednicki dell j ac 1

najmanji ee j edn i ck : eecir i e Lnc dVB broja.

unsigned nzd (unsigned a, unsigned b)

while (b ! = 0) ( unsigned c = b; b a % b;

/' n z driz s .

a = c;

return e t

unsigned nz s (unsigned a, unsigned b) ( return a * b / nzd (a, b); f

/< nzdnzst_c - Ispitivanje funkcija nzd i nzs.

'include <stdio.h>

unsigned n zd (unsigned, unsigned); unsi.gned nzs (unsigned, unsigned);

/* Prototipovi funkciJB_

/* Glavni program.

ain () I unsigned a, b;

printf (n B b nzd 11z9\n"

"====================\n");

1i!'hile (1) {

acan f ("1;u'lsu", &0, &b); if (a=cO I I b==O) break;

printf ("%5u't5u'l,5u%5u\n", a, b, nz.d t a- b l , nzs( ,b»);

t cc nzdnzst.c nzdnzs_c -0 nzdnz8t l; nzd.nut <Ilzdnut.pod

a b nzd nZB

t c HI 1 80 M8-LJl'l.'l
B 25 I 200 I i tea n.dn •• t n.dn ••
f)O 1 2 /uO ¥ n.dn •• t <n.dn •• t.pod
12 G-1 12 {'4
)'J J 4 J 2J()
~1lak.A .,~ 69

,;

*/

*/

*/

10

_--

l&datak 6.5:

Kf'(1Z n lllcuka (,,,r,) (i 0, L. 2 ..... n l\ ll,ogLlce jc rrovuCi j dinslvC[l polillol11 rcda 11 I koji se nal;va

l fW"I\~"V (,.t1!fri1!1~(,) pol'illom i koji jc dat ronnulOlll:

P(X)=~[ iti~l

' U J U ~"Cj - xi ,,,

-

Zadatak

Sastaviti lih brojcv

a) se

b) bi

S",((lviri na jcziku C funk iju za izn~~unfwanje vn:dno~ti Lagrantovog polinoma.

SaS!il\'itl na jcziku C glavni progml1l kllJl pl'Otil,l, niz od PI parova koordinata tacaka i tabelira odgo· \arnjuci LagnHl:to'V polinom w svako \'nml"-- ..... -\:III.1JII S kOl'akorn Sx.

Sastaviti za svaki sc na kra

Relenje:

Reienj

'ct.1!i lldeff

double 1 "'lt~nc (cons't doubl,. X ( I, oonat double Y [1, 1nt n , double x) { double p, q; int i, j;

fo,r (p 1-0; ;~n: iH I I

for (q ),[l), j-O; j~n; j++1

if (j 1- i) q • {x-X[j]1 I rxt u-xt n » p .- q;

return p ,

'include stdio.h>

main () 1

double )([100], Y1100], x xmin, dx ,

int n , i; xmax,

r i nt t ("n? "); sc a nf ("%d" &).

for (~-O; i<n; i++) ( ,n ,

pr i n t f ,~"xr%d], y[%dl? ", i, i); scenr I Uf%lf", sxu t • &Y u n .

printf (~ixmin" :xmaxt dx ? I' .

scanf {"%J fUnl fn : J,

print! ("\n ;. , s xmtn , 'xmax, &dx);

_~~==~====___ p (x) \n"

fo," (x""xrnin; x<=xm.a-~_.:a:="===::===<==\nll);

printf ("%12 2 %12'" x+=dx) I

. .2f\n" x

lagranz ex Y , ,

I I n, x));

r % laqranz n? 4

x(O} , x {I] r x {2}, x {3}, xmin,

y{0]?-22 y(I}? 0 5 y{2}? 1 -1 y(3j? 2 0

dx? -4 4 1

xmax,

====~:===_ p (x)

_4~;~---~cm~_===:

-81.00

-3.00

-2.00

-LOa

0.00 1. 00 c. 00 3.00 4.00

/- Se /, (n

tnt s

tnt

~

I

Zaclatall 6,6:

saswviti na jeziku . '. funkcije za ispitivanje da Ii sc n ki broj uuluzi U datom urcdenom nizu razlil:itib ccI'ill brejc a. Pri rncm n posrupak:

3) scltvCll .ijulnog pretrazivanja, i h) hinarncg prenazivanju.

5f1staviti ria jeziku - glavn] progra.m k~!i proc.ita jedan ureden i jedan neuredcni uiz brojeva, Pnsle toga za svaki element neuredenog I1IzalsprtuJc da It 8C nalazi U uredenorn nizu. tit!lnjc svakog niza zavrsava e 1111 kJ3ju reda

Resenje:

- Pretrazivanje nizB.

#define NE a #define DA 1

I' Sekvencijalno pretraiivanje. "/ I' (neureden niz) "/

int sektral (COrlst iDt all, ~nt n, int b) int i,;

for (i=O; i<n; i++1

if (ali) == bl return DA; return NE;

/* (ureden n i z ) */

int sektra2 (const int all. int n. int bl { int i;

for (i=O; i<n && a j i l cb , i++); retu.rn i<n && a til ==b;

1* Binarno p re t re z : vanje. * /

int bint.ra (const iDt a [1 ,. int n , .tnt b) { int d = 0, 9 = n-l. s;

"'hile (d <= g)

if (a [s = (d + g) / 21 == b) return DA;

else if (b < als]) g=3-1;

else

d - s + 1; return NE;

(neureden niz) (ureden niz)

Neuspeb: i=n

i=n v ap-b

Ispituje se srednji element. Pretrazivanje se nastavlja u levoj ili ~nQJ polovini niza (pola niza se odbacuje kao neinteresantan ).

I~

g:

~r 2

a: I I I I

d: .

Neuspeh: d>g

., ........

71

~/

/ Pretraiivanje niza; */

printf In\n b sekl sek2 bin\n"

~n~ ------~~~~::~::::~7.:~~--~~~-----

P. dl<azi venje xed« pr thodnih funkcija. ';

/* Glalrni pi: q am za

,includ. stdio.l1>

main () I

tnt a[ OJ, b[lOJ, na=O. nb~O, i;

cb • .r 2., * zfJ· {I!neli, llda"):

/. cs tanje n i za za pretrazi vanj ; * / printf ("Rastuci niz brojeva? "I;

doscallf ("%d%c", &a[na++]. &z);' while (z!= '\n'l:

/8 do kraja reda */

1* Citanje brojeva z.ii traisnj ; *1 printf ("Neuredjeni niz brojeva? "I;

do scanf ("%dtc", &b[nb++]. &zl; while (z != '\n'l;

1* do kraja reda */

II·==-=====~===:::::I======::a=\n") ;

fQr (i=O; i<nb; i++1

printf (n%5d%5st5s%5s\n", bli], rez[sektral(a,na,b[ijl], rez[sektra2(a,na,b[i] I], rez[bintra (a,na,b(ijl]);

% pretraz

Rastuci niz brojeva? 1 2 5 7 8 10 11 12 Neuredjeni niz brojeva? 5 6 1 12 0 13

b sekl sek2 bin

==~========~========

5 dB dB da
6 ne ne ne
1 dB da da
12 dB dB da
0 ne ne ne
13 ne ne ne ! Broj IIpORdivanja:

I

, Scbeacijalno:

4095

2048

1023

512

c

10

12

IS

9

II

14

zadatak 6.7: sastavili na jezil<u . funkciju kojorn se odl'eduje broj razli~itih elemenala U zudatom cclobrojnom nizu. asl'a iIi ns jczikL~ C glavni pro ram koji ~ita. nizove celih br?jeva. u svakorn od njih odrcdi broj ra21icitih ara i . )'SpISLI'e rezultate, sve dok za duzinu mza 110 prOCHa nedozvollcnu vrednost

elelllcnu, ~ " .

Resellje:

--- __ -- -

---_._-J [i;;;ii scp~"oiavli:i"anic svakog bl'Oia (ako 'spred a, nepostoii nijedan element icdnak 0,).

/, r8z1icit.c - Braj raz.liCitih elemenata niza. int razliciti (const int niz [], int n) {

int I , j, rez=O;

for (i=O; i<n; i++)!. .,

for (j=O; j<i && n i.z j j ] !=n~z[~]; j++) if (j == i) rez++;

return rez;

/' Ispi ti van] e funkcij e razlici ti.

'include <stdio.h> 'define N 50

main 0 {

int n i z [N], n , i;

while (1) { )

printf ("Duzina niza? "); scanf ("%d", &n ;

if (n <= 0 II n > N) break; '_ , l c n : scanf ("%d",&niz[i++]));

printf ("Elementi ~i~a: "); for (~_~~ ~d\~\n'" razliciti(niz,n)); printf ("Braj razllcltlh elemenat

r- - _

% razlicit

Duzina niZd? 5

Elementi niza? 1 2 3 4 5

Broj razlicitih elemenata je 5

Duz1.na ni ze ; 6

Elemen i niza? 1 1 1 1 1 1 Broj rlzlicitih elemenata j

VUzina. n i z? 4

R}8menu nJ,za? 1 ,2 1 ,2

iro) rn.JJciLlh e)emenalV 1A 2

/jIJ?)IJI, (Jiu:!? 0

73

*/

*/

14

s ... viti Mi'"'' eft'""" za ,,"";' """,I"" ",~"''' (lj. za """'" prvog s ",,1«I.;;m. dru"

_IOO'J,m .... J" "",00'" oolobroJ'''''' ",W. ,.

SastRvit; nAjc~iku C glavni program koji ~ita l1~zove celih brojeva. u .svakom od njih obme redosl

,I~"''' , ",""J' ~'"'"'" sve do' "d"''"" "" ne """ ta "d"m'IJ~ vrednost. ~

zad.t•k 8.8:

Rel.nje:

I' ob,oi3. c _ Obrtanje redosleda elemena t:e niza. 'inclu~ <stdio.h>

,~fin. N 30

k; )

void ob.mi (int a I], int nl int i , j, k;

for (i=O, j=n-l; i<j; i++, j--) { k = ail]; ali] = a[j]; a[j]

/. Ispitivanje funkc;]'= b

• ~ 0 rni.

main () (

int niz IN], n , i; "hile (l) { printf ("0 .

if (n <__ UZlna nlza? ");

. 0 II n > N) break' scanf ("%d" , &n);

Pbnn~f ("Elementi n i z a ? :.) ..

o r m, (n i z , n)' ., for (i=O' '<

pr i nr.f ("Ob . ' ,. l n; scanf ("%d" &ni [.

f . rnuti niz: ,,). r v- Z l++ll'};

or (1=0" i< '

r n; printf I"%d" ."

, n i z [l++ I) ) f p .

r i n t f ("\0\0");'

rs obrni3

Duzina n i z e ? E1.ementi n i z s> Obrnuti o i z . ..

5

1 2 3 4 5 5 4 3 2

Duzina niza? Elementi ni~a? 1

,Obrnuti n i z ; ~.~

D!.lzina ns ze ;

o

1* J
,d
*1 :d.J
''''"1. vJ
J
1
f j
j
, I'
rna
*1 75

zadatak 6.9:

i(i na jeziku. lilJ1kciju. za Odfcdiv3nje brojcva elemenata celobrojnog niza koji daju ostatak 0, \,

Sa ta 'll'koIT\ deljenja zadatim celim brojem k (rezu1tatJe IUz od k: elemenataj

k-I PrJ

"". ". a jeziku glavni program koji procita niz celih brojeva i neki ceo broj k, poziva prethodnu SI1 tavin I~ pi~ dobijeni rezultat i ponavlja prethodne korake sve dolt za dnzinu niza ne proeita nedozvofhTlkcl.!U, IS

1· '1 'Vl-ednost:. Jelll '

IReseAje:

,.-- 'c - Bro]'evi elemenata niza 5 pojedinim ostacima. 1* br J.

,include <stdio.h> ,define N 50 ,define K 20

,;1

I ,;

void broj

(con,st int at], int n, int b I l . int k ) (

int i;

(. 0 ;<k,' b[i++j=O); for ~=; •

. 0 ;<n,' b[a[i++]%kJ++); for ( a= ; •

/" IspitilTanje funkcije broj.

main () {

int a [N], b[KJ, i, n, k;

while (1) ! ("%d", &n);

printf (nn? "I; scanf

if (n<=O I I n>N) break;

printf I"A: "); . f ("%dn, &a[i++]));

for (i=O; ~<n; scan ("%d", &k);

i nt f ("k? ,,). scanf

pr~n ,.,

broj (a, n , b, k);

printf ("8="); . (" %d",b[i++]));

for (i=O; i<k; prlntf

p r i n.tf ("\n\n");

i -. % broJ

n? 10

A? 0 1 2 3 4 5 6 7 B 9 Ik? 3

[;- 4 3 -'

fit 0

Zld.t.k 6.10:

Sastaviti nil jeziku C funJcciju 18 obr!lzovanje nizl! od prvib 11 prostih brojeva.

_". "' j"'kU C ",,", pm,mm U pro"'" i'P""",,,ti pmh""" _dj e. Pods.ok n zadati k ao p.

rametar glavnog programs.

Reienje:

*/

aq • jo,.... .... ij. dolji. ".. .... 11« ni s i","im ...... m brojem p za 1roji .... dB je P S Ji · ttl' .".,.lslc.

/. prosti.c _ Obrazov,mje n i z» prostih brojeva, lincludll <stdio.h>

lincludlt <stdlib. 11>

void prosti (int p[J, int n) I

int k~2, i~O, i. da; p[i++J ~ )<:; for (k~3; i<n; k+=2) I

~or (da=l, j=O; p[jl*p[jl<~k &&

1f (da) p[i++l = k , (da=k%p[j]) 1=0; j++);

/* Ispitivanje funkcije prosti. void main (int b

int p[200]' i p~r~ const char *vpar[]l

prosti (p, n); - a t o r (vpar [1 J 1 ;

for (i=O; i<n; i++) (

~r1ntf ("%6d", p[ij)' l.f (i%10==9 I I' '

1==n-1) putchar (' \n') ;

1 % pr,o.ti 168
2 3 5
31 37 7 11 13
73 41 43 17 19
79 83 47 53 59 23 29
127 131 89 97 61 67
179 137 139 101 103 71
181 149 107 109
233 191 193 .151 157 113
283 239 241 251 197 199 211 163 167 173
293 257 223
353 359 307 311 263 269 227 .<
419 367 373 313 317 271 277 281
421 379 331 37
467 431 383 47
479 433 439 389 397 _4
547 487 491 443 44 1101 4(L
557 563 499 457
607 613 ~69 571 503 50 IJ .I. 4J
661 673 617 619 577 !lS7 ' 2.1.
739 677 637 ,';93 .4.1
743 60J 64 '1 ,;:>.!Jt'J
811 751 693 '(0) ,4 6IJi f,Cll
877 821 823 757 7 1 '709 71 f) 1 b5'J
118,7 B27 7,9 773 '1"'1
947 883 R29 "87 ?J ~
9S'j 967 R87 ']0'7 83[) 851 7Q7 tlO
97 j 97', 91,1 9J i) Hr:" (I<, q
98 J iJ.~ 0 8 ~
9<1( 'I '7
'1'17 1.j41 */

zadatal< 6.11:

.. na jcziku 'funkciju za prctvaranjc niza celih brojeva (medu i::ijim clcmentil1'la mugu da budu i S~SW III 'kUIJ (ciji SU SVI elernenri medusobno razliein].

'cdnl\KI) II S . _.. . .

J , 'J"zikTl glavni program kOJI procita nrz brojcva, pt.etvoti ga u skup, Ispi~e dobijeni rezultat i

sln\1111 nl! k I k d' " •.

~". rethodnc kora e sve co ZH UZInU 1I1za nc procua nedozvoljenu vrcdnosr, pOJlllvl:JlI P

Resel1Je:

-_ ------

[- -, --: prva pojavljivanja pojedinih vrcdnost] (£1; se zadrzi aka ne postQji element s istom vredno-

$aclIVll:l1Ji sc .....'. ,

~tll isprcd POZ1C_1J_e_I_). __ .~~ _

2 c - Pretvaranje niza u skup. /' skup .

,include s t d i o . h>

ldefine N 100

voidskup (inta[], int On)

int I , j, k : .

far (i~j=O; i<*n; ~++). ( ,

for ( k=fl , k<j && a[kl!=a[~]; k++); if I k == j) a [ j ++ I = a [ ~ ) ;

*n = j;

/* Ispi[ivanje funkcije skup. void main () {

while (1) (

int a[NL n , i; .? "); scanf (I!%d", &n);

printf {"Duz~na n~za.

if (n<O I I n>N) break;

printf ("'Elementi niza? "); ['++J)' fOl: (i~O;· i<n; scanf ("'%d"', &a .i. ,

skup (a, &n); .. '"

printf ("Elementi skupa. ), [,++]). f'o'r' U~o; i<n; printf {"%d ",a ~ r pu char (' \n' ) ;

% skup2

DlJzinq n iza? Elementi niza? ,81 m nti exupe :

5

1 2 3 4 S 12345

iJU%jna n.i:>;a? e.JF!melJt.i nj.7.a? 1':1 "IIip.{J U ,gkupll:

lUlJdnfl n i zn»

~~ J "II/( rd I IJ j 7." f f,r, 1'1('111 j ffklJ{JlI:

o

5 1.2132 123

{JlI~ j /JrJ 1/ f ZtJ 7

-1

..........

77

*/

*/

18

"".~,; "i";" C fun',;i' I«>io", sc u ,,..on'" nW b<oi'" ".k; podori' """.",bn' jednakrh bro ",ol' M po jol" prim"'" ,jh broj"'. N. prim'" niz, " 2, 2, J, " " ',4, 4 tre ba ",,,,,,,;H u niz " ~i

',4. ' , So,",'" na i',;kO C ".",; ... "" m k~; pro"" niz b<o,,'~ pozove prethodn. funk"i" is pi " dobf . """'" ; ,,""",Ij. P"'''''"' kornk' sv dok za d.,",. niza ne proth. n",.,"·lj··· vredn os t. ''''

Zadatak 6.12:

sas

RE

void redukcija (float a I l . int = n) { inti, j;

for (i~l, j~Oi i<*n; i++) if (a [j] !~

*n = j + 1; a [i]) a [++j]

a[ i];

*/

/ ,

Relenje:

/* _edukc.C _ lzostavljanje UZ/ilstopno jednak.ih elemenata niza. ,include <stdi .h>

ldefine N 30

./

,

/» Ispitivanje funkcije red'ukcija. void main (I {

float a[N]; int n, i; "hile (1) I

'fPri.ntf ("n? "); scanf ("%d" r &n),' 1 (n <~ 0 I In>

N) break;

printf (nA? ") " for

d (i~O,' '<n

re,t1kci]'a (a, &n) " L; scanf ("%f"

_ , &a[i++]»;

pnntf ("A= n); for

pr (i=O,' ,<

, lntf ("\n\n"); L n; printf ("%f" [.

, a 1++]));

}

-=========~~-_j r~?r~e

I~? 1 2 2 3 1 1 1 4

lA~ 1.000000 2.00000~

n? -1

L.. __

3.000000 1.000000

4.000000

zadatak 6.1l:

79

a Wvi1i 113 jeziku funkciju za rallp!lkivanje 32 bi

. .'. - It110g cclobrojno d .

[ts(3viti na J ZIk.U C glavni program za prikaziva _'. . g po atka hIt po bit l1 niz od 32 baita

, tlJe rada te funkcijc. " .

,RdeQje:

/" )).it32.c - Raspakivanje 32-bitnog 1

ce obrojnog podatka.

linclude <stdio.h>

void bi t32 (unsigned long- k , char a [] ) ( tnt i;

for (i= 1; i>=O: . --) r a[iJ = k & 1;

k »~ 1;

/" Ispitivanje funkcije bit32. 'void main () (

unsiqned .long: hroj; char bi t [32]; int i; while (1) (

scanf ("%Ix", &broj J ;

if Ibroj == Ox9999) break;

printf ("Procitani broj: %lx\n", broj); bit32 (broj, bit);

printf ("Bitovi broja: ");

for (i=O; i<32; i++) {

printf (""od", bit [i]);

if (i%4 == 3) putchar (' 'I;

~/

printf ("\n\n");

bit32,f'_od
[01 2 fffiffH fffffffe 1234567 89abcdef 9999 11
I % bit32 <hi t.32 .. pod

ProCltani broj: 0
Bltovi broja: 0000 0000 0000 0000 0000 0000 0000 0000
Procitani broj: 1
Bitovi b1:oja: 0000 0000 0000 0000 0000 0000 0000 0001
Froe! tanl broj: 2
81 ovi brOja: 0000 0000 0000 0000 0000 0000 0000 0010
I
Proci ani oroj: ffflffff
8itovi bro_ja; 1111 1111 .1l J 1 1111 1111 1111 1111 llll
Proeitan i, broj: ffUftle
B:LtovJ broja: 1111 l.l1l 1.1.11. 1111 ,11.11 1.111 lll1 1ll 0
l'rOejLilni bra) ; 1234567 j
IH 0"1 brQja; 0000 0001 OM 0 0011 0l01l 0101 0.111.1 Dl J 1
l'r oc I LrJflj t.r o j : 80CQcWf IlJI
flfl0vl broJ",; • J 000 1001 1.010 /01 I liDO 1101 1110
z.......:.,,.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->