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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2009, 21:17   #1
Nubas
 
Регистрация: 12.10.2009
Сообщений: 9
По умолчанию Палиндром. Паскаль.

Найти все простые натуральные числа, не превосходящие n, двоичная запись которых представляет собой палиндром, т.е. читается одинаково слева направо и справа налево.

Извините, но наработок или каких то идей нет. Просто не представляю как это делать.
Nubas вне форума Ответить с цитированием
Старый 12.10.2009, 21:35   #2
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

1) Перевел чилов 2-е http://www.excode.ru/art5629p5.html
2) Проверил его.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 12.10.2009, 22:41   #3
Nubas
 
Регистрация: 12.10.2009
Сообщений: 9
По умолчанию

А можно о 2м пункте поподробней?
Nubas вне форума Ответить с цитированием
Старый 12.10.2009, 22:47   #4
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Самый "лобовой" метод - перевести в строку и делать по стандартному алгоритму для строк. Фактически, мы уже будем иметь посимвольно это число (после перевода в 2ичную), поэтому ничего переводить в строку не надо. Проверка состоит в том, чтобы убедится, что при n<=length(number)/2 (тоесть для всех битов первой половины числа)
Код:
number[n]=number[length(number)-n+1];
, тоесть одинаково удаленные от краев биты равны. Если справедливо для всех битов - палиндром, иначе - не палиндром.
LeBron вне форума Ответить с цитированием
Старый 17.12.2009, 13:13   #5
@lenk@
Пользователь
 
Регистрация: 20.10.2009
Сообщений: 29
По умолчанию

Цитата:
Сообщение от LeBron Посмотреть сообщение
Самый "лобовой" метод - перевести в строку и делать по стандартному алгоритму для строк. Фактически, мы уже будем иметь посимвольно это число (после перевода в 2ичную), поэтому ничего переводить в строку не надо. Проверка состоит в том, чтобы убедится, что при n<=length(number)/2 (тоесть для всех битов первой половины числа)
Код:
number[n]=number[length(number)-n+1];
, тоесть одинаково удаленные от краев биты равны. Если справедливо для всех битов - палиндром, иначе - не палиндром.



а как решить такую задачу:
нужно написать программу проверяющую является ли данный текст фразой-палиндромом .Например фразы-палиндромы:" А роза упала на лапу Азора" и "Аргентина манит негра","Он-дивен - палиндром,и ни морд,ни лап не видно" ." попытался написать программку, но она работает только для слов палиндромов таких как "Шалаш" , а нужно для текста .целых фраз-палиндромов! проподаватель сказал что нужно строку с конца и с начала рассматривать до середины и потом сравнить. никак не могусообрзить как сделать это.
@lenk@ вне форума Ответить с цитированием
Старый 17.12.2009, 16:22   #6
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Цитата:
Сообщение от @lenk@ Посмотреть сообщение
а как решить такую задачу:
нужно написать программу проверяющую является ли данный текст фразой-палиндромом .Например фразы-палиндромы:" А роза упала на лапу Азора" и "Аргентина манит негра","Он-дивен - палиндром,и ни морд,ни лап не видно" ." попытался написать программку, но она работает только для слов палиндромов таких как "Шалаш" , а нужно для текста .целых фраз-палиндромов! проподаватель сказал что нужно строку с конца и с начала рассматривать до середины и потом сравнить. никак не могусообрзить как сделать это.
Делаем с образца новую строку, в которой остались только буквы (без пробелов, запятых и всего остального, что не виляет на "палиндромность") и проверяем ее, как обычное слово. Например, из
Цитата:
Он-дивен - палиндром,и ни морд,ни лап не видно
получится
" ондивенпалиндроминиморднилапневидно ".
LeBron вне форума Ответить с цитированием
Старый 17.12.2009, 21:23   #7
@lenk@
Пользователь
 
Регистрация: 20.10.2009
Сообщений: 29
По умолчанию

каким образом это организовать в паскале ? вы мне поможете?
@lenk@ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль, Борланд Паскаль-в чем разница??? Vremya-Dengy Паскаль, Turbo Pascal, PascalABC.NET 13 31.05.2011 18:23
Палиндром в строке semennn Помощь студентам 6 04.05.2009 23:36
Палиндром Carbon Помощь студентам 9 12.11.2007 14:32