Программирование с использованием строковых переменных - PascalABC.NET
Формулировка задачи:
Ввести с клавиатуры строку чисел. Проверить, является ли введенная строка целым числом.
Решение задачи: «Программирование с использованием строковых переменных»
textual
Листинг программы
- const
- Alphabet = '0123456789'; // Алфавит: 0, 1, ..., 9
- procedure Res(Status : Boolean);
- begin
- if Status then
- WriteLn('Введённое число является целым числом.')
- else
- WriteLn('Введённое число НЕ является целым числом.');
- Halt;
- end;
- begin
- var S := ReadLnString('Введите строку как целое число:');
- // Учиним все возможные проверки:
- if S.Length = 0 then // Пустая строка
- Res(False);
- if (S.Length = 1) and (Alphabet.IndexOf(S) > -1) then // Однозначное число
- Res(True);
- var i := 1;
- if (S[1] = '-') or (S[1] = '+') then // Первый символ - знак числа
- i := 2;
- if S[i] = Alphabet[1] then // Строка начинается с нулевого символа
- Res(False);
- repeat
- i += 1;
- if Alphabet.IndexOf(S[i]) < 0 then // Встечен «левый» символ
- Res(False);
- until i = S.Length;
- Res(True);
- end.
Объяснение кода листинга программы
- Объявлены константы:
- Alphabet = '0123456789'; // Алфавит: 0, 1, ..., 9
- Объявлена процедура Res(Status : Boolean):
- Если Status, то выводится сообщение 'Введённое число является целым числом.', иначе выводится сообщение 'Введённое число НЕ является целым числом.';
- Вызов Halt; запрещает выполнение любого кода после неё.
- Ввод строки от пользователя с помощью ReadLnString('Введите строку как целое число:');
- Проверки на пустую строку и на однозначное число:
- Если длина строки равна 0, то вызывается Res(False);
- Если длина строки равна 1 и первый символ является цифрой, то вызывается Res(True);
- Инициализируется переменная i = 1;
- Если второй символ строки равен '-' или '+', то i = 2;
- Если первый символ строки равен 0, то Res(False);
- Цикл проверки каждого символа строки на принадлежность к алфавиту:
- Пока i меньше длины строки,
- Если символ не является цифрой, то вызывается Res(False);
- i увеличивается на 1;
- Пока i меньше длины строки,
- После цикла вызывается Res(True);
- В конце программы вызывается Halt;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д