(pascal abc/turbo)
даны четыре числовых массива f1, f2, f3, f4. вывести имя того из этих массивов, который имеет наибольшее число элементов (если таких элементов более одного, то вывести имя одного из них). описать в программе функцию l(f), значение которой равно количеству элементов массива.
const
n = 100; {максимальное число элементов в массиве}
b = -32768;{константа для заливки массивов }
type
tF = array[1..n] of integer;
function l(f: tF): integer;
var
i, k: integer;
begin
k := 0;
l := n;
for i := 1 to n do
if f[i] = b then
begin
l := i - 1;
exit
end;
k := k + 1;
end;
var
i, k, p1, p2: integer;
f1, f2, f3, f4: tF;
s: string[2];
begin
{ заполним все массивы константой b }
{ если при чтении массива константа b, все элементы прочтены }
for i := 1 to n do
begin
f1[i] := b;
f2[i] := b;
f3[i] := b;
f4[i] := b;
end;
randomize;
{ f1 }
k := random(100) + 1;
write('Длина 1: ', k, ' ');
for i := 1 to k do
f1[i] := random(199) - 99; { число от -99 до 99 }
p1 := l(f1);
writeln(', вычислена длина ', p1);
s := 'f1';
{ f2 }
k := random(100) + 1;
write('Длина 2: ', k);
for i := 1 to k do
f2[i] := random(199) - 99;
p2 := l(f2);
writeln(', вычислена длина ', p2);
if p2 > p1 then
begin
p1 := p2;
s := 'f2';
end;
{ f3 }
k := random(100) + 1;
write('Длина 3: ', k, ' ');
for i := 1 to k do
f3[i] := random(199) - 99;
p2 := l(f3);
writeln(', вычислена длина ', p2);
if p2 > p1 then
begin
p1 := p2;
s := 'f3';
end;
{ f4 }
k := random(100) + 1;
write('Длина 4: ', k, ' ');
for i := 1 to k do
f4[i] := random(199) - 99;
writeln(', вычислена длина ', p2);
if p2 > p1 then
s := 'f4';
write('Самый длинный массив ', s);
end.