Informatică, întrebare adresată de anaflorea, 9 ani în urmă

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

Răspuns de nituleacmreinnm
2

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.


nituleacmreinnm: cum t si n sunt variabile globale nu era neaparat sa fie date ca parametru.
nituleacmreinnm: dar atunci se scria functia cu t nu cu x
Alte întrebări interesante