Ответ на Ваш вопрос простой: никак!
В языке Паскаль есть так называемый диапазонный тип. Он реализуется, как "вырезка" части диапазона базового типа. Например, если базовый тип целочисленный, можно вырезать из него числа в диазахоне "от" и "до".
Например, описание k: -10..10 означает, что k целочисленное и может изменять от -10 до 10. Целочисленное оно потому, что константы -10 и 10 в PascalABC.NET имеют тип integer. Проблема же состоит в том, что в PascalABC.NET контроль за выходом значения переменной за отведенные границы всего лишь... отсутствует! Т.е. описание k: -10..10 - это просто "хотелка". И Вы можете продолжать этого хотеть. Может быть, Вы подумали, что это PascalABC.NET такой плохой язык? Спешу разочаровать: так ведут себя все диалекты Паскаля. Дело в том. что проверка границ диапазона фактически должна делаться при каждой машинной операции с участием переменной диапазонного типа. И это настолько замедляет программу, что такая проверка, даже если она предусмотрена в конкретном компиляторе, по умолчанию выключена. Более того, оказывается, что гораздо проще проверять выход за границы диапазона напрямую в программе!
Что касается переменной типа real - с ней еще хуже: ее даже нельзя объявить в диапазонном типе, поскольку тип real не является порядковым.
Как итог: проверяем if (k>=-10) and (k<=10) then <все хорошо>.
Можно воспользоваться вариантом if k.Between(-10,10) then ...
Between работает и с real: if r.Between(3.4,15.063) then ...
===== PascalABC.NET =====
begin
var q := new Queue<integer>(SeqRandom(10, -99, 99));
q.Println;
q.Enqueue(q.Take(5).Sum);
q.Println;
end.
обозначим счетчики переменными kp(+) и km(-), так же возьмем переменную j:integer для осуществления цикла, так же необходим сам массив пусть будет a:array[1..20] of integer, содержит 20 элементов целого типа, приступим к набору программы.
var
j,km,kp:integer;
a:array[1..20] of integer;
begin
km:=0;kp:=0; {обнулим счетчики}
randomize; {запустим службу генерирования случайных чисел}
for j:=1 to 20 do
begin
a[j]:=random(100)-50; {заполним массив случайными числами}
writeln(' a[',j,']= ',a[j]); {напечатаем его}
end;
{далее перейдем к поиску элементов}
for j := 1 to 20 do
begin
if a[j]<0 then km:=km+1;
if a[j]>0 then kp:=kp+1;
end;
write('pologitel''nix: ',kp,'otricatel''nix: ',km);
readln;
end.
-------- шаг вперед значит 1 метр нарисуй отрезок прыжок проведи прямую наверх поворот значит окружность;)