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

 

Zadatak:

       Napisati program koji za uneseni napon U i struju I sa tastature sračunava otpor i snaga kola. Rezultat prikaži u formatu od 8 mesta sa 2 decimale.

 

Rešenje:

 

program prog;

Uses CRT;

var

   u,i,r,p : real;

begin

   ClrScr;

   Write('Unesi napon U kola : ');

   ReadLN(u);

   Write('Unesi struju I kola : ');

   ReadLn(i);

   r := u/i;

   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;