Раздел: Стандартные функции Паскаля

Функция Low

Основы программирования 2.0 Основы программирования
Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать. Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь. Подробнее...

Функция Low в Паскале возвращает наименьший индекс открытого массива, перечисления или наименьшее значение порядкового типа. Синтаксис:

function Low(Arg : TypeOrVariable) : TOrdinal;

Значение, возвращаемое функцией Low, зависит от параметра, передаваемого в функцию:

  1. Если это порядковый тип, о функция Low возвращает наименьшее значение в диапазоне этого порядкового типа.
  2. Если это массив или переменная типа массива, то функция Low возвращает наименьший индекс массива.
  3. Если это идентификатор массива в функции или процедуре, то функция Low возвращает наименьший индекс массива, который всегда равен 0.
  4. Если это множество или перечисление, то функция Low возвращает наименьшее значение перечисления или множества, относительно начального значения данного типа.

Таким образом, функция Low является противоположностью функции High. Кстати, в переводе с английского слово Low означает “низкий”.

ВАЖНО!
Возвращаемый тип всегда совпадает с типом аргумента (это может привести к некоторым неприятным сюрпризам).

Наименьшее значение типа

Наименьшее значение стандартного типа можно получить из справочных материалов. Для таких типов, как, например, byte, это будет однозначное значение.

Однако для некоторых типов диапазон данных может зависеть от компилятора, от режима компиляции или процессора. В таких случаях как раз и может пригодиться функция Low, с помощью которой можно определить наименьшее значение типа данных в каждом конкретном случае.

Ну а сейчас пример программы, где показаны возможные применения функции Low.

program funclow;

type TEnum = (North, East, South, West);
     TRange = 14..55;
     TArray = array [2..10] of Longint;

var A   : TEnum;
    B   : TRange;
    C   : TArray;
    S   : Char;
    M   : set of TEnum;

begin
  Writeln('The minimum value of TEnum : ', Low(TEnum)); //Для типа
  Writeln('The minimum value of A : ', Low(A));         //Для переменной
  Writeln('The minimum value of M : ', Low(M));         //Для множества

  Writeln('The minimum value of TRange : ', Low(TRange)); //Для типа
  Writeln('The minimum value of B : ', Low(B));           //Для переменной

  Writeln('The minimum index of TArray : ', Low(TArray)); //Для типа
  Writeln('The minimum index of C : ', Low(C));           //Для переменной

  Writeln('The minimum value of S : ', Ord(Low(S)));
  WriteLn('Type of return value is always same as type of argument: ');
  Writeln(Low(word));         //Выведет 0
  Writeln(Low(Low(word)));    //Тоже выведет 0
  WriteLn(Low(0));            //Выведет -128 (так тоже можно,
                              //хотя и смысла в этом нет)

  //Writeln(Low(Real));        //А так нельзя, потому что тип Real
                              //не является порядковым
  Writeln(Low(Int64));        //А так можно, хотя тип Int64 тоже
                              //не является порядковым

  WriteLn('Then end. Press ENTER...');
  ReadLn;
end.

Функция Low


Как стать программистом 2.0 Как стать программистом 2.0

Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… Подробнее...
Помощь в технических вопросах Помощь в технических вопросах

Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение - ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. Подробнее...

Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика