77
program telefon; var cena,iznos:real; sat1,min1,sek1,sat2,min2,sek2:integer; vreme1,vreme2,trajanje,i:longint; begin writeln('Unesite vreme pocetka poziva(na primer: 12 34 2).'); readln(sat1,min1,sek1); writeln('Unesite vreme kraja razgovora(na primer: 13 5 49).); readln(sat2,min2,sek2); writeln('Unesite cenu razgovora u dinarima po sekundi(na primer: 0.004).'); readln(cena); vreme1:=sat1*3600+min1*60+sek1; {vreme pocetka poziva u sekundama} vreme2:=sat2*3600+min2*60+sek2; {vreme kraja poziva u sekundama} if vreme1<vreme2 then trajanje:=vreme2-vreme1; {trajanje poziva} if vreme1>vreme2 then trajanje:=24*3600+vreme2-vreme1; {poziv je trajao 1 dan manja razlika izmedju 2 i 1} iznos:=0; for i:=1 to trajanje do if (vreme1+i>7*3600) and (vreme1+i<=21*3600) then iznos:=iznos+cena else {ako je normalja tarifa} iznos:=iznos+cena/2; {ako je 50% od pocetne cene} writeln('Ovaj razgovor ce vas kostati ',iznos:0:5,' dinara.') end. program piramide; var n,i,h:integer; begin writeln('Unesite n i h.'); readln(n,h); for i:=1 to h do {broj redova} begin for j:=1 to n do {broj piramida) begin for k:=1 to h-i do {razmaci pre piramide} write(' '); for k:=1 to 2*i-1 do {piramida} write('+'); for k:=1 to h-i+1 do {razmaci posle piramide} write(' '); end;

Turbo Pascal Zadaci

Embed Size (px)

Citation preview

Page 1: Turbo Pascal Zadaci

program telefon;varcena,iznos:real;sat1,min1,sek1,sat2,min2,sek2:integer;vreme1,vreme2,trajanje,i:longint;beginwriteln('Unesite vreme pocetka poziva(na primer: 12 34 2).');readln(sat1,min1,sek1);writeln('Unesite vreme kraja razgovora(na primer: 13 5 49).);readln(sat2,min2,sek2);writeln('Unesite cenu razgovora u dinarima po sekundi(na primer: 0.004).');readln(cena);vreme1:=sat1*3600+min1*60+sek1; {vreme pocetka poziva u sekundama}vreme2:=sat2*3600+min2*60+sek2; {vreme kraja poziva u sekundama}if vreme1<vreme2 thentrajanje:=vreme2-vreme1; {trajanje poziva}if vreme1>vreme2 then trajanje:=24*3600+vreme2-vreme1; {poziv je trajao 1 dan manja razlika izmedju 2 i 1}iznos:=0;for i:=1 to trajanje doif (vreme1+i>7*3600) and (vreme1+i<=21*3600) theniznos:=iznos+cena else {ako je normalja tarifa}iznos:=iznos+cena/2; {ako je 50% od pocetne cene}writeln('Ovaj razgovor ce vas kostati ',iznos:0:5,' dinara.')end.

program piramide;varn,i,h:integer;beginwriteln('Unesite n i h.');readln(n,h);for i:=1 to h do {broj redova}beginfor j:=1 to n do {broj piramida)beginfor k:=1 to h-i do {razmaci pre piramide}write(' ');for k:=1 to 2*i-1 do {piramida}write('+');for k:=1 to h-i+1 do {razmaci posle piramide}write(' ');end;writelnendend.

Page 2: Turbo Pascal Zadaci

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

a))cos(234

xxxxf

b) )(cot xgexf bx

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

15

xxxxf

f:=

b) )(xtgexf bx

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;

Page 3: Turbo Pascal Zadaci

begin

i:= j mod 8; 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 x

izračunava f po formuli:

5 x za ,

5 x 1 za ,2

1 xza ,2

3

x

xx

x

f

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 x

izračunava f po formuli:

4 x za ,

4 x 1- za ,4

1 xza ,8

2

x

xx

x

f

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šavanja sledećih

naredbi:

a: = 1.56;

Page 4: Turbo Pascal Zadaci

if a < 1 then a: = a+1else begin a: = a+4; a:=trunc(a)+7; a:=sqr(a)+10

end;a:=abs(a)+2;

Rešenje:Budući da je a veće od 1 to će se izvršiti instrukcija od if koje su

pod else pa imamo:a=a+4=1.56+4=5.56a=trunc(a)+7=trunc(5.56)+7=5+7=12s=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šavanja sledeć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 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

sračunava otpor i snaga kola. Rezultat prikaži u formatu od 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;

Page 5: Turbo Pascal Zadaci

p := u*i; WriteLn('Otpor kola je : ',r:8:2,' Snaga kola je :',p:8:2); ReadLnEnd.

Zadatak:

Neka je data jednačina bax =0. Promenljive a i b se unose sa tastature. Napiši program koji za svaku vrednost a i b daje rešenja jednačine. Rezultat prikaži u formatu od 8 mesta sa 2 decimale.

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ši program kojim se sračunava zbir samo negativnih brojeva. 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; Write('Unesi n1 : '); ReadLn(n1); Write('Unesi n2 : '); ReadLn(n2); Write('Unesi n3 : '); ReadLn(n3); s := 0; if n1 < 0 then s := s+n1;

Page 6: Turbo Pascal Zadaci

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ši program 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ši program kojim se sračunava zbir brojeva koji se nalaze u intervalu 3 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; Write('Unesi n1 : '); ReadLn(n1);

Page 7: Turbo Pascal Zadaci

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ši program 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 program kojim se promenljivoj max dodeljuje najveća vrednost od unesenih brojeva. Rezultat prikaži u formatu od 8 mesta sa 2 decimalna.

Rešenje:Program izgleda ovako:

program prog;Uses CRT;var

Page 8: Turbo Pascal Zadaci

n n n1 2 3

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 kojim se ovi brojevi udvajaju ako je inače se svakom broju 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*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); ReadLnEnd.

Zadatak:Putovanje između mesta A i B traje n sekundi. Sračunaj koliko je to sati, minuta i sekundi.

Page 9: Turbo Pascal Zadaci

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 deo koda:

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 vrednost promenljive a neće promeniti.c) za uneseno k=234 rezultat operacije k mod 10 = 4 pa se izvrš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 se izvršavaju sledeće instrukcije: a=-a=-1.56 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;

Page 10: Turbo Pascal Zadaci

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 se za 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 ? Rešenje:1. prolaz:

a=a-i=5-1=42. prolaz:

a=a-i=4-2=23. prolaz:

Page 11: Turbo Pascal Zadaci

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=-14

Primetite da je u telu ciklusa samo naredba a := a-i koja će biti izvršena pet puta, dok će naredba a :=a-4 biti izvršena samo jednom.

Zadatak:Napisati program koristeći instrukciju for kojom se računa zbir brojeva 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 je zbir 210.

Zadatak:Napisati program koristeći instrukciju for kojom se računa zbir brojeva od 1 do 100 čija je zadnja cifra 9.

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

Page 12: Turbo Pascal Zadaci

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 program kojim 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,' Proizvod je : ',proizvod:8:2); ReadLnEnd.

Primetite da je početni 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*...*nNapiši program koristeći instrukciju for kojom se računa faktorijel broja n unesenog sa tastature.

Rešenje:Program za rešenje ovog zadatka je:

program prog;Uses CRT;var

Page 13: Turbo Pascal Zadaci

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 niza koji je definisan kao: s=0-1+2=3+4...(-1)nn za 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.

Primetite da smo za rešavanje ovog zadatka morali definisati promenljivu pred, koja može 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).

Page 14: Turbo Pascal Zadaci

Napisati program koristeći instrukciju for kojom se računa ovaj zbir 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 do 1000

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; WriteLn; WriteLn(' PROSTI BROJEVI OD 1 DO 1000 '); WriteLn; WriteLn; broj :=0; for i :=3 to 1000 do begin

Page 15: Turbo Pascal Zadaci

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štanja navedenog 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.4i=i+3=2+3=5

3.prolazs=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.8i=i+3=8+3=11

5.prolazs=s+0.7=2.8+0.7=3.5i=i+3=11+3=14

6. 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šava instrukcija iza while ciklusa s :=s+i = 4.2+17=21.2

Page 16: Turbo Pascal Zadaci

Zadatak:

Neka je data sledeća grupa naredbi:s :=1; i :=1;

while s<4 dobegin s :=s+0.6;

i :=i+2 end; s :=s+i;

Kolike će biti vrednosti promenljivih s i i nakon napuštanja navedenog 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.2i=i+2=3+2=5

3.prolazs=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.4i=i+2=7+2=9

5.prolazs=s+0.6=3.4+0.6=4.0i=i+2=9+2=11

6. prolazbudući da je s = 4.0 i nije manje od 4 ovog prolaza nema pa se

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;

Kako će se izvršiti ova grupa naredbi.

Rešenje:Ako je a <= b tada instrukcije u telu ciklusa neće biti izvršenei

nijedanput a ako je a > b program će trajno ostati u telu ciklusa takozvanom beskonačnom ciklusu.

Zadatak:

Page 17: Turbo Pascal Zadaci

Sn

113

15

12 12 2 2...

( )

Napiši program kojim se sabiraju svi neparni brojevi od 100 do 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 se završiti kada i dostigne vrednost od 1001 ali taj broj neće ući u zbir. 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 dat niz:

Rešenje:Program za rešenje 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

Page 18: Turbo Pascal Zadaci

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 se obnavlja sve dok i ne dostigne vrednost n+1, ali taj član neće ući u zbir budući da je uslov zadovoljen.

Zadatak:Napiši deo koda upotrebom while instrukcije kojim se traži zbir

brojeva od 1 do 100 deljivih sa 6 i 4. Brojevi od 50 do 60 ne ulaze 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; s :=s+i;

Kolike će biti vrednosti promenljivih s i i nakon napuštanja navedenog koda.

Re{enje:

1. prolaz s=s+0.6=1+0.6=1.6

i=i+2=1+2=32.prolaz

Page 19: Turbo Pascal Zadaci

s=s+0.6=1.6+0.6=2.2i=i+2=3+2=5

3.prolazs=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.4i=i+2=7+2=9

5.prolazs=s+0.6=3.4+0.6=4.0i=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štanja navedenog 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.4i=i+3=2+3=5

3.prolazs=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.8i=i+3=8+3=11

5.prolazs=s+0.7=2.8+0.7=3.5i=i+3=11+3=14

6. prolaz s=s+0.7=3.5+0.7=4.2

i=i+3=14+3=17buduć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žii zbir

brojeva od 100 do 300 čija je zadnja cifra 7.

Page 20: Turbo Pascal Zadaci

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ži zbir

brojeva od 1 do 100 deljivih sa 6 i 4. Brojevi od 50 do 60 ne ulaze 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))) 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 formira broj

sa istim ciframa ali u inverznom poretku.

Page 21: Turbo Pascal Zadaci

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đuje koliko

on ima binarnih jedinica ako je predstavljen u binarnom obliku.

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

kola r koristeći funkciju otpor.

Rešenje: Program izgleda ovako:

Page 22: Turbo Pascal Zadaci

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ći funkciju

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

Page 23: Turbo Pascal Zadaci

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 pravougaonog trougla.

Sračunati hipotenuzu c a za njeno izračunavanje koristi funkciju hipotenuza.

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

Page 24: Turbo Pascal Zadaci

ReadLnEnd.

Zadatak:Neka se sa tastature unose celobrojne promenljive x i y koje

mogu imati vrednost 0, ili 1. Koristeći funkciju eksluziv sračunati vrednos 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:Neka se sa tastature unosi prirodan broj n. Sračunaj zbir niza:

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

Page 25: Turbo Pascal Zadaci

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 su

međ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 i to 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); 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;

Page 26: Turbo Pascal Zadaci

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

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 biti pridruž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 se funkcija 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:

f x x y

y x

2

2

Page 27: Turbo Pascal Zadaci

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

Page 28: Turbo Pascal Zadaci

a) ako se unese 1, 1 onda se u proceduri racun sračuna u prvom pozivu:

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 udaljenost s=90

km i neka se iz mesta A i B krene vozila u isto vreme. Prvo vozilo se kreće brzinom v1 a drugo v2 kilometara na sat. Sračunaj u proceduri put vreme kada će se ona susresti i dužinu puta s1 i s2 koja su ona pojedinačno prešla. Ponovi račun tako da se drugo vozilo 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; 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;

Page 29: Turbo Pascal Zadaci

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 procedurama koje 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 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 završava buduć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 brojeva

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

Page 30: Turbo Pascal Zadaci

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 su definisane i lokalne varijable.

Zadatak:Neka je dat niz xx od od 20 elemenata. Napiši program kojim se

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

računa zbir pozitivnih članova niza.

Page 31: Turbo Pascal Zadaci

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 se

računa zbir članova niza koji su deljivi sa 3 i 7.

Rešenje:

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

Page 32: Turbo Pascal Zadaci

Zadatak:Neka je dat niza yy od n elemenata. Napisati program kojim se

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

Zadatak:Neka su data dva niza xx i yy od po pet članova. Napiši program

kojim se računa ukupan broj parova nizova koji na istom indeksu 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

Page 33: Turbo Pascal Zadaci

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 se

formira 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 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 niz ako 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;

Page 34: Turbo Pascal Zadaci

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 se

sračunava zbir članova niza sa parnim indeksom.

Rešenje:

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

Zadatak:Neka je dat niz a od 10 elemeneta. Napiši program kojim se

sračunava ukupan broj brojeva koji su međusobno jednaki.

Page 35: Turbo Pascal Zadaci

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; 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 od 10 elemenata, čiji su članovi na početku postavljeni na nulu. Ovaj niz se koristi da ne bi duplo brojali već obrađene brojeve. U slučaju 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. Budući 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 slučaju ako je c[j]=j to znači da na tom mestu ima jednak broj pa smo dobijeni zbir uvećavali za 1.

Zadatak Napiši program koji se unos članovi niza. Nakon unosa člana

niza stavi taj član na mesto u nizu tako da niz bude sortiran u rastućem redosledu.

Rešenje:

program x1;Uses Crt;var

Page 36: Turbo Pascal Zadaci

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.

Zadatak:Neka je data matrica a od 4 vrste i 5 kolona. Napiši program

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

Page 37: Turbo Pascal Zadaci

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 program

kojim se sračunava koja kolona ima najveći zbir, i koliki je taj zbir.

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 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 kolona matrice b. Nakon dobijanja niza c tražimo najveći član i njegov indeks što je rešenje zadatka.

Page 38: Turbo Pascal Zadaci

Zadatak:Neka je data matrica b sa 5 vrsta i 5 kolona. Napiši program

kojim se sračunava zbir svih članova date matrice po sporednoj dijagonali 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 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 koji imaju

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;

Page 39: Turbo Pascal Zadaci

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

Page 40: Turbo Pascal Zadaci

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:Napiši 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. Prikaži matricu b kao rezultat.

Rešenje:

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

Page 41: Turbo Pascal Zadaci

Write(b[i,j]:5:2,' '); end; ReadLn(cc);End.

Zadatak:Neka je data matrica a sa 3 vrste i 4 kolone. Napiši program

kojim se nalazi najveći član te matrice, kao i vrsta i kolona gde se on nalazi.

Rešenje:

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

pojedinačne cifre dva broja od 10 cifara. Napiši program kojim se sabiraju ta dva velika broja formiranjem niza c, čiji su elementi pojedinačne cifre proizašle kao rezultat tog sabiranja. Koristeći dato rešenje saberi: 99999 99999 88888 88888

Page 42: Turbo Pascal Zadaci

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

Page 43: Turbo Pascal Zadaci

begin Write (c[i]); end; ReadLn(c1);end.

Zadatak:Napiši program kojim se unosi ulazna rečenica recen kao i

znak(slovo), a zatim određuje ukupan broj ponavljanja toga znaka u datoj rečenici.

Rešenje:

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

Page 44: Turbo Pascal Zadaci

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 datoj

recenici izbriši slovo 'd' 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 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 datoj

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

Page 45: Turbo Pascal Zadaci

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:Napiši program kojim se unosi ulazna rečenica recen. U datoj

recenici izbriši deo stringa koji nalazi između malih zagrada i prikaž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+1 end; 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 na početku programa bila postavljena na nulu. Ako u unesenom stringu naiđemo na otvorenu zagradu indikator se postavlja na 1 i zabranjuje dalje prenošenje u izlaznu rečenicu. Pojavljivanje zatvorene zagrade dozvola za prenošenje se nastavlja tj. ind se postavlja na nulu.

Page 46: Turbo Pascal Zadaci

Zadatak:Napiši program kojim se unosi ulazna rečenica recen, a zatim

odredi broj reči u rečenici. Rečima smatraj deo slova jedno do drugog razmaknut prazninama.

Rešenje:

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.

Suština rešenja 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 uveđava za 1. Brojač je postavljen na 1 radi zadnje reči u rečenici kod koje nije zadovoljen navedeni uslov.

Zadatak:Napiši program kojim se unosi u tabelu a 20 prezimena i imena

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;

Page 47: Turbo Pascal Zadaci

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:Napiši program kojim se uneseni ulazni broj konvertuje u

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

Page 48: Turbo Pascal Zadaci

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:Napiši program kojim se u celobrojnu datoteku a upisuju brojevi

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 a

nalazi zbir svih upisanih brojeva.

Rešenje:

program prog;Uses CRT;

Page 49: Turbo Pascal Zadaci

type broj=file of integer;Var s, i, n : integer; a : broj;beginClrScr; 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 prvo unese

i upiše 5 brojeva. Nakon toga pročitaj datoteku a i nađi najveć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);

Page 50: Turbo Pascal Zadaci

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 veći od 3. Prikaži dobijenu datoteku 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:

Page 51: Turbo Pascal Zadaci

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

Zadatak Napiši program kojim se iz datoteke "mat.dat" prikazuju uneseni brojevi. Unesi zatim broj b. U datoteku "racun.dat" unesi samo one brojeve koji su veći od broja b. Sračuna i prikaži aritmetič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);

Page 52: Turbo Pascal Zadaci

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

Zadatak Napiši program kojim se u datoteku "odsecak.dat" unose svi

neparni 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 u datoteku "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);

Page 53: Turbo Pascal Zadaci

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); 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 2 upisuju 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ši

program kojim se u tu datoteku upisuje n brojeva. Nakon unosa prikaži sve brojeve i nađi i prikaži najveći uneseni broj.

Page 54: Turbo Pascal Zadaci

Rešenje:

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 koju je

uneseno prezime i ime radnika i njegova godina rođenja. Napiši program kojim se nalazi najstariji i najmlađi radnik kao i prosečnu starost svih radnika.

Rešenje:

program prog;Uses CRT;var radnici: text;

Page 55: Turbo Pascal Zadaci

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:Napiši program kojim se u tekstualnu datoteku ucenik unose

podaci: prezime i ime, mesto stanovanja i adresa. Program završi kada se za prezime unese reč 'kraj'.

Rešenje:

program prog;Uses CRT;Var ucenik : text;

Page 56: Turbo Pascal Zadaci

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 tekstualne

datoteku 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;end.

Page 57: Turbo Pascal Zadaci

Zadatak:Napiši proceduru za učitavanje i štampanje ugla koji je u

glavnom 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 i ime, godina rođenja i broj odigranih uloga. Napiš program kojim se unose podaci za n glumaca, a zatim prikaže samo one koji imaju viš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 : '); ReadLn(glumac[i].ime);

Page 58: Turbo Pascal Zadaci

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, broj

stanovnika i površina. Napiši program kojim se unosi šest opština a zatim 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 Begin If opst[i].povrsina < opst[j].povrsina

Page 59: Turbo Pascal Zadaci

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 deset podatak 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; WriteLn('Prikaz sortiranih osoba'); WriteLn;

Page 60: Turbo Pascal Zadaci

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 telefonski broj

5 osoba. Nakon unosa sortiraj i prikaži unesene osobe po abecedi.

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: Napiši program kojim se u slog ucenik unosi ime, visina i tezina i

za n ucenika. Nakon unosa prikaži unesene podatke.

Page 61: Turbo Pascal Zadaci

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 njegova

starost za 10 osoba. Nakon unosa sortiiraj osobe po godinama starosti i prikaži dobijene podatke.

Rešenje:

Program x;Uses Crt;type osobe=record ime :string[10]; starost : integer; End;Var osob: array [1..10] of osobe;

Page 62: Turbo Pascal Zadaci

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 zadatu temperaturu 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;BeginClrScr;{Unos temperatura po danima}For i := 1 to 7 doBegin

Page 63: Turbo Pascal Zadaci

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 artikle koji 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;Write('Unesi zadatu cenu : ');ReadLn(t);v1 := 0;For i := 1 to n do Begin

Page 64: Turbo Pascal Zadaci

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.