Funcţii
{Tipul Array}
Program tablouri;
type vector=array[1..100] of integer;
var n, i, y:integer;
t:vector;
function suma(x:vector; n:integer):integer;
var i, s:integer;
begin
s:=0;
for i:=1 to n do
s:=s+x[i];
suma:=s;
end;
begin {main}
{Citirea datelor}
Write('Tastati numarul de valori n=');
Readln(n);
Write('Tastati ', n, 'valori');
For i:=1 to n do
read(t[i]);
{Afisarea datelor}
write('Ati tastat:');
for i:=1 to n do
write(t[i],' ');
{Apel de functie}
y:=suma(t,n);
{Afisarea rezultatului}
write('Suma=', y);
end.
Sarcinile pentru lucru independent:
1. Adăugaţi în programul dat o funcţie nouă, care determină valoarea minimă a componentelor tabloului unidimensional, transmis în ea în calitate de parametru, apelaţi această funcţie şi afişaţi pe ecran rezultatul returnat de funcţie. Notă! Textul funcţiei este scris mai jos.
Function Min(x:vector; n:integer):integer;
Var I,m:integer;
Begin
M:=x[1];
For i:=1 to n do
If x[i]
Min:=m;
End;
2. Adăugaţi în program o funcţie nouă, care determină valoarea maxima a componentelor dintr-un tablou unidimensional, transmis în ea în calitate de parametru, apelaţi această funcţie şi afişati rezultatul pe ecran .
3. Adăugaţi în program o funcţie nouă, care determină numărul componentelor dintr-un tablou unidimensional cu valorile egale cu 0. Apelaţi funcţia şi afişaţi rezultatul pe ecran.
Faceti va rog doar un program. Va rog mult
Răspunsuri la întrebare
Program tablouri;
type vector=array[1..100] of integer;
var n, i, y:integer;
t:vector;
function suma(x:vector; n:integer):integer;
var i, s:integer;
begin
s:=0;
for i:=1 to n do
s:=s+x[i];
suma:=s;
end;
Function Min(x:vector; n:integer):integer;
Var I,m:integer;
Begin
M:=x[1];
For i:=2 to n do If x[i]<min then M:=x[i];
min:=M;
End;
Function Max(x:vector; n:integer):integer;
Var I,m:integer;
Begin
M:=x[1];
For i:=2 to n do If x[i]>max then M:=x[i];
max:=M;
End;
Function NZero(x:vector; n:integer):integer;
Var I,m:integer;
Begin
M:=0;
For i:=1 to n do If x[i]=0 then M:=m+1;
NZero:=M;
End;
begin {main}
{Citirea datelor}
Write('Tastati numarul de valori n=');
Readln(n);
Write('Tastati ', n, 'valori');
For i:=1 to n do
read(t[i]);
{Afisarea datelor}
write('Ati tastat:');
for i:=1 to n do
write(t[i],' ');
{Apel de functie}
y:=suma(t,n);
{Afisarea rezultatului}
writeln('Suma=', y);
writeln('Minimul=',min(t,n));
writeln('Maximul=',max(t,n));
writeln('Sunt ',NZero(t,n),' numere nule');
end.