Sunteți pe pagina 1din 13

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 Sergiu Butnaru


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) Media numerelor ntregi i, j, k, m;
1.1. Programul in limbajul Pascal
Program P1;
var i,j,k,m:integer; n:real;
function media(a,b,c,d: integer): real;
var n:real;
begin
n:=(i+j+k+m)/4;
media:=n;
end;
begin
writeln('Itroduceti 4 cifre');
readln(i,j,k,m);
n:=media(i,j,k,m);
write('media ',n:2);
end.
1.2 Fereastra programului in pascal:

1.3 Rezultatele obtinute la executia programului.

Sarcina: Se d tabloul A[1..12] de numerentregi, de alctuit algoritmul, care va determina cte


elemente sunt mai mari sau egale dect media aritmetic a elementelor acestui tablou, utiliznd
funcia
2.1. Programul in limbajul Pascal
Program P1_2;
Type tab=array[1..12] of integer;
var a:tab; m:real;
n,k:integer;
function f(n:integer; m:real):integer;
var i,s: integer; k:integer;
begin
for i:=1 to n do
read(a[i]);
for i:=1 to n do
s:=s+a[i]; m:=s/n;
for i:=1 to n do
if a[i]>=m then k:=k+1;
f:=k;
end;
begin
write('Dati nr. de elemente ');
readln(n);
writeln('Dati elementele');
k:=f(n,m);
write('Cite elemente sunt mai mari sau egale decit media ',k);
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:
Suma elementelor inpare de pe locurile inpare i numrul lor;
1.1. Programul in limbajul Pascal
Program P2;
Type tab=array[1..100] of integer;
var n,s,k: integer;
procedure f(var k,s,n:integer);
var i:integer;
b:tab;
begin
for i:=1 to n do
read(b[i]);
for i:=1 to n do
if odd(b[i]) then s:=s+b[i];
for i:=1 to n do
if odd(b[i]) then k:=k+1;
end;
begin
write('dati nr.de elemente '); readln(n);
f(k,s,n);
writeln('Suma=',s);
write('Nr. de elemente ',k);
end.
1.2 Fereastra programului in pascal:
1.3 Rezultatele obtinute la executia programului.

Sarcina: Se d tabloul A[1..3,1..4] de numere ntregi, de alctuit algoritmul, care va determina cte
elemente sunt mai mari sau egale dect media aritmetic a elementelor acestui tablou, utiliznd
procedura.

2.1. Programul in limbajul Pascal


Program P1_2;
Type tab=array[1..12] of integer;
var n,k:integer;
procedure f(n:integer; var k:integer);
var i,s: integer; m:real;
a:tab;
begin
for i:=1 to n do
read(a[i]);
for i:=1 to n do
s:=s+a[i]; m:=s/n;
for i:=1 to n do
if a[i]>=m then k:=k+1;

end;
begin
write('Dati nr. de elemente ');
readln(n);
writeln('Dati elementele');
f(n,k);
write('Cite elemente sunt mai mari sau egale decit media ',k);
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

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;

Text

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)= 1*2*3*4*5*...

III. Programul in limbajul Pascal


program P5;
function m(n: integer): real;
begin
if (n = 1) then m :=1
else
m:=m(n-1)*n;
end;
var n: integer;
begin
readln(n);
writeln('P(n)= ', m(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