zadaci iz paskala

64
Page 1 ZADACI IZ PASKALA 15.1.2012 12:48:02 http://milan.milanovic.org/skola/zadpas.htm Zadatak: Napiši sledeće matematičke izraze u Pascalu: a) b) Rešenje: a) f:=sqrt(x+(sqr(x)*sqr(x)+sqr(x)*x-2)/cos(x)) b) f:=abs(x)+exp(-b*x)+cos(x)/sin(x) Zadatak: Napiši sledeće matematičke izraze u Pascalu: a) f:= b) f:= Rešenje: 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 logička promenljiva napiši izraz da ona ima vrednost true, da se od odesečaka sa dužinama x, y i z može konstruisati trougao. Rešenje: Uslov da bi se konstruisao trougao je da je zbir bilo koje dve njegove stranice uvek veći od treće tj. if((a+b)>c) and ((a+c)>b) and ((b+c)>a) Zadatak: Neka je dat sledeći PASKALSKI kod: program test; var i,j: real; k: boolean; begin i:= j mod 8;

Upload: sasa-p-rajakovic

Post on 02-Oct-2014

127 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: ZADACI IZ PASKALA

Page 1ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

Zadatak: Napiši sledeće matematičke izraze u Pascalu:

a)

b)

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

Zadatak: Napiši sledeće matematičke izraze u Pascalu:

a) f:=

b) f:=

Rešenje: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 logička promenljiva napiši izraz da onaima vrednost true, da se od odesečaka sa dužinama x, y i z možekonstruisati trougao. Rešenje: Uslov da bi se konstruisao trougao je da je zbir bilo koje dvenjegove stranice uvek veći od treće tj.

if((a+b)>c) and ((a+c)>b) and ((b+c)>a)

Zadatak: Neka je dat sledeći PASKALSKI kod:

program test; var

i,j: real;

k: boolean;

begin

i:= j mod 8;

Page 2: ZADACI IZ PASKALA

Page 2ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

k:=i+1; j:=i-5; end. Koja su greška napravljena u pisanju programa (opiši) ? Rešenje:- 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: Napiši naredbu uslovnog prelaska kojom se za zadato xizračunava f po formuli:

Rešenje: 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: Napiši naredbu uslovnog prelaska kojom se za zadato xizračunava f po formuli:

Rešenje: 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 izvršavanjasledećih 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;

Page 3: ZADACI IZ PASKALA

Page 3ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

a:=abs(a)+2; Rešenje: Budući da je a veće od 1 to će se izvršiti instrukcija od ifkoje 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 izvršavanjasledećih 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; Rešenje: Budući da je a veće od jedan izvršava se else deo if naredbepa 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 satastature sračunava otpor i snaga kola. Rezultat prikaži u formatuod 8 mesta sa 2 decimale. Rešenje:

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;

Page 4: ZADACI IZ PASKALA

Page 4ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

WriteLn('Otpor kola je : ',r:8:2,' Snaga kolaje :',p:8:2); ReadLnEnd.

Zadatak: Neka je data jednačina =0. Promenljive a i b se unose sa

tastature. Napiši program koji za svaku vrednost a i b dajerešenja jednačine. Rezultat prikaži u formatu od 8 mesta sa 2decimale. Rešenje: Rešenje je jednačine 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); ReadLnEnd.

Zadatak:Neka se sa tastature unose celi brojevi n1, n2, i n3. Napišiprogram kojim se sračunava zbir samo negativnih brojeva. Rezultatprikaži u formatu od 5 mesta. Rešenje: 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;

Page 5: ZADACI IZ PASKALA

Page 5ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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); ReadLnEnd.

Zadatak:Neka se sa tastature unose celi brojevi n1, n2, i n3. Napišiprogram kojim se sračunava ukupan broj negativnih brojeva.Rezultat prikaži u formatu od 5 celih mesta. Rešenje: 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); ReadLnEnd.

Zadatak:Neka se sa tastature unose celi brojevi n1, n2, i n3. Napišiprogram kojim se sračunava zbir brojeva koji se nalaze u intervalu3 do 7. Rezultat prikaži u formatu od 5 mesta. Rešenje: Program izgleda ovako:

program prog;Uses CRT;var n1,n2,n3,s : integer;begin ClrScr;

Page 6: ZADACI IZ PASKALA

Page 6ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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); ReadLnEnd.

Zadatak: Neka se sa tastature unose celi brojevi n1, n2, i n3. Napišiprogram kojim se sračunava zbir brojeva koji su deljivi sa 7.Rezultat prikaži u formatu od 5 celih mesta. Rešenje: 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); ReadLnEnd.

Zadatak:Neka se sa tastature unose brojevi n1, n2, i n3. Napiši programkojim se promenljivoj max dodeljuje najveća vrednost od unesenihbrojeva. Rezultat prikaži u formatu od 8 mesta sa 2 decimalna. Rešenje: Program izgleda ovako:

Page 7: ZADACI IZ PASKALA

Page 7ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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); ReadLnEnd.

Zadatak:Neka se sa tastature brojevi n1, n2, i n3. Napiši program kojimse ovi brojevi udvajaju ako je inače se svakombroju dodeljuje njegova apsolutna vrednost. Rešenje: 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*n3end 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); ReadLnEnd.

Page 8: ZADACI IZ PASKALA

Page 8ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

Zadatak:Putovanje između mesta A i B traje n sekundi. Sračunaj koliko jeto sati, minuta i sekundi. Rešenje: 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); ReadLnEnd.

Zadatak:Kolika će biti vrednost promenljive a ako se izvrši sledeći deokoda:

a := 1.56;case k mod 10 of2,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 Rešenje: a) za uneseno k=312 rezultat operacije k mod 10 = 2 pa se izvršavaju slede}e instrukcije: a=a+7=1.56+1=8.56 a=trunc(a)=trunc(8.56)=8b) za uneseno k=121 operacija k mod 10 = 1 pa se vrednostpromenljive a neće promeniti.c) za uneseno k=234 rezultat operacije k mod 10 = 4 pa seizvršavaju sledeće instrukcije: a=a-3=1.56-3=-1.44 a=round(a)=round(-1.44)=-1d) za uneseno k=416 rezultat operacije k mod 10 = 6 pa seizvršavaju sledeće instrukcije: a=-a=-1.56

Page 9: ZADACI IZ PASKALA

Page 9ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

a=a-7=-1.56-7=-8.56 Zadatak: Neka je data sledeća if naredba. if n1>n2 then n1 :=n1+5 else n1:=n2+3;navedeni niz naredbi zameni odgovarajućom case naredbom. Rešenje: Program izgleda ovako:

case n1>n2 of true: n1 :=n1+5; false: n1 :=n2+3 end. Zadatak: Neka se sa tastaure unosi uspeh učnika. Napisati program kojim seza unetu ocenu ispisuje: 1 - nedovoljan, 2 - dovoljan, 3 - dobar, 4- vrlodobar, 5 - odličan.

Rešenje: 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; ReadLnEnd.

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 izvršenja datog koda ?

Page 10: ZADACI IZ PASKALA

Page 10ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

Rešenje: 1. prolaz: a=a-i=5-1=42. prolaz: a=a-i=4-2=23. prolaz: a=a-i=2-3-=14. prolaz: a=a-i=-1-4=-55. prolaz: a=a-i=-5-5=-10 i na kraju se izvršava naredba: a=a-4=-10-4=-14Primetite da je u telu ciklusa samo naredba a := a-i koja će bitiizvršena pet puta, dok će naredba a :=a-4 biti izvršena samojednom. Zadatak:Napisati program koristeći instrukciju for kojom se računa zbirbrojeva od 1 do 100 koji su deljivi sa 7 i sa 3. Rešenje: Program za rešenje 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); ReadLnEnd.

Brojevi koji zadovoljavaju dati uslov su: 21, 42, 63 i 84 čiji jezbir 210. Zadatak:Napisati program koristeći instrukciju for kojom se računa zbirbrojeva od 1 do 100 čija je zadnja cifra 9. Rešenje: Program za rešenje ovog zadatka je:

program prog;Uses CRT;

Page 11: ZADACI IZ PASKALA

Page 11ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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); ReadLnEnd.

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 programkojim se sračunava njihov zbir i njihov proizvod.

Rešenje: Program za rešenje 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,' Proizvodje : ',proizvod:8:2); ReadLnEnd.

Primetite da je početni uslov za zbir nula, dok je to zaproizvod 1. Zadatak: Poznato je u matematici da je faktorijel nekog celog broja definisankao:

faktorije=n!=1*2*...*nNapiši program koristeći instrukciju for kojom se računa faktorijelbroja n unesenog sa tastature.

Page 12: ZADACI IZ PASKALA

Page 12ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

Rešenje: Program za rešenje 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); ReadLnEnd.

Zadatak:Napisati program koristeći instrukciju for kojom se računa zbir nizakoji je definisan kao:

s=0-1+2=3+4...(-1)nnza broj n koji se unosi sa tastature. Rešenje: Program za rešenje 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); ReadLnEnd.

Page 13: ZADACI IZ PASKALA

Page 13ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

Primetite da smo za rešavanje ovog zadatka morali definisati

promenljivu pred, koja može imati vrednost 1 ili - 1 i u svakomciklusu 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 koristeći instrukciju for kojom se računa ovajzbir ako se sa tastature unosi n i broj x.

Rešenje: Program za rešenje 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); ReadLnEnd.

Zadatak: Napiši program kojim se određuju svi prosti brojevi od 3 do1000 kao i njihov ukupan broj. Rešenje: Program za rešenje ovog zadatka je:

program prog;Uses CRT;var i, j, k,i2, a, broj: integer; c1: char;begin ClrScr; Writeln;

Page 14: ZADACI IZ PASKALA

Page 14ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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 sledeća 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 napuštanjanavedenog koda. Rešenje: 1. prolaz s=s+0.7=0+0.7=0.7 i=i+3=-1+3=22.prolaz s=s+0.7=0.7+0.7=1.4 i=i+3=2+3=53.prolaz s=s+0.7=1.4+0.7=2.1 i=i+3=5+3=84.prolaz s=s+0.7=2.1+0.7=2.8 i=i+3=8+3=11

Page 15: ZADACI IZ PASKALA

Page 15ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

5.prolaz s=s+0.7=2.8+0.7=3.5 i=i+3=11+3=146. prolaz s=s+0.7=3.5+0.7=4.2 i=i+3=14+3=177. prolaz budući da je s = 4.2 > 4 ovog prolaza nema pa se izvršavainstrukcija iza while ciklusa s :=s+i = 4.2+17=21.2 Zadatak: Neka je data sledeća 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 napuštanjanavedenog koda. Rešenje: 1. prolaz s=s+0.6=1+0.6=1.6 i=i+2=1+2=32.prolaz s=s+0.6=1.6+0.6=2.2 i=i+2=3+2=53.prolaz s=s+0.6=2.2+0.6=2.8

i=i+2=5+2=74.prolaz s=s+0.6=2.8+0.6=3.4 i=i+2=7+2=95.prolaz s=s+0.6=3.4+0.6=4.0 i=i+2=9+2=116. prolaz budući da je s = 4.0 i nije manje od 4 ovog prolaza nema pase izvršava instrukcija iza while ciklusa s :=s+i = 4.0+11=15 Zadatak: Neka je data sledeća grupa naredbi: while a > b do begin c :=a*b; c :=c+a

end;

Page 16: ZADACI IZ PASKALA

Page 16ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

Kako će se izvršiti ova grupa naredbi. Rešenje: Ako je a <= b tada instrukcije u telu ciklusa neće bitiizvršenei nijedanput a ako je a > b program će trajno ostati u teluciklusa takozvanom beskonačnom ciklusu. Zadatak: Napiši program kojim se sabiraju svi neparni brojevi od 100do 1000 upotrebom while naredbe. Rešenje: Program za rešenje 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); ReadLnEnd.

Primetite da smo kao prvi neparni broj uzeli broj 101 a

svaki sledeći neparni je za 2 veći od prethodnog. Ciklus će sezavršiti kada i dostigne vrednost od 1001 ali taj broj neće ući uzbir. Inače traženi zbir je 247500. Zadatak: Napiši program upotrebom while naredbe kojim se izračunava zbir niza za svaki broj n unesen sa tastature ako je datniz: Rešenje: Program za rešenje ovog zadatka je:

program prog;Uses CRT;var zbir, j : real;

Page 17: ZADACI IZ PASKALA

Page 17ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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); ReadLnEnd.

Suština rešenja ovog zadatka je da sračuna član niza i

doda na prethodnu sumu. Nakon toga se i uvećava za 1. Ciklus seobnavlja sve dok i ne dostigne vrednost n+1, ali taj član neće ućiu zbir budući da je uslov zadovoljen. Zadatak: Napiši deo koda upotrebom while instrukcije kojim se tražizbir brojeva od 1 do 100 deljivih sa 6 i 4. Brojevi od 50 do 60 neulaze u taj zbir. Rešenje:

zbir :=0; i := 1; while i <= 100 do begin if ((i mod 4 = 0) and (i mod 6 = 0) and (i <50)) then zbir := zbir+i; if ((i mod 4 = 0) and (i mod 6 = 0) and (i >60)) then zbir := zbir+i; i :=i+1; end;

Pokušaj da sa jednim if uslovom rešiš zadatak. Zadatak: Neka je data sledeća grupa naredbi: s :=1; i :=1; repeat s :=s+0.6; i :=i+2

until s=4;

Page 18: ZADACI IZ PASKALA

Page 18ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

s :=s+i;Kolike će biti vrednosti promenljivih s i i nakon napuštanjanavedenog koda. Re{enje: 1. prolaz s=s+0.6=1+0.6=1.6 i=i+2=1+2=32.prolaz s=s+0.6=1.6+0.6=2.2 i=i+2=3+2=53.prolaz s=s+0.6=2.2+0.6=2.8

i=i+2=5+2=74.prolaz s=s+0.6=2.8+0.6=3.4 i=i+2=7+2=95.prolaz s=s+0.6=3.4+0.6=4.0 i=i+2=9+2=11 uslov je zadovoljen pa se napušta 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 napuštanjanavedenog koda. Rešenje: 1. prolaz s=s+0.7=0+0.7=0.7 i=i+3=-1+3=22.prolaz s=s+0.7=0.7+0.7=1.4 i=i+3=2+3=53.prolaz s=s+0.7=1.4+0.7=2.1

i=i+3=5+3=84.prolaz s=s+0.7=2.1+0.7=2.8 i=i+3=8+3=115.prolaz

Page 19: ZADACI IZ PASKALA

Page 19ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

s=s+0.7=2.8+0.7=3.5 i=i+3=11+3=146. prolaz s=s+0.7=3.5+0.7=4.2 i=i+3=14+3=17 budući da je uslov zadovoljen to je s=s+i=4.2+17=21.2. Zadatak: Napiši program kojim se upotrebom repat instrukcije tražiizbir brojeva od 100 do 300 čija je zadnja cifra 7. Rešenje:

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); ReadLnEnd.

Zadatak: Napiši program upotrebom repeat instrukcije kojim se tražizbir brojeva od 1 do 100 deljivih sa 6 i 4. Brojevi od 50 do 60 neulaze u taj zbir. Rešenje:

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)))

Page 20: ZADACI IZ PASKALA

Page 20ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

then zbir := zbir+i; i := i+1; until i = 101; WriteLn('Trazeni zbir je :',zbir:8:2); ReadLnEnd.

Zadatak: Napiši program kojim se od datog prirodnog broja n formirabroj sa istim ciframa ali u inverznom poretku. Rešenje: 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); ReadLnEnd.

Zadatak: Napiši program kojim se za zadati prirodan broj n utvrđujekoliko on ima binarnih jedinica ako je predstavljen u binarnomobliku. Rešenje: 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;

Page 21: ZADACI IZ PASKALA

Page 21ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

n :=n div 2 until n = 0; WriteLn('Broj u binarnom obliku ima jedinica:',i:8); ReadLnEnd.

Zadatak: Neka se sa tastature unosi napon u i struja i. Sračunati otporkola r koristeći funkciju otpor. Rešenje: 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); ReadLnEnd.

Zadatak: Neka se sa tastature unosi celi brojevi n1 i n2. Koristećifunkciju veci naći veći broj i prikazati ga. Rešenje: 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

Page 22: ZADACI IZ PASKALA

Page 22ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

ClrScr; Write('Unesi broj n1 : '); ReadLn(n1); Write('Unesi broj n2 : '); ReadLn(n2); broj := veci(n1, n2); WriteLn('Veci broj je : ',broj:5); ReadLnEnd.

Zadatak: Neka se sa tastature unose četiri cela broja n1, n2, n3 i n4.Koristeći funkciju veci iz prethodnog zadataka nađi najveći broj. Rešenje: 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); ReadLnEnd.

Zadatak: Neka se sa tastature unose stranice a i b pravougaonogtrougla. Sračunati hipotenuzu c a za njeno izračunavanje koristifunkciju hipotenuza. Rešenje: Program izgleda ovako:

program prog;

Page 23: ZADACI IZ PASKALA

Page 23ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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); ReadLnEnd.

Zadatak: Neka se sa tastature unose celobrojne promenljive x i y kojemogu imati vrednost 0, ili 1. Koristeći funkciju eksluziv sračunativrednos izlaza za eksluzivno ili kolo. Rešenje: 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); ReadLnEnd.

Zadatak:

Page 24: ZADACI IZ PASKALA

Page 24ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

Neka se sa tastature unosi prirodan broj n. Sračunaj zbirniza:

s =1+22+33+...nn, pri čemu se n-ti član niza računa u funkciji clan. Rešnje: 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); ReadLnEnd.

Zadatak: Neka se sa tastature unose vrednosti otpornika r1 i r2 koji sumeđusobno paralelno vezani i neka je dat napon kola u=100 volti.Nađi vrednost struje i kola. Otpor kola sračunaj u proceduri otpor ito korišđenjem lokalnih i globalnih promenjivih. Rešenje: 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);

Page 25: ZADACI IZ PASKALA

Page 25ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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); ReadLnEnd.

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); ReadLnEnd.

Zadatak: Neka je data procedura račun:

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, 1b) 1.7 2.8

Page 26: ZADACI IZ PASKALA

Page 26ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

Rešenje: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 bitipridružueno 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 sefunkcija f računa po formuli:

Napisati program kojim se u proceduri funk računa vrednost data funkcije. Rezultat prikaži u glavnom programu. Rešenje: 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); ReadLnEnd.

Zadatak: Neka je data sledeći 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;

Page 27: ZADACI IZ PASKALA

Page 27ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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); ReadLnEnd

Kolika će biti vrednost promenljivih z i z1 ako se unese: a) 1 1 b) 4 5 Rešenje:a) ako se unese 1, 1 onda se u proceduri racun sračuna u prvompozivu: y1=1+sqr(1)+sqr(1)=3 y2=x1*x2=1*1=1u 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=3c) rešenje je: z=2470, z1=900 Zadatak: Neka su data dva mesta A i B čija je međusobna udaljenosts=90 km i neka se iz mesta A i B krene vozila u isto vreme. Prvovozilo se kreće brzinom v1 a drugo v2 kilometara na sat. Sračunaju proceduri put vreme kada će se ona susresti i dužinu puta s1 is2 koja su ona pojedinačno prešla. Ponovi račun tako da se drugovozilo kreće za 5 km/sat brže. Rešenje:Programa za rešenje 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;

Page 28: ZADACI IZ PASKALA

Page 28ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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); ReadLnEnd.

Zadatak: Neka je data sledeći 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); ReadLnEnd.

Kolika će biti vrednost promenljive j ako se unese:a) i=2b) i=5c) i=-1 Rešenje: U ovom slučaju se radi o takozvanim rekurzivnim proceduramakoje poizvaju samu sebe.Razmotrimo slučaj 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 jei=i-1=1-1=0,j=j+2=2+3=4, pa

Page 29: ZADACI IZ PASKALA

Page 29ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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 završavabudući 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 traži suma brojevadeljivih sa 7 od 100 do 200. Rezultat prikaži u glavnom programu Rešenje: Program za rešenje 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); ReadLnEnd.

Primetite da procedura zbir koristi samo izlazne paramtre. U njoj sudefinisane i lokalne varijable. Zadatak: Neka je dat niz xx od od 20 elemenata. Napiši program kojimse izračunava:a) Srednja vrednost niza xx.b) Maksimalni član nizac) indeks najvećeg člana niza. Rešenje:

program prog;Uses CRT;type niz=array[1..20] of real;var xx : niz; sr, max : real; i,j : integer;

Page 30: ZADACI IZ PASKALA

Page 30ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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); ReadLnEnd.

Zadatak: Neka je dat niz yy od 20 članova. Napiši program kojim seračuna zbir pozitivnih članova niza. Rešenje:

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); ReadLnEnd.

Zadatak: Neka je dat niz xx od n elemenata. Napisati program kojim seračuna zbir članova niza koji su deljivi sa 3 i 7. Rešenje:

program prog;Uses CRT;type niz=array[1..100] of integer;

Page 31: ZADACI IZ PASKALA

Page 31ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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); ReadLnEnd.

Zadatak: Neka je dat niza yy od n elemenata. Napisati program kojimse računa broj članova niza koji se nalaze u intervalu -1 < xx[i] <7 Rešenje:

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);

Page 32: ZADACI IZ PASKALA

Page 32ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

ReadLnEnd.

Zadatak: Neka su data dva niza xx i yy od po pet članova. Napišiprogram kojim se računa ukupan broj parova nizova koji na istomindeksu imaju jednake elemente. Rešenje:

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); ReadLnEnd.

Zadatak: Neka je dat niza xx od 5 elemenata. Napiši program kojim seformira niz yy od elemanata niza xx koji su parni. Rešenje:

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

Page 33: ZADACI IZ PASKALA

Page 33ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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]); ReadLnEnd.

Zadatak:Neka je dat niza a od 9 elemenata pri čemu se njegov prvi član a[0] unosi sa tastature. Napiši program kojim se formira ovaj nizako je:

a[1]=a[0]*a[0], a[2]=a[0]*a[1], ...,a[8]=a[7]*a[6]Rešenje:

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); ReadLnEnd.

Zadatak: Neka je dat niza a od 10 elemeneta. Napiši program kojim sesračunava zbir članova niza sa parnim indeksom. Rešenje:

program prog;

Page 34: ZADACI IZ PASKALA

Page 34ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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); ReadLnEnd.

Zadatak: Neka je dat niz a od 10 elemeneta. Napiši program kojim sesračunava ukupan broj brojeva koji su međusobno jednaki. Rešenje:

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;

Page 35: ZADACI IZ PASKALA

Page 35ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

end; for j := 1 to 10 do if c[j] = j then br :=br+1; WriteLn('Ukupan broj jednakih brojeva je:',br:5); ReadLnEnd.

Prilikom rešenja ovog zadatka morali smo uvesti dodatni niz c od10 elemenata, čiji su članovi na početku postavljeni na nulu. Ovajniz se koristi da ne bi duplo brojali već obrađene brojeve. U slučajuako je taj član niza već uzet na to mesto u nizu c se postavljajedinica, pa je uslov da se uzima član da je c[j]=0. Budući da seprvi broj koji je jednak nekom drugom ne bi uzimao u ukupan brojbrojeva jednakih to smo na kraju programa ispitali pozicije matricec i u slučaju ako je c[j]=j to znači da na tom mestu ima jednakbroj pa smo dobijeni zbir uvećavali za 1. Zadatak

Napiši program koji se unos članovi niza. Nakon unosa člananiza stavi taj član na mesto u nizu tako da niz bude sortiran urastućem redosledu.

Rešenje:

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]); Readlnend.

Page 36: ZADACI IZ PASKALA

Page 36ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

Zadatak: Neka je data matrica a od 4 vrste i 5 kolona. Napiši programkojim se sračunava zbir svih članova date matrice. Rešenje:

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. Napiši programkojim se sračunava koja kolona ima najveći zbir, i koliki je tajzbir. Rešenje:

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

Page 37: ZADACI IZ PASKALA

Page 37ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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 rešenje ovog zadatka uveli smo pomoćni niz c koji ima 5članova a njegovi pojedinačni članovi su zbirovi pojedinih kolonamatrice b. Nakon dobijanja niza c tražimo najveći član i njegovindeks što je rešenje zadatka. Zadatak: Neka je data matrica b sa 5 vrsta i 5 kolona. Napiši programkojim se sračunava zbir svih članova date matrice po sporednojdijagonali tj. : s=s[1,5]+a[2, 4]+...+a[5, 1]. Rešenje:

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

Page 38: ZADACI IZ PASKALA

Page 38ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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: Napiši program kojim se unose elementi nizova a i b kojiimaju po 10 članova. Formiraj niz c kao:

c[1]=a[1]*b[10], c[2]=a[2]*b[9] ... Prikaži dati niz. Rešenje:

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.

Page 39: ZADACI IZ PASKALA

Page 39ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

Zadatak: Napiši program kojim se učitava matrica a dimenzija 5 x 5.Nađi zbir brojeva deljivih sa 7 i sa 2 u okviru date matrice. Rešenje:

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] mod2 = 0)) then zbir := zbir + a[i, j]; end; WriteLn; WriteLn; WriteLn('Ukupan zbir takvih elemanata je :', zbir:10); WriteLn; ReadLn(c1);end.

Zadatak: Napiši program kojim se unose elementi niza a od 12elemenata, zatim se od toga niza formira matrica b koja ima 3vrste i četiri kolone. Prikaži matricu b kao rezultat. Rešenje:

Page 40: ZADACI IZ PASKALA

Page 40ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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. Napiši programkojim se nalazi najveći član te matrice, kao i vrsta i kolona gde seon nalazi. Rešenje:

program prog;Uses CRT;type niz=array[1..3,1..4] of real;var a : niz; cc : char;

Page 41: ZADACI IZ PASKALA

Page 41ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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 elementipojedinačne cifre dva broja od 10 cifara. Napiši program kojim sesabiraju ta dva velika broja formiranjem niza c, čiji su elementipojedinačne cifre proizašle kao rezultat tog sabiranja. Koristeći datorešenje saberi: 99999 99999 88888 88888 Rešenje:

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

Page 42: ZADACI IZ PASKALA

Page 42ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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: Napiši program kojim se unosi ulazna rečenica recen kao iznak(slovo), a zatim određuje ukupan broj ponavljanja toga znakau datoj rečenici. Rešenje:

program prog;Uses CRT;

Page 43: ZADACI IZ PASKALA

Page 43ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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: Napiši program kojim se unosi ulazna rečenica recen.Unesenu rečenicu prikaži slovo po slova u novom redu. Rešenje:

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: Napiši program kojim se unosi ulazna rečenica recen. U datojrecenici izbriši slovo 'd' i prikaži novodobijeni string.

Page 44: ZADACI IZ PASKALA

Page 44ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

Rešenje:

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: Napiši program kojim se unosi ulazna rečenica recen. U datojrečenici umesto slova 'd' upiši slovo x i prikaži novodobijeni string. Rešenje:

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:

Page 45: ZADACI IZ PASKALA

Page 45ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

Napiši program kojim se unosi ulazna rečenica recen. U datojrecenici izbriši deo stringa koji nalazi između malih zagrada iprikaži novodobijeni string. Rešenje:

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+1end; if (recen[i]=')') and (ind = 1) then ind:= 0; end; WriteLn('Nova recenica je : ', recen1); ReadLn(cc);End.

Za rešenje ovog zadatka koristili smo varijablu ind koja je napočetku programa bila postavljena na nulu. Ako u unesenomstringu naiđemo na otvorenu zagradu indikator se postavlja na 1 izabranjuje dalje prenošenje u izlaznu rečenicu. Pojavljivanjezatvorene zagrade dozvola za prenošenje se nastavlja tj. ind sepostavlja na nulu. Zadatak: Napiši program kojim se unosi ulazna rečenica recen, a zatimodredi broj reči u rečenici. Rečima smatraj deo slova jedno dodrugog razmaknut prazninama. Rešenje:

program prog;Uses CRT;var

Page 46: ZADACI IZ PASKALA

Page 46ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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.

Suština rešenja ovog zadatka se nalazi u tome što ispitujemouslov da li se pre praznine nalazi neki karakter. Ako ga ima to jereč i brojač se uveđava za 1. Brojač je postavljen na 1 radi zadnjereči u rečenici kod koje nije zadovoljen navedeni uslov. Zadatak: Napiši program kojim se unosi u tabelu a 20 prezimena iimena učenika. Nađi koliko ima Milanovica i koliko ima Jelena? Rešenje:

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

Page 47: ZADACI IZ PASKALA

Page 47ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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: Napiši program kojim se uneseni ulazni broj konvertuje uheksadecimaln broj. Rešenje:

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); 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';

Page 48: ZADACI IZ PASKALA

Page 48ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

if i2 =15 then slovo :='F'; insert(slovo,linija, 1); until i = 0; WriteLn; WriteLn; WriteLn('Broj u heksa kodu : ', linija); ReadLn(c1);

Zadatak: Napiši program kojim se u celobrojnu datoteku a upisujubrojevi od 1 do 10 pojedinačno. Rešenje:

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: Napiši program kojim se iz prethodno formirane datoteke analazi zbir svih upisanih brojeva. Rešenje:

program prog;Uses CRT;type broj=file of integer;Var s, i, n : integer; a : broj;begin

Page 49: ZADACI IZ PASKALA

Page 49ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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: Napiši program kojim se u datoteku realnih brojeva a prvounese i upiše 5 brojeva. Nakon toga pročitaj datoteku a i nađinajveći upisani broj. Rešenje:

program prog;Uses CRT;type broj=file of real;Var i : integer; a : broj; max, x : real;beginClrScr; 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.

Page 50: ZADACI IZ PASKALA

Page 50ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

Zadatak: Iz prethodno formirane datoteke a realnih brojeva formirajdatoteku b od onih brojeva koji su veći od 3. Prikaži dobijenudatoteku b. Rešenje:

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 Napiši program koji se u datoteku "mat.dat" unosi n realnih

brojeva. Rešenje:

program x1;Uses Crt;var f: file of real; i, j, n : integer; x : real;

Page 51: ZADACI IZ PASKALA

Page 51ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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); Readlnend.

Zadatak Napiši program kojim se iz datoteke "mat.dat" prikazujuuneseni brojevi. Unesi zatim broj b. U datoteku "racun.dat" unesisamo one brojeve koji su veći od broja b. Sračuna i prikažiaritmetičku sredinu tih brojeva. Rešenje:

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);

Page 52: ZADACI IZ PASKALA

Page 52ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

if x > b Then Begin Write(f1, x); s :=s+x; j :=j+1End; End; WriteLn; If j > 0 Then WriteLn('Aritmetica sredina je : ', s/j:8:3); Close(f); Close(f1); Readlnend.

Zadatak

Napiši program kojim se u datoteku "odsecak.dat" unose svineparni brojevi iz intervala [-14,14]. Rešenje:

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); Readlnend.

Zadatak Napiši program kojim prikazuju svi uneseni se brojevi u datoteku"odsecak.dat". Sve negativne brojeve iz te datoteke upiši udatoteku "nova.dat" i sračunaj koliko je takvih brojeva.

Rešenje:

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');

Page 53: ZADACI IZ PASKALA

Page 53ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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); Readlnend.

Zadatak: Neka je data datoteka realnih brojeva "broj.dat". Napiši

program kojim se čitaju svi brojevi iz te datoteke i uvećani za 2upisuju u datoteku "broj1.dat".

Rešenje:

Program x1;Uses Crt;Var f, f1 : file of real; x : real; i : integer;BeginClrScr;{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". Napišiprogram kojim se u tu datoteku upisuje n brojeva. Nakon unosaprikaži sve brojeve i nađi i prikaži najveći uneseni broj. Rešenje:

Page 54: ZADACI IZ PASKALA

Page 54ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

Program x1;Uses Crt;Var f : file of real; x, max : real; i, n : integer;BeginClrScr;{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 kojuje uneseno prezime i ime radnika i njegova godina rođenja. Napišiprogram kojim se nalazi najstariji i najmlađi radnik kao i prosečnustarost svih radnika. Rešenje:

program prog;Uses CRT;var radnici: text; ime :string[20];

Page 55: ZADACI IZ PASKALA

Page 55ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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: Napiši program kojim se u tekstualnu datoteku ucenik unosepodaci: prezime i ime, mesto stanovanja i adresa. Program završikada se za prezime unese reč 'kraj'. Rešenje:

program prog;Uses CRT;Var ucenik : text;

Page 56: ZADACI IZ PASKALA

Page 56ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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: Napiši program kojim se iz prethodno formirane tekstualnedatoteku ucenik, prikazuju na ekranu uneseni podaci. Rešenje:

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;

Page 57: ZADACI IZ PASKALA

Page 57ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

end.

Zadatak: Napiši proceduru za učitavanje i štampanje ugla koji je uglavnom programu opisan kao: type ugao=record stepen:0..359; minut:0..59; sekund:0..59 Rešenje: 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 iime, godina rođenja i broj odigranih uloga. Napiš program kojim seunose podaci za n glumaca, a zatim prikaže samo one koji imajuviše od 50 uloga. Ako nema takvih napiši "Nema takvih glumaca"

Rešenje: 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 : ');

Page 58: ZADACI IZ PASKALA

Page 58ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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'); Readlnend.

Zadatak

Neka je dat slog opstina u koji se unose podaci: naziv, brojstanovnika i površina. Napiši program kojim se unosi šest opština azatim sortira po broju stanovnika. Rešenje:

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

Page 59: ZADACI IZ PASKALA

Page 59ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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); Readlnend.

Zadatak: Neka je dat slog osoba. Napiš program kojim se unosi desetpodatak u taj slog sa imenom osobe i godinom starosti. Prikaži unesene osobe sortirane po godini starosti. Rešenje:

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;

Page 60: ZADACI IZ PASKALA

Page 60ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

WriteLn('Prikaz sortiranih osoba'); WriteLn; For i := 1 to 10 do WriteLn(osob[i].ime,' ',osob[i].godina); Readlnend.

Zadatak:

Napiši program kojim se u slog osobe unosi ime i telefonskibroj 5 osoba. Nakon unosa sortiraj i prikaži unesene osobe poabecedi.

Rešenje:

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); Readlnend.

Zadatak:

Page 61: ZADACI IZ PASKALA

Page 61ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

Napiši program kojim se u slog ucenik unosi ime, visina itezina i za n ucenika. Nakon unosa prikaži unesene podatke.

Rešenje:

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;BeginClrScr;Write('Unesite broj ucenika : ');Readln(n);WriteLn;{Unos podataka o ucenicima}For i := 1 to n doBegin 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 doBegin WriteLn(uce[i].ime:10,' ',uce[i].visina:4,' ',uce[i].tezina:3);End;ReadLn;ENd.

Zadatak:

Napiši program kojim se u slog osobe unosi ime, i njegovastarost za 10 osoba. Nakon unosa sortiiraj osobe po godinamastarosti i prikaži dobijene podatke.

Rešenje:

Program x;Uses Crt;type osobe=record ime :string[10];

Page 62: ZADACI IZ PASKALA

Page 62ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

starost : integer; End;Var osob: array [1..10] of osobe; p: osobe; i, j , n: integer;BeginClrScr;{Unos podatka o osobama}For i := 1 to 10 doBegin 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 doBegin WriteLn(osob[i].ime:10,' ',osob[i].starost);End;ReadLn;ENd.

Zadatak:

Napiši program kojim se u slog dani unosi naziv i temperatura za svih 7 dana u sedmici. Nakon unosa unesi zadatutemperaturu i prikaži dane koji su imali tu temperaturu.

Rešenje:

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;

Page 63: ZADACI IZ PASKALA

Page 63ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

BeginClrScr;{Unos temperatura po danima}For i := 1 to 7 doBegin 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: Napiši program kojim se u slog artikal unosi naziv, kolicina i

cena za n artikala. Nakon unosa unesi zadatu cenu i prikaži artiklekoji su imali tu cenu. Sračunaj ukupnu vrednost artikala.

Rešenje:

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;BeginClrScr;{Unos broja artikala}WriteLn;Write('Unesi broj artikala : ');Readln(n);WriteLn;{Unos artikala u magacinu}For i := 1 to n doBegin 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;

Page 64: ZADACI IZ PASKALA

Page 64ZADACI IZ PASKALA

15.1.2012 12:48:02http://milan.milanovic.org/skola/zadpas.htm

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.

Image