PROGRAMIRANJE ZA POČETNIKE Turbo Pascal 7.0
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.