Если шаг не задан явно, значит он равен 1.
// PascalABC.NET 3.1, сборка 1218 от 12.04.2016
begin
var a:=ArrRandom(30,-5,50); a.Println;
Writeln('k=',a.Where(x->x<0).Count)
end.
<u><em>Тестовое решение:</em></u>
24 39 36 2 -3 -3 29 32 24 -3 11 14 17 -4 -1 13 13 36 24 49 41 27 17 20 24 32 36 -2 -1 7
k=7
Var
m,n,s,p:integer;
Begin
read(m,n,s);
p:= (s mod 10) + (s div 100 mod 10); {p сумма цифр}
If (p mod m = 0) and (p mod n = 0) then
writeln('Числа ',m,' и ',n,' являются делителями числа ',p)
else
writeln('Числа ',m,' и ',n,' не являются делителями числа ',p);
end.
Объяснение из скобок можешь убрать
Var a,b,i,nod:integer
Begin
a:=-1;
b:=-1;
//ввод первого числа
Writeln('Введите первое число');
While a<0 do
begin
readln(a);
if a<0 then writeln('Ввод ошибочен, повторите ввод первого числа');
end;
//ввод второго числа
Writeln('Введите второе число');
While b<0 do
begin
readln(b);
if b<0 then writeln('Ввод ошибочен, повторите ввод второго числа');
end;
//определение минимального числа
if a>b then i:=b else i:=a;
//перебор чисел от минимального до 0 (т.к. НОД не может быть больше минимального числа)
While nod=0 do
begin
i:=i-1;
if (a mod i = 0) and (b mod i = 0) then nod:=i;
end;
//вывод НОД
Writeln('НОД ', a,' и ', b, ' = ', nod);
end.
program z1;
var
i,k:integer;
begin
k:=0;
i:=0;
while i <> 10 do begin
dec (k);
if (abs (k) mod 2 =1 ) and (k < 0) then
begin
writeln (k);
inc (i);
end;
end;
end.