В начале программы надо написать Randomize;
вместо 3-ех while используй один for, и 3 переменные которые запоминают числа.
вот часть программы
for i:=1 to 20 do begin
if M[i]>0 then k:=k+1;
if M[i]<0 then t:=t+1;
if M[i]=0 then n:=n+1;
end;
writeln(k,'Положительные');
writeln(t,'отрицательные');
writeln(n,'Нулевые');
var x, S: longint; t:text;
begin
assign(t,'input.txt');
reset(t);
S:=0;
while not Eof(t) do
begin
read(t,x);
S:=S+x;
end;
close(t);
assign (t,'output.txt');
rewrite(t);
write(t,'Вот сумма числел из файла input.txt: ', S);
close(t);
End.
<span>В графическм редакторе PAINT открыть рисунок</span>
Файл с исходным кодом прикреплен в описании (нужно переименовать с 'Program.cs.txt', на просто 'Program.cs'), код продублирован в коментариях к ответу. Если есть вопросы - пиши в коменты.
Код полностью прокоментирован, надеюсь будет понятно.