Загрузка данных


program safe_multiply;
var
  a, b: longint;
  ok1, ok2: boolean;


function ReadLongint(var ok: boolean): longint;
var
  s: string;
  i: integer;
  num: longint;
  is_valid: boolean;
  ch: char;
begin
  readln(s);
  ok := false;
  is_valid := true;
  num := 0;
  

  if Length(s) = 0 then
    is_valid := false
  else
  begin
    for i := 1 to Length(s) do
    begin
      ch := s[i];

      if (ch < '0') or (ch > '9') then
      begin
        if (i = 1) and (ch = '-') then

        else
          is_valid := false; 
      end;
    end;
  end;


  if not is_valid then
    Exit;


  num := 0;
  for i := 1 to Length(s) do
  begin
    if s[i] = '-' then
      Continue;
    num := num * 10 + (Ord(s[i]) - Ord('0'));
  end;
  
  if s[1] = '-' then
    num := -num;

  ok := true;
  ReadLongint := num;
end;

begin

  repeat
    write('Введите первое число: ');
    a := ReadLongint(ok1);
    if not ok1 then
      writeln('Ошибка! Нужно ввести целое число. Попробуйте снова.');
  until ok1;


  repeat
    write('Введите второе число: ');
    b := ReadLongint(ok2);
    if not ok2 then
      writeln('Ошибка! Нужно ввести целое число. Попробуйте снова.');
  until ok2;


  writeln('Результат умножения: ', a * b);
end.