Zadatak:
Napiši sledeće matematičke izraze u Pascalu:
a)
b)
Rešenje:
a)
f:=sqrt(x+(sqr(x)*sqr(x)+sqr(x)*x-2)/cos(x))
b)
f:=abs(x)+exp(-b*x)+cos(x)/sin(x)
Zadatak:
Napiši sledeće matematičke izraze u Pascalu:
a) f:=
b) f:=
Rešenje:
a)
f:=sqrt(sqr(x)+(sqr(x)*sqr(x)*x+x+1)/sin(x))
b) f:=abs(x)+exp(-b*x)+sin(x)/cos(x)
Zadatak:
Ako
je promeljiva tac logička promenljiva napiši izraz da ona ima vrednost
true, da se od odesečaka sa dužinama x, y i z može konstruisati trougao.
Rešenje:
Uslov da bi se konstruisao trougao je da je zbir bilo koje dve
njegove stranice uvek veći od treće tj.
if((a+b)>c) and ((a+c)>b) and ((b+c)>a)
Zadatak:
Neka
je dat sledeći
PASKALSKI kod:
program test;
var
i,j: real;
k: boolean;
begin
i:= j mod 8;
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:
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:
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;
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;
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.56
a=trunc(a)+7=trunc(5.56)+7=5+7=12
s=sqr(a)+10=12*12+10=144+10=154
na kraju dobijemo:
a=abs(a)+2=sbs(154)+2=154+2=156
Zadatak:
Koju
će vrednost imati promenljiva a nakon izvrš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
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;
p := u*i;
WriteLn('Otpor kola je :
',r:8:2,' Snaga kola je :',p:8:2);
ReadLn
End.
Zadatak:
Neka je data jednačina =0.
Promenljive a i b se unose sa
tastature. Napiši program koji za svaku vrednost
a i b 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);
ReadLn
End.
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;
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. 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);
ReadLn
End.
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);
Write('Unesi n2 : ');
ReadLn(n2);
Write('Unesi n3 : ');
ReadLn(n3);
s := 0;
if ((n1 >=5) and (n1
<= 7)) then s := s+n1;
if ((n2 >=5) and (n2
<= 7)) then s := s+n2;
if ((n3 >=5) and (n3
<= 7)) then s := s+n2;
WriteLn('Trazeni zbir
je:',s:5);
ReadLn
End.
Zadatak:
Neka se sa tastature unose celi brojevi n1,
n2, i n3. 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);
ReadLn
End.
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
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. 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);
ReadLn
End.
Zadatak:
Putovanje između mesta A i B traje n sekundi. Sračunaj koliko je to sati, minuta i
sekundi.
Rešenje:
Program
izgleda ovako:
program prog;
Uses CRT;
var
n,sat,min,sek : integer;
begin
ClrScr;
Write('Unesi sekunde : ');
ReadLn(n);
sat := n div 3600;
sek := n mod 3600;
min := sek div 60;
sek := sek mod 60;
WriteLn('sati = ',sat:5, '
minuta = ',min:5,' sek = ',sek:5);
ReadLn
End.
Zadatak:
Kolika će biti vrednost promenljive a ako se izvrši sledeći deo koda:
a := 1.56;
case k mod 10 of
2,3,5,7: begin a := a+7; a := trunc(a) end;
1:;
4,8 : begin a := a-3; a :=round(a);
9,6 : begin a:=-a; a :=a-7 end;
ako se unese a) k=312, b) k = 121, c) k =
234 d) k=416
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)=8
b)
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)=-1
d)
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;
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;
ReadLn
End.
Zadatak:
Neka je data slede}a grupa naredbi.
a := 5;
for i :=1 to 5 do
a :=a-i;
a :=a-4;
kolika će biti vrednost promenljive a posle izvršenja datog koda ?
Rešenje:
1. prolaz:
a=a-i=5-1=4
2. prolaz:
a=a-i=4-2=2
3. prolaz:
a=a-i=2-3-=1
4. prolaz:
a=a-i=-1-4=-5
5. 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);
ReadLn
End.
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
if ((i mod 7 =0) and (i mod
3 = 0)) then s :=s+i;
WriteLn('Trazeni zbir je
',s:5);
ReadLn
End.
Brojevi koji zadovoljavaju ovaj uslov su 9, 19, 29, 39, 49,
59, 69, 79, 89 i 99 čiji je zbir 540.
Zadatak:
Neka se
sa tatature unosi 10 realnih brojeva. Napisati program kojim se 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);
ReadLn
End.
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*...*n
Napiš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
faktorijel : real;
n,i : integer;
begin
ClrScr;
faktorijel :=1;
Write('Unesi zadati broj n
:');
ReadLn(n);
for i :=1 to n do
begin
faktorijel :=faktorijel*i
end;
WriteLn('Faktorijel broja
',n,' je = ',faktorijel:13:2);
ReadLn
End.
Zadatak:
Napisati program 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);
ReadLn
End.
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).
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);
ReadLn
End.
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
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=2
2.prolaz
s=s+0.7=0.7+0.7=1.4
i=i+3=2+3=5
3.prolaz
s=s+0.7=1.4+0.7=2.1
i=i+3=5+3=8
4.prolaz
s=s+0.7=2.1+0.7=2.8
i=i+3=8+3=11
5.prolaz
s=s+0.7=2.8+0.7=3.5
i=i+3=11+3=14
6. prolaz
s=s+0.7=3.5+0.7=4.2
i=i+3=14+3=17
7. 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
Zadatak:
Neka
je data sledeća grupa
naredbi:
s
:=1; i :=1;
while s<4 do
begin
s :=s+0.6;
i :=i+2
end;
s :=s+i;
Kolike će biti vrednosti promenljivih s i i nakon napuštanja navedenog koda.
Rešenje:
1. prolaz
s=s+0.6=1+0.6=1.6
i=i+2=1+2=3
2.prolaz
s=s+0.6=1.6+0.6=2.2
i=i+2=3+2=5
3.prolaz
s=s+0.6=2.2+0.6=2.8
i=i+2=5+2=7
4.prolaz
s=s+0.6=2.8+0.6=3.4
i=i+2=7+2=9
5.prolaz
s=s+0.6=3.4+0.6=4.0
i=i+2=9+2=11
6. prolaz
buduć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:
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);
ReadLn
End.
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
j :=1 /(2*i-1);
zbir :=zbir+j;
i :=i+1;
end;
WriteLn('Trazeni zbir niza
je :',zbir:8:2);
ReadLn
End.
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=3
2.prolaz
s=s+0.6=1.6+0.6=2.2
i=i+2=3+2=5
3.prolaz
s=s+0.6=2.2+0.6=2.8
i=i+2=5+2=7
4.prolaz
s=s+0.6=2.8+0.6=3.4
i=i+2=7+2=9
5.prolaz
s=s+0.6=3.4+0.6=4.0
i=i+2=9+2=11
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=2
2.prolaz
s=s+0.7=0.7+0.7=1.4
i=i+3=2+3=5
3.prolaz
s=s+0.7=1.4+0.7=2.1
i=i+3=5+3=8
4.prolaz
s=s+0.7=2.1+0.7=2.8
i=i+3=8+3=11
5.prolaz
s=s+0.7=2.8+0.7=3.5
i=i+3=11+3=14
6. prolaz
s=s+0.7=3.5+0.7=4.2
i=i+3=14+3=17
budući da je uslov zadovoljen to je
s=s+i=4.2+17=21.2.
Zadatak:
Napiši program kojim se upotrebom repat instrukcije tražii
zbir brojeva od 100 do 300 čija je zadnja cifra 7.
Rešenje:
program prog;
Uses CRT;
var
zbir, j : real;
n,i : integer;
begin
ClrScr;
zbir :=0;
i := 100;
repeat
if (i mod 10 = 7) then
zbir := zbir+i;
i :=i+1
until i = 301;
WriteLn('Trazeni zbir je
:',zbir:8:2);
ReadLn
End.
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);
ReadLn
End.
Zadatak:
Napiši program kojim se od datog
prirodnog broja n formira broj sa istim ciframa ali u inverznom poretku.
Rešenje:
Program
izgleda ovako:
program prog;
Uses CRT;
var
n, i : integer;
begin
ClrScr;
Write('Unesi broj n : ');
ReadLn(n);
i := 0;
repeat
i :=i*10+n mod 10;
n :=n div 10
until n = 0;
WriteLn('Trazeni broj je
:',i:8);
ReadLn
End.
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);
ReadLn
End.
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:
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. 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);
ReadLn
End.
Zadatak:
Neka se sa tastature unose četiri cela broja n1, n2, n3 i n4.
Koristeći funkciju veci iz prethodnog zadataka nađi najveći broj.
Rešenje:
Program
izgleda ovako:
program prog;
Uses CRT;
var
n1, n2, n3, n4, broj :
integer;
function veci(n1, n2: integer):integer;
begin
if n1 > n2 then veci :=
n1
else veci := n2;
end;
begin
ClrScr;
Write('Unesi broj n1 : ');
ReadLn(n1);
Write('Unesi broj n2 : ');
ReadLn(n2);
Write('Unesi broj n3 : ');
ReadLn(n3);
Write('Unesi broj n4 : ');
ReadLn(n4);
broj := veci(veci(n1, n2),
veci(n3, n4));
WriteLn('Veci broj je :
',broj:5);
ReadLn
End.
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);
ReadLn
End.
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);
ReadLn
End.
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
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
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);
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
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, 1
b)
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:
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 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);
ReadLn
End
Kolika će biti vrednost promenljivih z i z1 ako
se unese:
a) 1 1
b) 4 5
Rešenje:
a) ako se unese 1, 1
onda se u proceduri racun sračuna u prvom pozivu:
y1=1+sqr(1)+sqr(1)=3
y2=x1*x2=1*1=1
u drugom pozivu ulazni paramteri procedure su
3 i 1 pa će biti:
y1=3+sqr(1)+sqr(3)=3+1+9=13
y2=3*1=3
c)
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);
ReadLn
End.
Zadatak:
Neka je data sledeći
paskalski program:
program prog;
Uses CRT;
var
i, j : integer;
c : char;
procedure pitan(i : integer; var j: integer);
begin
if i >= 0 then
begin i := i-1; j := j+2
; pitan(i, j);
end;
end;
begin
ClrScr;
Write('Unesi i : ');
ReadLn(i);
j := 0;
pitan(i,j);
WriteLn('j je: ',j:5);
ReadLn
End.
Kolika će biti vrednost promenljive j
ako se unese:
a)
i=2
b)
i=5
c)
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;
begin
ss1 := 0;
for i := 100 to 200 do
if (i mod 7 = 0) then ss1
:= ss1+i;
s1 :=ss1;
end;
begin
ClrScr;
zbir(s);
WriteLn('Trazeni zbir je:
',s:5);
ReadLn
End.
Primetite da procedura
zbir koristi samo izlazne paramtre. U njoj su definisane i lokalne varijable.
Zadatak:
Neka
je dat niz xx od od 20 elemenata. Napiši program kojim se izračunava:
a)
Srednja vrednost niza xx.
b)
Maksimalni član niza
c)
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);
ReadLn
End.
Zadatak:
Neka
je dat niz yy od 20 članova. Napiši program kojim se računa zbir pozitivnih članova niza.
Rešenje:
program prog;
Uses CRT;
type niz=array[1..20] of real;
var
yy : niz;
s : real;
i : integer;
begin
ClrScr;
s := 0;
for i := 1 to 20 do
if yy[i] > 0 then s
:= s+ yy[i];
WriteLn('Zbir pozitivnih
clanova nizaj je: ',s:8:5);
ReadLn
End.
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);
ReadLn
End.
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);
ReadLn
End.
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
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. 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]);
ReadLn
End.
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;
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. 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);
ReadLn
End.
Zadatak:
Neka
je dat niz a od 10 elemeneta. Napiši program kojim se sračunava ukupan broj brojeva koji su međusobno jednaki.
Rešenje:
program prog;
Uses CRT;
type niz=array[1..10] of real;
var
a, c : niz;
i, j, k, br: integer;
begin
ClrScr;
for i := 1 to 10 do
c[i] := 0;
for i := 1 to 10 do
begin
Write('Unesi - ',i:3,'
clan niza a : ');
ReadLn(a[i])
end;
br := 0; k := 0;
for i := 1 to 9 do
begin
for j := i+1 to 10 do
if (c[j] = 0) and
(a[i]=a[j]) then
begin br := br + 1;
c[j] := 1; c[i] := i end;
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 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
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. 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;
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.
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;
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
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
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
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
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;
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);
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.
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;
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';
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;
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:
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;
begin
ClrScr;
assign(a,'c:\broj.dat');
rewrite(a);
for i := 1 to 5 do
begin
Write('Unesi broj - ', i:2,' : ');
Read(x);
Write(a, x);
max
:= x;
end;
close(a);
reset(a);
while not eof(a) do
begin
read(a, x);
if max < x then max := x;
end;
Write ('Najveci upisan broj je : ',max:8:5);
close (a);
readln; readln;
end.
Zadatak:
Iz prethodno formirane datoteke a realnih brojeva formiraj
datoteku b od onih brojeva koji su 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:
program
x1;
Uses
Crt;
var
f: file of real;
i, j, n : integer;
x : real;
Begin
ClrScr;
assign(f,'mat.dat');
rewrite(f);
Write('Unesite broj brojeva : ');
ReadLn(n);
WriteLn;
for i :=1 to n do
Begin
Write('Unesi broj : ');
ReadLn(x);
if sqr(x) < 100 Then Write(f, x);
End;
WriteLn;
Close(f);
Readln
end.
Zadatak
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);
j := 0; s :=0;
While not eof(f) do
Begin
Read(f,x);
if x > b Then Begin Write(f1, x); s
:=s+x; j :=j+1 End;
End;
WriteLn;
If j > 0
Then
WriteLn('Aritmetica sredina je : ', s/j:8:3);
Close(f);
Close(f1);
Readln
end.
Zadatak
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);
Readln
end.
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);
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". 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;
Begin
ClrScr;
{Otvaranje
datoteke}
Assign(f,'broj.dat');
Assign(f1,'broj1.dat');
Reset(f);
Rewrite(f1);
{Prepisivanje
iz prve u drugu datoteku}
WriteLn;
While
not eof(f) do
Begin
Read(f, x);
x :=2 * x;
Write(f1, x);
End;
Close(f);
Close(f1);
ReadLn;
ENd.
Zadatak:
Neka je data datoteka realnih
brojeva "broj2.dat". 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.
Rešenje:
Program
x1;
Uses
Crt;
Var
f : file of real;
x, max : real;
i, n : integer;
Begin
ClrScr;
{Otvaranje
datoteke}
Assign(f,'broj2.dat');
Rewrite(f);
{Unos
ukupnog broja brojeva}
WriteLn;
Write('Unesi
ukupan broj brojeva : ');
ReadLn(n);
For
i := 1 to n do
Begin
Write('Unesi ',i, ' broj = ');
Readln(x);
Write(f, x);
End;
WriteLn;
WriteLn('UPISANI
BROJEVI U DATOTEKU');
WriteLn;
CLose(f);
Reset(f);
i := 0;
While
not eof(f) do
Begin
Read(f, x);
WriteLn(x:8:2);
if i = 0 then Begin max := x; i :=1 end;
if x > max Then max := x;
End;
Close(f);
WriteLn;
WriteLn('Najveci
uneseni broj je : ', max:8:2);
ReadLn;
End.
Zadatak:
Neka je data ulazna datoteka radnici tekstualnog tipa u koju
je uneseno prezime i ime radnika i njegova godina 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;
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;
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.
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);
Write('Godina : ');
ReadLn(glumac[i].godina);
Write('Broj uloga : ');
ReadLn(glumac[i].bruloga);
End;
WriteLn;
j := 0;
WriteLn('Glumci sa vise od 50 uloga');
For i := 1 to n do
Begin
if glumac[i].bruloga > 50 Then Begin
WriteLn(glumac[i].ime); j :=j+1 End;
End;
if j =
0 Then WriteLn('Nema takvih glumaca');
Readln
end.
Zadatak
Neka je dat slog opstina u koji
se unose podaci: naziv, broj stanovnika i 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
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. 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;
For i := 1 to 10 do
WriteLn(osob[i].ime,' ',osob[i].godina);
Readln
end.
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);
Readln
end.
Zadatak:
Napiši program kojim se u slog ucenik
unosi ime, visina i tezina i za n ucenika. Nakon unosa prikaži unesene podatke.
Rešenje:
Program
x;
Uses
Crt;
type
ucenik=record
ime :string[10];
visina : integer;
tezina : integer;
End;
Var
uce: array [1..50] of ucenik;
i, j , n: integer;
Begin
ClrScr;
Write('Unesite
broj ucenika : ');
Readln(n);
WriteLn;
{Unos
podataka o ucenicima}
For
i := 1 to n do
Begin
Write('Unesite ime ucenika : ');
Readln(uce[i].ime);
Write('Unesite visinu : ');
Readln(uce[i].visina);
Write('Unesite tezinu : ');
Readln(uce[i].tezina);
End;
{Prikaz
podataka o ucenicima}
WriteLn;
WriteLN('PODACI
O UCENICIMA');
WriteLn;
For
i := 1 to n do
Begin
WriteLn(uce[i].ime:10,' ',uce[i].visina:4,'
',uce[i].tezina:3);
End;
ReadLn;
ENd.
Zadatak:
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;
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:
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;
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:
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;
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.