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 M. Gherasimov
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.

Sarcina: Se d tabloul D[1:N] cu elemente ntregi. De alctuit algoritmul, ce determin produsul


elementelor pozitive, utiliznd funcia.

2.1. Programul in limbajul Pascal


Program P2_2;
Type tab=array[1..100,1..100] of integer;
var n,m,p:integer;
function f(n,m:integer):integer;
var i,j,p:integer; b:tab;
begin
p:=1;
for i:=1 to n do
for j:=1 to m do
readln(b[i,j]);
for i:=1 to n do
for j:=1 to m do
if b[i,j]>0 then p:=p*b[i,j];
f:=p;
end;
begin
writeln('Dati nr. de lini si coloane si elementele ');
readln(n,m);
p:=f(n,m);
write('Produsul= ',p);
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 negative i numrul lor;
1.1. Programul in limbajul Pascal
Program P2_1;
Type tab=array[1..100] of integer;
var k,n,p: integer;
procedure f(var k,p,n:integer);
var i:integer;
b:tab;
begin
for i:=1 to n do
begin
write(i,' : '); read(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 D[1:N,1:M] cu elemente ntregi. De alctuit algoritmul, ce determin
produsul elementelor pozitive , utiliznd procedura.

2.1. Programul in limbajul Pascal


Program P2_2;
Type tab=array[1..100,1..100] of integer;
var n,m,p:integer;
procedure f(var n,m,p:integer);
var i,j:integer; b:tab;
begin
p:=1;
for i:=1 to n do
for j:=1 to m do
readln(b[i,j]);
for i:=1 to n do
for j:=1 to m do
if b[i,j]>0 then p:=p*b[i,j];
end;
begin
writeln('Dati nr. de lini si coloane si elementele ');
readln(n,m);
f(n,m,p);
write('Produsul= ',p);
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 cuvinte dintr-un text;

Textul

II. Programul in limbajul Pascal

Program P3;
var s:string;
m:text;
nr,i:integer;
function f(p:string): integer;
var nr,i:integer; s:string;
m:text;
begin
assign(m,p);
reset(m);
read(m,s);
nr:=1;
for i:=1 to length(s) do
if s[i] in [' '] then nr:=nr+1;
f:=nr;
end;
begin
nr:=f('test.in' );
writeln('Avem ',Nr,' cuvinte');
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 cuvinte dintr-un text;

Text

II. Programul in limbajul Pascal


Program P4;
var s:string;
m:text;
nr,i:integer;
procedure f(var nr:integer);
var i:integer;
s:string;
m:text;
begin
assign(m,'test.in');
reset(m);
read(m,s);
nr:=1;
for i:=1 to length(s) do
if s[i] in [' '] then nr:=nr+1;
end;
begin
f(nr);
writeln('Avem ',nr,' cuvinte');
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:

S(n)=1+3+5+7+9+...

III. Programul in limbajul Pascal


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