You are on page 1of 63

Zadatak: Napii sledee matematike izraze u Pascalu:

a)

b) Reenje: a) b) f:=sqrt(x+(sqr(x)*sqr(x)+sqr(x)*x-2)/cos(x)) f:=abs(x)+exp(-b*x)+cos(x)/sin(x)

Zadatak: Napii sledee matematike izraze u Pascalu:

a) b)

f:= f:=

Reenje: a) f:=sqrt(sqr(x)+(sqr(x)*sqr(x)*x+x+1)/sin(x)) b) f:=abs(x)+exp(-b*x)+sin(x)/cos(x)

Zadatak: Ako je promeljiva tac logika promenljiva napii izraz da ona ima vrednost true, da se od odeseaka sa duinama x, y i z moe konstruisati trougao. Reenje: Uslov da bi se konstruisao trougao je da je zbir bilo koje dve njegove stranice uvek vei od tree tj. if((a+b)>c) and ((a+c)>b) and ((b+c)>a) Zadatak: Neka je dat sledei PASKALSKI kod: program test; var

i,j: real; k: boolean; begin i:= j mod 8; k:=i+1; j:=i-5; end. Koja su greka napravljena u pisanju programa (opii) ? Reenje: - operacija mod je dozvoljena samo na celim brojevima - kako je k logi~ka promenljiva onda ne sme bit k:=i+1 - na predzadnjoj instrukciji ne treba ; Zadatak: Napii naredbu uslovnog prelaska kojom se za zadato x izraunava f po formuli:

Reenje: if x >= 1 then f:=-2*x else if x > 1 and x < 5 then f:=sqrt(sqr(x)*x-2*x) else f:=abs(x); Zadatak: Napii naredbu uslovnog prelaska kojom se za zadato x izraunava f po formuli:

Reenje: if x <= 1 then f:-8*x else if x > -1 and x < 4 then f:=sqrt(sqr(x)+4*x) else f:=abs(x); Zadatak:

Koju e vrednost imati promenljiva a nakon izvravanja sledeih naredbi: a: = 1.56; if a < 1 then a: = a+1 else begin a: = a+4; a:=trunc(a)+7; a:=sqr(a)+10 end; a:=abs(a)+2; Reenje: Budui da je a vee od 1 to e se izvriti instrukcija od if koje su pod else pa imamo: a=a+4=1.56+4=5.56 a=trunc(a)+7=trunc(5.56)+7=5+7=12 s=sqr(a)+10=12*12+10=144+10=154 na kraju dobijemo: a=abs(a)+2=sbs(154)+2=154+2=156 Zadatak: Koju e vrednost imati promenljiva a nakon izvravanja sledeih naredbi: a: = 1.56; if a < 1 then a: = a+1 else begin a: = a+5; a:=round(a)+4; a:=sqr(a)+5 end; a:=abs(-a) + 2; Reenje: Budui da je a vee od jedan izvrava se else deo if naredbe pa imamo: a=a+5=1.56+5=5.56 a=round(a)+4\round(5.56)+4=6+4=10 a=sqr(a)+5=10*10+5=105 i na kraju a=sbs(-a)+2=abs(-105)+2=105+2=107 Zadatak: Napisati program koji za uneseni napon U i struju I sa tastature sraunava otpor i snaga kola. Rezultat prikai u formatu od 8 mesta sa 2 decimale. Reenje: program prog; Uses CRT; var u,i,r,p : real; begin ClrScr;

Write('Unesi napon U kola : '); ReadLN(u); Write('Unesi struju I kola : '); ReadLn(i); r := u/i; p := u*i; WriteLn('Otpor kola je : ',r:8:2,' Snaga kola je :',p:8:2); ReadLn End. Zadatak: Neka je data jednaina =0. Promenljive a i b se unose sa tastature. Napii program koji za svaku vrednost a i b daje reenja jednaine. Rezultat prikai u formatu od 8 mesta sa 2 decimale. Reenje: Reenje je jednaine x=-b/a pa e program izgledati kao: program prog; Uses CRT; var a,b,x : real; begin ClrScr; Write('Unesi parametar a : '); ReadLN(a); Write('Unesi parametar b : '); ReadLn(b); x := -b/a; WriteLn('Resenje jednacine je x=',x:8:2); ReadLn End. Zadatak: Neka se sa tastature unose celi brojevi n1, n2, i n3. Napii program kojim se sraunava zbir samo negativnih brojeva. Rezultat prikai u formatu od 5 mesta. Reenje: Program izgleda ovako: program prog; Uses CRT; var n1,n2,n3,s : integer; begin ClrScr; Write('Unesi n1 : '); ReadLn(n1);

Write('Unesi n2 : '); ReadLn(n2); Write('Unesi n3 : '); ReadLn(n3); s := 0; if n1 < 0 then s := s+n1; if n2 < 0 then s := s+n2; if n3 < 0 then s := s+n3; WriteLn('Zbir brojeva je s=',s:5); ReadLn End. Zadatak: Neka se sa tastature unose celi brojevi n1, n2, i n3. Napii program kojim se sraunava ukupan broj negativnih brojeva. Rezultat prikai u formatu od 5 celih mesta. Reenje: Program izgleda ovako: program prog; Uses CRT; var n1,n2,n3,s : integer; begin ClrScr; Write('Unesi n1 : '); ReadLn(n1); Write('Unesi n2 : '); ReadLn(n2); Write('Unesi n3 : '); ReadLn(n3); s := 0; if n1 < 0 then s := s+1; if n2 < 0 then s := s+1; if n3 < 0 then s := s+1; WriteLn('Ukupa broj negativnih brojeva je :',s:5); ReadLn End. Zadatak: Neka se sa tastature unose celi brojevi n1, n2, i n3. Napii program kojim se sraunava zbir brojeva koji se nalaze u intervalu 3 do 7. Rezultat prikai u formatu od 5 mesta. Reenje: Program izgleda ovako: program prog; Uses CRT;

var n1,n2,n3,s : integer; begin ClrScr; Write('Unesi n1 : '); ReadLn(n1); Write('Unesi n2 : '); ReadLn(n2); Write('Unesi n3 : '); ReadLn(n3); s := 0; if ((n1 >=5) and (n1 <= 7)) then s := s+n1; if ((n2 >=5) and (n2 <= 7)) then s := s+n2; if ((n3 >=5) and (n3 <= 7)) then s := s+n2; WriteLn('Trazeni zbir je:',s:5); ReadLn End. Zadatak: Neka se sa tastature unose celi brojevi n1, n2, i n3. Napii program kojim se sraunava zbir brojeva koji su deljivi sa 7. Rezultat prikai u formatu od 5 celih mesta. Reenje: Program izgleda ovako: program prog; Uses CRT; var n1,n2,n3,s : integer; begin ClrScr; Write('Unesi n1 : '); ReadLn(n1); Write('Unesi n2 : '); ReadLn(n2); Write('Unesi n3 : '); ReadLn(n3); s := 0; if (n1 mod 7 = 0) then s := s+n1; if (n2 mod 7 = 0) then s := s+n2; if (n3 mod 7 = 0) then s := s+n3; WriteLn('Trazeni zbir je:',s:5); ReadLn End. Zadatak: Neka se sa tastature unose brojevi n1, n2, i n3. Napii program kojim se promenljivoj max dodeljuje najvea vrednost od unesenih brojeva. Rezultat prikai u formatu od 8 mesta sa 2 decimalna.

Reenje: Program izgleda ovako: program prog; Uses CRT; var n1,n2,n3,max : real; begin ClrScr; Write('Unesi n1 : '); ReadLn(n1); Write('Unesi n2 : '); ReadLn(n2); Write('Unesi n3 : '); ReadLn(n3); max := n1; if (n2 >= max) then max := n2; if (n3 >= max) then max := n3; WriteLn('Najveci uneseni broj je:',max:8:2); ReadLn End. Zadatak: Neka se sa tastature brojevi n1, n2, i n3. Napii program kojim se ovi brojevi udvajaju ako je inae se svakom broju dodeljuje njegova apsolutna vrednost. Reenje: Program izgleda ovako: program prog; Uses CRT; var n1,n2,n3 : real; begin ClrScr; Write('Unesi n1 : '); ReadLn(n1); Write('Unesi n2 : '); ReadLn(n2); Write('Unesi n3 : '); ReadLn(n3); if ((n1 >= n2) and (n2 >= n3 )) then begin n1 := 2*n1; n2 := 2*n2; n3 := 2*n3 end else begin n1 := abs(n1); n2 := abs(n2); n3 := abs(n3) end; WriteLn('n1 = ',n1:8:2, ' n2 = ',n2:8:2,' n3 = ',n3:8:2); ReadLn End.

Zadatak: Putovanje izmeu mesta A i B traje n sekundi. Sraunaj koliko je to sati, minuta i sekundi. Reenje: Program izgleda ovako: program prog; Uses CRT; var n,sat,min,sek : integer; begin ClrScr; Write('Unesi sekunde : '); ReadLn(n); sat := n div 3600; sek := n mod 3600; min := sek div 60; sek := sek mod 60; WriteLn('sati = ',sat:5, ' minuta = ',min:5,' sek = ',sek:5); ReadLn End. Zadatak: Kolika e biti vrednost promenljive a ako se izvri sledei deo koda: a := 1.56; case k mod 10 of 2,3,5,7: begin a := a+7; a := trunc(a) end; 1:; 4,8 : begin a := a-3; a :=round(a); 9,6 : begin a:=-a; a :=a-7 end; ako se unese a) k=312, b) k = 121, c) k = 234 d) k=416 Reenje: a) za uneseno k=312 rezultat operacije k mod 10 = 2 pa se izvravaju slede}e instrukcije: a=a+7=1.56+1=8.56 a=trunc(a)=trunc(8.56)=8 b) za uneseno k=121 operacija k mod 10 = 1 pa se vrednost promenljive a nee promeniti. c) za uneseno k=234 rezultat operacije k mod 10 = 4 pa se izvravaju sledee instrukcije: a=a-3=1.56-3=-1.44 a=round(a)=round(-1.44)=-1 d) za uneseno k=416 rezultat operacije k mod 10 = 6 pa se izvravaju sledee instrukcije:

a=-a=-1.56 a=a-7=-1.56-7=-8.56 Zadatak: Neka je data sledea if naredba. if n1>n2 then n1 :=n1+5 else n1:=n2+3; navedeni niz naredbi zameni odgovarajuom case naredbom. Reenje: Program izgleda ovako: case n1>n2 of true: n1 :=n1+5; false: n1 :=n2+3 end. Zadatak: Neka se sa tastaure unosi uspeh unika. Napisati program kojim se za unetu ocenu ispisuje: 1 - nedovoljan, 2 - dovoljan, 3 - dobar, 4 vrlodobar, 5 - odlian. Reenje: Program izgleda ovako: program prog; Uses CRT; var ocena : integer; begin ClrScr; Write('Unesi oceun : '); ReadLn(ocena); case ocena of 1: WriteLn('Nedovoljan'); 2: WriteLn('Dovoljan'); 3: WriteLn('Dobar'); 4: WriteLn('Vrlodobar'); 5: WriteLn('Odican'); end; ReadLn End. Zadatak: Neka je data slede}a grupa naredbi. a := 5; for i :=1 to 5 do a :=a-i; a :=a-4;

kolika e biti vrednost promenljive a posle izvrenja datog koda ? Reenje: 1. prolaz: 2. prolaz: 3. prolaz: 4. prolaz: a=a-i=5-1=4 a=a-i=4-2=2 a=a-i=2-3-=1

a=a-i=-1-4=-5 5. prolaz: a=a-i=-5-5=-10 i na kraju se izvrava naredba: a=a-4=-10-4=-14 Primetite da je u telu ciklusa samo naredba a := a-i koja e biti izvrena pet puta, dok e naredba a :=a-4 biti izvrena samo jednom. Zadatak: Napisati program koristei instrukciju for kojom se rauna zbir brojeva od 1 do 100 koji su deljivi sa 7 i sa 3. Reenje: Program za reenje ovog zadatka je: program prog; Uses CRT; var s, i : integer; begin ClrScr; s :=0; for i:=1 to 100 do if ((i mod 7 =0) and (i mod 3 = 0)) then s :=s+i; WriteLn('Trazeni zbir je ',s:5); ReadLn End. Brojevi koji zadovoljavaju dati uslov su: 21, 42, 63 i 84 iji je zbir 210. Zadatak: Napisati program koristei instrukciju for kojom se rauna zbir brojeva od 1 do 100 ija je zadnja cifra 9. Reenje: Program za reenje ovog zadatka je: program prog; Uses CRT;

var s, i : integer; begin ClrScr; s :=0; for i:=1 to 100 do if ((i mod 7 =0) and (i mod 3 = 0)) then s :=s+i; WriteLn('Trazeni zbir je ',s:5); ReadLn End. Brojevi koji zadovoljavaju ovaj uslov su 9, 19, 29, 39, 49, 59, 69, 79, 89 i 99 iji je zbir 540. Zadatak: Neka se sa tatature unosi 10 realnih brojeva. Napisati program kojim se sraunava njihov zbir i njihov proizvod. Reenje: Program za reenje ovog zadatka je: program prog; Uses CRT; var a, zbir, proizvod : real; i : integer; begin ClrScr; zbir :=0; proizvod :=1; for i :=1 to 10 do begin Write('Unesi ',i,' - broj :'); ReadLn(a); zbir :=zbir+i; proizvod :=proizvod*i end; WriteLn('Zbir brojeva je ',zbir:8:2,' Proizvod je : ',proizvod:8:2); ReadLn End. Primetite da je poetni uslov za zbir nula, dok je to za proizvod 1. Zadatak: Poznato je u matematici da je faktorijel nekog celog broja definisan kao: faktorije=n!=1*2*...*n Napii program koristei instrukciju for kojom se rauna faktorijel broja n unesenog sa tastature. Reenje: Program za reenje ovog zadatka je:

program prog; Uses CRT; var faktorijel : real; n,i : integer; begin ClrScr; faktorijel :=1; Write('Unesi zadati broj n :'); ReadLn(n); for i :=1 to n do begin faktorijel :=faktorijel*i end; WriteLn('Faktorijel broja ',n,' je = ',faktorijel:13:2); ReadLn End. Zadatak: Napisati program koristei instrukciju for kojom se rauna zbir niza koji je definisan kao: s=0-1+2=3+4...(-1)nn za broj n koji se unosi sa tastature. Reenje: Program za reenje ovog zadatka je: program prog; Uses CRT; var zbir : real; i, n,pred : integer; begin ClrScr; Write('Unesi zadati broj n :'); ReadLn(n); pred :=-1; zbir :=0; for i :=1 to n do begin zbir := zbir+(pred)*i; pred :=-pred end; WriteLn('Trazeni zbir niza je ',zbir:8:2); ReadLn End.

Primetite da smo za reavanje ovog zadatka morali definisati promenljivu pred, koja moe imati vrednost 1 ili - 1 i u svakom ciklusu se manja i to za neparan i jednaka je - 1 a za paran 1. Zadatak: Neka je dat niz:

s=sin(x)+sin2(x)+sin3(x)+...+sinn(x). Napisati program koristei instrukciju for kojom se rauna ovaj zbir ako se sa tastature unosi n i broj x. Reenje: Program za reenje ovog zadatka je: program prog; Uses CRT; var zbir, pro, x : real; n, i : integer; begin ClrScr; Write('Unesi zadati broj n :'); ReadLn(n); Write('Unesi broj x :'); ReadLn(x); zbir :=0; pro := 1; for i :=1 to n do begin pro :=pro*sin(x); zbir := zbir+pro; end; WriteLn('Trazeni zbir niza je ',zbir:8:2); ReadLn End. Zadatak: Napii program kojim se odreuju svi prosti brojevi od 3 do 1000 kao i njihov ukupan broj. Reenje: Program za reenje ovog zadatka je: program prog; Uses CRT; var i, j, k,i2, a, broj: integer; c1: char; begin ClrScr; Writeln;

WriteLn; WriteLn(' PROSTI BROJEVI OD 1 DO 1000 '); WriteLn; WriteLn; broj :=0; for i :=3 to 1000 do begin j := i div 2; a :=0; for k :=2 to j do begin i2 := i mod k; if i2 = 0 then a :=1; end; if a=0 then begin Write(' ',i); broj :=broj+1; end; end; WriteLn; WriteLn; WriteLn('Ukupno takvih brojeva : ', broj);f ReadLn(c1); end. Zadatak: Neka je data sledea grupa naredbi: s :=0; i :=-1; while s<4 do begin s :=s+0.7; i :=i+3 end; s :=s+i; Kolike e biti vrednosti promenljivih s i i nakon naputanja navedenog koda. Reenje: 1. prolaz 2.prolaz 3.prolaz 4.prolaz s=s+0.7=0+0.7=0.7 i=i+3=-1+3=2 s=s+0.7=0.7+0.7=1.4 i=i+3=2+3=5 s=s+0.7=1.4+0.7=2.1 i=i+3=5+3=8 s=s+0.7=2.1+0.7=2.8 i=i+3=8+3=11

5.prolaz 6. prolaz

s=s+0.7=2.8+0.7=3.5 i=i+3=11+3=14 s=s+0.7=3.5+0.7=4.2 i=i+3=14+3=17

7. prolaz budui da je s = 4.2 > 4 ovog prolaza nema pa se izvrava instrukcija iza while ciklusa s :=s+i = 4.2+17=21.2 Zadatak: Neka je data sledea grupa naredbi: s :=1; i :=1; while s<4 do begin s :=s+0.6; i :=i+2 end; s :=s+i; Kolike e biti vrednosti promenljivih s i i nakon naputanja navedenog koda. Reenje: 1. prolaz s=s+0.6=1+0.6=1.6 i=i+2=1+2=3 2.prolaz 3.prolaz s=s+0.6=1.6+0.6=2.2 i=i+2=3+2=5 s=s+0.6=2.2+0.6=2.8 i=i+2=5+2=7 s=s+0.6=2.8+0.6=3.4 i=i+2=7+2=9 5.prolaz s=s+0.6=3.4+0.6=4.0 i=i+2=9+2=11

4.prolaz

6. prolaz budui da je s = 4.0 i nije manje od 4 ovog prolaza nema pa se izvrava instrukcija iza while ciklusa s :=s+i = 4.0+11=15 Zadatak: Neka je data sledea grupa naredbi: while a > b do begin

c :=a*b; c :=c+a end; Kako e se izvriti ova grupa naredbi. Reenje: Ako je a <= b tada instrukcije u telu ciklusa nee biti izvrenei nijedanput a ako je a > b program e trajno ostati u telu ciklusa takozvanom beskonanom ciklusu. Zadatak: Napii program kojim se sabiraju svi neparni brojevi od 100 do 1000 upotrebom while naredbe. Reenje: Program za reenje ovog zadatka je: program prog; Uses CRT; var zbir : real; i : integer; begin ClrScr; zbir :=0; i := 101; while i < 1000 do begin zbir :=zbir+i; i :=i+2; end; WriteLn('Trazeni zbir je ',zbir:8:2); ReadLn End. Primetite da smo kao prvi neparni broj uzeli broj 101 a svaki sledei neparni je za 2 vei od prethodnog. Ciklus e se zavriti kada i dostigne vrednost od 1001 ali taj broj nee ui u zbir. Inae traeni zbir je 247500. Zadatak: Napii program upotrebom while naredbe kojim se izraunava zbir niza za svaki broj n unesen sa tastature ako je dat niz:

Reenje: Program za reenje ovog zadatka je:

program prog; Uses CRT; var zbir, j : real; n,i : integer; begin ClrScr; Write('Unesi broj n : '); ReadLn(n); zbir :=0; i := 1; while i <= n do begin j :=1 /(2*i-1); zbir :=zbir+j; i :=i+1; end; WriteLn('Trazeni zbir niza je :',zbir:8:2); ReadLn End. Sutina reenja ovog zadatka je da srauna lan niza i doda na prethodnu sumu. Nakon toga se i uveava za 1. Ciklus se obnavlja sve dok i ne dostigne vrednost n+1, ali taj lan nee ui u zbir budui da je uslov zadovoljen. Zadatak: Napii deo koda upotrebom while instrukcije kojim se trai zbir brojeva od 1 do 100 deljivih sa 6 i 4. Brojevi od 50 do 60 ne ulaze u taj zbir. Reenje: zbir :=0; i := 1; while i <= 100 begin if ((i mod 4 = then zbir := if ((i mod 4 = then zbir := i :=i+1; end;

do 0) and (i mod 6 = 0) and (i < 50)) zbir+i; 0) and (i mod 6 = 0) and (i > 60)) zbir+i;

Pokuaj da sa jednim if uslovom rei zadatak. Zadatak: Neka je data sledea grupa naredbi: s :=1; i :=1; repeat s :=s+0.6;

i :=i+2 until s=4; s :=s+i; Kolike e biti vrednosti promenljivih s i i nakon naputanja navedenog koda. Re{enje: 1. prolaz 2.prolaz 3.prolaz s=s+0.6=1+0.6=1.6 i=i+2=1+2=3 s=s+0.6=1.6+0.6=2.2 i=i+2=3+2=5 s=s+0.6=2.2+0.6=2.8 i=i+2=5+2=7 4.prolaz 5.prolaz s=s+0.6=2.8+0.6=3.4 i=i+2=7+2=9

s=s+0.6=3.4+0.6=4.0 i=i+2=9+2=11 uslov je zadovoljen pa se naputa repeat ciklus pa e s biti: s=s+i = 4.0+11=15

Zadatak: Neka je data slede}a grupa naredbi: s :=0; i :=-1; repeat s :=s+0.7; i :=i+3 until s=4.2; s :=s+i; Kolike e biti vrednosti promenljivih s i i nakon naputanja navedenog koda. Reenje: 1. prolaz 2.prolaz 3.prolaz s=s+0.7=0+0.7=0.7 i=i+3=-1+3=2 s=s+0.7=0.7+0.7=1.4 i=i+3=2+3=5 s=s+0.7=1.4+0.7=2.1

i=i+3=5+3=8 4.prolaz 5.prolaz 6. prolaz s=s+0.7=2.1+0.7=2.8 i=i+3=8+3=11 s=s+0.7=2.8+0.7=3.5 i=i+3=11+3=14

s=s+0.7=3.5+0.7=4.2 i=i+3=14+3=17 budui da je uslov zadovoljen to je s=s+i=4.2+17=21.2. Zadatak: Napii program kojim se upotrebom repat instrukcije traii zbir brojeva od 100 do 300 ija je zadnja cifra 7. Reenje: program prog; Uses CRT; var zbir, j : real; n,i : integer; begin ClrScr; zbir :=0; i := 100; repeat if (i mod 10 = 7) then zbir := zbir+i; i :=i+1 until i = 301; WriteLn('Trazeni zbir je :',zbir:8:2); ReadLn End. Zadatak: Napii program upotrebom repeat instrukcije kojim se trai zbir brojeva od 1 do 100 deljivih sa 6 i 4. Brojevi od 50 do 60 ne ulaze u taj zbir. Reenje: program prog; Uses CRT; var zbir : real; i : integer; begin ClrScr;

zbir :=0; i := 1; repeat if (((i mod 4 = 0) and (i mod 6 = 0)) and ((i < 50) or (i > 60))) then zbir := zbir+i; i := i+1; until i = 101; WriteLn('Trazeni zbir je :',zbir:8:2); ReadLn End. Zadatak: Napii program kojim se od datog prirodnog broja n formira broj sa istim ciframa ali u inverznom poretku. Reenje: Program izgleda ovako: program prog; Uses CRT; var n, i : integer; begin ClrScr; Write('Unesi broj n : '); ReadLn(n); i := 0; repeat i :=i*10+n mod 10; n :=n div 10 until n = 0; WriteLn('Trazeni broj je :',i:8); ReadLn End. Zadatak: Napii program kojim se za zadati prirodan broj n utvruje koliko on ima binarnih jedinica ako je predstavljen u binarnom obliku. Reenje: Program izgleda ovako: program prog; Uses CRT; var n, i : integer; begin ClrScr; Write('Unesi broj n : '); ReadLn(n);

i := 0; repeat i :=i+n mod 2; n :=n div 2 until n = 0; WriteLn('Broj u binarnom obliku ima jedinica :',i:8); ReadLn End. Zadatak: Neka se sa tastature unosi napon u i struja i. Sraunati otpor kola r koristei funkciju otpor. Reenje: Program izgleda ovako: program prog; Uses CRT; var u, i, r : real; function otpor(u, i: real):real; begin otpor := u/i; end; begin ClrScr; Write('Unesi napon u : '); ReadLn(u); Write('Unesi struju i : '); ReadLn(i); r := otpor(u, i); WriteLn('Otpor kola je : ',r:8:3); ReadLn End. Zadatak: Neka se sa tastature unosi celi brojevi n1 i n2. Koristei funkciju veci nai vei broj i prikazati ga. Reenje: Program izgleda ovako: program prog; Uses CRT; var n1, n2, broj : integer; function veci(n1, n2: integer):integer; begin if n1 > n2 then veci := n1 else veci := n2;

end; begin ClrScr; Write('Unesi broj n1 : '); ReadLn(n1); Write('Unesi broj n2 : '); ReadLn(n2); broj := veci(n1, n2); WriteLn('Veci broj je : ',broj:5); ReadLn End. Zadatak: Neka se sa tastature unose etiri cela broja n1, n2, n3 i n4. Koristei funkciju veci iz prethodnog zadataka nai najvei broj. Reenje: Program izgleda ovako: program prog; Uses CRT; var n1, n2, n3, n4, broj : integer; function veci(n1, n2: integer):integer; begin if n1 > n2 then veci := n1 else veci := n2; end; begin ClrScr; Write('Unesi broj n1 : '); ReadLn(n1); Write('Unesi broj n2 : '); ReadLn(n2); Write('Unesi broj n3 : '); ReadLn(n3); Write('Unesi broj n4 : '); ReadLn(n4); broj := veci(veci(n1, n2), veci(n3, n4)); WriteLn('Veci broj je : ',broj:5); ReadLn End. Zadatak: Neka se sa tastature unose stranice a i b pravougaonog trougla. Sraunati hipotenuzu c a za njeno izraunavanje koristi funkciju hipotenuza. Reenje: Program izgleda ovako:

program prog; Uses CRT; var a, b, c : real; function hipotenuza(a, b: real):real; begin hipotenuza := sqrt(sqr(a)+sqr(b)); end; begin ClrScr; Write('Unesi stranicu a : '); ReadLn(a); Write('Unesi stranicu b : '); ReadLn(b); c := hipotenuza(a, b); WriteLn('Hipotenuza c je : ',c:8:5); ReadLn End. Zadatak: Neka se sa tastature unose celobrojne promenljive x i y koje mogu imati vrednost 0, ili 1. Koristei funkciju eksluziv sraunati vrednos izlaza za eksluzivno ili kolo. Reenje: Program izgleda ovako: program prog; Uses CRT; var x, y, f : integer; a, b, c : boolean; function ekskluziv(a, b: boolean):boolean; begin ekskluziv := ((a and not b) or (not a and b)); end; begin ClrScr; Write('Unesi ulaz x : '); ReadLn(x); Write('Unesi ulaz y : '); ReadLn(y); if x = 0 then a := true else a := false; if y = 0 then b := true else b := false; c := ekskluziv(a, b); if c = true then f := 1 else f := 0; WriteLn('Vrednost funkcije je : ',f:3); ReadLn End.

Zadatak: Neka se sa tastature unosi prirodan broj n. Sraunaj zbir niza: s =1+22+33+...nn, pri emu se n-ti lan niza rauna u funkciji clan. Renje: Program izgleda ovako: program prog; Uses CRT; var n, i, j : integer; s, p, p1 : real; function niz(i : integer):real; begin p1 := 1; for j := 1 to i do p1 := p1*i; niz :=p1 end; begin ClrScr; Write('Unesi broj n : '); ReadLn(n); s := 0; for i := 1 to n do begin p := niz(i); s := s+p; end; WriteLn('Zbir niza je : ',s:8:2); ReadLn End. Zadatak: Neka se sa tastature unose vrednosti otpornika r1 i r2 koji su meusobno paralelno vezani i neka je dat napon kola u=100 volti. Nai vrednost struje i kola. Otpor kola sraunaj u proceduri otpor i to korienjem lokalnih i globalnih promenjivih. Reenje: Program izgleda ovako ako se koriste lokalne promenljive: program prog; Uses CRT; var r1, r2, r, i : real; const u=100; procedure otpor(rr1, rr2 :real; var rr : real);

begin rr := rr1*rr2/(rr1+rr2); end; begin ClrScr; Write('Unesi vrednost otpornika r1 : '); ReadLn(r1); Write('Unesi vrednost otpornika r2 : '); ReadLn(r2); otpor(r1, r2, r); i := u/r; WriteLn('Struja kola i je : ',i:8:2); ReadLn End. Ako se koriste globalne promenjive program bi izgledao kao: program prog; Uses CRT; var r1, r2, r, i : real; const u=100; procedure otpor; begin r := r1*r2/(r1+r2); end; begin ClrScr; Write('Unesi vrednost otpornika r1 : '); ReadLn(r1); Write('Unesi vrednost otpornika r2 : '); ReadLn(r2); otpor; i := u/r; WriteLn('Struja kola i je : ',i:8:2); ReadLn End. Zadatak: Neka je data procedura raun: procedure racun(x1, x2 : real; var y1:real); begin y1 := x1+trunc(x2)+round(x1)+x2; end; i neka se ona iz programa poziva sa: racun(x,y,z); koja e biti vrednost promenljive z, ako se unese: a) 1, 1 b) 1.7 2.8 Reenje:

a)

ako se unese 1, 1 onda se u proceduri racun sracuna: y1=1+trunc(1)+round(1)+1=1+1+1+1=4 to e biti pridruueno promenljivoj z. b) Ako se unese 1.7 i 2.8 onda emo imati: y1=1.7+trunc(2.8)+round(1.7)+2.8=1.7+2+2+2.8=8.5 Zadatak: Neka je sa tastature unose realne promenljive x i y, i neka se funkcija f rauna po formuli:

Napisati program kojim se u proceduri funk rauna vrednost data funkcije. Rezultat prikai u glavnom programu. Reenje: Program izgleda ovako: program prog; Uses CRT; var x, y, f : real; procedure funk(x1, x2 : real; var y1:real); begin y1 := sqrt(x1+(sqr(x1)-x2)/(sqr((x2)-x1))); end; begin ClrScr; Write('Unesi vrednost x, y : '); ReadLn(x,y); funk(x,y,f); WriteLn('Vrednost promenljive f je : ',f:8:2); ReadLn End. Zadatak: Neka je data sledei paskalski program: program prog; Uses CRT; var x, y, z, z1 : real; procedure racun(x1, x2 : real; var y1, y2 : real); begin y1 :=x1+sqr(x2)+sqr(x1); y2 :=x1*x2;

end; begin ClrScr; Write('Unesi vrednost x, y : '); ReadLn(x,y); racun(x,y,z,z1); x :=z; y :=z1; racun(x,y,z,z1); WriteLn('Vrednost promenljivih z i z1 je : ',z:8:2,' ',z1:8:2); ReadLn End Kolika e biti vrednost promenljivih z i z1 ako se unese: a) 1 1 b) 4 5 Reenje: a) ako se unese 1, 1 onda se u proceduri racun srauna u prvom pozivu: y1=1+sqr(1)+sqr(1)=3 y2=x1*x2=1*1=1 u drugom pozivu ulazni paramteri procedure su 3 i 1 pa e biti: y1=3+sqr(1)+sqr(3)=3+1+9=13 y2=3*1=3 c) reenje je: z=2470, z1=900 Zadatak: Neka su data dva mesta A i B ija je meusobna udaljenost s=90 km i neka se iz mesta A i B krene vozila u isto vreme. Prvo vozilo se kree brzinom v1 a drugo v2 kilometara na sat. Sraunaj u proceduri put vreme kada e se ona susresti i duinu puta s1 i s2 koja su ona pojedinano prela. Ponovi raun tako da se drugo vozilo kree za 5 km/sat bre. Reenje: Programa za reenje zadatka je: program prog; Uses CRT; const s=90; var v1, v2, s1, s2, t : real; procedure put(vv1, vv2, ss : real; var ss1, ss2, tt : real); begin ss1 :=vv1*ss/(vv1+vv2); ss2 :=ss - ss1; tt := ss1/vv1; end;

begin ClrScr; Write('Unesi brzine v1 i v2 : '); ReadLn(v1,v2); put(v1,v2, s,s1,s2,t); WriteLn('Put s1 je: ',s1:8:2, ' s2 je: ',s2:8:5, ' vreme susreta: ',t:8:2); v2 :=v2+5; put(v1,v2, s,s1,s2,t); WriteLn('Put s1 je: ',s1:8:2, ' s2 je: ',s2:8:5, ' vreme susreta: ',t:8:2); ReadLn End. Zadatak: Neka je data sledei paskalski program: program prog; Uses CRT; var i, j : integer; c : char; procedure pitan(i : integer; var j: integer); begin if i >= 0 then begin i := i-1; j := j+2 ; pitan(i, j); end; end; begin ClrScr; Write('Unesi i : '); ReadLn(i); j := 0; pitan(i,j); WriteLn('j je: ',j:5); ReadLn End. Kolika e biti vrednost promenljive j ako se unese: a) i=2 b) i=5 c) i=-1 Reenje: U ovom sluaju se radi o takozvanim rekurzivnim procedurama koje poizvaju samu sebe.Razmotrimo sluaj pod a. Ulaskom u proceduru i=2, j=0, pa e biti i=i-1=2-1,j=j+2=0+2-2. Poziv procedure je sada pitan(1, 2) pa je i=i-1=1-1=0,j=j+2=2+3=4, pa

se poziva procedura pitan(0, 4). Tada je i=i-1=0-1=-,j=j+2=4+2=6. Procedura pitan(-1, 6) svojim pozivom se zavrava budui da je i < 0 pa je rezultat j=6. c) rezulat je j=12. Proveri !! d) rezultat je j=0. Zadatak: Napisati program kojim se u proceduri zbir trai suma brojeva deljivih sa 7 od 100 do 200. Rezultat prikai u glavnom programu Reenje: Program za reenje je: program prog; Uses CRT; var s : integer; procedure zbir(var s1: integer); var i, ss1 : integer; begin ss1 := 0; for i := 100 to 200 do if (i mod 7 = 0) then ss1 := ss1+i; s1 :=ss1; end; begin ClrScr; zbir(s); WriteLn('Trazeni zbir je: ',s:5); ReadLn End. Primetite da procedura zbir koristi samo izlazne paramtre. U njoj su definisane i lokalne varijable. Zadatak: Neka je dat niz xx od od 20 elemenata. Napii program kojim se izraunava: a) Srednja vrednost niza xx. b) Maksimalni lan niza c) indeks najveeg lana niza. Reenje: program prog; Uses CRT; type niz=array[1..20] of real; var xx : niz; sr, max : real;

i,j : integer; begin ClrScr; max := xx[1]; sr := 0; for i := 1 to 20 do begin sr := sr+xx[i]; if max < xx[i] then begin max := xx[i]; j := i end; end; sr := sr/20; WriteLn('Srednja vrednost niza je: ',sr:8:5); WriteLn('Najveci clan niza je : ',max:8:5); WriteLn('Indeks najveceg clana je: ',j:5); ReadLn End. Zadatak: Neka je dat niz yy od 20 lanova. Napii program kojim se rauna zbir pozitivnih lanova niza. Reenje: program prog; Uses CRT; type niz=array[1..20] of real; var yy : niz; s : real; i : integer; begin ClrScr; s := 0; for i := 1 to 20 do if yy[i] > 0 then s := s+ yy[i]; WriteLn('Zbir pozitivnih clanova nizaj je: ',s:8:5); ReadLn End. Zadatak: Neka je dat niz xx od n elemenata. Napisati program kojim se rauna zbir lanova niza koji su deljivi sa 3 i 7. Reenje: program prog; Uses CRT; type niz=array[1..100] of integer; var xx : niz;

s : real; i, n: integer; begin ClrScr; Write('Unesi broj clanova niza :'); ReadLn(n); for i := 1 to n do begin Write('Unesi - ',i:3,' clan : '); ReadLn(xx[i]) end; s := 0; for i := 1 to n do if (xx[i] mod 3 = 0) and (xx[i] mod 7 = 0) then s := s+xx[i]; WriteLn('Zbir trazenih clanova niza je: ',s:8:5); ReadLn End. Zadatak: Neka je dat niza yy od n elemenata. Napisati program kojim se rauna broj lanova niza koji se nalaze u intervalu -1 < xx[i] < 7 Reenje: program prog; Uses CRT; type niz=array[1..100] of real; var yy : niz; i, n, br: integer; begin ClrScr; Write('Unesi broj clanova niza :'); ReadLn(n); for i := 1 to n do begin Write('Unesi - ',i:3,' clan : '); ReadLn(yy[i]) end; br := 0; for i := 1 to n do if (yy[i] > -1) and (yy[i] < 7) then br := br+1; WriteLn('Trazeni broj clanova niza je: ',br:5); ReadLn End. Zadatak:

Neka su data dva niza xx i yy od po pet lanova. Napii program kojim se rauna ukupan broj parova nizova koji na istom indeksu imaju jednake elemente. Reenje: program prog; Uses CRT; type niz=array[1..100] of real; var xx, yy : niz; i, br: integer; begin ClrScr; for i := 1 to 5 do begin Write('Unesi - ',i:3,' clan niza xx : '); ReadLn(xx[i]) end; for i := 1 to 5 do begin Write('Unesi - ',i:3,' clan niza yy : '); ReadLn(yy[i]) end; br := 0; for i := 1 to 5 do if (xx[i] = yy[i]) then br := br+1; WriteLn('Trazeni broj parova je: ',br:5); ReadLn End. Zadatak: Neka je dat niza xx od 5 elemenata. Napii program kojim se formira niz yy od elemanata niza xx koji su parni. Reenje: program prog; Uses CRT; type niz=array[1..5] of integer; var xx, yy : niz; i, j: integer; begin ClrScr; for i := 1 to 5 do begin Write('Unesi - ',i:3,' clan niza xx : '); ReadLn(xx[i]) end; j := 1;

for i := 1 to 5 do if (xx[i] mod 2 = 0) then begin yy[j] := xx[i]; j :=j+1 end; WriteLn; WriteLn('Novodobijeni niz je:'); for i := 1 to j-1 do WriteLn(yy[i]); ReadLn End. Zadatak: Neka je dat niza a od 9 elemenata pri emu se njegov prvi lan a[0] unosi sa tastature. Napii program kojim se formira ovaj niz ako je: a[1]=a[0]*a[0], a[2]=a[0]*a[1], ...,a[8]=a[7]*a[6] Reenje: program prog; Uses CRT; type niz=array[0..8] of real; var a : niz; i, j: integer; begin ClrScr; Write('Unesi clan niza a[0] :'); ReadLn(a[0]); a[1] := sqr(a[0]); for i := 2 to 8 do a[i] := a[i-1]*a[i-2]; WriteLn; WriteLn('Dobijeni niz je:'); for i := 0 to 8 do WriteLn(a[i]:8:5); ReadLn End. Zadatak: Neka je dat niza a od 10 elemeneta. Napii program kojim se sraunava zbir lanova niza sa parnim indeksom. Reenje: program prog; Uses CRT; type niz=array[1..10] of real; var a : niz; s : real; i: integer; begin

ClrScr; for i := 1 to 10 do begin Write('Unesi - ',i:3,' clan niza a : '); ReadLn(a[i]) end; i := 2; while i < 11 do begin s := s+a[i]; i := i+2 end; WriteLn('Trazeni zbirje: ',s:8:5); ReadLn End. Zadatak: Neka je dat niz a od 10 elemeneta. Napii program kojim se sraunava ukupan broj brojeva koji su meusobno jednaki. Reenje: program prog; Uses CRT; type niz=array[1..10] of real; var a, c : niz; i, j, k, br: integer; begin ClrScr; for i := 1 to 10 do c[i] := 0; for i := 1 to 10 do begin Write('Unesi - ',i:3,' clan niza a : '); ReadLn(a[i]) end; br := 0; k := 0; for i := 1 to 9 do begin for j := i+1 to 10 do if (c[j] = 0) and (a[i]=a[j]) then begin br := br + 1; c[j] := 1; c[i] := i end; end; for j := 1 to 10 do if c[j] = j then br :=br+1; WriteLn('Ukupan broj jednakih brojeva je: ',br:5); ReadLn End. Prilikom reenja ovog zadatka morali smo uvesti dodatni niz c od 10 elemenata, iji su lanovi na poetku postavljeni na nulu. Ovaj niz se

koristi da ne bi duplo brojali ve obraene brojeve. U sluaju ako je taj lan niza ve uzet na to mesto u nizu c se postavlja jedinica, pa je uslov da se uzima lan da je c[j]=0. Budui da se prvi broj koji je jednak nekom drugom ne bi uzimao u ukupan broj brojeva jednakih to smo na kraju programa ispitali pozicije matrice c i u sluaju ako je c[j]=j to znai da na tom mestu ima jednak broj pa smo dobijeni zbir uveavali za 1. Zadatak Napii program koji se unos lanovi niza. Nakon unosa lana niza stavi taj lan na mesto u nizu tako da niz bude sortiran u rastuem redosledu. Reenje:
program x1; Uses Crt; var x :array[1..50] of integer; l, i, j, n, p : integer; Begin Write('Unesite broj clanova niza :'); ReadLn(n); WriteLn; WriteLn('UNESITE CLANOVE NIZA'); WriteLn; for l :=1 to n do Begin Write('x[',l,']= '); ReadLn(x[l]); For i:= 1 to l-1 do Begin For j:=i+1 to l do if x[i] > x[j] then begin p :=x[i]; x[i] :=x[j]; x[j] :=p End; End; End; WriteLn; WriteLn('Sortirani niz'); For i :=1 to n do WriteLn('x[',i,']= ',x[i]); Readln end.

Zadatak: Neka je data matrica a od 4 vrste i 5 kolona. Napii program kojim se sraunava zbir svih lanova date matrice. Reenje: program prog; Uses CRT; type niz=array[1..4, 1..5] of real; var

a : niz; s : real; c : char; i, j, k: integer; begin ClrScr; for i := 1 to 4 do begin Write('Unesi vrstu - ',i:3,' matrice :'); for j := 1 to 5 do Read(a[i,j]) end; s := 0; for i := 1 to 4 do begin for j := 1 to 5 do s := s+a[i,j] end; WriteLn('Zbir svih elemanata matrice a je: ',s:8:5); ReadLn(c); End. Zadatak: Neka je data matrica b sa 5 vrsta i 5 kolona. Napii program kojim se sraunava koja kolona ima najvei zbir, i koliki je taj zbir. Reenje: program prog; Uses CRT; type niz=array[1..5, 1..5] of real; niz1=array[1..5] of real; var b : niz; c : niz1; s, max : real; cc : char; i, j: integer; begin ClrScr; for i := 1 to 5 do begin Write('Unesi vrstu - ',i:3,' matrice :'); for j := 1 to 5 do Read(b[i,j]) end; for j := 1 to 5 do begin s := 0; for i := 1 to 5 do

s := s+b[i,j]; c[j] := s; end; max := c[1]; for i := 2 to 5 do if max < c[i] then begin max := c[i]; j := i end; WriteLn('Zbir najvece kolone je: ',max:8:5); WriteLn('Ta je kolona : ',j:5); ReadLn(cc); End. Za reenje ovog zadatka uveli smo pomoni niz c koji ima 5 lanova a njegovi pojedinani lanovi su zbirovi pojedinih kolona matrice b. Nakon dobijanja niza c traimo najvei lan i njegov indeks to je reenje zadatka. Zadatak: Neka je data matrica b sa 5 vrsta i 5 kolona. Napii program kojim se sraunava zbir svih lanova date matrice po sporednoj dijagonali tj. : s=s[1,5]+a[2, 4]+...+a[5, 1]. Reenje: program prog; Uses CRT; type niz=array[1..5, 1..5] of real; var b : niz; s : real; cc : char; i, j: integer; begin ClrScr; for i := 1 to 5 do begin Write('Unesi vrstu - ',i:3,' matrice :'); for j := 1 to 5 do Read(b[i,j]) end; s := 0; for i := 1 to 5 do s := s + b[i,6-i]; WriteLn('Trazeni zbir je: ',s:8:5); ReadLn(cc); End. Zadatak: Napii program kojim se unose elementi nizova a i b koji imaju po 10 lanova. Formiraj niz c kao: c[1]=a[1]*b[10], c[2]=a[2]*b[9] ... Prikai dati niz.

Reenje: program prog; Uses CRT; type tab1=array[1..10] of integer; tab2=array[1..10] of integer; tab3=array[1..10] of integer; var i, j, k, broj1, broj2: integer; a: tab1; b: tab2; c:tab3; c1: char; begin ClrScr; Writeln; WriteLn; for i := 1 to 10 do begin Write('Unesi elemente a i b ',i:2, ' : '); ReadLn(a[i], b[i]); end; j := 10; for i :=1 to 10 do begin c[i] :=a[i]*b[j]; j := j-1; end; WriteLn; WriteLn(' Prikaz rezultata'); WriteLn; for i :=1 to 10 do WriteLn('c[',i:2,']=',c[i]); WriteLn; ReadLn(c1); end. Zadatak: Napii program kojim se uitava matrica a dimenzija 5 x 5. Nai zbir brojeva deljivih sa 7 i sa 2 u okviru date matrice. Reenje: program prog; Uses CRT; type tab1=array[1..5, 1..5] of integer; var i, j, zbir: integer; a: tab1; c1: char; begin

ClrScr; Writeln; WriteLn; for i := 1 to 5 do begin Write('Unesi elemente matrice A, vrste ', i:2, ' : '); for j := 1 to 5 do begin Read(a[j, i]); end; WriteLn; end; zbir := 0; for i :=1 to 5 do for j := 1 to 5 do begin if ((a[i, j] mod 7 = 0) and (a[i, j] mod 2 = 0)) then zbir := zbir + a[i, j]; end; WriteLn; WriteLn; WriteLn('Ukupan zbir takvih elemanata je : ', zbir:10); WriteLn; ReadLn(c1); end. Zadatak: Napii program kojim se unose elementi niza a od 12 elemenata, zatim se od toga niza formira matrica b koja ima 3 vrste i etiri kolone. Prikai matricu b kao rezultat. Reenje: program prog; Uses CRT; type niz=array[1..12] of real; niz1=array[1..3,1..4] of real; var a : niz; b : niz1; cc : char; i, j, k: integer; begin ClrScr; for i := 1 to 12 do begin Write('Unesi clan - ',i:3,' niza :'); Read(a[i])

end; k := 1; j := 1; for i := 1 to 12 do begin if (i > 4) and (i < 9) then k := 2; if (i > 8) and (i < 13) then k := 3; if i = 5 then j := 1; if i = 9 then j := 1; b[k,j] :=a[i]; j := j+1; end; WriteLn('Trazena matrica je: '); for i := 1 to 3 do begin WriteLn; for j := 1 to 4 do Write(b[i,j]:5:2,' '); end; ReadLn(cc); End. Zadatak: Neka je data matrica a sa 3 vrste i 4 kolone. Napii program kojim se nalazi najvei lan te matrice, kao i vrsta i kolona gde se on nalazi. Reenje: program prog; Uses CRT; type niz=array[1..3,1..4] of real; var a : niz; cc : char; i, j, k, k1: integer; max : real; begin ClrScr; for i := 1 to 3 do begin Write('Unesi vrstu - ',i:3,' matrice :'); for j :=1 to 4 do Read(a[i, j]) end; max :=a[1, j]; k := 1; k1 := 1; for i := 1 to 3 do begin for j := 1 to 4 do if max < a[i,j] then begin max := a[i,j]; k := i; k1 := j end; end;

WriteLn('Najveci clan je matrica je: ', max:8:5); WriteLn('U vrsti : ',k:5, ' i koloni : ',k1:5); ReadLn(cc); End. Zadatak: Neka su dati nizovi a i b dimenzija 10 mesta iji su elementi pojedinane cifre dva broja od 10 cifara. Napii program kojim se sabiraju ta dva velika broja formiranjem niza c, iji su elementi pojedinane cifre proizale kao rezultat tog sabiranja. Koristei dato reenje saberi: 99999 99999 88888 88888 Reenje: program prog; Uses CRT; type tab1=array[1..10] of integer; tab2=array[1..11] of integer; var i, j, k, pren: integer; a, b: tab1; c: tab2; c1: char; begin ClrScr; Writeln; WriteLn; for i := 10 downto 1 do begin Write('Unesi brojeve a i b za sabiranje, pozic. ', i:2, ' : '); Read(a[i], b[i]); end; WriteLn; pren :=0; for i :=1 to 10 do begin c[i]:=a[i]+b[i]+pren; if c[i] > 10 then begin c[i]:= c[i]-10; pren:=1; end else pren :=0; end; if pren = 1 then c[11] :=1 else c[11] :=0; WriteLn; WriteLn(' Prikaz rezulatata'); WriteLn; for i := 10 downto 1 do begin

if i = 10 then Write(' '); Write (a[i]); end; WriteLn; for i := 10 downto 1 do begin if i = 10 then Write (' +'); Write (b[i]); end; WriteLn; WriteLn('-----------------'); if c[11] = 0 then begin k :=10; Write (' end else begin write (' '); k:=11;end; for i :=k downto 1 do begin Write (c[i]); end; ReadLn(c1); end.

');

Zadatak: Napii program kojim se unosi ulazna reenica recen kao i znak(slovo), a zatim odreuje ukupan broj ponavljanja toga znaka u datoj reenici. Reenje: program prog; Uses CRT; var recen : string; znak : string; broj, i: integer; cc : char; begin ClrScr; Write('Unesi ulaznu recenicu : '); ReadLn(recen); WriteLn; Write('Unesi znak koji se trazi : '); ReadLn(znak); broj := 0; for i := 1 to length(recen) do begin if znak=recen[i] then broj := broj + 1; end; WriteLn('Ukupno pojavljivanja datog znaka :', broj:5); ReadLn(cc); End.

Zadatak: Napii program kojim se unosi ulazna reenica recen. Unesenu reenicu prikai slovo po slova u novom redu. Reenje: program prog; Uses CRT; var recen : string; broj, i: integer; cc : char; begin ClrScr; Write('Unesi ulaznu recenicu : '); ReadLn(recen); WriteLn; for i := 1 to length(recen) do begin WriteLn(copy(recen,i,1)); end; ReadLn(cc); End. Zadatak: Napii program kojim se unosi ulazna reenica recen. U datoj recenici izbrii slovo 'd' i prikai novodobijeni string. Reenje: program prog; Uses CRT; var recen : string; broj, i: integer; cc : char; begin ClrScr; Write('Unesi ulaznu recenicu : '); ReadLn(recen); WriteLn; for i := 1 to length(recen) do begin if 'd' = recen[i] then delete(recen, i, 1); end; WriteLn('Nova recenica je : ', recen); ReadLn(cc); End. Zadatak:

Napii program kojim se unosi ulazna reenica recen. U datoj reenici umesto slova 'd' upii slovo x i prikai novodobijeni string. Reenje: program prog; Uses CRT; var recen : string; broj, i: integer; cc : char; begin ClrScr; Write('Unesi ulaznu recenicu : '); ReadLn(recen); WriteLn; for i := 1 to length(recen) do begin if 'd' = recen[i] then begin delete(recen, i, 1); insert('x',recen,i) end; end; WriteLn('Nova recenica je : ', recen); ReadLn(cc); End. Zadatak: Napii program kojim se unosi ulazna reenica recen. U datoj recenici izbrii deo stringa koji nalazi izmeu malih zagrada i prikai novodobijeni string. Reenje: program prog; Uses CRT; var recen, recen1 : string; ind, i, j: integer; cc : char; begin ClrScr; Write('Unesi ulaznu recenicu : '); ReadLn(recen); WriteLn; ind := 0; j := 1; for i := 1 to length(recen) do begin if (recen[i]='(') and (ind = 0) then ind := 1; if ind = 0 then begin insert(recen[i], recen1, j); j := j+1 end;

if (recen[i]=')') and (ind = 1) then ind := 0; end; WriteLn('Nova recenica je : ', recen1); ReadLn(cc); End. Za reenje ovog zadatka koristili smo varijablu ind koja je na poetku programa bila postavljena na nulu. Ako u unesenom stringu naiemo na otvorenu zagradu indikator se postavlja na 1 i zabranjuje dalje prenoenje u izlaznu reenicu. Pojavljivanje zatvorene zagrade dozvola za prenoenje se nastavlja tj. ind se postavlja na nulu. Zadatak: Napii program kojim se unosi ulazna reenica recen, a zatim odredi broj rei u reenici. Reima smatraj deo slova jedno do drugog razmaknut prazninama. Reenje: program prog; Uses CRT; var recen : string; i, broj: integer; cc : char; begin ClrScr; Write('Unesi ulaznu recenicu : '); ReadLn(recen); WriteLn; broj := 1; for i := 1 to length(recen) do begin ')) if (recen[i]=' ') and not (pred(recen[i]=' then begin broj := broj + 1 end; end; WriteLn('Ukupno reci u recenici je : ', broj:3); ReadLn(cc);

End. Sutina reenja ovog zadatka se nalazi u tome to ispitujemo uslov da li se pre praznine nalazi neki karakter. Ako ga ima to je re i broja se uveava za 1. Broja je postavljen na 1 radi zadnje rei u reenici kod koje nije zadovoljen navedeni uslov. Zadatak: Napii program kojim se unosi u tabelu a 20 prezimena i imena uenika. Nai koliko ima Milanovica i koliko ima Jelena?

Reenje: program prog; Uses CRT; type ucenici=array[1..10] of string[20]; var i, j, k, broj1, broj2: integer; a: ucenici; c: char; begin ClrScr; Writeln; WriteLn; for i := 1 to 10 do begin Write('Unesi prezime i ime ',i:2, ' : '); ReadLn(a[i]); end; broj1 := 0; broj2 := 0; for i :=1 to 10 do begin j := pos('Milanovic', a[i]); k := pos('Jelena',a[i]); if not (j = 0) then broj1 := broj1+1; if not (k = 0) then broj2 := broj2+1; end; WriteLn; WriteLn('Ukupno Milanovica : ', broj1); WriteLn('Ukupno Jelena : ', broj2); ReadLn(c); end. Zadatak: Napii program heksadecimaln broj. Reenje: program prog; Uses CRT; var i, i2, j, a: integer; linija: string[14]; slovo: char; c1: char; begin ClrScr; Writeln; WriteLn; WriteLn('Unesi broj za pretvaranje : '); Read(i); kojim se uneseni ulazni broj konvertuje u

linija :=''; repeat i2 :=i mod 16; i :=i div 16; if i2 =0 then slovo :='0'; if i2 =1 then slovo :='1'; if i2 =2 then slovo :='2'; if i2 =3 then slovo :='3'; if i2 =4 then slovo :='4'; if i2 =5 then slovo :='5'; if i2 =6 then slovo :='6'; if i2 =7 then slovo :='7'; if i2 =8 then slovo :='8'; if i2 =9 then slovo :='9'; if i2 =10 then slovo :='A'; if i2 =11 then slovo :='B'; if i2 =12 then slovo :='C'; if i2 =13 then slovo :='D'; if i2 =14 then slovo :='E'; if i2 =15 then slovo :='F'; insert(slovo,linija, 1); until i = 0; WriteLn; WriteLn; WriteLn('Broj u heksa kodu : ', linija); ReadLn(c1);

Zadatak: Napii program kojim se u celobrojnu datoteku a upisuju brojevi od 1 do 10 pojedinano. Reenje: program prog; Uses CRT; type broj=file of integer; Var a : broj; i : integer; begin ClrScr; assign(a,'c:\brojevi.dat'); rewrite (a); for i := 1 to 10 do begin write(a, i) end; close (a);

WriteLn('Formirana je datoeka a'); readln; end. Zadatak: Napii program kojim se iz prethodno formirane datoteke a nalazi zbir svih upisanih brojeva. Reenje: program prog; Uses CRT; type broj=file of integer; Var s, i, n : integer; a : broj; begin ClrScr; assign(a,'c:\brojevi.dat'); reset (a); i := 0; while not eof(a) do begin read(a, n); i := i+n; end; write ('Zbir unesenih brojeva je : ',i:5); close (a); readln; readln; end. Zadatak: Napii program kojim se u datoteku realnih brojeva a prvo unese i upie 5 brojeva. Nakon toga proitaj datoteku a i nai najvei upisani broj. Reenje: program prog; Uses CRT; type broj=file of real; Var i : integer; a : broj; max, x : real; begin ClrScr; assign(a,'c:\broj.dat'); rewrite(a); for i := 1 to 5 do

begin Write('Unesi broj - ', i:2,' : '); Read(x); Write(a, x); max := x; end; close(a); reset(a); while not eof(a) do begin read(a, x); if max < x then max := x; end; Write ('Najveci upisan broj je : ',max:8:5); close (a); readln; readln; end. Zadatak: Iz prethodno formirane datoteke a realnih brojeva formiraj datoteku b od onih brojeva koji su vei od 3. Prikai dobijenu datoteku b. Reenje: program prog; Uses CRT; type broj=file of real; Var a, b : broj; x : real; begin ClrScr; assign(a,'c:\broj.dat'); assign(b,'c:\broj1.dat'); reset(a); rewrite(b); while not eof(a) do begin read(a, x); if x > 3 then write(b, x); end; close(b); reset(b); WriteLn; while not eof(b) do begin read(b, x); writeLn(x:8:3); end; close(a);

close(b); readln; end. Zadatak Napii program koji se u datoteku "mat.dat" unosi n realnih brojeva. Reenje:
program x1; Uses Crt; var f: file of real; i, j, n : integer; x : real; Begin ClrScr; assign(f,'mat.dat'); rewrite(f); Write('Unesite broj brojeva : '); ReadLn(n); WriteLn; for i :=1 to n do Begin Write('Unesi broj : '); ReadLn(x); if sqr(x) < 100 Then Write(f, x); End; WriteLn; Close(f); Readln end.

Zadatak Napii program kojim se iz datoteke "mat.dat" prikazuju uneseni brojevi. Unesi zatim broj b. U datoteku "racun.dat" unesi samo one brojeve koji su vei od broja b. Srauna i prikai aritmetiku sredinu tih brojeva. Reenje:
program x1; Uses CRT; var f, f1: file of real; i, j, n : integer; x, b, s, as : real; Begin ClrScr; assign(f,'mat.dat'); assign(f1,'racun.dat'); reset(f); rewrite(f1); WriteLn('Uneseni brojevi u datoteku'); WriteLn;

While not eof(f) do Begin Read(f,x); WriteLn(x:8:3); End; Close(f); reset(f); WriteLn; Write('Uneseni broj b : '); ReadLn(b); j := 0; s :=0; While not eof(f) do Begin Read(f,x); if x > b Then Begin Write(f1, x); s :=s+x; j :=j+1 End; End; WriteLn; If j > 0 Then WriteLn('Aritmetica sredina je : ', s/j:8:3); Close(f); Close(f1); Readln end.

Zadatak Napii program kojim se u datoteku "odsecak.dat" unose svi neparni brojevi iz intervala [-14,14]. Reenje:
program x1; Uses Crt; var f: file of integer; i, j, n : integer; Begin ClrScr; assign(f,'odsecak.dat'); rewrite(f); For i := -14 to 14 do Begin If (i mod 2 <> 0) then Write(f, i); End; Close(f); Readln end.

Zadatak Napii program kojim prikazuju svi uneseni se brojevi u datoteku "odsecak.dat". Sve negativne brojeve iz te datoteke upii u datoteku "nova.dat" i sraunaj koliko je takvih brojeva. Reenje:

program x1; Uses Crt; var f, f1: file of integer; i, j, n : integer; Begin ClrScr; assign(f,'odsecak.dat'); assign(f1,'nova.dat'); reset(f); rewrite(f1); WriteLn; Write('Upisani brojevi'); WriteLn; j :=0; While not eof(f) do Begin Read(f,i); WriteLn(i); if i < 0 Then Begin Write(f1,i); j :=j+1 End; End; Close(f); Close(f1); WriteLn; WriteLn('Broj negativnih brojeva je : ',j); Readln end.

Zadatak: Neka je data datoteka realnih brojeva "broj.dat". Napii program kojim se itaju svi brojevi iz te datoteke i uveani za 2 upisuju u datoteku "broj1.dat". Reenje:
Program x1; Uses Crt; Var f, f1 : file of real; x : real; i : integer; Begin ClrScr; {Otvaranje datoteke} Assign(f,'broj.dat'); Assign(f1,'broj1.dat'); Reset(f); Rewrite(f1); {Prepisivanje iz prve u drugu datoteku} WriteLn; While not eof(f) do Begin Read(f, x);

x :=2 * x; Write(f1, x); End; Close(f); Close(f1); ReadLn; ENd.

Zadatak: Neka je data datoteka realnih brojeva "broj2.dat". Napii program kojim se u tu datoteku upisuje n brojeva. Nakon unosa prikai sve brojeve i nai i prikai najvei uneseni broj. Reenje:
Program x1; Uses Crt; Var f : file of real; x, max : real; i, n : integer; Begin ClrScr; {Otvaranje datoteke} Assign(f,'broj2.dat'); Rewrite(f); {Unos ukupnog broja brojeva} WriteLn; Write('Unesi ukupan broj brojeva : '); ReadLn(n); For i := 1 to n do Begin Write('Unesi ',i, ' broj = '); Readln(x); Write(f, x); End; WriteLn; WriteLn('UPISANI BROJEVI U DATOTEKU'); WriteLn; CLose(f); Reset(f); i := 0; While not eof(f) do Begin Read(f, x); WriteLn(x:8:2); if i = 0 then Begin max := x; i :=1 end; if x > max Then max := x; End; Close(f); WriteLn; WriteLn('Najveci uneseni broj je : ', max:8:2); ReadLn; End.

Zadatak: Neka je data ulazna datoteka radnici tekstualnog tipa u koju je uneseno prezime i ime radnika i njegova godina roenja. Napii program kojim se nalazi najstariji i najmlai radnik kao i prosenu starost svih radnika. Reenje: program prog; Uses CRT; var radnici: text; ime :string[20]; godina :integer; najml, najst :string[20]; brgod, brm, brs, ukgod, broj: integer; prosta :real; c1: char; begin ClrScr; Writeln; WriteLn; assign(radnici,'radnici.dat'); reset(radnici); WriteLn(' UNESENI RADNICI '); WriteLn; WriteLn; broj :=0; brm :=100; brs :=0; ukgod :=0; repeat readLn(radnici, ime, godina); brgod :=2000 - godina; if brgod > brs then begin najst :=ime; brs :=brgod; end; if brgod < brm then begin najml :=ime; brm :=brgod; end; WriteLn(ime, ' ',godina, ' ',brgod); broj := broj +1; ukgod :=ukgod + brgod; until eof(radnici); close(radnici); WriteLn; WriteLn; WriteLn('Najstariji radnik : ', najst, ' ima : ', brs, ' godina'); WriteLn('Najmladji radnik : ', najml, ' ima : ', brm, ' godina'); prosta := ukgod / broj; WriteLn('Prosecna starost je : ', prosta:5:2,'=',ukgod,'/',broj); ReadLn(c1);

end. Zadatak: Napii program kojim se u tekstualnu datoteku ucenik unose podaci: prezime i ime, mesto stanovanja i adresa. Program zavri kada se za prezime unese re 'kraj'. Reenje: program prog; Uses CRT; Var ucenik : text; ime : string[25]; mesto : string[15]; adresa : string[20]; x : real; begin ClrScr; assign(ucenik,'c:\ucenik.dat'); rewrite(ucenik); while not (ime='kraj') do begin ClrScr; Write('1. Prezime i ime : '); ReadLn(ime); WriteLn; Write('2. Mesto stanova. : '); ReadLn(mesto); WriteLn; Write('3. Adresa : '); ReadLn(adresa); if not (ime='kraj') then Write(ucenik,ime,mesto,adresa); end; close(ucenik); readln; end. Zadatak: Napii program kojim se iz prethodno formirane tekstualne datoteku ucenik, prikazuju na ekranu uneseni podaci. Reenje: program prog; Uses CRT; Var ucenik : text; ime : string;

mesto : string; adresa : string; begin ClrScr; assign(ucenik,'c:\ucenik.dat'); reset(ucenik); repeat ReadLn(ucenik, ime, mesto, adresa); WriteLn; Write(ime,' ',mesto,' ', adresa); until eoln(ucenik); close(ucenik); readln; end. Zadatak: Napii proceduru za uitavanje i tampanje ugla koji je u glavnom programu opisan kao: type ugao=record stepen:0..359; minut:0..59; sekund:0..59 Reenje: procedure citajugao(var ugao1:ugao); begin WriteLn('Stepen, minut i sekund:'); with ugao1 do ReadLn(stepen,minut,sekund) end; procedure stampajugao(var ugao1:ugao); begin with ugao1 do Writeln(stepen,minut,sekund) end Zadatak Neka je dat slog glumci u koji se unose podaci: prezime i ime, godina roenja i broj odigranih uloga. Napi program kojim se unose podaci za n glumaca, a zatim prikae samo one koji imaju vie od 50 uloga. Ako nema takvih napii "Nema takvih glumaca" Reenje:
program x; Uses CRT; type glumci=record ime : string[20]; godina : integer; bruloga : integer;

end; var i, j, n: integer; glumac : array [1..50] of glumci; Begin ClrScr; Write('Koliko ima glumaca ?'); ReadLn(n); WriteLn; WriteLn('Unesite podatke o glumcima'); WriteLn; for i :=1 to n do Begin Write('Ime i prezime : '); ReadLn(glumac[i].ime); Write('Godina : '); ReadLn(glumac[i].godina); Write('Broj uloga : '); ReadLn(glumac[i].bruloga); End; WriteLn; j := 0; WriteLn('Glumci sa vise od 50 uloga'); For i := 1 to n do Begin if glumac[i].bruloga > 50 Then Begin WriteLn(glumac[i].ime); j :=j+1 End; End; if j = 0 Then WriteLn('Nema takvih glumaca'); Readln end.

Zadatak Neka je dat slog opstina u koji se unose podaci: naziv, broj stanovnika i povrina. Napii program kojim se unosi est optina a zatim sortira po broju stanovnika. Reenje:
program x; Uses Crt; type opstina=record ime : string[20]; stanovnika : integer; povrsina : integer; end; var i, j : integer; opst : array [1..50] of opstina; p : opstina; Begin ClrScr; WriteLn('Unesite podatke o opstinama');

WriteLn; for i :=1 to 6 do Begin Write('Naziv opstine : '); ReadLn(opst[i].ime); Write('Stanovnika : '); ReadLn(opst[i].stanovnika); Write('Povrsina : '); ReadLn(opst[i].povrsina); End; WriteLn; {Sortiranje po broju stanovnika} For i := 1 to 5 do Begin For j :=i+1 to 6 do Begin If opst[i].povrsina < opst[j].povrsina Then Begin p :=opst[i]; opst[i] :=opst[j]; opst[j] :=p End; End End; WriteLn('Prikaz sortiranih opstina'); WriteLn; For i := 1 to 6 do WriteLn(opst[i].ime,' ',opst[i].stanovnika,' ',opst[i].povrsina); Readln end.

Zadatak: Neka je dat slog osoba. Napi program kojim se unosi deset podatak u taj slog sa imenom osobe i godinom starosti. Prikai unesene osobe sortirane po godini starosti. Reenje:
program x; Uses CRT; type osobe=record ime : string[20]; godina : integer; end; var i, j : integer; osob : array [1..10] of osobe; p : osobe; Begin ClrScr; WriteLn('Unesite podatke o osobama'); WriteLn; for i :=1 to 10 do Begin

Write('Ime osobe : '); ReadLn(osob[i].ime); Write('Godina : '); ReadLn(osob[i].godina); End; WriteLn; {Sortiranje po godinama} For i := 1 to 9 do Begin For j :=i+1 to 10 do Begin If osob[i].godina < osob[j].godina Then Begin p :=osob[i]; osob[i] :=osob[j]; osob[j] :=p End; End End; WriteLn('Prikaz sortiranih osoba'); WriteLn; For i := 1 to 10 do WriteLn(osob[i].ime,' ',osob[i].godina); Readln end.

Zadatak: Napii program kojim se u slog osobe unosi ime i telefonski broj 5 osoba. Nakon unosa sortiraj i prikai unesene osobe po abecedi. Reenje:
program x; Uses Crt; type osobe=record ime : string[20]; telefon : string; end; var i, j : integer; osob : array [1..5] of osobe; p : osobe; Begin ClrScr; WriteLn('Unesite podatke o osobama'); WriteLn; for i :=1 to 5 do Begin Write('Ime osobe : '); ReadLn(osob[i].ime); Write('Telefon : '); ReadLn(osob[i].telefon); End; WriteLn; {Sortiranje po imenima} For i := 1 to 4 do Begin

For j :=i+1 to 5 do Begin If osob[i].ime > osob[j].ime Then Begin p :=osob[i]; osob[i] :=osob[j]; osob[j] :=p End; End End; WriteLn('Sortirane osobe'); WriteLn; For i := 1 to 5 do WriteLn(osob[i].ime,' ',osob[i].telefon); Readln end.

Zadatak: Napii program kojim se u slog ucenik unosi ime, visina i tezina i za n ucenika. Nakon unosa prikai unesene podatke. Reenje:
Program x; Uses Crt; type ucenik=record ime :string[10]; visina : integer; tezina : integer; End; Var uce: array [1..50] of ucenik; i, j , n: integer; Begin ClrScr; Write('Unesite broj ucenika : '); Readln(n); WriteLn; {Unos podataka o ucenicima} For i := 1 to n do Begin Write('Unesite ime ucenika : '); Readln(uce[i].ime); Write('Unesite visinu : '); Readln(uce[i].visina); Write('Unesite tezinu : '); Readln(uce[i].tezina); End; {Prikaz podataka o ucenicima} WriteLn; WriteLN('PODACI O UCENICIMA'); WriteLn; For i := 1 to n do Begin WriteLn(uce[i].ime:10,' ',uce[i].visina:4,' ',uce[i].tezina:3); End;

ReadLn; ENd.

Zadatak: Napii program kojim se u slog osobe unosi ime, i njegova starost za 10 osoba. Nakon unosa sortiiraj osobe po godinama starosti i prikai dobijene podatke. Reenje:
Program x; Uses Crt; type osobe=record ime :string[10]; starost : integer; End; Var osob: array [1..10] of osobe; p: osobe; i, j , n: integer; Begin ClrScr; {Unos podatka o osobama} For i := 1 to 10 do Begin Write('Unesite ime osobe : '); Readln(osob[i].ime); Write('Unesite starost : '); Readln(osob[i].starost); End; {Sortiranje podataka} WriteLn; For i := 1 to 9 do Begin For j :=i+1 to 10 do Begin If osob[i].starost < osob[j].starost Then Begin p :=osob[i]; osob[i] :=osob[j]; osob[j] :=p End; End; End; {Prikazivanje podataka} WriteLN('PODACI O OSOBAMA'); WriteLn; For i := 1 to 10 do Begin WriteLn(osob[i].ime:10,' ',osob[i].starost); End; ReadLn; ENd.

Zadatak:

Napii program kojim se u slog dani unosi naziv i temperatura za svih 7 dana u sedmici. Nakon unosa unesi zadatu temperaturu i prikai dane koji su imali tu temperaturu. Reenje:
Program x; Uses Crt; type dani=record ime :string[10]; temperatura : integer; End; Var dan: array [1..7] of dani; i, j , n, t: integer; Begin ClrScr; {Unos temperatura po danima} For i := 1 to 7 do Begin Write('Unesite ime dana : '); Readln(dan[i].ime); Write('Unesite tempraturu : '); Readln(dan[i].temperatura); End; {Unos temperature} WriteLn; Write('Unesi trazenu temperaturu : '); ReadLn(t); For i := 1 to 7 do if t = dan[i].temperatura Then Write(dan[i].ime); ReadLn; ENd.

Zadatak: Napii program kojim se u slog artikal unosi naziv, kolicina i cena za n artikala. Nakon unosa unesi zadatu cenu i prikai artikle koji su imali tu cenu. Sraunaj ukupnu vrednost artikala. Reenje:
Program x; Uses Crt; type artikal=record ime :string[10]; kolicina : integer; cena : real; End; Var art: array [1..50] of artikal; i, j , n: integer; v, v1, t : real;

Begin ClrScr; {Unos broja artikala} WriteLn; Write('Unesi broj artikala : '); Readln(n); WriteLn; {Unos artikala u magacinu} For i := 1 to n do Begin Write('Unesite naziv artikla : '); Readln(art[i].ime); Write('Unesite kolicinu : '); Readln(art[i].kolicina); Write('Unesite cenu : '); Readln(art[i].cena); End; {Unos zadate cene} WriteLn; Write('Unesi zadatu cenu : '); ReadLn(t); v1 := 0; For i := 1 to n do Begin v := art[i].kolicina * art[i].cena; v1 := v1 + v; if t = art[i].cena Then Write(art[i].ime); End; WriteLn; WriteLn('Ukupna vrednost je : ',v1:8:2); ReadLn; End.

You might also like