Конечно, давайте разберемся, как можно создать программу на языке Паскаль, которая проверяет, является ли введенная пользователем строка палиндромом. Палиндром — это строка, которая читается одинаково слева направо и справа налево, например, "радар" или "топот".
Ниже приведен пример программы, которая выполняет эту задачу:
program CheckPalindrome;
uses
SysUtils;
function IsPalindrome(s: string): boolean;
var
i, len: Integer;
isPalin: boolean;
begin
len := Length(s);
isPalin := True;
for i := 1 to len div 2 do
begin
if s[i] s[len - i + 1] then
begin
isPalin := False;
Break;
end;
end;
IsPalindrome := isPalin;
end;
var
inputString: string;
begin
Write('Введите строку: ');
ReadLn(inputString);
if IsPalindrome(inputString) then
WriteLn('Строка является палиндромом.')
else
WriteLn('Строка не является палиндромом.');
end.
Объяснение кода:
Подключение модуля SysUtils:
SysUtils
используется для работы с строками и другими системными функциями.
Функция IsPalindrome:
- Принимает на вход строку
s
.
- Вычисляет длину строки
len
с помощью функции Length
.
- Инициализирует переменную
isPalin
как True
, предполагая, что строка является палиндромом.
- Использует цикл
for
для проверки символов с начала и конца строки. Сравнивает символы, начиная с первого и последнего, второго и предпоследнего, и так далее.
- Если находит несовпадающие символы, устанавливает
isPalin
в False
и прерывает цикл Break
.
- Возвращает
isPalin
, которая будет True
, если строка является палиндромом, и False
, если нет.
Основная программа:
- Запрашивает у пользователя ввод строки.
- Вызывает функцию
IsPalindrome
и выводит результат проверки.
Важные моменты:
- В данной программе учитывается чувствительность к регистру. Если требуется игнорировать регистр, то перед проверкой нужно преобразовать строку к одному регистру (например, используя
LowerCase
из SysUtils
).
- Программа не учитывает пробелы и знаки препинания. Если нужно игнорировать их, требуется добавить дополнительную обработку строки перед проверкой.
Эта программа демонстрирует основной подход к проверке палиндромов на языке Паскаль, используя тип CHAR
и функцию Length
для работы со строками.