Sunteți pe pagina 1din 14

Ministerul Educaiei al Republicii Moldova

Colegiul de Microelectronic i Tehnic de Calcul

Catedra: tiine exacte

Disciplina: Informatica

Lucrrile de laborator
la Limbajul Pascal

ANUL II

Elaborat V. Negrescu
Verificat N. Bespalco
.

Chiinu, 2015
LUCRARE DE LABORATOR NR. 1

Tema: Funcii
I. Obiectivul temei.
1.1. S defineasc noiunea de funcie, formatul general al funciei;
1.2. S elaboreze programe n care se utilizeaz funcii predefinite i definite de
utilizator.

II Sarcina: Elaborai un program ce conine o funcie care calculeaz:


1) Numrul de cifre dintr-un ir de caractere;

1.1. Programul in limbajul Pascal


Program P1;
Program p1;
var s:string;
k:integer;
function f(s:string):integer;
var i,k:integer;
begin
for i:=1 to length(s) do
if ('0'<= s[i]) and (s[i]<= '9') then k:=k+1;
f:=k;
end;
begin
write('Dati sirul: ');
readln(s);
k:=f(s);
write('Exista ',k,' cifre');
end.
1.2 Fereastra programului in pascal:
1.3 Rezultatele obtinute la executia programului.

Sarcina: Se d tabloul C[1:N] cu elemente reale. S se scrie programul, ce determin numrul


elementelor mai mari ca elementul minim, utiliznd funcia.

2.1. Programul in limbajul Pascal

Program P1_2;
Type tab=array[1..100] of real;
var b:tab;
k,n:integer;
function f(b:tab; n:integer):integer;
var i,k:integer;
min:real;
begin
for i:=1 to n do
begin
write(i,' : '); readln(b[i]);
end;
min:=b[1];
for i:=1 to n do
begin
if b[i]<min then min:=b[i];
end;
for i:=1 to n do
begin
if b[i]>min then k:=k+1;
end;
f:=k;
end;
begin
writeln('Dati nr. de elemente si elementele');
readln(n);
k:=f(b,n);
write('Exista ',k,' elemente mai mari ca min');
end.
2.2 Fereastra programului in pascal:

2.3 Rezultatele obtinute la executia programului.

III. Concluzie (caracterizai erorile admise pe parcursul efecturii lucrrii).


Pe parcursul elaborrii acestei lucrri nu am ntlnit dificulti fiindc am nvat bine aceast
tem
LUCRARE DE LABORATOR NR. 2

Tema: Proceduri

I. Obiectivul temei.
1.1 S defineasc noiunea de procedur n diverse contexte;
1.2 S elaboreze programe n care se utilizeaz procrduri predefinite i definite de
utilizator.

II. Sarcina: Elaborai un program ce conine o procedur care calculeaz ntr-un tabel liniar
arbitrar de numere ntregi:
Produsul elementelor pozitive i numrul lor;
1.1. Programul in limbajul Pascal
Program P2_1;
Type tab=array[1..100] of integer;
var k,n,m,p: integer;
procedure f(var k,p,n:integer);
var i:integer;
b:tab;
begin
for i:=1 to n do
begin
write(i,' : '); readln(b[i]);
end;
P:=1;
for i:=1 to n do
begin
if b[i]>0 then p:=p*b[i];
if b[i]>0 then k:=k+1
end;
end;
begin
write('dati nr.de elemente '); readln(n);
f(k,p,n);
writeln('Produsul=',p);
write('Nr. de elemente ',k);
end.
1.2 Fereastra programului in pascal:

1.3 Rezultatele obtinute la executia programului.


Sarcina: Se d tabloul C[1:N,1:M] cu elemente reale. S se scrie programul, ce determin numrul
elementelor mai mari ca elementul minim, utiliznd procedura.

2.1. Programul in limbajul Pascal


Program P2_2;
Type tab=array[1..100,1..100] of real;
var k,n,m:integer;
procedure f(var n,m,k:integer);
var i,j:integer; b:tab;
min:real;
begin
for i:=1 to n do
for j:=1 to m do
read(b[i,j]);
min:=b[1,1];
for i:=1 to n do
for j:=1 to m do
if b[i,j]<min then min:=b[i,j];
for i:=1 to n do
for j:=1 to m do
if b[i,j]>min then k:=k+1;

end;
begin
writeln('Dati nr. de lini si coloane si elementele ');
readln(n,m);
f(n,m,k);
write('Exista ',k,' elemente mai mari ca min');
end.
2.2 Fereastra programului in pascal:

2.3 Rezultatele obtinute la executia programului.

III Concluzie (caracterizai erorile admise pe parcursul efecturii lucrrii).


Pe parcursul elaborrii acestei lucrri nu am ntlnit dificulti fiindc am nvat bine aceast
tem
LUCRARE DE LABORATOR NR. 3

Tema: Comunicare prin variabile globale (funcii).

I. Obiectivele temei.
1.1. S elaboreze programe n care se utilizeaz comunicarea prin variabile globale;
1.2. S elaboreze programe n care nu apar efecte colaterale
Sarcina: Se consider fiiere arbitrare de text. Elaborai o procedur ce:

calculeaz numrul de vocale dintr-un text;


Textul

am un telefon

II. Programul in limbajul Pascal

Program P3;
var nr:integer;
function f(nr:integer): integer;
var i:integer;
s:string;
m:text;
begin
assign(m,'test.in'); reset(m); read(m,s);
for i:=1 to length(s) do
if s[i] in ['a','e','i','o','u'] then nr:=nr+1;
f:=nr;
end;
begin
nr:=f(nr);
writeln('Sunt ',nr,' vocale');
readln;
end.
III Fereastra programului in pascal:

IV. Rezultatele obtinute la executia programului.

V. Concluzie.

Pe parcursul elaborrii acestei lucrri nu am ntlnit dificulti fiindc am nvat bine aceast
tem.
LUCRARE DE LABORATOR NR. 4

Tema: Comunicare prin variabile globale (proceduri).

I. Obiectivele temei.

1.1. S elaboreze programe n care se utilizeaz comunicarea prin variabile globale;


1.2. S elaboreze programe n care nu apar efecte colaterale.
Sarcina: Se consider fiiere arbitrare de text. Elaborai o procedur ce:

calculeaz numrul de vocale dintr-un text;

Textul

am un telefon

II. Programul in limbajul Pascal

Program P3;
var nr:integer;
procedure f(var nr:integer);
var i:integer;
s:string;
m:text;
begin
assign(m,'test.in'); reset(m); read(m,s);
for i:=1 to length(s) do
if s[i] in ['a','e','i','o','u'] then nr:=nr+1;
end;
begin
f(nr);
writeln('Sunt ',nr,' vocale');
readln;
end.
III. Fereastra programului in pascal:

IV. Rezultatele obtinute la executia programului.

V . Concluzie: Pe parcursul elaborrii acestei lucrri nu am ntlnit dificulti fiindc am nvat


bine aceast tem.
LUCRARE DE LABORATOR NR. 5

I. Obiectivele temei.

1.1. S explice termenii recursie direct;


1.2. S elaboreze subprograme recursive.
II. Coninutul temei.
Recursia se definete ca o situaie n care un subprogram se autoapeleaz fie direct, fie prin intermediul altei funcii
sau proceduri. Subprogramul care se autoapeleaz se numete recursiv. De exemplu, presupunem c este definit
tipul
Type Natural = 0..MaxInt;
Funcia factorial

poate fi exprimat n PASCAL, urmnd direct definiia, n forma:


function F(n : Natural) : Natural;
begin
if n=0 then F:=1 else F:=n*F(n-1)
end; {F}
Efectul unui apel F(7)este declanarea unui lan de apeluri ale funciei F pentru parametrii actuali 6, 5, ..., 2, 1, 0:
F(7) -> F(6) -> F(5) -> ... -> F(1) -> F(0).

Apelul F(0)determin evaluarea direct a funciei i oprirea procesului repetitiv; urmeaz revenirile din apeluri i
evaluarea lui F pentru 1, 2, ..., 6, 7, ultima valoare fiind ntoarcerea n locul primului apel.
Funcia

are ca valori numerele lui Fibonacci. Urmnd definiia, obinem:

function Fib(n:Natural):Natural;
begin
if n=0 then Fib:=0 else
if n=1 then Fib:=1 else
Fib:=Fib(n-1)+Fib(n-2)
end; {Fib}

Fiecare apel al funciei Fib pentru n>1 genereaz dou apeluri Fib(n-1),Fib(n-2) .a.m.d., de exemplu:
Fib(4) ->
Fib(3), Fib(2) ->
Fib(2), Fib(1), Fib(1), Fib(0) ->
Fib(1), Fib(0).
Sarcina: De elaborat un program care conine o funcie recursiv ce calculeaz:

2) P(n)= 3*6*9*12*...

III. Programul in limbajul Pascal


program P5;
function f(n: integer): real;
begin
if (n = 1) then f :=3
else
f :=f(n-1)*(n*3);
end;
var n: integer;
begin
readln(n);
writeln('P(n)= ', f(n));
end.

IV.Fereastra programului in pascal:

V.Rezultatele obtinute la executia programului.

VI. Concluzie.
Pe parcursul elaborrii acestei lucrri am ntlnit dificulti fiindc nu am nvat aceast tem.

S-ar putea să vă placă și