Согласие на обработку персональных данных.



13.08.2017
Новая статья Стандарт C++: общие сведения.

06.08.2017
Новое видео Динамические массивы.

23.06.2017
Новые видео и статья Русский язык в консольных приложениях Lazarus.

22.07.2017
Новое видео Очередь.

19.06.2017
Новая задача Найти максимальное отрицательное число.

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

Процедура Halt

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

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

Процедура Halt в Паскале останавливает выполнение программы. Синтаксис:

procedure Halt(ErrNum : Longint);   

procedure Halt;

Процедура Halt останавливает выполнение программы и возвращает управление вызвавшей эту программу программе.

В процедуру Halt можно (но не обязательно) передать параметр ErrNum. В этом случае значение этого параметра будет возвращено в вызвавшую программу. Если ErrNum не указан, то будет возвращён 0.

Чем отличается Halt от Exit

Мы уже изучили процедуру Exit, которая выполняет похожее действие.

Похожее, но не точно такое же!

Так чем же эти процедуры отличаются?

А тем, что процедура Exit выполняет выход из программы только в том случае, если она вызывается непосредственно в теле программы. Если же она вызывается из подпрограммы, то выполняется выход из подпрограммы, но программа продолжает работу.

А процедура Halt завершает программу в любом случае, независимо от того, откуда её вызвали - из программы или из подпрограммы:

function XLess10(x : byte) : boolean;
begin
  Halt;  //Программа будет остановлена
end;  

function XLess10(x : byte) : boolean;
begin
  Exit;  //Будет выполнен выход из функции 
         //и возврат в программу,
         //то есть программа продолжит работать
end;

Пример программы, где используется процедура Halt, показан ниже:

program haltproc;

//****************************************************************
// Функция возвращает TRUE, если х меньше 10, иначе возвращает FALSE
//****************************************************************
function XLess10(x : byte) : boolean;
begin
  Result := FALSE;
  if x >= 10 then Halt;  //Если х >= 10, то выйти из программы
  Result := TRUE;        //и не выполнять этот код
end;

var N : byte;
    Z : single;

begin
  Write('N = ');
  ReadLn(N);
  if XLess10(N) then WriteLn('N < 10')
  else                   //Этот код уже не будет выполнен,
    WriteLn('N >= 10');  //если N >= 10
  ReadLn;
end.

Директивы компилятора Директивы компилятора
Как это ни странно, но даже многие опытные программисты не используют директивы компилятора, считая их чем-то ненужным и бесполезным. А между тем, директивы компилятора - это очень классная штука. Если их умело применять в своих программах, то можно существенно сократить время на разработку и уменьшить количество рутинных операций. Подробнее...
Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

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