Pascal

Post on 24-Oct-2014

374 views 12 download

Tags:

Transcript of Pascal

Borland Pascal

1.Structura

nume program;//este optional.reprezinta antetul programului;

sectiunea declaratiilor;

begin

algoritmul in sine;

end.

2. Structuri in pascal

2.1 Functii

Function nume(lista parametrii formali):tip;

variabile locale

begin

algoritmul

nume functie:=variabile;

end;

ex:function suma(x:integer):integer;

var S:integer;

S:=0;

while x<>0 do

begin

S:=S+x mod 10;

x:=x div 10;

end;

suma:=S;

end;

Un parametru formal este transmis prin referinta

atunci cand nu este cunoscuta valoarea lui sau isi

schimba valoarea in cadrul subprogramului prin

cuvantul variabilei in fata parametrului formal.

2.2 Proceduri

procedure nume(lista parametric formali);

variabile locale;

begin

algoritmul

end;

2.3 Citire

read(‘x1,x2’=,x1)

readln

write(‘x=’,x)

writeln

Conditia If

If(conditie)then

Set_instructiune;

Else

Set_instructiune;

Conditia while

While(conditie)do

Begin

Set_instructiune;

End.

Conditia For

For i:n do

C++ Borland Pascal

= := == =

% div / mod

{ begin } end

3.Exemple de algoritmi

3.1 Inversul unui numar n

inv,n:integer;

begin

read(‘n=’,n),readln(n);

if(<>0) then

inv:=1 mod n;

write(‘inv=’,inv)

else;

write(‘0’,0)

end;

readln;

end.

3.2 ma si mg dintre 2 nr a si b

a,b,c:integer;

ma,mg:real;

begin

write(‘a=’,a);readln(a);

write(‘b=’,b);readln(b);

write(‘c=’,c);readln(c);

ma:=(a+b)mod 2;

mg:=(b+c)mod 2;

write(‘ma=’,ma);

write(‘mg=’,mg);

readln;

end.

3.3 Numere pitagorice

a,b,c :integer;

begin

write(‘a=’,a);readln(a);

write(‘b=’,b);readln(b);

write(‘c=’,c);readln(c);

if(a**2=b**2+c**2)or(b**2=a**2+c**2)or(c**2=a**2+b*

*2) then

write(‘a=’,’b=’,’c=’,a,b,c)

else;

write(‘0’,0)

end;

end.

3.4 max valorilor negative si min valorilor pozitive

a,b,c,d,min:integer;

write(‘d=’,d);readln(d);

write(‘a=’,a);readln(a);

write(‘b=’,b);readln(b);

write(‘c=’,c);readln(c);

min:=maxint;

if(a<min) then

min:=a;

end.

If(b<min)then

Min:=b;

End.

If(c<min)then

Min:=c;

End.

If(d<min)then

Min:=d;

Write(‘min=’,min)

End.

3.5 Suma primelor n numere naturale

n,I,S:integer:begin;

write(‘n=’,n);readln(n);

i:=1;

S:=0;

While(i<=n)do

S:=S+I;

I:=i+1;

End;

While(‘S=’,S)

End.

3.6 obtinerea unui numar

n,nr,p,c,i:integer;

write(‘n=’,n);readln(n);

i:=1;

p:=1;

while 1<n do

P:=P*0;

I:=i+1;

End;

While(i<=n)do

Write(‘c=’,c)

nr:=P*c*nr;

P:=p div 10;

I:=i+1;

End;

End.

3.7 suma numerelor pare si produsul nr impare

n,S,P,cifra:integer;

write(‘n=’,n);readln(n);

S:=0;

P:=1;

While(n<>0)do

Begin

c:=n mod 10;

n:=n div 10;

if(c mod 2=0)then

begin

S:=S+c;

p=p*c;

end;

readln;

end;

3.8 Oglinditul unui numar n

n,og,c:integer;p

write(‘n=’,n);readln(n);

og:=0;

while(p<>0)do

begin

c:=p mod 10;

og:=og*10+c;

p:=p div 10;

end.

write(‘og=’,og)

readln;

end;

3.9 Cate cifre are un numar natural n

n,cifre:integer

begin

cifre=0;

while(n>0) do

begin

cifre:=cifre+1;

n:=n div 10;

end;

write(‘cifre=’,cifre);

readln;

end.

3.10 Divizorul natural al lui 0;

n,prim:integer;

begin

write(‘n=’,n);readln(n);

while(d<=[n/2]) do

begin

if(n%d=0)then

write(‘d=’,d)

end;

end;

3.11 CMMDC Euclid

p,q,r:integer;

write(‘p=’,p);readln(p);

write(‘q=’,q);readln(q);

r:=p mod q;

while(r<>0)do

begin

p:=q;

q:=r;

r:=p mod q;

end;

write(‘q=’,q);

readln;

end;

3.12 CMMDC prin scaderi successive

p,q:integer;

begin

write(‘p=’,p);readln(p);

write(‘q=’,q);readln(q);

while(p<>q)do

begin

if(p>q)then

begin

p:=p-q;

else

q:=q-p;

end;

end.

end.

3.13 CMMMC

CMMMC,produs,p,q:integer;

write(‘p=’,p);readln(p);

write(‘q=’,q);readln(q);

produs:=p*q;

CMMMC:produs div p;

write(‘CMMMC=’,CMMMC);

end;

3.14 Nr prim

a,d,prim:integer;

write(‘a=’,a);readln(a);

prim:=0;

d:=2;

while(d<=[√a]and (prim=0)do

begin

if(a mod d=0)then

prim:=1;

end;

end;

if prim=0 then

write(‘nr prim=’,nr prim);

readln;

end.

3.15 descompunere in factori primii

m,d,p:integer;

write(‘m=’,m);readln(m);

d:=2;

while m<>1 do

begin

p:=0;

while m mod d=0 do

begin

p:=p+1;

m:=m div d;

end.

if(p<>0)then

write(‘d la puterea p=’);

end;

d:d+1;

end;

end;