PROGRAMIRANJE  ZA  POČETNIKE                                                                 Turbo Pascal 7.0

               Sretno  sa  programiranjem ...         

 Primjer 1:

        Tradicionalni program svih programera početnika je vrlo jednostavan. Naime radi se o tome da na monitoru ispiše jedna poruka «Hello world»(ili nešto na tu temu). Ali na ovom primjeru se vrlo dobro može naučiti kako se iz programa komunicira sa izlaznim uređajima. U našem slučaju radi se o monitoru. Program se neće naknadno pojašnjavati jer jer je uredno izkomentarisan. (Komentari u programu su linije koje se ne izvršavaju, nisu instrukcije, već služe za pojašnjenje programa.).

RJEŠENJE:

program pozdrav(output);

  begin

   write('Zdravo,zdravo,zdravo...')

end.

 

EKRAN:

Zdravo,zdravo,zdravo...

 

Primjer 2:

Program koji računa površinu i obim pravougaonika.

RJEŠENJE:

program pravougaonik(input,output);

  var

       a,b:integer;

       pov,obim:real;

begin

write('Unesi stranicu a=   ');

read(a);

write('Unesite stranicu b=  ');

read(b);

pov:=a*b;

obim:=2*(a+b);

writeln('Površina je P =  ',pov);

writeln('Obim je  O =  ',obim);

end.

 

EKRAN:

Unesi stranicu a= 2

Unesi stranicu b= 4

Površina je P= 8.0000000000E+00

Obim je O= 1.2000000000E+01

 

Ako upišemo  za P = ',pov:9:3, a za  O = '.obim:6:2  izgled ekrana će biti:

 

Unesi stranicu a= 2

Unesi stranicu b= 4

Površina je P=      8.000

Obim je O=    12.00

 

Vidimo da je  9  i  6  ukupan broj mjesta za rezultat, a 3 i 2  broj mjesta iza decimalnog zareza.

 

Primjer 3:

Program koji izračunava površinu i obim kruga.

RJEŠENJE:

 program krug(input,output);

  var r:integer;

      pov,obin:real;

write('Unesi poluprečnik kruga  r= ');

read(r);

pov:=sqrt(r)*pi;

obim:=2*r*pi;

writeln('Površina kruga je  P= ',pov);

writeln('Obim je  O= ',obim);

 end.

 

EKRAN:

Unesi poluprečnik kruga r= 1

Površina kruga je  P= 3.1415926536E+00

Obim je  O= 6.28318531072E+00

 

Primjer 4:

Program koji pretvara stepene Celzija u stepene Farenhajta.

RJEŠENJE:

program CelzuFar(input,output),

 uses crt;

  var

      tempC,tempF:real;

     begin clrscr;

    write('Unesite temperaturu u stepenima Celzija: ');

    read(tempC);

  tempF:=tempC*1.8+32;

writeln('Temperatura po Farenhajtu :  ');

 readln

  end.

 

EKRAN:

Unesite temperaturu u stepenima Celzija: 34

Temperatura po Farenhajtu:       93.20

 

Primjer 5:

Program za izračunavanje površine P i zapremine  V valjka-cilindra,akoje poluprečnik baze r  i visina H valjka.

RJEŠENJE:

program cilindar(input,output);

  uses crt;

    var

       polupr,visina:integer;

    povrsina,obim,baza,omotac,zapr:real;

 begin clrscr;

 write('Unesi poluprečnik baze r =  ');

read(r);

write('Unesi visinu valjka H =  ');

read(visina);

baza:=sqr(polupr)*pi;

zapr:=baza*visina;

omotac:=2*polupr*pi*visina;

povrsina:=omotac+(s*baza);

 writeln('Volumen cilindra je  V= ',zapr:8:3);

 writeln('Površina je  P= ',površina:6:2);

end.

 

EKRAN:

Unesi poluprečnik baze  r = 1

Unesi visinu valjka  H = 2

Volumen cilindra je  V =      6.283

Površina je  P =   18.25

 

Primjer 6:

Program koji računa površinu i zapreminu pravilne četverostrane piramide ,ako je puznata stranica baze i visina piramide.

RJEŠENJE:

program piramida(input,output);

uses crt;

 var  a,b:integer;

      baza,visstr,omotac,zapr,pov:real;

     begin clrscr;

   write('Unesi stranicu baze i visinu piramide:');

  read(a,h);

    baza:=sqr(a);

       zapr:=baza*h/3;

        visstr:=sqrt((h*h)+(sqr(a/2)));

      omotac:=2*a*visstr;

    pov:=baza*omotac;

writeln('Zapremina je  V = ',zapr:7:2);

writeln('Površina je  P = ',pov:7:2);

 end.


EKRAN:

Unesi stranicu baze i visinu piramide:

6

4

Zapremina je  V =    48.00

Površina je  P =    96.00

 

Primjer 7:

Program za izračunavanje površine trougla ,ako su poznate stranice.(Ovdje koristimo tzv.Heronov obrazac).

RJEŠENJE:

 program povrsinatrougla(input,output);

    uses crt;

     var  a,b,c,p,s:real;

          R:boolean;

       begin clrscr;

      writeln('Unesi stranice trougla : ');

   readln(a.b.c);

writeln('a =',a:5:1,'  b =',b:5:1,'  c =',c:5:1);

 R:=(a+b>c) and (a+c>b) and (b+c>a);

   if R then

     begin

    p:=(a+b+c)/2;

  s:=sqrt(p*(p-a)*(p-b)*(p-c));

writeln('Površina trougla je  P =',s:6:2);

 end

   else

    writeln('Za ove parametre ne može se konstruisati trougao.');

      readln

       end.

   

EKRAN:

Unesi stranice trougla :

4

3

5

a =   4.0  b =   3.0   c =   5.0

Površina trougla je P =   6.00

    

Za stranice  a = 7, b = 2  i  c = 3 izgled ekrana je:

 

Unesi stranice trougla :

7

2

4

a =   7.0  b =   2.0   c =   4.0

Za ove parametre ne može se konstruirati trougao.

 

Primjer 8:

Koristeći prethodni primjer napisati program koji računa Površinu,Obim te poluprečnik opisane  Ro i poluprečnik upisane Ru kružnice trougla.Poznate su stranice trokuta.

RJEŠENJE:

program trougao ( input, output );

uses crt,

 var  a, b, c : integer;

povr, obim, poopi, poupi, s : real;

begin clrscr;

writeln ( ' upiši stranice trougla a, b, c = : ' );

readln ( a, b, c );

obim : = a+b+c;

s : = obim / 2;

if ( ( s – a ) * ( s – b ) * ( s – c ) ) > 0  thenb

begin

povr: = sqrt ( s * ( s – a ) * ( s – b ) * ( s – c ) );

poopi:= ( a + b + c ) 7 ( 4 * povr );

poupi: = povr / s ;

writeln ( ' poluprečnik opisane kružnice Ro = ', poopi : 8 : 3 );

writeln ( ' poluprečnik upisane kružnice Ru = ', poupi : 6 : 2 );

writeln ( ' površina je P = ', povr : 6 :2, '  , a obim je O = ', obim : 5 : 1 );

readln

end

else

writeln ( '   *** Upisane stranice ne obrazuju trougao ***  ' );

readln

end.

 

Primjer 9:

Banka  na početku svake godine ulagačima obaračunava kamatu sa procenta na novčanu sumu koja je odležala u toku predhodne godine. Napisati program kojim se izračunava navčani iznos kojim če raspolagati ulagač poslije ( n ) godina ako je početno ulaganje ( s ).

RJEŠENJE:

program stednja( input,output );

uses crt;

var n, p, s: integer;

function iznos ( n: integer ): real;

begin

if n=0 then iznos: = s else

iznos: = (1+p/100)*iznos (n-1)

end;

begin clrscr;

write ( ' Unesi početnu sumu, kammatu i broj godina: ' );

readlen ( s, p, n );

writeln ( ' Iznos sume poslije ', n, ' god. je = ', iznos ( n ) : 10 : 2 );

readln

end.

 

Primjer 10:

Program za izračunavanje rješenja kvadratne jednsčine oblika ax2+bx+c=0.Program ispiše na ekranu da jednačina nema rješenja ako unijti parametri ne zadovoljavaju uslov kvadratne jednačine.

RJEŠENJE:

program kvadratnajednacina( input, output );

uses crt;

var a, b, c: integer;

X1, X2, d: real,

begin clrscr,

write ( ' Upiši parametre jednačine a, b, c= ' );

read ( a, b, c );

d: = ( b * b ) – ( 4 * a * c );

if d > = 0  then

begin

X1: = ( -b-sqrt ( d ) ) / ( 2 * a );

writeln ( ' Rješenje  X1 = ', X1 );

X2: = ( -b+sgrt ( d ) ) / (2* a );

writeln ( ' Rješenje  X2 = ', X2:6:2 );

readln

end

else

writeln ( ' Za ove parametre jednačina NEMA rješenja ! ' );

readln

end.

 

Primjer 11:

Napisati program kojim se ispituje da li je dati prirodan broj n prost.Broj je prost ako je djeljiv samo sa jedan i sa samim sobom.

RJEŠENJE:

program prost(input,output);

var

     n,i,korijen:integer;

     prost:boolean;

begin

  writeln'Unesi cio broj');

readln(n);

korijen:=round(sqrt(n));

prost:=odd(n) or (n=2);

i:=3;

while prost and (i<korijen) do

  begin

   prost:=n mod <>0;

i:=i+2

end;

if prost

then writeln(n,  '    je prost broj.')

else writeln(n,  '   nije prost broj.)

end.

 

Primjer 12a:

Napisati program kojim se štampaju svi trocifreni Amstrongovi brojevi.Broj je Amstoongovako je jednak zbiru kubova svojih cifara.

Zadatak ćemo riješiti tako što ćemo svakom trocifrenom broju m  izdvojiti cifre a,b,c, i ako zadovoljavaju dati uslov štampati Amstrongov broj.

RJEŠENJE:

program Amstrong(input,output);

var

 a,b,c,m:integer;

   begin

     for m:=100 to 999 do

      begin

        a:=m div 100

        b:=m mod 100 div 10

        c:=m mod 10;

       if m=a*a*a+b*b*b+c*c*c then writeln(m)

   end

end.

 

U ovom programu proces rješavanja ide od broja ka ciframa.Međutim,može se kretati program u kom se prvo generišu cifre: a/1 d0 9),b (0 d0 9) i c (0 do 9).

 

Primjer 12b:

 program Amstrong(input,output);

  var

   a,b,c,m:integer;

begin

 for a:=1 to 9 do

  for b:=0 to 9 do

    for c:=0 to 9 do

       begin

    m:=100*a+10*b+c;

   if m=a*a*a+b*b*b+c*c*c then writeln(m)

end

end.

 

Ovaj program nema ulaznih vrijednosti,pa se ponovnim izvršavanjem programa dobijaju isti rezultati.

 

Primjer 13:

Napisati program kojim se određuju i ispisuju svi savršeni brojevi od 2 do m. Broj je savršen ako je jednak sumi svojih djelitelja isključujući njega samog.Na primjer, 28 – je savršen broj ,jer je:

                                                 28 = 1 + 2 + 4 + 7 + 14

RJEŠENJE:

program savrsenbroj ( input, output );

uses crt;

var i, n, m, suma: integer;

begin clrscr;

writeln ( ' Upiši broj pa češ saznati koji su savršeni?  ' );

read ( m );

writeln ( SAVRŠENI brojevi su:  ' );

for n:=2 to m do

if n mode i=0 then suma:=suma + i ;

if suma = n then writwln ( '     broj  ', n);

end

end.

 

Primjer 14:

Napisatim program za određivanje najmanjeg člana niza.

 
RJEŠENJE:

program najmanjiclanniza ( input, output )

uses crt;

const m=100;

var a : array [1..m ]of real;

n, i : 1..m;

min : real;

begin clrscr;

writeln ( ' unesi broj elemenata niza  : ' );

readln ( n );

writeln ( ' upiši elemente niza  : ' );

for i : =1 to n do readlen ( a [ i ] );

min : = a [ i ];

for i : = 1to n do if a ( i ) < min then min : = a [ i ];

writeln ( ' najmanji član niza je  : ' , min : 6 : 2 );

readln

end.

 

Primjer 15:

Napisati program za određivanje negativnih članova niza.

RJEŠENJE:

program negclanniza ( input, output );

uses crt;

const n = 100 ;

war i, m : integer ;

a : array [ 1 . . n ] of integer;

begin clrscr ;

writeln ( ' unesi broj članove niza : ' );

readlen ( m );

writeln ( ' unesi članove niza : ' );

for i : 1 to m do read ( a [ i ] );

writeln ( ' negativni članovi niza su : ' );

for i : 1 to m do if a ( i ) < 0 then writeln ( ' a [ ' , i, ' ] = ' , a [ i ] );

readln

end.

 

Primjer 16:

Program koji ispisuje pozitivne i negativne članove niza.

RJEŠENJE:

program pozinegclniza ( input, output );

uses crt;

const n = 100 ;

var i, m : integer ;

a : array [ 1 . . n ] of integer;

begin clrscr ;

writeln ( ' unesi broj članove niza : ' );

readlen ( m );

writeln ( ' unesi članove niza : ' );

for i : 1 to m do read ( a [ i ] );

writeln ( ' negativni članovi niza su : ' );

for i : 1 to m do if a ( i ) < 0 then writeln ( ' a [ ' , i, ' ] = ' , a [ i ] );

writeln ( ' pozitivni članovi niza su : ' );

for i : 1 to m do if a ( i ) > 0 then writeln ( ' a [ ' , i, ' ] = ' , a [ i ] );

readlen

end.

 

Primjer 17:

Napisati program za određivanje sume negativnih članova niza.

RJEŠENJE:

program sumnegclniza ( input, output );

uses crt;

const n = 100;

var i, m : integer;

a : array [1..n ] of integer;

aum : real;

begin clrscr;

writeln ( ' unesi broj članova niza : ' );

readlen ( m );

writeln ( ' unesi članove niza : ' );

for i : = 1 to m do read ( a [ i ] );

sum : = 0;

writeln ( ' negativni članovi niza su : ' );

for i : = 1 to m do if a ( a ) < 0 then writeln ( ' a [ ', i, ' ] = ' , a [ i ] );

for i : = 1 to m do if a ( a ) < 0 then sum : = sum + a [ i ];

writeln ( ' suma negativnih članova je sum = ' , sum : 6 : 2 );

readlen

end.

 

Primjer 18:

Napisati program za sumu trećih članovaniza.

RJEŠENJE:

program sumatrecihclanova ( input, output );

uses crt;

const n = 1000;

var i, m : integer;

a : array [ 1 . . n ] of integer;

sum : real;

begin clrscr;

writeln ( ' Upiši koliko članova niza želiš : ' );

readln ( m );

writlen ( ' Unesi članove niza : ' );

for i : = 1 to m do read ( a [ i ] );

sum : = 0;

for i : = 1 to m do

if ( ( i mod 3 = 0 ) then sum : = sum + a [ i ] );

writeln ( ' Suma trećih članova sum = ', sum : 6 : 2 );

readlen

end.

 

Primjer 19:

Napisat program za proizvod članova niza koji su djeljivi sa pet.

RJEŠENJE:

program proizdjaljsapet ( input, output );

uses crt;

const n = 1000;

var i, m : integer;

a : array [ 1 . . n ] of integer;

pro : real;

begin clrscr;

writeln ( ' Upiši koliko članova niza želiš : ' );

readln ( m );

writlen ( ' Upiši članove niza : ' );

for i : = 1 to m do read ( a [ i ] );

pro : = 1;

for i : = 1 to m do

if ( a [ i ] mod 5 = 0 ) then pro : pro * a [ i ]:

writeln ( ' Proizvod članova niza djeljivih sa pet  pro = ' , pro : 8 : 2 );

readlen

end.

 

Primjer 20:

Napisati program koji ispisuje na ekranu sumu svakog drugog člana niza i proizvod članova niza koji su djeljivi sa tri.

RJEŠENJE:

program sumdrugihiproizdjeljsatri ( input, output );

uses crt;

const n = 1000;

var i, m : integer;

a : array [ 1 . . n ] of integer;

sum, pro : real;

begin clrscr;

writeln ( ' Upiši koliko članova niza želiš : ' );

readlen ( m );

writeln ( ' Unesi članove niza : ' );

for i : = 1 to m do read ( a [ i ] );

sum : = 0;

pro : = 1;

for i : = 1 to m do

if ( i mod 2 = 0 ) then sum : = sum + a [ i ];

writeln ( ' Suma drugih članova sum  ', sum : 6 : 2 );

for i : 1 to m do

if ( a [ i ] mod 3 = 0 ) then pro : = pro * a [ i ];

writeln ( ' Proizvod članova djeljivih sa tri  pro : = ', pro : 6 : 2 );

readlen

end.

 

Primjer 21:

Program za pogađanje slučajno odabranog broja od  1  do  1000.Program ispisuje da li je  broj veći ili mani od odabranog,a na kraju od koliko pokušaja je broj pogođen.

RJEŠENJE.

program pogbroja ( input, output );

uses crt,

var zambr, broj, brpok: integer;

begin clrscr;

writlen;

randomize;

zambr : = 1 + random ( 1000 );

brpok : = 0;

writeln ( '    *** Zamislio sam broj 1 do 1000, pokušaj ga pogoditi . . . *** ' );

repeat;

readlen ( broj );

brpok : = brpok + 1;

if zambr < broj then writlen ( ' Moj broj je manji . . . ' ) else

if zambr > broj then writlen ( ' Moj broj je veći . . . ' );

until zambr = broj;

writlen ( ' BRAVO, broj je pogođen iz ', brpok, ' pokušaja! ' );

readlen

end.

 

Primjer 22:

Program koji ispisuje protok fluida kroz cijev željenog poprečnog presjeka (kružni,kvadratni,trouglasti) ako je poznato:

  • brzina protoka  [ m/s],
  • vrijeme protoka  u satima [h] i
  • dimenzije profila (stranica,poluprečnik) u [mm].

RJEŠENJE:

program protok ( input, output );

uses crt;

var v, t, a : real;

ch : char;

zapremina : real;

eunction pkr ( a : real ) : real;

begin

pkr : sqr ( a ) * pi;

end;

function pkv ( a : real ) : real;

begin

pkv : = sqr ( a );

end;

function ptr ( a : real ) : real;

begin

ptr : = ( sqr ( a ) * sqrt ( 3 ) ) / 4 ;

end;

begin clrscr;

repeat

write ( ' Unesi brzinu protooka vode v [ m / s ] :  ' ); readlen ( v );

write ( ' Unesi vrijeme priticanja vode t [ h ] :  ' ); readlen ( t ) ;

write ( ' Unesi dimenzije profila  ( stranicu, poluprečnik . . . ) u [ mm] : ' ) readlen ( a );

repeat

writeln ( '           *** Kroz koji profil želiš protok ? *** ' );

writeln ( ' ** [ 1 ] je kružni, [ 2 ] je kvadratni, [ 3 ] je trouglasti profil : ** ' ); readlen ( ch );

case ch of

' 1 ' : zapremina : = pkr ( a ) * v * t * ( 36 / 10 );

' 2 ' : zapremina : = pkv ( a ) * v * t * ( 36 / 10 );

' 3 ' : zapremina : = ptr ( a ) * v * t * ( 36 / 10 );

end;

until ( ch = ' 1 ' ) or ( ch = ' 2 ' ) or ( ch = ' 3 ' );

writeln ( ' Količina vode je Q = ' ,zapremina : 8 : 2 , '  [ 1 ] ' );

write ( ' kraj unosa je [ k ] : ' ); readlen ( ch );

until ch = ' k ' ;

end.

 

Primjer 23

Program za naplatu telefonskog razgovora ako je poznato vrijeme početka i kraja razgovora ,te cijena jedne sekunde razgovora.

RJEŠENJE:

program telefon(input,output);

uses crt;

var cijena,iznos:real;

    sat1,min1,sek1,sat2,min2,sek2:integer;

    vrijeme1,vrijeme2,trajanje,i:longint;

    begin clrscr;

    writeln('Unesi vrijeme početka poziva (na primjer:12 34 2):');

    readln(sat1,min1,sek1);

    writeln('Unesite vrijeme kraja razgovora (na primjer: 13 5 49)');

 

    readln(sat2,min2,sek2);

    writeln('Unesite cijenu razgovora u KM po sekundi(naprimjer: 0.004).');

    readln(cijena);

    vrijeme1:=sat1*3600+min1*60+sek1;

    vrijeme2:=sat2*3600+min2*60+sek2;

    if vrijeme1<vrijeme2 then

    trajanje:=vrijeme2-vrijeme1;

    if vrijeme1>vrijeme2 then

    trajanje:=24*3600+vrijeme2-vrijeme1;

    iznos:=0;

    for i:=1 to trajanje do

    if(vrijeme1+i>7*3600)and(vrijeme1+i<=21*3600)then

    iznos:=iznos+cijena else

    iznos:=iznos+cijena/2;

    writeln('Ovaj razgovor će vas koštati ',  iznos:9:5,'  KM.');

    readln

    end.

Make a free website with Yola