pascal
TRANSCRIPT
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;