Программирование с использованием строковых переменных - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Ввести с клавиатуры строку чисел. Проверить, является ли введенная строка целым числом.

Решение задачи: «Программирование с использованием строковых переменных»

textual
Листинг программы
  1. const
  2.   Alphabet = '0123456789'; // Алфавит: 0, 1, ..., 9
  3.  
  4. procedure Res(Status : Boolean);
  5. begin
  6.   if Status then
  7.     WriteLn('Введённое число является целым числом.')
  8.   else
  9.     WriteLn('Введённое число НЕ является целым числом.');
  10.   Halt;
  11. end;
  12.  
  13. begin
  14.   var S := ReadLnString('Введите строку как целое число:');
  15.  
  16.   // Учиним все возможные проверки:
  17.  
  18.   if S.Length = 0 then // Пустая строка
  19.     Res(False);
  20.    
  21.   if (S.Length = 1) and (Alphabet.IndexOf(S) > -1) then // Однозначное число
  22.     Res(True);
  23.  
  24.   var i := 1;
  25.   if (S[1] = '-') or (S[1] = '+') then // Первый символ - знак числа
  26.     i := 2;
  27.    
  28.   if S[i] = Alphabet[1] then // Строка начинается с нулевого символа
  29.     Res(False);
  30.    
  31.   repeat
  32.     i += 1;
  33.     if Alphabet.IndexOf(S[i]) < 0 then // Встечен «левый» символ
  34.       Res(False);
  35.   until i = S.Length;
  36.  
  37.   Res(True);
  38. end.

Объяснение кода листинга программы

  1. Объявлены константы:
    • Alphabet = '0123456789'; // Алфавит: 0, 1, ..., 9
  2. Объявлена процедура Res(Status : Boolean):
    • Если Status, то выводится сообщение 'Введённое число является целым числом.', иначе выводится сообщение 'Введённое число НЕ является целым числом.';
    • Вызов Halt; запрещает выполнение любого кода после неё.
  3. Ввод строки от пользователя с помощью ReadLnString('Введите строку как целое число:');
  4. Проверки на пустую строку и на однозначное число:
    • Если длина строки равна 0, то вызывается Res(False);
    • Если длина строки равна 1 и первый символ является цифрой, то вызывается Res(True);
  5. Инициализируется переменная i = 1;
    • Если второй символ строки равен '-' или '+', то i = 2;
    • Если первый символ строки равен 0, то Res(False);
  6. Цикл проверки каждого символа строки на принадлежность к алфавиту:
    • Пока i меньше длины строки,
      • Если символ не является цифрой, то вызывается Res(False);
      • i увеличивается на 1;
  7. После цикла вызывается Res(True);
  8. В конце программы вызывается Halt;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.545 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы