Дано число является ли оно палиндромом в Pascal. Если можно с объяснением каждого шага.

0 голосов
94 просмотров

Дано число является ли оно палиндромом в Pascal. Если можно с объяснением каждого шага.


Информатика (263 баллов) | 94 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

//Pascal ABC.NET Версия 2.2 Сборка 790
var s:string;
i,s1:integer;
begin;
readln(s1);  //вводим число
str(s1,s);
for i:=1 to length(s) div 2+length(s) mod 2 do
{цикл от начала и до середины/центра в зависимости от чётности}
begin;
   if s[i]<>s[length(s)+1-i] then
{если 1 символ не равен последнему, второй-предпоследнему и т.д.}
   begin;
        writeln('Не палиндром');
        exit; //если это условие хоть раз верно-программа завершается
   end;
end;
writeln('Палиндром'); //если условие не разу не оказалось верным
end.

Пример ввода:
121
Пример вывода:
Палиндром

(38.6k баллов)
0

Между "дано число" и "дана строка цифр" есть разница... Вы не находите?

0

В данном случае и данном задании, не нахожу.

0

А если это задача часть большой задачи по расчёту значений целочисленного массива, в котором и нужно определить палиндромы? В условии чётко указано - дано число, а не строка.

0

После "а если" обычно начинаются знатные дискуссии в комментариях. Если Вы так жаждите ввода числа, используйте inttostr().

0

ну тут возникает еще одно 'если', указанная Вами функция присуща не всем диалектам языка Паскаль... в отличии от функции STR

0

Наслаждайтесь val()

0

)) это обратное преобразование VAL тут не нужен

0

Я понимаю, что Ваш метод может быть в итоге не принципиален в рамках конкретной задачи.... но я за то, чтобы решать именно в рамках поставленных условий.

0

Думаю, вопрос исчерпан. Останемся при своих мнениях и завершим.

0 голосов
(5.1k баллов)
0
0

можно подробно объяснить

0

в этом куске кода ищется порядок (сотня, тысяча и т.п.), соответствующий заданному числу и используется для получения его первой цифры. Например для 1234 порядком будет 1000 - целочисленно поделив 1234 на 1000 - получим его первую цифру "1". А дальше идёт рекурсивный способ проверки равенства первой и последней цифры.