Неверов Евгений Викторович
QR-код
Меню сайта
Категории раздела
Программирование на языке Паскаль [26]
В данной категории представлены новые функции, созданные на языке Паскаль, которые могут пригодиться при написании своих программ
Программирование на Delphi [19]
В данной категории представлены полезные подпрограммы, которые могут пригодиться при написании своих программ, а также рассматриваются примеры готовых проектов, создаваемых в среде программирования Delphi
Программирование на HTML [1]
В данной категории рассматриваются примеры готовых проектов, создаваемых на языке HTML
Мои программы [1]
Описание разработанных автором программ.
Online-программы [2]
Прочее [42]
Свободная тематика
Мини-чат
200
Наш опрос
Чем Вы занимаетесь?
Всего ответов: 57
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Принадлежность числа массиву и диапазону

1. Принадлежность числа массиву

function Affiliation(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
      begin
         Result:=true;
         Exit;
      end;
end;

где:

  • n – искомое целое число;
  • p – массив из целых чисел.

Например,

  • Affiliation(3, [1, 5, 8, 6]) выведет false;
  • Affiliation(6, [7, 6, 3]) выведет true.

Примечание. Допускается использовать не только целочисленные числа, но и вещественные (десятичные дробные), а также строковые значения. В этом случае integer заменяют на real, string:

function Affiliation(n: real; p: array of real): boolean;
function Affiliation(n: string; p: array of string): boolean;

Текст программного кода остается неизменным.


2. Принадлежность числа диапазону

function AffiliationRange(n: integer; range: string): boolean;
var i, n1, n2: integer;
    s, z: string;
begin
   Result:=false;
   for i:=Length(range) downto 1 do
      if range[i]=' ' then
         Delete(range, i, 1);
   repeat
      i:=Pos(',', range);
      if i>0 then
      begin
         s:=Copy(range, 1, i-1);
         Delete(range, 1, i);
      end else
      begin
         s:=range;
         range:='';
      end;
      if s='' then
         Exit;
      i:=Pos('-', s);
      if i>0 then
      begin
         z:=Copy(s, 1, i-1);
         n1:=StrToInt(z);
         z:=Copy(s, i+1, Length(s));
         n2:=StrToInt(z);
      end else
      begin
         n1:=StrToInt(s);
         n2:=n1;
      end;
      if (n1<=n) and (n<=n2) then
      begin
         Result:=true;
         Exit;
      end;
   until range='';
end;

где:

  • n – искомое число;
  • range – диапазон чисел.

Например,

  • AffiliationRange(6, '1,3,5-7,10') выведет true;
  • AffiliationRange(6, '3-5,7') выведет false.

Примечание. В параметре range допускается писать пробелы (например, '8, 12-15, 20').

Категория: Программирование на языке Паскаль | Добавил: newerow1989 (12.03.2016)
Просмотров: 929 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email:
Код *:
Вход на сайт
Поиск
Друзья сайта
Заработок в Интернете
Для начала необходим Электронный PAYEER® кошелек!
Copyright MyCorp © 2025
Версия для мобильных устройств. Яндекс.Метрика Анализ сайта Проверить мой сайт на ScamAdviser.com