Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2011, 18:13   #1
mxax
Новичок
Джуниор
 
Регистрация: 29.12.2011
Сообщений: 1
По умолчанию Работа со строками(Pascal)(не работает программа)

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

Код:
uses CRT;
LABEL m;
VAR str : string;
      c : char;
      n : integer;
BEGIN
writeln('Vvedite chislo dlinoi ne bolee 255 i nazhmite ENTER');
repeat
  c:=readkey;
  if c in ['0','1','2','3','4','5','6','7','8','9']
    then  begin
            str:=c;
            write(c);
          end
    else writeln('Eto ne zifra');
until c in ['0','1','2','3','4','5','6','7','8','9'];
n:=1;
repeat
  c:=readkey;
  if c<>#13
    then if c in ['0','1','2','3','4','5','6','7','8','9']
           then begin
                  str:=str+c;
                  writeln(c);
                  n:=n+1;
                end
           else writeln('Eto ne zifra')
    else goto m
until n<=255;
m:
for n:=1 to length(str) do
  if str[n]<>str[length(str)+1-n]
    then begin
           writeln('Chislo ne yavlyaetsya palindromom');
           readln;
           halt;
         end;
writeln('Chislo yavlyaetsya palindromom');
readln;
END.

Последний раз редактировалось mxax; 29.12.2011 в 18:19.
mxax вне форума Ответить с цитированием
Старый 29.12.2011, 18:25   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
var i:integer;str,buf:string;f:boolean;
begin
readln(str);
buf:='';f:=true;
for i:=1 to length(str) do
if not (str[i] in['0'..'9']) then begin f:=false;break;end
else buf:=str[i]+buf;
if f then begin
  if str=buf then writeln('палиндром')
else writeln('не палиндром')
end
else writeln('не число');
end.
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строками Pascal decantnik Помощь студентам 3 12.03.2011 22:46
Работа со строками. Pascal zevs116 Помощь студентам 1 19.11.2010 20:54
Работа со строками (pascal) Marlin Помощь студентам 7 03.06.2010 14:11
Работа со строками (pascal) ДиM@ Помощь студентам 3 18.04.2010 09:39
Работа со строками (Pascal) RoMaNyIL Помощь студентам 2 21.05.2009 20:39