БлогNot. Контроль правильности ввода на Паскале...

Помощь дата->рейтинг Поиск Почта RSS канал Статистика nickolay.info Домой

Контроль правильности ввода на Паскале...

Можно ли на Паскале организовать полноценную проверку правильности ввода, не только с помощью условий, но и контроль типа данных, например, чтобы программа не "вылетала" при вводе строки вместо числа?

Конечно можно, если узнать немного больше о директивах компилятора в этом языке. Работают они, по меньшей мере, в классических средах от Borland и Free Pascal.

В приведённой ниже программке функция ReadInt организует ввод целого числа с проверками правильности и соответствия типа. Такие же функции легко написать для других типов. Параметр msg - это сообщение, выводимое перед запросом на ввод числа, параметр a содержит возвращаемое процедурой значение (можно было написать и функцию), параметры min и max задают наименьшее и наибольшее допустимые значения, если min=max, то контроля на диапазон значений не делается.

uses crt;

procedure ReadInt (msg:string; var a:integer; min,max:integer);
begin
 repeat
  writeln;
  write (msg);
  if min<max then write (' [',min,',',max,']: ')
  else begin
   min:=-MAXINT; max:=MAXINT; write (':');
  end;
  {$I-}read (a);{$I+}
  if IoResult<>0 then writeln ('Неверный ввод, пожалуйста, повторите')
  else if (a<min) or (a>max) then
   writeln ('Введенное значение должно попадать в интервал [',min,',',max,']')
  else break;
 until false;
end;

var a,b:integer;
begin
 clrscr;
 ReadInt ('A',a,0,1); {Допустимы только 0 и 1}
 ReadInt ('B',b,0,0); {Допустимо любое целое число}
 writeln ('A=',a,' B=',b);
 reset (input); readkey;
end.

теги: программирование pascal

комментарии (0)

18.08.2011, 11:17; рейтинг: 10202

  свежие записипоиск по блогукомментироватьстатистика

Наверх Яндекс.Метрика
© PerS
вход