Дано натуральное число n (n<=99) Выяснить верно ли, что n равно кубу суммы цифр числа n.Решение с защитой от неправльного ввода и комментариями - Pascal(Паскаль)

uses CRT;

VAR
 n, n1, n2, buf: Integer;
 {n - введенное число, n1 и n2 - его цифры; buf = сохраним число}
BEGIN
 Write('Введите целое положительное число: ');
 {$I-} ReadLn(n); {$I+}
 {Выключаем на время ввода контроль операций ввода-вывода.
  В этом случае программе НЕ ЗАВЕРШИТСЯ аварийно при неправильном
  вводе (буквы, например). Только будет сгенерирован код ошибки.
  Но надолго отключать нельзя (было, под DOS). Поэтому сразу же
  вкючаем}
 if (IOResult <> 0) or (n < 0) then begin
   {Отрицательные числа тоже недопустимы}
   WriteLn('Неправильный ввод. Нажмите любую клавишу');
   ReadKey; {Ждем нажатия клавиши}
   Halt(1) {Немедленный выход из программы}
 end;
 buf := n;
 {О кодах ошибки достаточно знать одно: ноль = хорошо, не ноль = плохо}
   n1 := n mod 10; {число как остаток от деления на 10}
   n  := n div 10;
   n2 := n mod 10;
 WriteLn('Число ',buf,' состоит из цифр: ',n1,' и ',n2);
 n1 := n1 + n2;
 n1 := n1 * n1 * n1;
 Write('Верно ли, что n равно кубу суммы цифр числа n? ');
 if buf = n1 then WriteLn('ВЕРНО') else WriteLn('НЕ ВЕРНО');
 Writeln('Нажмите любую клавишу ...');
 ReadKey
END.

Leave a Comment

40 − = 38