Связь с администрацией сайта:       

demo

Среди толпы я одинок

Слова перевертыши(палиндромы)

Напишем простенькую функцию, которая будет определять, является ли введенное слово перевертышем. По-научному их называют палиндромами. К ним относятся такие слова как шалаш, казак и так далее.
 
Палиндром -  это слово или фраза, читающиеся как слева направо, так и справа налево.
На языке паскаль определить является ли слово палиндромом очень просто. Необходимо будет пару переменных и один цикл. Напишу код программы, а ниже расскажу подробнее, как она работает.
 
var SEnter,Spolindrom:string;
      i:integer;
begin
    writeln( 'Введите слово ');
    readln(SEnter); //Вводим слово
    Spolindrom:='';
    for i:=length(SEnter) downto 1 do begin
       Spolindrom:= Spolindrom + SEnter [i];
    end;
    if SEnter = Spolindrom then writeln(SEnter, ' - перевертыш')
             else  writeln(SEnter, ' - не перевертыш');
end.
 
Результат:
Введите слово
казак
казак - перевертыш
 
Теперь разберем построчно.
Переменная SEnter необходима для хранения введенного пользователем слова.
Spolindrom будет хранить перевернутое слово.
i– переменная счетчика цикла.
Далее организуем цикл от количества символов в переменной SEnter - length(SEnter), до 1. Это необходимо сделать, чтобы считывать посимвольно текстовую строку с конца.
Записываем в переменную Spolindrom каждый символ переменной SEnter[i] с конца.
Для примера, введя в SEnter слово «Паскаль», то в Spolindrom получим «ьлаксаП».
И в конце ставим условие, если введенное слово равно преобразованному слову то выдаем на экран, что слово является перевертышем, иначе нет:
if SEnter = Spolindrom then …  else …
 
Напоследок забьем всё в функцию и будем возвращать данные о полиндроме:
function polindrom(_SEnter:String):String;
var Spolindrom:string;
      i:integer;
begin
 Spolindrom:='';
    for i:=length(_SEnter) downto 1 do begin
       Spolindrom:= Spolindrom + _SEnter[i];
    end;
    if _SEnter = Spolindrom then polindrom:= _SEnter+' - перевертыш'
             else  polindrom:= _SEnter+' - не перевертыш';
end;
 
var SEnter:String;  
begin
    writeln( 'Введите слово ');
    readln(SEnter); //Вводим слово
    writeln(polindrom(SEnter));
end.
 
 
 
Rate this item
(1 Vote)
Login to post comments