1. Принадлежность числа массиву
function Prinadlezhit(n: integer; p: array of integer): boolean;
var i: integer;
begin
Result:=false;
For i:=Low(p) to High(p) do
If n=p[i] then
Result:=true;
end;
где
n - искомое число;
p - массив из целых чисел.
Например, Prinadlezhit(3, [1, 5, 8, 6]) выведет отрицательное значение.
Примечание. Допускается использовать не только целочисленные числа, но и вещественные (десятичные, дробные), а также строковые значения. В этом случае integer заменяют на real, string:
function Prinadlezhit(n: real; p: array of real): boolean;
Текст программного кода остается неизменным.
2. Принадлежность числа диапазону
function PrinadlezhitDiapazon(n: integer; diapazons: string): boolean;
var i, n1, n2: integer;
c: char;
s: string;
begin
Result:=false;
If diapazons='' then
Exit;
For i:=Length(diapazons) downto 1 do
If diapazons[i]=' ' then
Delete(diapazons, i, 1);
s:='';
c:=',';
n1:=1;
For i:=1 to Length(diapazons)+1 do
begin
If (i=Length(diapazons)+1) or (diapazons[i]=',') then
begin
n2:=StrToInt(s);
If c=',' then
n1:=n2;
If (n1<=n) and (n<=n2) then
begin
Result:=true;
Exit;
end;
s:='';
c:=',';
end else
If diapazons[i]='-' then
begin
n1:=StrToInt(s);
c:='-';
s:='';
end else
s:=s+diapazons[i];
end;
end;
где
n - искомое число;
diapazons - диапазон чисел.
Например, PrinadlezhitDiapazon(6, '1,3,5-7,10') выведет положительное значение; PrinadlezhitDiapazonB(6, '3-5,7') выведет отрицательное значение.
Примечание. В параметре diapazons допускается писать пробелы (например, '8, 12-15, 20').
|