программа-палиндром |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
программа-палиндром |
Aisha |
Сообщение
#1
|
Группа: Пользователи Сообщений: 2 Пол: Женский Репутация: 0 |
На форуме много вопросов по написанию программ, находящих палиндромы в строке, составляющих палиндромы, находящих числа-палиндромы и т.д. У меня проблема в другом.
Задание звучит следующим образом: написать программу-палиндром. И все. Что, как объяснил преподаватель, означает написание кода программы в виде палиндрома, т. е. сам весь код программы (или построчно) должен читаться слева направо и справа налево одинаково. И эта программа должна еще и работать. Причем, не важно, ЧТО она делает, главное - она должна компилироваться. В голове не укладывается, как это может работать. Т.е. еще переменные описать можно: Program argorp ;Var rav; а что делать со словами begin и тем более end? Буду признательна за вашу помощь |
RathaR |
Сообщение
#2
|
Знаток Группа: Пользователи Сообщений: 346 Пол: Мужской Реальное имя: Иван Репутация: 7 |
бред какойто... преподаватель посмеяться решил, чтоли? Это уже не програмировать, а фигней маяться...
Темболее это невозможно, хотябы потому что зарезервированые слова таким образом ненапишешь никак... допустим если end. записать не в отдельной строке, то эта строка должна начинаться со знака ".", а в паскале нельзя ни переменные, ни процедуры, ничего описывать начиная с этого символа, и кроме записей насколько мне изестно он больше нигде не используеться... да и в этом: Program argorp тип переменной rav уже никак не описать.... Сообщение отредактировано: RathaR - -------------------- Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик! Я - системный аналитик! |
volvo |
Сообщение
#3
|
Гость |
Цитата Темболее это невозможно, хотябы потому что зарезервированые слова таким образом ненапишешь никак.. Прежде, чем так безапелляционно говорить, ты бы синтаксис Паскаля выучил, а? То, что после end-а с точкой все остальные символы компилятор игнорирует, знаешь? Тогда в чем проблема?begin write('hello') end . dne )'olleh'(etirw nigebПалиндром? Палиндром... Компилируется? Компилируется. Работает? Работает. Претензии есть? |
Lapp |
Сообщение
#4
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Похоже, это единственный способ..
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
andriano |
Сообщение
#5
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Беда в том, что утверждение "что после end-а с точкой все остальные символы компилятор игнорирует" не совсем верно. Точнее, в общем случае совсем не верно, ибо существуют компиляторы, поступающие иначе.
С другой стороны, доказательство, что задача не имеет решения по общенаучной традиции считается решением. Могу предложить решение, которое сработает как раз для компилятора, обрабатывающего текст после точки, но, увы, не для ВР. begin write('hello') end . // .dne )'olleh'(etirw nigeb В общем, не получается платформонезависимого решения. Так что второй вариант не теряет актуальности. |
volvo |
Сообщение
#6
|
Гость |
Цитата ибо существуют компиляторы, поступающие иначе. Bla-bla-bla... Плевать я хотел на нестандартные компиляторы. СТАНДАРТ языка требует, чтобы все, что идет после точки - игнорировалось. Если этого не делает твой компилятор - то выкинь его в мусорку... Досужие рассуждения о правильности написания трансляторов можешь оставить при себе... Тут раздел ПРАКТИКИ, а не ТЕОРИИ... Кстати, код, приведенный в третьем сообщении, компилируется любым распространенным компилятором. Можно узнать, каким Паскаль-компилятором он НЕ компилируется? И какой именно компилятор обрабатывает текст после точки? Или это опять "у вас у всех неправильно, только я как всегда самый умный, теоретически такое возможно и все остальное меня не волнует"? |
andriano |
Сообщение
#7
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
На конкретный вопрос - конкретный ответ: TMT Pascal.
Что же касается стандарта языка, то здесь существует некоторая неопределенность, связанная с тем, что наиболее распространенные диалекты Паскаля (т.е. BP и Delphi) сами по себе очень далеки от стандарта, описанного Н.Виртом. |
RathaR |
Сообщение
#8
|
Знаток Группа: Пользователи Сообщений: 346 Пол: Мужской Реальное имя: Иван Репутация: 7 |
Помоему искать методы решения глупой задачи - уже глупость (в чем у меня уже была возможность убедиться лично ).
З.Ы. Цитата begin write('hello') end . // .dne )'olleh'(etirw nigeb а можно ли это назвать правильным ответом, если "//" будет читаться наоборот как "\\", и скобки тоже самое, тогда надо уже вот так делать begin write('hello') end . // \\.dne ('olleh')etirw nigeb Сообщение отредактировано: RathaR - -------------------- Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик! Я - системный аналитик! |
TarasBer |
Сообщение
#9
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
З.Ы. а можно ли это назвать правильным ответом, если "//" будет читаться наоборот как "\\"? Да ладно. Вы хотите сказать, что 'd' должно читаться как 'b', 'q' как 'p'? '//' наоборот читается как '//'. По поводу этой задачи также ясно, что не существует решения, честно заканчивающегося на 'end.' - ведь тогда код должен начинаться с '.dne', что недопустимо. -------------------- |
RathaR |
Сообщение
#10
|
Знаток Группа: Пользователи Сообщений: 346 Пол: Мужской Реальное имя: Иван Репутация: 7 |
Да ладно. Вы хотите сказать, что 'd' должно читаться как 'b', 'q' как 'p'? '//' наоборот читается как '//'. нет, букв это не касаеться, они по своей природе невсегда симетричны , а вот знак скобки, слеш, или кавычки это парные символы, поэтому тотже преподаватель которому пришло в голову это задание, может истолковать его решение двояко, мол "Здесь у тебя одни скобки влево, а я когда читаю наоборот, то вижу у тебя одни правые!" -------------------- Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик! Я - системный аналитик! |
Вячеслав Л. |
Сообщение
#11
|
Бывалый Группа: Пользователи Сообщений: 227 Пол: Мужской Реальное имя: Вячеслав Репутация: 3 |
Мне тоже стало интересно, и я попробовал написать, как предлагает volvo, но программа так не работает. Или я что-то сделал не так?
Код program gf; begin write('hello') end. .dne )'olleh'(etirw nigeb ;fg margorp Появляется "Ошибка:лишние символы после конца текста программы" -------------------- Само знание есть сила
|
Lapp |
Сообщение
#12
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Появляется "Ошибка:лишние символы после конца текста программы" Какой у тебя компилятор?-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Вячеслав Л. |
Сообщение
#13
|
Бывалый Группа: Пользователи Сообщений: 227 Пол: Мужской Реальное имя: Вячеслав Репутация: 3 |
Цитата Какой у тебя компилятор? Скажи пожалуйста, что это? -------------------- Само знание есть сила
|
Lapp |
Сообщение
#14
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Скажи пожалуйста, что это? Компилятор - это программа, которая делает рабочую программу из паскалевского текста. Часто он бывает вставлен в т.н. "среду разработки" (IDE). Это есть редактор, компилятор, библиотеки и отладчик в одном флаконе, как говорится. Кроме Turbo Pascal, есть также Free Pascal, ABC Pascal и т.п.Что ты запускаешь, когда собираешься программировать? -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Вячеслав Л. |
Сообщение
#15
|
Бывалый Группа: Пользователи Сообщений: 227 Пол: Мужской Реальное имя: Вячеслав Репутация: 3 |
Запускаю Pascal ABC
-------------------- Само знание есть сила
|
Lapp |
Сообщение
#16
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Из этого следует, что компилятор Pascal ABC не поддерживает стандарта Pascal. Так как в стандарте (как уже сказал volvo) есть требование прекращения компиляции после последней точки. Оставим это на совести разработчиков..
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Aisha |
Сообщение
#17
|
Группа: Пользователи Сообщений: 2 Пол: Женский Репутация: 0 |
volvo
спасибо за идею Lapp, Вячеслав Людской главное, что у меня в Turbo работает Rathar, TarasBer препод, слава те Господи, в такие дебри не полез Всем-всем, кто проявил интерес, большущее спасибо |
Lapp |
Сообщение
#18
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Текстовая версия | 23.12.2024 19:32 |