Upload
nemanja-petrovic
View
282
Download
4
Embed Size (px)
Citation preview
7/29/2019 PASCAL Reseni Zadaci
1/63
Zadatak:
Napii sledee matematike izraze u Pascalu:
a)
b)
Reenje:
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:Napii sledee matematike izraze u Pascalu:
a) f:=
b) f:=
Reenje:
a)
f:=sqrt(sqr(x)+(sqr(x)*sqr(x)*x+x+1)/sin(x))b) f:=abs(x)+exp(-b*x)+sin(x)/cos(x)
Zadatak:Ako je promeljiva tac logika promenljiva napii izraz da ona ima
vrednost true, da se od odeseaka sa duinama x, y i z moe konstruisatitrougao.
Reenje:Uslov da bi se konstruisao trougao je da je zbir bilo koje dve njegove
stranice uvek vei od tree tj.
if((a+b)>c) and ((a+c)>b) and ((b+c)>a)
Zadatak:Neka je dat sledei PASKALSKI kod:
program test;var
7/29/2019 PASCAL Reseni Zadaci
2/63
i,j: real;k: boolean;
begin
i:= j mod 8;
k:=i+1;j:=i-5;end.
Koja su greka napravljena u pisanju programa (opii) ?
Reenje:- operacija mod je dozvoljena samo na celim brojevima- kako je k logi~ka promenljiva onda ne sme bit k:=i+1- na predzadnjoj instrukciji ne treba ;
Zadatak:Napii naredbu uslovnog prelaska kojom se za
zadato x izraunava fpo formuli:
Reenje:if x >= 1 then f:=-2*x
else if x > 1 and x < 5 then f:=sqrt(sqr(x)*x-2*x)else f:=abs(x);
Zadatak:Napii naredbu uslovnog prelaska kojom se za
zadato x izraunava fpo formuli:
Reenje:
if x -1 and x < 4 then f:=sqrt(sqr(x)+4*x)
else f:=abs(x);
Zadatak:
7/29/2019 PASCAL Reseni Zadaci
3/63
Koju e vrednost imati promenljiva a nakon izvravanja sledeihnaredbi:
a: = 1.56;if a < 1 then a: = a+1
else begin a: = a+4; a:=trunc(a)+7; a:=sqr(a)+10 end;a:=abs(a)+2;
Reenje:Budui da je a vee od 1 to e se izvriti instrukcija od if koje su pod
else pa imamo:a=a+4=1.56+4=5.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 izvravanja sledeih
naredbi:
a: = 1.56;if a < 1 then a: = a+1
else begin a: = a+5; a:=round(a)+4; a:=sqr(a)+5 end;a:=abs(-a) + 2;
Reenje:Budui da je a vee od jedan izvrava se else deo if naredbe pa
imamo: a=a+5=1.56+5=5.56a=round(a)+4\round(5.56)+4=6+4=10 a=sqr(a)+5=10*10+5=105
i na krajua=sbs(-a)+2=abs(-105)+2=105+2=107
Zadatak:Napisati program koji za uneseni napon U i struju I sa tastature
sraunava otpor i snaga kola. Rezultat prikai u formatu od 8 mesta sa 2decimale.
Reenje:
program prog;
Uses CRT;
var
u,i,r,p : real;
begin
ClrScr;
7/29/2019 PASCAL Reseni Zadaci
4/63
Write('Unesi napon U kola : ');
ReadLN(u);
Write('Unesi struju I kola : ');
ReadLn(i);
r := u/i;
p := u*i;
WriteLn('Otpor kola je : ',r:8:2,' Snaga kola je:',p:8:2);
ReadLn
End.
Zadatak:
Neka je data jednaina =0. Promenljive a i b se unose satastature. Napii program koji za svaku vrednost a i b dajereenja jednaine. Rezultat prikai u formatu od 8 mesta sa 2 decimale.
Reenje:
Reenje je jednaine x=-b/a pa e program izgledati kao:program prog;
Uses CRT;
var
a,b,x : real;
begin
ClrScr;
Write('Unesi parametar a : ');
ReadLN(a);
Write('Unesi parametar b : ');
ReadLn(b);
x := -b/a;
WriteLn('Resenje jednacine je x=',x:8:2);
ReadLn
End.
Zadatak:Neka se sa tastature unose celi brojevi n1, n2, i n3. Napii program kojimse sraunava zbir samo negativnih brojeva. Rezultat prikai u formatu od 5mesta.
Reenje:Program izgleda ovako:
program prog;
Uses CRT;
var
n1,n2,n3,s : integer;
begin
ClrScr;
Write('Unesi n1 : ');
ReadLn(n1);
7/29/2019 PASCAL Reseni Zadaci
5/63
Write('Unesi n2 : ');
ReadLn(n2);
Write('Unesi n3 : ');
ReadLn(n3);
s := 0;
if n1 < 0 then s := s+n1;
if n2 < 0 then s := s+n2;if n3 < 0 then s := s+n3;
WriteLn('Zbir brojeva je s=',s:5);
ReadLn
End.
Zadatak:Neka se sa tastature unose celi brojevi n1, n2, i n3. Napii program kojimse sraunava ukupan broj negativnih brojeva. Rezultat prikai u formatu od5 celih mesta.
Reenje:
Program izgleda ovako:
program prog;
Uses CRT;
var
n1,n2,n3,s : integer;
begin
ClrScr;
Write('Unesi n1 : ');
ReadLn(n1);
Write('Unesi n2 : ');
ReadLn(n2);
Write('Unesi n3 : ');ReadLn(n3);
s := 0;
if n1 < 0 then s := s+1;
if n2 < 0 then s := s+1;
if n3 < 0 then s := s+1;
WriteLn('Ukupa broj negativnih brojeva je :',s:5);
ReadLn
End.
Zadatak:Neka se sa tastature unose celi brojevi n1, n2, i n3. Napii program kojim
se sraunava zbir brojeva koji se nalaze u intervalu 3 do 7. Rezultat prikaiu formatu od 5 mesta.
Reenje:Program izgleda ovako:
program prog;
Uses CRT;
7/29/2019 PASCAL Reseni Zadaci
6/63
var
n1,n2,n3,s : integer;
begin
ClrScr;
Write('Unesi n1 : ');
ReadLn(n1);
Write('Unesi n2 : ');ReadLn(n2);
Write('Unesi n3 : ');
ReadLn(n3);
s := 0;
if ((n1 >=5) and (n1 =5) and (n2 =5) and (n3
7/29/2019 PASCAL Reseni Zadaci
7/63
Reenje:Program izgleda ovako:
program prog;
Uses CRT;
var
n1,n2,n3,max : real;begin
ClrScr;
Write('Unesi n1 : ');
ReadLn(n1);
Write('Unesi n2 : ');
ReadLn(n2);
Write('Unesi n3 : ');
ReadLn(n3);
max := n1;
if (n2 >= max) then max := n2;
if (n3 >= max) then max := n3;
WriteLn('Najveci uneseni broj je:',max:8:2);ReadLn
End.
Zadatak:Neka se sa tastature brojevi n1, n2, i n3. Napii program kojim
se ovi brojevi udvajaju ako je inae se svakom brojudodeljuje njegova apsolutna vrednost.
Reenje:Program izgleda ovako:
program prog;
Uses CRT;
var
n1,n2,n3 : real;
begin
ClrScr;
Write('Unesi n1 : ');
ReadLn(n1);
Write('Unesi n2 : ');
ReadLn(n2);
Write('Unesi n3 : ');
ReadLn(n3);
if ((n1 >= n2) and (n2 >= n3 )) thenbegin n1 := 2*n1; n2 := 2*n2; n3 := 2*n3 end
else
begin n1 := abs(n1); n2 := abs(n2); n3 :=
abs(n3) end;
WriteLn('n1 = ',n1:8:2, ' n2 = ',n2:8:2,' n3 =
',n3:8:2);
ReadLn
End.
7/29/2019 PASCAL Reseni Zadaci
8/63
Zadatak:Putovanje izmeu mesta A i B traje n sekundi. Sraunaj koliko je to sati,minuta i sekundi.
Reenje:Program izgleda ovako:
program prog;
Uses CRT;
var
n,sat,min,sek : integer;
begin
ClrScr;
Write('Unesi sekunde : ');
ReadLn(n);
sat := n div 3600;
sek := n mod 3600;
min := sek div 60;
sek := sek mod 60;
WriteLn('sati = ',sat:5, ' minuta = ',min:5,' sek =
',sek:5);
ReadLn
End.
Zadatak:Kolika e biti vrednost promenljive a ako se izvri sledei deo koda:
a := 1.56;case k mod 10 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
Reenje:a) za uneseno k=312 rezultat operacije k mod 10 = 2 pa se
izvravaju slede}e instrukcije:a=a+7=1.56+1=8.56a=trunc(a)=trunc(8.56)=8
b) za uneseno k=121 operacija k mod 10 = 1 pa se vrednost promenljivea nee promeniti.c) za uneseno k=234 rezultat operacije k mod 10 = 4 pa se izvravajusledee instrukcije:
a=a-3=1.56-3=-1.44a=round(a)=round(-1.44)=-1
d) za uneseno k=416 rezultat operacije k mod 10 = 6 pa se izvravajusledee instrukcije:
7/29/2019 PASCAL Reseni Zadaci
9/63
a=-a=-1.56a=a-7=-1.56-7=-8.56
Zadatak:Neka je data sledea if naredba.
if n1>n2 then n1 :=n1+5else n1:=n2+3;
navedeni niz naredbi zameni odgovarajuom case naredbom.
Reenje:Program izgleda ovako:
case n1>n2 oftrue: n1 :=n1+5;false: n1 :=n2+3
end.
Zadatak:Neka se sa tastaure unosi uspeh unika. Napisati program kojim se zaunetu ocenu ispisuje: 1 - nedovoljan, 2 - dovoljan, 3 - dobar, 4 -vrlodobar, 5 - odlian.
Reenje:Program izgleda ovako:
program prog;
Uses CRT;
var
ocena : integer;begin
ClrScr;
Write('Unesi oceun : ');
ReadLn(ocena);
case ocena of
1: WriteLn('Nedovoljan');
2: WriteLn('Dovoljan');
3: WriteLn('Dobar');
4: WriteLn('Vrlodobar');
5: WriteLn('Odican');
end;
ReadLn
End.
Zadatak:Neka je data slede}a grupa naredbi.
a := 5;for i :=1 to 5 doa :=a-i;a :=a-4;
7/29/2019 PASCAL Reseni Zadaci
10/63
kolika e biti vrednost promenljive a posle izvrenja datog koda ?
Reenje: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 izvrava naredba:a=a-4=-10-4=-14
Primetite da je u telu ciklusa samo naredba a := a-i koja e biti izvrena
pet puta, dok e naredba a :=a-4 biti izvrena samo jednom.
Zadatak:Napisati program koristei instrukciju for kojom se rauna zbir brojeva od 1do 100 koji su deljivi sa 7 i sa 3.
Reenje:Program za reenje ovog zadatka je:
program prog;
Uses CRT;
var
s, i : integer;
begin
ClrScr;
s :=0;
for i:=1 to 100 do
if ((i mod 7 =0) and (i mod 3 = 0)) then s :=s+i;
WriteLn('Trazeni zbir je ',s:5);
ReadLn
End.
Brojevi koji zadovoljavaju dati uslov su: 21, 42, 63 i 84 iji je zbir 210.
Zadatak:Napisati program koristei instrukciju for kojom se rauna zbir brojeva od 1do 100 ija je zadnja cifra 9.
Reenje:Program za reenje ovog zadatka je:
program prog;
Uses CRT;
7/29/2019 PASCAL Reseni Zadaci
11/63
var
s, i : integer;
begin
ClrScr;
s :=0;
for i:=1 to 100 do
if ((i mod 7 =0) and (i mod 3 = 0)) then s :=s+i;WriteLn('Trazeni zbir je ',s:5);
ReadLn
End.
Brojevi koji zadovoljavaju ovaj uslov su 9, 19, 29, 39, 49, 59, 69, 79, 89
i 99 iji je zbir 540.
Zadatak:Neka se sa tatature unosi 10 realnih brojeva. Napisati program kojim sesraunava njihov zbir i njihov proizvod.
Reenje:Program za reenje ovog zadatka je:
program prog;
Uses CRT;
var
a, zbir, proizvod : real;
i : integer;
begin
ClrScr;
zbir :=0; proizvod :=1;
for i :=1 to 10 do
beginWrite('Unesi ',i,' - broj :');
ReadLn(a);
zbir :=zbir+i;
proizvod :=proizvod*i
end;
WriteLn('Zbir brojeva je ',zbir:8:2,' Proizvod je :
',proizvod:8:2);
ReadLn
End.
Primetite da je poetni uslov za zbir nula, dok je to za proizvod 1.
Zadatak:Poznato je u matematici da je faktorijel nekog celog broja definisan kao:
faktorije=n!=1*2*...*nNapii program koristei instrukciju for kojom se rauna faktorijel broja nunesenog sa tastature.
Reenje:Program za reenje ovog zadatka je:
7/29/2019 PASCAL Reseni Zadaci
12/63
program prog;
Uses CRT;
var
faktorijel : real;
n,i : integer;
beginClrScr;
faktorijel :=1;
Write('Unesi zadati broj n :');
ReadLn(n);
for i :=1 to n do
begin
faktorijel :=faktorijel*i
end;
WriteLn('Faktorijel broja ',n,' je =
',faktorijel:13:2);
ReadLn
End.
Zadatak:Napisati program koristei instrukciju for kojom se rauna zbir niza koji jedefinisan kao:
s=0-1+2=3+4...(-1)nnza broj n koji se unosi sa tastature.
Reenje:Program za reenje ovog zadatka je:
program prog;
Uses CRT;var
zbir : real;
i, n,pred : integer;
begin
ClrScr;
Write('Unesi zadati broj n :');
ReadLn(n);
pred :=-1;
zbir :=0;
for i :=1 to n do
begin
zbir := zbir+(pred)*i;pred :=-pred
end;
WriteLn('Trazeni zbir niza je ',zbir:8:2);
ReadLn
End.
7/29/2019 PASCAL Reseni Zadaci
13/63
Primetite da smo za reavanje ovog zadatka morali definisatipromenljivu pred, koja moe imati vrednost 1 ili - 1 i u svakom ciklusu semanja i to za neparan i jednaka je - 1 a za paran 1.
Zadatak:
Neka je dat niz: s=sin(x)+sin2(x)+sin3(x)+...+sinn(x).Napisati program koristei instrukciju for kojom se rauna ovaj zbir ako sesa tastature unosi n i broj x.
Reenje:Program za reenje ovog zadatka je:
program prog;
Uses CRT;
var
zbir, pro, x : real;
n, i : integer;begin
ClrScr;
Write('Unesi zadati broj n :');
ReadLn(n);
Write('Unesi broj x :');
ReadLn(x);
zbir :=0;
pro := 1;
for i :=1 to n do
begin
pro :=pro*sin(x);
zbir := zbir+pro;end;
WriteLn('Trazeni zbir niza je ',zbir:8:2);
ReadLn
End.
Zadatak:Napii program kojim se odreuju svi prosti brojevi od 3 do 1000 kao i
njihov ukupan broj.
Reenje:Program za reenje ovog zadatka je:
program prog;
Uses CRT;
var
i, j, k,i2, a, broj: integer;
c1: char;
begin
ClrScr;
Writeln;
7/29/2019 PASCAL Reseni Zadaci
14/63
WriteLn;
WriteLn(' PROSTI BROJEVI OD 1 DO 1000 ');
WriteLn;
WriteLn;
broj :=0;
for i :=3 to 1000 do
beginj := i div 2;
a :=0;
for k :=2 to j do
begin
i2 := i mod k;
if i2 = 0 then a :=1;
end;
if a=0 then begin Write(' ',i); broj :=broj+1;
end;
end;
WriteLn;
WriteLn;WriteLn('Ukupno takvih brojeva : ', broj);f
ReadLn(c1);
end.
Zadatak:Neka je data sledea grupa naredbi:
s :=0; i :=-1;while s
7/29/2019 PASCAL Reseni Zadaci
15/63
5.prolazs=s+0.7=2.8+0.7=3.5i=i+3=11+3=14
6. prolazs=s+0.7=3.5+0.7=4.2i=i+3=14+3=17
7. prolazbudui da je s = 4.2 > 4 ovog prolaza nema pa se izvrava instrukcija
iza while ciklusa s :=s+i = 4.2+17=21.2
Zadatak:Neka je data sledea grupa naredbi:
s :=1; i :=1;while s b dobegin
7/29/2019 PASCAL Reseni Zadaci
16/63
c :=a*b;c :=c+aend;
Kako e se izvriti ova grupa naredbi.
Reenje:Ako je a b program e trajno ostati u telu ciklusatakozvanom beskonanom ciklusu.
Zadatak:Napii program kojim se sabiraju svi neparni brojevi od 100 do 1000
upotrebom while naredbe.
Reenje:Program za reenje ovog zadatka je:
program prog;Uses CRT;
var
zbir : real;
i : integer;
begin
ClrScr;
zbir :=0;
i := 101;
while i < 1000 do
begin
zbir :=zbir+i;
i :=i+2;end;
WriteLn('Trazeni zbir je ',zbir:8:2);
ReadLn
End.
Primetite da smo kao prvi neparni broj uzeli broj 101 a svaki sledeineparni je za 2 vei od prethodnog. Ciklus e se zavriti kada i dostignevrednost od 1001 ali taj broj nee ui u zbir. Inae traeni zbir je 247500.
Zadatak:Napii program upotrebom while naredbe kojim se izraunava zbir
niza za svaki broj n unesen sa tastature ako je dat niz:
Reenje:Program za reenje ovog zadatka je:
7/29/2019 PASCAL Reseni Zadaci
17/63
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
7/29/2019 PASCAL Reseni Zadaci
18/63
i :=i+2until s=4;
s :=s+i;Kolike e biti vrednosti promenljivih s i i nakon naputanja navedenogkoda.
Re{enje:
1. prolazs=s+0.6=1+0.6=1.6i=i+2=1+2=3
2.prolazs=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.prolazs=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 naputa repeat ciklus pa e s biti:s=s+i = 4.0+11=15
Zadatak:Neka je data slede}a grupa naredbi:
s :=0; i :=-1;repeat
s :=s+0.7;i :=i+3
until s=4.2;s :=s+i;
Kolike e biti vrednosti promenljivih s i i nakon naputanja navedenogkoda.
Reenje:
1. prolazs=s+0.7=0+0.7=0.7i=i+3=-1+3=2
2.prolazs=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
7/29/2019 PASCAL Reseni Zadaci
19/63
i=i+3=5+3=84.prolaz
s=s+0.7=2.1+0.7=2.8i=i+3=8+3=11
5.prolaz
s=s+0.7=2.8+0.7=3.5i=i+3=11+3=146. prolaz
s=s+0.7=3.5+0.7=4.2i=i+3=14+3=17
budui da je uslov zadovoljen to je s=s+i=4.2+17=21.2.
Zadatak:Napii program kojim se upotrebom repat instrukcije traii zbir
brojeva od 100 do 300 ija je zadnja cifra 7.
Reenje:
program prog;
Uses CRT;
var
zbir, j : real;
n,i : integer;
begin
ClrScr;
zbir :=0;
i := 100;
repeat
if (i mod 10 = 7) then zbir := zbir+i;i :=i+1
until i = 301;
WriteLn('Trazeni zbir je :',zbir:8:2);
ReadLn
End.
Zadatak:Napii program upotrebom repeat instrukcije kojim se trai zbir
brojeva od 1 do 100 deljivih sa 6 i 4. Brojevi od 50 do 60 ne ulaze u tajzbir.
Reenje:
program prog;
Uses CRT;
var
zbir : real;
i : integer;
begin
ClrScr;
7/29/2019 PASCAL Reseni Zadaci
20/63
zbir :=0;
i := 1;
repeat
if (((i mod 4 = 0) and (i mod 6 = 0)) and ((i < 50)
or (i > 60)))
then zbir := zbir+i;
i := i+1;until i = 101;
WriteLn('Trazeni zbir je :',zbir:8:2);
ReadLn
End.
Zadatak:Napii program kojim se od datog prirodnog broja n formira broj sa
istim ciframa ali u inverznom poretku.
Reenje:Program izgleda ovako:
program prog;
Uses CRT;
var
n, i : integer;
begin
ClrScr;
Write('Unesi broj n : ');
ReadLn(n);
i := 0;
repeat
i :=i*10+n mod 10;
n :=n div 10until n = 0;
WriteLn('Trazeni broj je :',i:8);
ReadLn
End.
Zadatak:Napii program kojim se za zadati prirodan broj n utvruje koliko on
ima binarnih jedinica ako je predstavljen u binarnom obliku.
Reenje:Program izgleda ovako:
program prog;
Uses CRT;
var
n, i : integer;
begin
ClrScr;
Write('Unesi broj n : ');
ReadLn(n);
7/29/2019 PASCAL Reseni Zadaci
21/63
i := 0;
repeat
i :=i+n mod 2;
n :=n div 2
until n = 0;
WriteLn('Broj u binarnom obliku ima jedinica
:',i:8);ReadLn
End.
Zadatak:Neka se sa tastature unosi napon u i struja i. Sraunati otpor kola r
koristei funkciju otpor.
Reenje:Program izgleda ovako:
program prog;
Uses CRT;var
u, i, r : real;
function otpor(u, i: real):real;
begin
otpor := u/i;
end;
begin
ClrScr;
Write('Unesi napon u : ');
ReadLn(u);
Write('Unesi struju i : ');
ReadLn(i);r := otpor(u, i);
WriteLn('Otpor kola je : ',r:8:3);
ReadLn
End.
Zadatak:Neka se sa tastature unosi celi brojevi n1 i n2. Koristei funkciju veci
nai vei broj i prikazati ga.
Reenje:Program izgleda ovako:
program prog;
Uses CRT;
var
n1, n2, broj : integer;
function veci(n1, n2: integer):integer;
begin
if n1 > n2 then veci := n1
else veci := n2;
7/29/2019 PASCAL Reseni Zadaci
22/63
end;
begin
ClrScr;
Write('Unesi broj n1 : ');
ReadLn(n1);
Write('Unesi broj n2 : ');
ReadLn(n2);broj := veci(n1, n2);
WriteLn('Veci broj je : ',broj:5);
ReadLn
End.
Zadatak:Neka se sa tastature unose etiri cela broja n1, n2, n3 i n4. Koristei
funkciju veci iz prethodnog zadataka nai najvei broj.
Reenje:Program izgleda ovako:
program prog;
Uses CRT;
var
n1, n2, n3, n4, broj : integer;
function veci(n1, n2: integer):integer;
begin
if n1 > n2 then veci := n1
else veci := n2;
end;
begin
ClrScr;
Write('Unesi broj n1 : ');ReadLn(n1);
Write('Unesi broj n2 : ');
ReadLn(n2);
Write('Unesi broj n3 : ');
ReadLn(n3);
Write('Unesi broj n4 : ');
ReadLn(n4);
broj := veci(veci(n1, n2), veci(n3, n4));
WriteLn('Veci broj je : ',broj:5);
ReadLn
End.
Zadatak:Neka se sa tastature unose stranice a i b pravougaonog trougla.
Sraunati hipotenuzu c a za njeno izraunavanje koristi funkcijuhipotenuza.
Reenje:Program izgleda ovako:
7/29/2019 PASCAL Reseni Zadaci
23/63
program prog;
Uses CRT;
var
a, b, c : real;
function hipotenuza(a, b: real):real;
beginhipotenuza := sqrt(sqr(a)+sqr(b));
end;
begin
ClrScr;
Write('Unesi stranicu a : ');
ReadLn(a);
Write('Unesi stranicu b : ');
ReadLn(b);
c := hipotenuza(a, b);
WriteLn('Hipotenuza c je : ',c:8:5);
ReadLn
End.
Zadatak:Neka se sa tastature unose celobrojne promenljive x i y koje mogu
imati vrednost 0, ili 1. Koristei funkciju eksluziv sraunati vrednos izlazaza eksluzivno ili kolo.
Reenje:Program izgleda ovako:
program prog;
Uses CRT;
varx, y, f : integer;
a, b, c : boolean;
function ekskluziv(a, b: boolean):boolean;
begin
ekskluziv := ((a and not b) or (not a and b));
end;
begin
ClrScr;
Write('Unesi ulaz x : ');
ReadLn(x);
Write('Unesi ulaz y : ');
ReadLn(y);if x = 0 then a := true else a := false;
if y = 0 then b := true else b := false;
c := ekskluziv(a, b);
if c = true then f := 1 else f := 0;
WriteLn('Vrednost funkcije je : ',f:3);
ReadLn
End.
7/29/2019 PASCAL Reseni Zadaci
24/63
Zadatak:Neka se sa tastature unosi prirodan broj n. Sraunaj zbir niza:
s =1+22+33+...nn,pri emu se n-ti lan niza rauna u funkciji clan.
Renje:Program izgleda ovako:
program prog;
Uses CRT;
var
n, i, j : integer;
s, p, p1 : real;
function niz(i : integer):real;
begin
p1 := 1;
for j := 1 to i do
p1 := p1*i;
niz :=p1
end;
begin
ClrScr;
Write('Unesi broj n : ');
ReadLn(n);
s := 0;
for i := 1 to n do
begin
p := niz(i);
s := s+p;
end;
WriteLn('Zbir niza je : ',s:8:2);ReadLn
End.
Zadatak:Neka se sa tastature unose vrednosti otpornika r1 i r2 koji su
meusobno paralelno vezani i neka je dat napon kola u=100 volti.Nai vrednost struje i kola. Otpor kola sraunaj u proceduri otpor i tokorienjem lokalnih i globalnih promenjivih.
Reenje:Program izgleda ovako ako se koriste lokalne promenljive:
program prog;
Uses CRT;
var
r1, r2, r, i : real;
const
u=100;
procedure otpor(rr1, rr2 :real; var rr : real);
7/29/2019 PASCAL Reseni Zadaci
25/63
begin
rr := rr1*rr2/(rr1+rr2);
end;
begin
ClrScr;
Write('Unesi vrednost otpornika r1 : ');
ReadLn(r1);Write('Unesi vrednost otpornika r2 : ');
ReadLn(r2);
otpor(r1, r2, r);
i := u/r;
WriteLn('Struja kola i je : ',i:8:2);
ReadLn
End.
Ako se koriste globalne promenjive program bi izgledao kao:
program prog;
Uses CRT;var
r1, r2, r, i : real;
const
u=100;
procedure otpor;
begin
r := r1*r2/(r1+r2);
end;
begin
ClrScr;
Write('Unesi vrednost otpornika r1 : ');
ReadLn(r1);
Write('Unesi vrednost otpornika r2 : ');
ReadLn(r2);
otpor;
i := u/r;
WriteLn('Struja kola i je : ',i:8:2);
ReadLn
End.
Zadatak:Neka je data procedura raun:
procedure racun(x1, x2 : real; var y1:real);
beginy1 := 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
Reenje:
7/29/2019 PASCAL Reseni Zadaci
26/63
a) ako se unese 1, 1 onda se u proceduri racun sracuna:y1=1+trunc(1)+round(1)+1=1+1+1+1=4 to e biti pridruueno
promenljivoj z.b) Ako se unese 1.7 i 2.8 onda emo imati:
y1=1.7+trunc(2.8)+round(1.7)+2.8=1.7+2+2+2.8=8.5
Zadatak:Neka je sa tastature unose realne promenljive x i y, i neka se funkcija
f rauna po formuli:
Napisati program kojim se u proceduri funk rauna vrednost data funkcije.Rezultat prikai u glavnom programu.
Reenje:
Program izgleda ovako:
program prog;
Uses CRT;
var
x, y, f : real;
procedure funk(x1, x2 : real; var y1:real);
begin
y1 := sqrt(x1+(sqr(x1)-x2)/(sqr((x2)-x1)));
end;
begin
ClrScr;
Write('Unesi vrednost x, y : ');
ReadLn(x,y);
funk(x,y,f);
WriteLn('Vrednost promenljive f je : ',f:8:2);
ReadLn
End.
Zadatak:Neka je data sledei paskalski program:
program prog;
Uses CRT;
var
x, y, z, z1 : real;
procedure racun(x1, x2 : real; var y1, y2 : real);
begin
y1 :=x1+sqr(x2)+sqr(x1);
y2 :=x1*x2;
7/29/2019 PASCAL Reseni Zadaci
27/63
end;
begin
ClrScr;
Write('Unesi vrednost x, y : ');
ReadLn(x,y);
racun(x,y,z,z1);
x :=z;y :=z1;
racun(x,y,z,z1);
WriteLn('Vrednost promenljivih z i z1 je :
',z:8:2,' ',z1:8:2);
ReadLn
End
Kolika e biti vrednost promenljivih z i z1 ako se unese:a) 1 1
b) 4 5
Reenje:a) ako se unese 1, 1 onda se u proceduri racun srauna u prvom pozivu:
y1=1+sqr(1)+sqr(1)=3y2=x1*x2=1*1=1
u drugom pozivu ulazni paramteri procedure su 3 i 1 pa e biti:y1=3+sqr(1)+sqr(3)=3+1+9=13
y2=3*1=3c) reenjeje: z=2470, z1=900
Zadatak:Neka su data dva mesta A i B ija je meusobna udaljenost s=90 km i
neka se iz mesta A i B krene vozila u isto vreme. Prvo vozilo se kreebrzinom v1 a drugo v2 kilometara na sat. Sraunaj u proceduri put vremekada e se ona susresti i duinu puta s1 i s2 koja su ona pojedinanoprela. Ponovi raun tako da se drugo vozilo kree za 5 km/sat bre.
Reenje:Programa za reenje zadatka je:
program prog;
Uses CRT;
const
s=90;
varv1, 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;
7/29/2019 PASCAL Reseni Zadaci
28/63
begin
ClrScr;
Write('Unesi brzine v1 i v2 : ');
ReadLn(v1,v2);
put(v1,v2, s,s1,s2,t);
WriteLn('Put s1 je: ',s1:8:2, ' s2 je: ',s2:8:5, '
vreme susreta: ',t:8:2);v2 :=v2+5;
put(v1,v2, s,s1,s2,t);
WriteLn('Put s1 je: ',s1:8:2, ' s2 je: ',s2:8:5, '
vreme susreta: ',t:8:2);
ReadLn
End.
Zadatak:Neka je data sledei paskalski program:
program prog;
Uses CRT;var
i, j : integer;
c : char;
procedure pitan(i : integer; var j: integer);
begin
if i >= 0 then
begin i := i-1; j := j+2 ; pitan(i, j);
end;
end;
begin
ClrScr;
Write('Unesi i : ');ReadLn(i);
j := 0;
pitan(i,j);
WriteLn('j je: ',j:5);
ReadLn
End.
Kolika e biti vrednost promenljive j ako se unese:a) i=2b) i=5c) i=-1
Reenje:
U ovom sluaju se radi o takozvanim rekurzivnim procedurama kojepoizvaju samu sebe.Razmotrimo sluaj pod a.Ulaskom u proceduru i=2, j=0, pa e biti i=i-1=2-1,j=j+2=0+2-2. Poziv
procedure je sada pitan(1, 2) pa je i=i-1=1-1=0,j=j+2=2+3=4, pa
7/29/2019 PASCAL Reseni Zadaci
29/63
se poziva procedura pitan(0, 4). Tada je i=i-1=0-1=-,j=j+2=4+2=6.Procedura pitan(-1, 6) svojim pozivom se zavrava budui da je i < 0 pa
je rezultat j=6.c) rezulat je j=12. Proveri !!d) rezultat je j=0.
Zadatak:Napisati program kojim se u proceduri zbir trai suma brojeva deljivih
sa 7 od 100 do 200. Rezultat prikai u glavnom programu
Reenje:Program za reenje je:
program prog;
Uses CRT;
var
s : integer;
procedure zbir(var s1: integer);var
i, ss1 : integer;
begin
ss1 := 0;
for i := 100 to 200 do
if (i mod 7 = 0) then ss1 := ss1+i;
s1 :=ss1;
end;
begin
ClrScr;
zbir(s);
WriteLn('Trazeni zbir je: ',s:5);
ReadLn
End.
Primetite da procedura zbir koristi samo izlazne paramtre. U njoj sudefinisane i lokalne varijable.
Zadatak:Neka je dat niz xx od od 20 elemenata. Napii program kojim se
izraunava:a) Srednja vrednost niza xx.b) Maksimalni lan nizac) indeks najveeg lana niza.
Reenje:
program prog;
Uses CRT;
type niz=array[1..20] of real;
var
xx : niz;
sr, max : real;
7/29/2019 PASCAL Reseni Zadaci
30/63
i,j : integer;
begin
ClrScr;
max := xx[1];
sr := 0;
for i := 1 to 20 do
beginsr := sr+xx[i];
if max < xx[i] then begin max := xx[i]; j := i end;
end;
sr := sr/20;
WriteLn('Srednja vrednost niza je: ',sr:8:5);
WriteLn('Najveci clan niza je : ',max:8:5);
WriteLn('Indeks najveceg clana je: ',j:5);
ReadLn
End.
Zadatak:
Neka je dat niz yy od 20 lanova. Napii program kojim se rauna zbirpozitivnih lanova niza.
Reenje:
program prog;
Uses CRT;
type niz=array[1..20] of real;
var
yy : niz;
s : real;
i : integer;
beginClrScr;
s := 0;
for i := 1 to 20 do
if yy[i] > 0 then s := s+ yy[i];
WriteLn('Zbir pozitivnih clanova nizaj je:
',s:8:5);
ReadLn
End.
Zadatak:Neka je dat niz xx od n elemenata. Napisati program kojim se rauna
zbir lanova niza koji su deljivi sa 3 i 7.
Reenje:
program prog;
Uses CRT;
type niz=array[1..100] of integer;
var
xx : niz;
7/29/2019 PASCAL Reseni Zadaci
31/63
s : real;
i, n: integer;
begin
ClrScr;
Write('Unesi broj clanova niza :');
ReadLn(n);
for i := 1 to n dobegin
Write('Unesi - ',i:3,' clan : ');
ReadLn(xx[i])
end;
s := 0;
for i := 1 to n do
if (xx[i] mod 3 = 0) and (xx[i] mod 7 = 0)
then s := s+xx[i];
WriteLn('Zbir trazenih clanova niza je: ',s:8:5);
ReadLn
End.
Zadatak:Neka je dat niza yy od n elemenata. Napisati program kojim se
rauna broj lanova niza koji se nalaze u intervalu -1 < xx[i] < 7
Reenje:
program prog;
Uses CRT;
type niz=array[1..100] of real;
var
yy : niz;
i, n, br: integer;begin
ClrScr;
Write('Unesi broj clanova niza :');
ReadLn(n);
for i := 1 to n do
begin
Write('Unesi - ',i:3,' clan : ');
ReadLn(yy[i])
end;
br := 0;
for i := 1 to n do
if (yy[i] > -1) and (yy[i] < 7)then br := br+1;
WriteLn('Trazeni broj clanova niza je: ',br:5);
ReadLn
End.
Zadatak:
7/29/2019 PASCAL Reseni Zadaci
32/63
Neka su data dva niza xx i yy od po pet lanova. Napii program kojimse rauna ukupan broj parova nizova koji na istom indeksu imaju jednakeelemente.
Reenje:
program prog;
Uses CRT;
type niz=array[1..100] of real;
var
xx, yy : niz;
i, br: integer;
begin
ClrScr;
for i := 1 to 5 do
begin
Write('Unesi - ',i:3,' clan niza xx : ');
ReadLn(xx[i])
end;for i := 1 to 5 do
begin
Write('Unesi - ',i:3,' clan niza yy : ');
ReadLn(yy[i])
end;
br := 0;
for i := 1 to 5 do
if (xx[i] = yy[i]) then br := br+1;
WriteLn('Trazeni broj parova je: ',br:5);
ReadLn
End.
Zadatak:Neka je dat niza xx od 5 elemenata. Napii program kojim se formira
niz yy od elemanata niza xx koji su parni.
Reenje:
program prog;
Uses CRT;
type niz=array[1..5] of integer;
var
xx, yy : niz;
i, j: integer;begin
ClrScr;
for i := 1 to 5 do
begin
Write('Unesi - ',i:3,' clan niza xx : ');
ReadLn(xx[i])
end;
j := 1;
7/29/2019 PASCAL Reseni Zadaci
33/63
for i := 1 to 5 do
if (xx[i] mod 2 = 0) then begin yy[j] := xx[i]; j
:=j+1 end;
WriteLn;
WriteLn('Novodobijeni niz je:');
for i := 1 to j-1 do
WriteLn(yy[i]);ReadLn
End.
Zadatak:Neka je dat niza a od 9 elemenata pri emu se njegov prvi lan a[0] unosisa tastature. Napii program kojim se formira ovaj niz ako je:
a[1]=a[0]*a[0], a[2]=a[0]*a[1], ...,a[8]=a[7]*a[6]Reenje:
program prog;
Uses CRT;type niz=array[0..8] of real;
var
a : niz;
i, j: integer;
begin
ClrScr;
Write('Unesi clan niza a[0] :');
ReadLn(a[0]);
a[1] := sqr(a[0]);
for i := 2 to 8 do
a[i] := a[i-1]*a[i-2];
WriteLn;WriteLn('Dobijeni niz je:');
for i := 0 to 8 do
WriteLn(a[i]:8:5);
ReadLn
End.
Zadatak:Neka je dat niza a od 10 elemeneta. Napii program kojim se
sraunava zbir lanova niza sa parnim indeksom.
Reenje:
program prog;
Uses CRT;
type niz=array[1..10] of real;
var
a : niz;
s : real;
i: integer;
begin
7/29/2019 PASCAL Reseni Zadaci
34/63
ClrScr;
for i := 1 to 10 do
begin
Write('Unesi - ',i:3,' clan niza a : ');
ReadLn(a[i])
end;
i := 2;while i < 11 do
begin
s := s+a[i];
i := i+2
end;
WriteLn('Trazeni zbirje: ',s:8:5);
ReadLn
End.
Zadatak:Neka je dat niz a od 10 elemeneta. Napii program kojim se sraunava
ukupan broj brojeva koji su meusobno jednaki.
Reenje:
program prog;
Uses CRT;
type niz=array[1..10] of real;
var
a, c : niz;
i, j, k, br: integer;
begin
ClrScr;
for i := 1 to 10 doc[i] := 0;
for i := 1 to 10 do
begin
Write('Unesi - ',i:3,' clan niza a : ');
ReadLn(a[i])
end;
br := 0; k := 0;
for i := 1 to 9 do
begin
for j := i+1 to 10 do
if (c[j] = 0) and (a[i]=a[j]) then
begin br := br + 1; c[j] := 1; c[i] := i end;end;
for j := 1 to 10 do
if c[j] = j then br :=br+1;
WriteLn('Ukupan broj jednakih brojeva je: ',br:5);
ReadLn
End.
Prilikom reenja ovog zadatka morali smo uvesti dodatni niz c od 10elemenata, iji su lanovi na poetku postavljeni na nulu. Ovaj niz se
7/29/2019 PASCAL Reseni Zadaci
35/63
koristi da ne bi duplo brojali ve obraene brojeve. U sluaju ako je taj lanniza ve uzet na to mesto u nizu c se postavlja jedinica, pa je uslov da seuzima lan da je c[j]=0. Budui da se prvi broj koji je jednak nekomdrugom ne bi uzimao u ukupan broj brojeva jednakih to smo na krajuprograma ispitali pozicije matrice c i u sluaju ako je c[j]=j to znai da natom mestu ima jednak broj pa smo dobijeni zbir uveavali za 1.
ZadatakNapii program koji se unos lanovi niza. Nakon unosa lana niza stavi
taj lan na mesto u nizu tako da niz bude sortiran u rastuem redosledu.
Reenje:
program x1;
Uses Crt;
var
x :array[1..50] of integer;
l, i, j, n, p : integer;Begin
Write('Unesite broj clanova niza :');
ReadLn(n);
WriteLn;
WriteLn('UNESITE CLANOVE NIZA');
WriteLn;
for l :=1 to n do
Begin
Write('x[',l,']= ');
ReadLn(x[l]);
For i:= 1 to l-1 do
Begin
For j:=i+1 to l do
if x[i] > x[j] then begin p :=x[i]; x[i] :=x[j];x[j] :=p End;
End;
End;
WriteLn;
WriteLn('Sortirani niz');
For i :=1 to n do
WriteLn('x[',i,']= ',x[i]);
Readln
end.
Zadatak:Neka je data matrica a od 4 vrste i 5 kolona. Napii program kojim se
sraunava zbir svih lanova date matrice.
Reenje:
program prog;
Uses CRT;
type niz=array[1..4, 1..5] of real;
var
7/29/2019 PASCAL Reseni Zadaci
36/63
a : niz;
s : real;
c : char;
i, j, k: integer;
begin
ClrScr;
for i := 1 to 4 dobegin
Write('Unesi vrstu - ',i:3,' matrice :');
for j := 1 to 5 do
Read(a[i,j])
end;
s := 0;
for i := 1 to 4 do
begin
for j := 1 to 5 do
s := s+a[i,j]
end;
WriteLn('Zbir svih elemanata matrice a je:',s:8:5);
ReadLn(c);
End.
Zadatak:Neka je data matrica b sa 5 vrsta i 5 kolona. Napii program kojim se
sraunava koja kolona ima najvei zbir, i koliki je taj zbir.
Reenje:
program prog;
Uses CRT;type niz=array[1..5, 1..5] of real;
niz1=array[1..5] of real;
var
b : niz;
c : niz1;
s, max : real;
cc : char;
i, j: integer;
begin
ClrScr;
for i := 1 to 5 do
beginWrite('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
7/29/2019 PASCAL Reseni Zadaci
37/63
s := s+b[i,j];
c[j] := s;
end;
max := c[1];
for i := 2 to 5 do
if max < c[i] then begin max := c[i]; j := i
end;WriteLn('Zbir najvece kolone je: ',max:8:5);
WriteLn('Ta je kolona : ',j:5);
ReadLn(cc);
End.
Za reenje ovog zadatka uveli smo pomoni niz c koji ima 5 lanova anjegovi pojedinani lanovi su zbirovi pojedinih kolona matrice b. Nakondobijanja niza c traimo najvei lan i njegov indeks to je reenje zadatka.
Zadatak:Neka je data matrica b sa 5 vrsta i 5 kolona. Napii program kojim se
sraunava zbir svih lanova date matrice po sporednoj dijagonali tj. :s=s[1,5]+a[2, 4]+...+a[5, 1].
Reenje:
program prog;
Uses CRT;
type niz=array[1..5, 1..5] of real;
var
b : niz;
s : real;
cc : char;
i, j: integer;
begin
ClrScr;
for i := 1 to 5 do
begin
Write('Unesi vrstu - ',i:3,' matrice :');
for j := 1 to 5 do
Read(b[i,j])
end;
s := 0;
for i := 1 to 5 do
s := s + b[i,6-i];
WriteLn('Trazeni zbir je: ',s:8:5);ReadLn(cc);
End.
Zadatak:Napii program kojim se unose elementi nizova a i b koji imaju po
10 lanova. Formiraj niz c kao:c[1]=a[1]*b[10], c[2]=a[2]*b[9] ... Prikai dati niz.
7/29/2019 PASCAL Reseni Zadaci
38/63
Reenje:
program prog;
Uses CRT;
type tab1=array[1..10] of integer;
tab2=array[1..10] of integer;tab3=array[1..10] of integer;
var
i, j, k, broj1, broj2: integer;
a: tab1; b: tab2; c:tab3;
c1: char;
begin
ClrScr;
Writeln;
WriteLn;
for i := 1 to 10 do
beginWrite('Unesi elemente a i b ',i:2, ' : ');
ReadLn(a[i], b[i]);
end;
j := 10;
for i :=1 to 10 do
begin
c[i] :=a[i]*b[j];
j := j-1;
end;
WriteLn;
WriteLn(' Prikaz rezultata');
WriteLn;for i :=1 to 10 do
WriteLn('c[',i:2,']=',c[i]);
WriteLn;
ReadLn(c1);
end.
Zadatak:Napii program kojim se uitava matrica a dimenzija 5 x 5. Nai zbir
brojeva deljivih sa 7 i sa 2 u okviru date matrice.
Reenje:
program prog;
Uses CRT;
type tab1=array[1..5, 1..5] of integer;
var
i, j, zbir: integer;
a: tab1;
c1: char;
begin
7/29/2019 PASCAL Reseni Zadaci
39/63
ClrScr;
Writeln;
WriteLn;
for i := 1 to 5 do
begin
Write('Unesi elemente matrice A, vrste ', i:2,
' : ');for j := 1 to 5 do
begin
Read(a[j, i]);
end;
WriteLn;
end;
zbir := 0;
for i :=1 to 5 do
for j := 1 to 5 do
begin
if ((a[i, j] mod 7 = 0) and (a[i, j] mod 2 =
0))then zbir := zbir + a[i, j];
end;
WriteLn;
WriteLn;
WriteLn('Ukupan zbir takvih elemanata je : ',
zbir:10);
WriteLn;
ReadLn(c1);
end.
Zadatak:
Napii program kojim se unose elementi niza a od 12 elemenata,zatim se od toga niza formira matrica b koja ima 3 vrste i etiri kolone.Prikai matricu b kao rezultat.
Reenje:
program prog;
Uses CRT;
type niz=array[1..12] of real;
niz1=array[1..3,1..4] of real;
var
a : niz;
b : niz1;cc : char;
i, j, k: integer;
begin
ClrScr;
for i := 1 to 12 do
begin
Write('Unesi clan - ',i:3,' niza :');
Read(a[i])
7/29/2019 PASCAL Reseni Zadaci
40/63
end;
k := 1; j := 1;
for i := 1 to 12 do
begin
if (i > 4) and (i < 9) then k := 2;
if (i > 8) and (i < 13) then k := 3;
if i = 5 then j := 1;if i = 9 then j := 1;
b[k,j] :=a[i];
j := j+1;
end;
WriteLn('Trazena matrica je: ');
for i := 1 to 3 do
begin
WriteLn;
for j := 1 to 4 do
Write(b[i,j]:5:2,' ');
end;
ReadLn(cc);End.
Zadatak:Neka je data matrica a sa 3 vrste i 4 kolone. Napii program kojim se
nalazi najvei lan te matrice, kao i vrsta i kolona gde se on nalazi.
Reenje:
program prog;
Uses CRT;
type niz=array[1..3,1..4] of real;
vara : 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;
7/29/2019 PASCAL Reseni Zadaci
41/63
WriteLn('Najveci clan je matrica je: ',
max:8:5);
WriteLn('U vrsti : ',k:5, ' i koloni : ',k1:5);
ReadLn(cc);
End.
Zadatak:Neka su dati nizovi a i b dimenzija 10 mesta iji su elementi
pojedinane cifre dva broja od 10 cifara. Napii program kojimse sabiraju ta dva velika broja formiranjem niza c, iji su elementipojedinane cifre proizale kao rezultat tog sabiranja. Koristei datoreenje saberi:
99999 9999988888 88888
Reenje:
program prog;
Uses CRT;
type tab1=array[1..10] of integer;
tab2=array[1..11] of integer;
var
i, j, k, pren: integer;
a, b: tab1;
c: tab2;
c1: char;
begin
ClrScr;
Writeln;
WriteLn;
for i := 10 downto 1 do
begin
Write('Unesi brojeve a i b za sabiranje, pozic.
', i:2, ' : ');
Read(a[i], b[i]);
end;
WriteLn;
pren :=0;
for i :=1 to 10 do
begin
c[i]:=a[i]+b[i]+pren;
if c[i] > 10 then begin c[i]:= c[i]-10;
pren:=1; endelse 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
7/29/2019 PASCAL Reseni Zadaci
42/63
if i = 10 then Write(' ');
Write (a[i]);
end;
WriteLn;
for i := 10 downto 1 do
begin
if i = 10 then Write (' +');Write (b[i]);
end;
WriteLn;
WriteLn('-----------------');
if c[11] = 0 then begin k :=10; Write (' ');
end
else begin write (' '); k:=11;end;
for i :=k downto 1 do
begin
Write (c[i]);
end;
ReadLn(c1);end.
Zadatak:Napii program kojim se unosi ulazna reenica recen kao i
znak(slovo), a zatim odreuje ukupan broj ponavljanja toga znaka udatoj reenici.
Reenje:
program prog;
Uses CRT;
varrecen : 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.
7/29/2019 PASCAL Reseni Zadaci
43/63
Zadatak:
Napii program kojim se unosi ulazna reenica recen. Unesenureenicu prikai slovo po slova u novom redu.
Reenje:
program prog;
Uses CRT;
var
recen : string;
broj, i: integer;
cc : char;
begin
ClrScr;
Write('Unesi ulaznu recenicu : ');
ReadLn(recen);
WriteLn;
for i := 1 to length(recen) dobegin
WriteLn(copy(recen,i,1));
end;
ReadLn(cc);
End.
Zadatak:Napii program kojim se unosi ulazna reenica recen. U datoj recenici
izbrii slovo 'd' i prikai novodobijeni string.
Reenje:
program prog;
Uses CRT;
var
recen : string;
broj, i: integer;
cc : char;
begin
ClrScr;
Write('Unesi ulaznu recenicu : ');
ReadLn(recen);
WriteLn;
for i := 1 to length(recen) dobegin
if 'd' = recen[i] then delete(recen, i, 1);
end;
WriteLn('Nova recenica je : ', recen);
ReadLn(cc);
End.
Zadatak:
7/29/2019 PASCAL Reseni Zadaci
44/63
Napii program kojim se unosi ulazna reenica recen. U datoj reeniciumesto slova 'd' upii slovo x i prikai novodobijeni string.
Reenje:
program prog;
Uses CRT;
var
recen : string;
broj, i: integer;
cc : char;
begin
ClrScr;
Write('Unesi ulaznu recenicu : ');
ReadLn(recen);
WriteLn;
for i := 1 to length(recen) do
begin
if 'd' = recen[i] thenbegin delete(recen, i, 1); insert('x',recen,i)
end;
end;
WriteLn('Nova recenica je : ', recen);
ReadLn(cc);
End.
Zadatak:Napii program kojim se unosi ulazna reenica recen. U datoj recenici
izbrii deo stringa koji nalazi izmeu malih zagrada i prikai novodobijenistring.
Reenje:
program prog;
Uses CRT;
var
recen, recen1 : string;
ind, i, j: integer;
cc : char;
begin
ClrScr;
Write('Unesi ulaznu recenicu : ');
ReadLn(recen);WriteLn;
ind := 0;
j := 1;
for i := 1 to length(recen) do
begin
if (recen[i]='(') and (ind = 0) then ind := 1;
if ind = 0 then begin
insert(recen[i], recen1, j); j := j+1 end;
7/29/2019 PASCAL Reseni Zadaci
45/63
if (recen[i]=')') and (ind = 1) then ind := 0;
end;
WriteLn('Nova recenica je : ', recen1);
ReadLn(cc);
End.
Za reenje ovog zadatka koristili smo varijablu ind koja je na poetkuprograma bila postavljena na nulu. Ako u unesenom stringu naiemo naotvorenu zagradu indikator se postavlja na 1 i zabranjuje dalje prenoenjeu izlaznu reenicu. Pojavljivanje zatvorene zagrade dozvola za prenoenjese nastavlja tj. ind se postavlja na nulu.
Zadatak:Napii program kojim se unosi ulazna reenica recen, a zatim odredi
broj rei u reenici. Reima smatraj deo slova jedno do drugog razmaknutprazninama.
Reenje:program prog;
Uses CRT;
var
recen : string;
i, broj: integer;
cc : char;
begin
ClrScr;
Write('Unesi ulaznu recenicu : ');
ReadLn(recen);
WriteLn;
broj := 1;
for i := 1 to length(recen) do
begin
if (recen[i]=' ') and not (pred(recen[i]='
')) then
begin broj := broj + 1 end;
end;
WriteLn('Ukupno reci u recenici je : ', broj:3);
ReadLn(cc);
End.
Sutina reenja ovog zadatka se nalazi u tome to ispitujemo uslov dali se pre praznine nalazi neki karakter. Ako ga ima to je re i broja seuveava za 1. Broja je postavljen na 1 radi zadnje rei u reenici kod kojenije zadovoljen navedeni uslov.
Zadatak:Napii program kojim se unosi u tabelu a 20 prezimena i imena
uenika. Nai koliko ima Milanovica i koliko ima Jelena?
7/29/2019 PASCAL Reseni Zadaci
46/63
Reenje:
program prog;
Uses CRT;
type ucenici=array[1..10] of string[20];
var
i, j, k, broj1, broj2: integer;a: ucenici;
c: char;
begin
ClrScr;
Writeln;
WriteLn;
for i := 1 to 10 do
begin
Write('Unesi prezime i ime ',i:2, ' : ');
ReadLn(a[i]);
end;
broj1 := 0; broj2 := 0;for i :=1 to 10 do
begin
j := pos('Milanovic', a[i]);
k := pos('Jelena',a[i]);
if not (j = 0) then broj1 := broj1+1;
if not (k = 0) then broj2 := broj2+1;
end;
WriteLn;
WriteLn('Ukupno Milanovica : ', broj1);
WriteLn('Ukupno Jelena : ', broj2);
ReadLn(c);
end.
Zadatak:Napii program kojim se uneseni ulazni broj konvertuje u
heksadecimaln broj.
Reenje:
program prog;
Uses CRT;
var
i, i2, j, a: integer;
linija: string[14];slovo: char;
c1: char;
begin
ClrScr;
Writeln;
WriteLn;
WriteLn('Unesi broj za pretvaranje : ');
Read(i);
7/29/2019 PASCAL Reseni Zadaci
47/63
linija :='';
repeat
i2 :=i mod 16;
i :=i div 16;
if i2 =0 then slovo :='0';
if i2 =1 then slovo :='1';
if i2 =2 then slovo :='2';if i2 =3 then slovo :='3';
if i2 =4 then slovo :='4';
if i2 =5 then slovo :='5';
if i2 =6 then slovo :='6';
if i2 =7 then slovo :='7';
if i2 =8 then slovo :='8';
if i2 =9 then slovo :='9';
if i2 =10 then slovo :='A';
if i2 =11 then slovo :='B';
if i2 =12 then slovo :='C';
if i2 =13 then slovo :='D';
if i2 =14 then slovo :='E';if i2 =15 then slovo :='F';
insert(slovo,linija, 1);
until i = 0;
WriteLn;
WriteLn;
WriteLn('Broj u heksa kodu : ', linija);
ReadLn(c1);
Zadatak:
Napii program kojim se u celobrojnu datoteku a upisuju brojevi od 1do 10 pojedinano.
Reenje:
program prog;
Uses CRT;
type
broj=file of integer;
Var
a : broj;
i : integer;
beginClrScr;
assign(a,'c:\brojevi.dat');
rewrite (a);
for i := 1 to 10 do
begin
write(a, i)
end;
close (a);
7/29/2019 PASCAL Reseni Zadaci
48/63
WriteLn('Formirana je datoeka a');
readln;
end.
Zadatak:Napii program kojim se iz prethodno formirane datoteke a nalazi zbir
svih upisanih brojeva.
Reenje:
program prog;
Uses CRT;
type
broj=file of integer;
Var
s, i, n : integer;
a : broj;
begin
ClrScr;
assign(a,'c:\brojevi.dat');
reset (a);
i := 0;
while not eof(a) do
begin
read(a, n);
i := i+n;
end;
write ('Zbir unesenih brojeva je : ',i:5);
close (a);
readln; readln;
end.
Zadatak:Napii program kojim se u datoteku realnih brojeva a prvo unese i
upie 5 brojeva. Nakon toga proitaj datoteku a i nai najvei upisani broj.
Reenje:
program prog;
Uses CRT;
type
broj=file of real;
Vari : integer;
a : broj;
max, x : real;
begin
ClrScr;
assign(a,'c:\broj.dat');
rewrite(a);
for i := 1 to 5 do
7/29/2019 PASCAL Reseni Zadaci
49/63
begin
Write('Unesi broj - ', i:2,' : ');
Read(x);
Write(a, x);
max := x;
end;
close(a);reset(a);
while not eof(a) do
begin
read(a, x);
if max < x then max := x;
end;
Write ('Najveci upisan broj je : ',max:8:5);
close (a);
readln; readln;
end.
Zadatak:Iz prethodno formirane datoteke a realnih brojeva formiraj datoteku b
od onih brojeva koji su vei od 3. Prikai dobijenu datoteku b.
Reenje:
program prog;
Uses CRT;
type
broj=file of real;
Var
a, b : broj;
x : real;begin
ClrScr;
assign(a,'c:\broj.dat');
assign(b,'c:\broj1.dat');
reset(a);
rewrite(b);
while not eof(a) do
begin
read(a, x);
if x > 3 then write(b, x);
end;
close(b);reset(b);
WriteLn;
while not eof(b) do
begin
read(b, x);
writeLn(x:8:3);
end;
close(a);
7/29/2019 PASCAL Reseni Zadaci
50/63
close(b);
readln;
end.
ZadatakNapii program koji se u datoteku "mat.dat" unosi n realnih brojeva.
Reenje:
program x1;
Uses Crt;
var
f: file of real;
i, j, n : integer;
x : real;
Begin
ClrScr;
assign(f,'mat.dat');
rewrite(f);
Write('Unesite broj brojeva : ');
ReadLn(n);
WriteLn;
for i :=1 to n do
Begin
Write('Unesi broj : ');
ReadLn(x);
if sqr(x) < 100 Then Write(f, x);
End;
WriteLn;
Close(f);
Readln
end.
ZadatakNapii program kojim se iz datoteke "mat.dat" prikazuju uneseni
brojevi. Unesi zatim broj b. U datoteku "racun.dat" unesi samo one brojevekoji su vei od broja b. Srauna i prikai aritmetiku sredinu tih brojeva.
Reenje:
program x1;
Uses CRT;
var
f, f1: file of real;
i, j, n : integer;x, b, s, as : real;
Begin
ClrScr;
assign(f,'mat.dat');
assign(f1,'racun.dat');
reset(f);
rewrite(f1);
WriteLn('Uneseni brojevi u datoteku');
WriteLn;
7/29/2019 PASCAL Reseni Zadaci
51/63
While not eof(f) do
Begin
Read(f,x);
WriteLn(x:8:3);
End;
Close(f);
reset(f);
WriteLn;
Write('Uneseni broj b : ');
ReadLn(b);
j := 0; s :=0;
While not eof(f) do
Begin
Read(f,x);
if x > b Then Begin Write(f1, x); s :=s+x; j :=j+1 End;
End;
WriteLn;
If j > 0 Then
WriteLn('Aritmetica sredina je : ', s/j:8:3);
Close(f);
Close(f1);Readln
end.
ZadatakNapii program kojim se u datoteku "odsecak.dat" unose svi neparni
brojevi iz intervala [-14,14].
Reenje:
program x1;
Uses Crt;
varf: file of integer;
i, j, n : integer;
Begin
ClrScr;
assign(f,'odsecak.dat');
rewrite(f);
For i := -14 to 14 do
Begin
If (i mod 2 0) then Write(f, i);
End;
Close(f);
Readln
end.
ZadatakNapii program kojim prikazuju svi uneseni se brojevi u datoteku"odsecak.dat". Sve negativne brojeve iz te datoteke upii u datoteku"nova.dat" i sraunaj koliko je takvih brojeva.
Reenje:
7/29/2019 PASCAL Reseni Zadaci
52/63
program x1;
Uses Crt;
var
f, f1: file of integer;
i, j, n : integer;
BeginClrScr;
assign(f,'odsecak.dat');
assign(f1,'nova.dat');
reset(f);
rewrite(f1);
WriteLn;
Write('Upisani brojevi');
WriteLn;
j :=0;
While not eof(f) do
Begin
Read(f,i);
WriteLn(i);
if i < 0 Then Begin Write(f1,i); j :=j+1 End;
End;
Close(f);
Close(f1);
WriteLn;
WriteLn('Broj negativnih brojeva je : ',j);
Readln
end.
Zadatak:Neka je data datoteka realnih brojeva "broj.dat". Napii program
kojim se itaju svi brojevi iz te datoteke i uveani za 2 upisuju u datoteku
"broj1.dat".
Reenje:
Program x1;
Uses Crt;
Var
f, f1 : file of real;
x : real;
i : integer;
Begin
ClrScr;
{Otvaranje datoteke}
Assign(f,'broj.dat');Assign(f1,'broj1.dat');
Reset(f);
Rewrite(f1);
{Prepisivanje iz prve u drugu datoteku}
WriteLn;
While not eof(f) do
Begin
Read(f, x);
7/29/2019 PASCAL Reseni Zadaci
53/63
x :=2 * x;
Write(f1, x);
End;
Close(f);
Close(f1);
ReadLn;
ENd.
Zadatak:Neka je data datoteka realnih brojeva "broj2.dat". Napii program
kojim se u tu datoteku upisuje n brojeva. Nakon unosa prikai sve brojeve inai i prikai najvei uneseni broj.
Reenje:
Program x1;
Uses Crt;
Var
f : file of real;x, max : real;
i, n : integer;
Begin
ClrScr;
{Otvaranje datoteke}
Assign(f,'broj2.dat');
Rewrite(f);
{Unos ukupnog broja brojeva}
WriteLn;
Write('Unesi ukupan broj brojeva : ');
ReadLn(n);
For i := 1 to n do
Begin
Write('Unesi ',i, ' broj = ');
Readln(x);
Write(f, x);
End;
WriteLn;
WriteLn('UPISANI BROJEVI U DATOTEKU');
WriteLn;
CLose(f);
Reset(f);
i := 0;
While not eof(f) do
Begin
Read(f, x);
WriteLn(x:8:2);if i = 0 then Begin max := x; i :=1 end;
if x > max Then max := x;
End;
Close(f);
WriteLn;
WriteLn('Najveci uneseni broj je : ', max:8:2);
ReadLn;
End.
7/29/2019 PASCAL Reseni Zadaci
54/63
Zadatak:
Neka je data ulazna datoteka radnici tekstualnog tipa u koju jeuneseno prezime i ime radnika i njegova godina roenja. Napii programkojim se nalazi najstariji i najmlai radnik kao i prosenu starost svih
radnika.
Reenje:
program prog;
Uses CRT;
var
radnici: text;
ime :string[20];
godina :integer;
najml, najst :string[20];
brgod, brm, brs, ukgod, broj: integer;
prosta :real;
c1: char;
begin
ClrScr;
Writeln;
WriteLn;
assign(radnici,'radnici.dat');
reset(radnici);
WriteLn(' UNESENI RADNICI ');
WriteLn;
WriteLn;
broj :=0; brm :=100; brs :=0; ukgod :=0;
repeat
readLn(radnici, ime, godina);
brgod :=2000 - godina;
if brgod > brs then begin najst :=ime; brs
:=brgod; end;
if brgod < brm then begin najml :=ime; brm
:=brgod; end;
WriteLn(ime, ' ',godina, ' ',brgod);
broj := broj +1;
ukgod :=ukgod + brgod;
until eof(radnici);
close(radnici);
WriteLn;
WriteLn;WriteLn('Najstariji radnik : ', najst, ' ima : ',
brs, ' godina');
WriteLn('Najmladji radnik : ', najml, ' ima : ',
brm, ' godina');
prosta := ukgod / broj;
WriteLn('Prosecna starost je : ',
prosta:5:2,'=',ukgod,'/',broj);
ReadLn(c1);
7/29/2019 PASCAL Reseni Zadaci
55/63
end.
Zadatak:Napii program kojim se u tekstualnu datoteku ucenik unose podaci:
prezime i ime, mesto stanovanja i adresa. Program zavri kada se zaprezime unese re 'kraj'.
Reenje:
program prog;
Uses CRT;
Var
ucenik : text;
ime : string[25];
mesto : string[15];
adresa : string[20];
x : real;
begin
ClrScr;
assign(ucenik,'c:\ucenik.dat');
rewrite(ucenik);
while not (ime='kraj') do
begin
ClrScr;
Write('1. Prezime i ime : ');
ReadLn(ime);
WriteLn;
Write('2. Mesto stanova. : ');
ReadLn(mesto);
WriteLn;
Write('3. Adresa : ');ReadLn(adresa);
if not (ime='kraj') then
Write(ucenik,ime,mesto,adresa);
end;
close(ucenik);
readln;
end.
Zadatak:Napii program kojim se iz prethodno formirane tekstualne datoteku
ucenik, prikazuju na ekranu uneseni podaci.
Reenje:
program prog;
Uses CRT;
Var
ucenik : text;
ime : string;
7/29/2019 PASCAL Reseni Zadaci
56/63
mesto : string;
adresa : string;
begin
ClrScr;
assign(ucenik,'c:\ucenik.dat');
reset(ucenik);
repeatReadLn(ucenik, ime, mesto, adresa);
WriteLn;
Write(ime,' ',mesto,' ', adresa);
until eoln(ucenik);
close(ucenik);
readln;
end.
Zadatak:Napii proceduru za uitavanje i tampanje ugla koji je u glavnom
programu opisan kao:
typeugao=record
stepen:0..359;minut:0..59;sekund:0..59
Reenje:
procedure citajugao(var ugao1:ugao);
begin
WriteLn('Stepen, minut i sekund:');
with ugao1 do ReadLn(stepen,minut,sekund)
end;
procedure stampajugao(var ugao1:ugao);
begin
with ugao1 do Writeln(stepen,minut,sekund)
end
ZadatakNeka je dat slog glumci u koji se unose podaci: prezime i ime, godina
roenja i broj odigranih uloga. Napi program kojim se unose podaci za nglumaca, a zatim prikae samo one koji imaju vie od 50 uloga. Ako nematakvih napii "Nema takvih glumaca"
Reenje:
program x;
Uses CRT;
type
glumci=record
ime : string[20];
godina : integer;
bruloga : integer;
7/29/2019 PASCAL Reseni Zadaci
57/63
end;
var
i, j, n: integer;
glumac : array [1..50] of glumci;
Begin
ClrScr;
Write('Koliko ima glumaca ?');
ReadLn(n);
WriteLn;
WriteLn('Unesite podatke o glumcima');
WriteLn;
for i :=1 to n do
Begin
Write('Ime i prezime : ');
ReadLn(glumac[i].ime);
Write('Godina : ');
ReadLn(glumac[i].godina);
Write('Broj uloga : ');
ReadLn(glumac[i].bruloga);
End;WriteLn;
j := 0;
WriteLn('Glumci sa vise od 50 uloga');
For i := 1 to n do
Begin
if glumac[i].bruloga > 50 Then Begin
WriteLn(glumac[i].ime); j :=j+1 End;
End;
if j = 0 Then WriteLn('Nema takvih glumaca');
Readln
end.
ZadatakNeka je dat slog opstina u koji se unose podaci: naziv, broj
stanovnika i povrina. Napii program kojim se unosi est optina a zatimsortira po broju stanovnika.
Reenje:
program x;
Uses Crt;
type
opstina=record
ime : string[20];
stanovnika : integer;povrsina : integer;
end;
var
i, j : integer;
opst : array [1..50] of opstina;
p : opstina;
Begin
ClrScr;
WriteLn('Unesite podatke o opstinama');
7/29/2019 PASCAL Reseni Zadaci
58/63
WriteLn;
for i :=1 to 6 do
Begin
Write('Naziv opstine : ');
ReadLn(opst[i].ime);
Write('Stanovnika : ');
ReadLn(opst[i].stanovnika);
Write('Povrsina : ');
ReadLn(opst[i].povrsina);
End;
WriteLn;
{Sortiranje po broju stanovnika}
For i := 1 to 5 do
Begin
For j :=i+1 to 6 do
Begin
If opst[i].povrsina < opst[j].povrsina
Then Begin p :=opst[i]; opst[i] :=opst[j];
opst[j] :=p End;
End
End;WriteLn('Prikaz sortiranih opstina');
WriteLn;
For i := 1 to 6 do
WriteLn(opst[i].ime,' ',opst[i].stanovnika,'
',opst[i].povrsina);
Readln
end.
Zadatak:Neka je dat slog osoba. Napi program kojim se unosi deset podatak u
taj slog sa imenom osobe i godinom starosti. Prikai unesene osobesortirane po godini starosti.
Reenje:
program x;
Uses CRT;
type
osobe=record
ime : string[20];
godina : integer;
end;
var
i, j : integer;
osob : array [1..10] of osobe;
p : osobe;
Begin
ClrScr;
WriteLn('Unesite podatke o osobama');
WriteLn;
for i :=1 to 10 do
Begin
7/29/2019 PASCAL Reseni Zadaci
59/63
Write('Ime osobe : ');
ReadLn(osob[i].ime);
Write('Godina : ');
ReadLn(osob[i].godina);
End;
WriteLn;
{Sortiranje po godinama}
For i := 1 to 9 do
Begin
For j :=i+1 to 10 do
Begin
If osob[i].godina < osob[j].godina
Then Begin p :=osob[i]; osob[i] :=osob[j];
osob[j] :=p End;
End
End;
WriteLn('Prikaz sortiranih osoba');
WriteLn;
For i := 1 to 10 do
WriteLn(osob[i].ime,' ',osob[i].godina);
Readlnend.
Zadatak:Napii program kojim se u slog osobe unosi ime i telefonski broj 5
osoba. Nakon unosa sortiraj i prikai unesene osobe po abecedi.
Reenje:
program x;
Uses Crt;
type
osobe=record
ime : string[20];
telefon : string;
end;
var
i, j : integer;
osob : array [1..5] of osobe;
p : osobe;
Begin
ClrScr;
WriteLn('Unesite podatke o osobama');
WriteLn;
for i :=1 to 5 do
BeginWrite('Ime osobe : ');
ReadLn(osob[i].ime);
Write('Telefon : ');
ReadLn(osob[i].telefon);
End;
WriteLn;
{Sortiranje po imenima}
For i := 1 to 4 do
Begin
7/29/2019 PASCAL Reseni Zadaci
60/63
For j :=i+1 to 5 do
Begin
If osob[i].ime > osob[j].ime
Then Begin p :=osob[i]; osob[i] :=osob[j];
osob[j] :=p End;
End
End;
WriteLn('Sortirane osobe');
WriteLn;
For i := 1 to 5 do
WriteLn(osob[i].ime,' ',osob[i].telefon);
Readln
end.
Zadatak:Napii program kojim se u slog ucenik unosi ime, visina i tezina i za n
ucenika. Nakon unosa prikai unesene podatke.
Reenje:Program x;
Uses Crt;
type
ucenik=record
ime :string[10];
visina : integer;
tezina : integer;
End;
Var
uce: array [1..50] of ucenik;
i, j , n: integer;
Begin
ClrScr;
Write('Unesite broj ucenika : ');
Readln(n);
WriteLn;
{Unos podataka o ucenicima}
For i := 1 to n do
Begin
Write('Unesite ime ucenika : ');
Readln(uce[i].ime);
Write('Unesite visinu : ');
Readln(uce[i].visina);
Write('Unesite tezinu : ');
Readln(uce[i].tezina);
End;{Prikaz podataka o ucenicima}
WriteLn;
WriteLN('PODACI O UCENICIMA');
WriteLn;
For i := 1 to n do
Begin
WriteLn(uce[i].ime:10,' ',uce[i].visina:4,'
',uce[i].tezina:3);
End;
7/29/2019 PASCAL Reseni Zadaci
61/63
ReadLn;
ENd.
Zadatak:Napii program kojim se u slog osobe unosi ime, i njegova starost za
10 osoba. Nakon unosa sortiiraj osobe po godinama starosti i prikaidobijene podatke.
Reenje:
Program x;
Uses Crt;
type
osobe=record
ime :string[10];
starost : integer;
End;
Var
osob: array [1..10] of osobe;p: osobe;
i, j , n: integer;
Begin
ClrScr;
{Unos podatka o osobama}
For i := 1 to 10 do
Begin
Write('Unesite ime osobe : ');
Readln(osob[i].ime);
Write('Unesite starost : ');
Readln(osob[i].starost);
End;
{Sortiranje podataka}
WriteLn;For i := 1 to 9 do
Begin
For j :=i+1 to 10 do
Begin
If osob[i].starost < osob[j].starost Then Begin p
:=osob[i];
osob[i] :=osob[j];
osob[j] :=p End;
End;
End;
{Prikazivanje podataka}
WriteLN('PODACI O OSOBAMA');
WriteLn;For i := 1 to 10 do
Begin
WriteLn(osob[i].ime:10,' ',osob[i].starost);
End;
ReadLn;
ENd.
Zadatak:
7/29/2019 PASCAL Reseni Zadaci
62/63
Napii program kojim se u slog dani unosi naziv i temperatura zasvih 7 dana u sedmici. Nakon unosa unesi zadatu temperaturu i prikaidane koji su imali tu temperaturu.
Reenje:
Program x;
Uses Crt;
type
dani=record
ime :string[10];
temperatura : integer;
End;
Var
dan: array [1..7] of dani;
i, j , n, t: integer;
Begin
ClrScr;
{Unos temperatura po danima}
For i := 1 to 7 do
Begin
Write('Unesite ime dana : ');
Readln(dan[i].ime);
Write('Unesite tempraturu : ');
Readln(dan[i].temperatura);
End;
{Unos temperature}
WriteLn;
Write('Unesi trazenu temperaturu : ');
ReadLn(t);
For i := 1 to 7 do
if t = dan[i].temperatura Then Write(dan[i].ime);
ReadLn;ENd.
Zadatak:Napii program kojim se u slog artikal unosi naziv, kolicina i cena za
n artikala. Nakon unosa unesi zadatu cenu i prikai artikle koji su imali tucenu. Sraunaj ukupnu vrednost artikala.
Reenje:
Program x;
Uses Crt;
type
artikal=record
ime :string[10];
kolicina : integer;
cena : real;
End;
Var
art: array [1..50] of artikal;
i, j , n: integer;
v, v1, t : real;
7/29/2019 PASCAL Reseni Zadaci
63/63
Begin
ClrScr;
{Unos broja artikala}
WriteLn;
Write('Unesi broj artikala : ');
Readln(n);
WriteLn;
{Unos artikala u magacinu}
For i := 1 to n do
Begin
Write('Unesite naziv artikla : ');
Readln(art[i].ime);
Write('Unesite kolicinu : ');
Readln(art[i].kolicina);
Write('Unesite cenu : ');
Readln(art[i].cena);
End;
{Unos zadate cene}
WriteLn;
Write('Unesi zadatu cenu : ');
ReadLn(t);v1 := 0;
For i := 1 to n do
Begin
v := art[i].kolicina * art[i].cena;
v1 := v1 + v;
if t = art[i].cena Then Write(art[i].ime);
End;
WriteLn;
WriteLn('Ukupna vrednost je : ',v1:8:2);
ReadLn;
End.