Program kurs;
{$APPTYPE CONSOLE
Uses SysUtils;
type //раздел описания типов данных
tArray=array [1..20,1..40] of byte; //описание типа двумерного
//массива 20x40 элементов
tArray2=array [1..400] of byte; // описание типа массива из 400
//элементов
var //раздел объявления переменных
A:tArray; //массив с результатами эксперимента
B:tArray2; //сформированный одномерный массив
n, //количество столбцов массива A
m, //количество строк массива A
k:byte; //размер массива B
d:byte; //количество искомых элементов
S:real; //среднее арифметическое элементов массива В
//===========================================
// Функция ввода массива. Возвращает размер массива n, m и //введенный массив Z
Function InputArray(var Z:tArray; var m, n:byte):boolean;
var
i,j:byte; // индексные переменные
begin
//вывод сообщения о вводе n
writeln('Введите размер массива n:');
//вводим n
readln(n);
…
end;
//Процедура вывода одномерного массива Y размерностью k
Procedure OutputArray(Y:tArray2; k:byte);
var i:byte; //индекс массива
begin
…
end;
//Процедура создания одномерного массива Y
//из двумерного Х по заданной схеме
Procedure Create(X:tArray; m:byte; n:byte; var Y:tArray2; var k:byte);
var
i, //индекс массива
j:byte; //индекс массива
l,t:byte; //индексы массива
s:set of byte; //множество элементов массива
f:boolean; //флаг наличия схожего элемента
//в нижней части массива
begin
…
end;
end; //конец процедуры
//Процедура поиска среднего арифметического
Function SrZnach(X:tArray2; n:byte):real;
var
i:byte; //индекс массива
Sr:real; //переменная для подсчета среднего арифметического
begin
…
end;
//Процедура подсчета в массиве Х элементов,
//которые отличаются от значения Sr больше чем на 50%.
//Возвращает количество искомых элементов k
Procedure Calc(X:tArray2; n:byte; Sr:real; var k:byte);
var
i:byte; //индексы массива
begin
i:=1; //задаем начальный индекс массива
k:=0;
…
end;
//начало основной программы
begin
…
end. //конец программы