Zadaci - procedure Zad1. Data je kvadratna meta u koordinatnom sistemu sa koordinatama A(0,0), B(1,0), C(1,1), D(0,1). Sastaviti proceduru Gadjanje koja će odrediti broj poena na sledeći način: ako je tačka, na osnovu svojih koordinata u unutrašnjoj oblasti mete, dobija se 5 poena; ako je tačka na konturi mete dobija se jedan poen i ako je tačka van mete, ne dobija se ni jedan poen. Na osnovu procedure napisati program koji će za deset unetih tačaka, preko svojih koordinata, koje simuliraju hitac odrediti broj osvojenih poena. Zad2. Napisati proceduru za izračunavanje površine trougla u ravni kada su poznate koordinate njegovih temena. Koristeći ovu proceduru napisati program kojim se izračunava površina prostog četvorougla i petougla zadatih svojim koordinatama. Zad3. Napisati proceduru koja arapski broj pretvara u rimski bnroj. Napisati program za testiranje procedure. Primeri: Uneti broj Rezultat 1999 MCMXCIX 1980 MCMLXXX 3999 MMMCMXCIX 1444 MCDXLIV Zad4. Napisati program kojim se tri broja x,y,z uredjuju u neopdajući poredak (x<=y<=z). Zadatak rešiti koristeći proceduru razmeni ( razmena vrednosti dve promenljive). Zad5. Napisati program kopjim se različiti brojevi x,y,z,t uredjuju u sledeći (testerasti) poredak x<y>z<t. Zadatak rešiti koristeći proceduru razmeni ( razmena vrednosti dve promenljive). Zad6. Napisati proceduru kopjom se proverava da li je zbir prve i treće cifre jednak drugoj u zapisu trocifrenog broja. Koristeći proceduru napisati program kojim se odredjuju svi trocifrni brojevi koji imaju osobinu da je zbir prve i treće cifre jednak drugoj. Zad7. Napisati program kojim se izračunava podaci). Zadatak rešitit koristeći: a) funkciju koja izračunava stpen, tj. b) proceduru koja izračunava stepen, tj. n x y = m gde su x z R z k p = t t R, k N { 0} k t p = t R, k N { 0} {},, n, m N 0 (x,z,n,m dati Zad8. Razlomak je dat kao uređeni par (a,b) celih brojeva, gde je a brojilac, b imenilac razlomka. Napisati program za skraćivanje datog razlomka koristeći proceduru NZD koja odredjuje najveći zajednički delitelj dva cela broja. Zad9. Napisati program za prikazivanje razlomka n/m ( n,m:1..maxint, n<=m) u obliku dva razlomka 1/a i 1/b, tako što prvo treba uprostiti razlomak n/m na razlomak p/q gde je p<=q i nzd(p,q)=1, tj. n/m = p/q = 1/a + 1/b
Rešenja zadataka Zad2 program zad1; var x1,x2,x3,x4,x5,y1,y2,y3,y4,y5,p_c,p_p,pt123,pt134,pt145:real; procedure p_trougla(ax1,ax2,ax3,ay1,ay2,ay3:real;var pt:real); pt:=1/2*abs(ax1*(ay2-ay3)+ax2*(ay3-ay1)+ax3*(ay1-ay2)); writeln('unesite koordinate cetvorougla: '); write('prvo teme:');readln(x1,y1); write('drugo teme:');readln(x2,y2); write('trece teme:');readln(x3,y3); write('cetvrto teme:');readln(x4,y4); p_trougla(x1,x2,x3,y1,y2,y3,pt123); p_trougla(x1,x3,x4,y1,y3,y4,pt134); p_c:=pt123+pt134; writeln('p cetvorougla je: ',p_c); writeln; writeln('unesite koordinate petougla: '); write('prvo teme:');readln(x1,y1); write('drugo teme:');readln(x2,y2); write('trece teme:');readln(x3,y3); write('cetvrto teme:');readln(x4,y4); write('peto teme:');readln(x5,y5); p_trougla(x1,x2,x3,y1,y2,y3,pt123); p_trougla(x1,x3,x4,y1,y3,y4,pt134); p_trougla(x1,x4,x5,y1,y4,y5,pt145); p_p:=pt123+pt134+pt145; writeln('p petougla je: ',p_p). Zad3 program rimskibroj; var m:integer; procedure rim(n:integer); const hi='m';ps='d';st='c'; pd='l';ds='x';pe='v'; je='i'; while n>=1000 do n:=n-1000; write(hi) if n>=900 then n:=n-900; write(st,hi) if n>=500 then n:=n-500; write(ps) if n>=400 then
Zad8 n:=n-400; write(st,ps); while n>=100 do n:=n-100; write(st) if n>=90 then n:=n-90; write(ds,st) if n>=50 then n:=n-50; write(pd) if n>=40 then n:=n-40; write(ds,pd); while n>=10 do n:=n-10; write(ds) if n>=9 then n:=n-9; write(je,ds) if n>=5 then n:=n-5; write(pe) if n>=4 then n:=n-4; write(je,pe); while n>=1 do n:=n-1; write(je) write('unesite broj od 1 do 3999');readln(m); rim(m); writeln. program razlomak; var a,b,d:integer; procedure nzd(x,y:integer;var z:integer); var m,i:integer; p:boolean;
if x<y then m:=x m:=y; if (x mod m =0)and(y mod m=0) then z:=m i:=m div 2; p:=false; while (i>=1) and not p do if (x mod i =0)and(y mod i=0) then p:=true; z:=i i:=i-1 {glavni program} write('unesite a i b');readln(a,b); nzd(a,b,d); writeln(a div d,'/',b div d). Zad9 program egipat; var n,m,p,q,a,b,z:integer; procedure rastavi(ap,aq:integer;var aa,ab:integer); var k,i,u,v:integer; x,y:boolean; k:=1; x:=true; while x do u:=k*ap; v:=k*aq; i:=1; y:=true; while (i<=u) and y do aa:=i; ab:=u-i; if aa*ab=v then x:=false; y:=false if aa>ab then k:=k+1; y:=false
i:=i+1; procedure nzd(x,y:integer;var z:integer); var m,i:integer; p:boolean; if x<y then m:=x m:=y; if (x mod m =0)and(y mod m=0) then z:=m i:=m div 2; p:=false; while (i>=1) and not p do if (x mod i =0)and(y mod i=0) then p:=true; z:=i i:=i-1 {Glavni program} readln(n,m); nzd(n,m,z); p:=n div z; q:=m div z; rastavi(p,q,a,b); write(p,'/',q,'=',1,'/',a,'+',1,'/',b).