Вот самый короткий способ с рандомным массивом, про ввод тут не совсем понятно
//PascalABC.Net 3.1.0.1200
begin
var a := ArrRandomInteger(ReadInteger('m ='), 1, 20);
var s := a.Sum;
if s > 50 then
writeln(s)
else
Println(a);
end.
вот переделанный ваш код
//PascalABC.Net 3.1.0.1200
Uses crt;
const
nmax = 20;
var
A: array[1..nmax] of integer;
I, m, s: integer;
Am, kon: text;
begin
Clrscr;
Assign(Am, 'Am.txt');
{раскоментировать для записи массива в файл}
{Rewrite(Am);
m := Random(nmax - 5) + 5;
for i := 1 to m do
Writeln(Am, Random(20));
Close(Am);
{считывание данных из файла}
Reset(Am);
s := 0;
m := 0;
while not eof(Am) do
begin
m := m + 1;
Readln(Am, A[m]);
s := s + A[m];
end;
Close(Am);
Assign(kon, 'kon.txt');
Rewrite(kon);
if s > 50 then
Writeln('Сумма элементов массива более 50 и равна: s=', s)
Else
begin
Writeln('Сумма элементов менее 50, вывод исходного массива');
for i := 1 to m do
begin
Writeln('A[', i, ']=', A[i], ' ');
Writeln(kon, 'A[', i, ']=', A[i], ' ');
end;
end;
Close(kon);
Readkey;
end.