Documente Academic
Documente Profesional
Documente Cultură
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.
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:
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:
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:
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:
am un telefon
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:
V. Concluzie.
Pe parcursul elaborrii acestei lucrri nu am ntlnit dificulti fiindc am nvat bine aceast
tem.
LUCRARE DE LABORATOR NR. 4
I. Obiectivele temei.
Textul
am un telefon
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:
I. Obiectivele temei.
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
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*...
VI. Concluzie.
Pe parcursul elaborrii acestei lucrri am ntlnit dificulti fiindc nu am nvat aceast tem.