(pascal abc/turbo)
даны четыре числовых массива f1, f2, f3, f4. вывести имя того из этих массивов, который имеет наибольшее число элементов (если таких элементов более одного, то вывести имя одного из них). описать в программе функцию l(f), значение которой равно количеству элементов массива.

К123 К123    3   13.11.2019 09:51    2

Ответы
Moreland Moreland  10.10.2020 12:53

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.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика