IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> программа-палиндром
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Женский

Репутация: -  0  +


На форуме много вопросов по написанию программ, находящих палиндромы в строке, составляющих палиндромы, находящих числа-палиндромы и т.д. У меня проблема в другом.
Задание звучит следующим образом: написать программу-палиндром. И все. Что, как объяснил преподаватель, означает написание кода программы в виде палиндрома, т. е. сам весь код программы (или построчно) должен читаться слева направо и справа налево одинаково. И эта программа должна еще и работать. mega_chok.gif Причем, не важно, ЧТО она делает, главное - она должна компилироваться. В голове не укладывается, как это может работать. Т.е. еще переменные описать можно:
Program argorp
;Var rav;
а что делать со словами begin и тем более end? unsure.gif

Буду признательна за вашу помощь smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 346
Пол: Мужской
Реальное имя: Иван

Репутация: -  7  +


бред какойто... преподаватель посмеяться решил, чтоли? Это уже не програмировать, а фигней маяться...
Темболее это невозможно, хотябы потому что зарезервированые слова таким образом ненапишешь никак...
допустим если end. записать не в отдельной строке, то эта строка должна начинаться со знака ".", а в паскале нельзя ни переменные, ни процедуры, ничего описывать начиная с этого символа, и кроме записей насколько мне изестно он больше нигде не используеться...
да и в этом:
Program argorp
;Var rav;

тип переменной rav уже никак не описать....

Сообщение отредактировано: RathaR -


--------------------
Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик!
Я - системный аналитик!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата
Темболее это невозможно, хотябы потому что зарезервированые слова таким образом ненапишешь никак..
Прежде, чем так безапелляционно говорить, ты бы синтаксис Паскаля выучил, а? То, что после end-а с точкой все остальные символы компилятор игнорирует, знаешь? Тогда в чем проблема?
begin write('hello') end . dne )'olleh'(etirw nigeb
Палиндром? Палиндром... Компилируется? Компилируется. Работает? Работает. Претензии есть?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Похоже, это единственный способ..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Беда в том, что утверждение "что после end-а с точкой все остальные символы компилятор игнорирует" не совсем верно. Точнее, в общем случае совсем не верно, ибо существуют компиляторы, поступающие иначе.
С другой стороны, доказательство, что задача не имеет решения по общенаучной традиции считается решением.
Могу предложить решение, которое сработает как раз для компилятора, обрабатывающего текст после точки, но, увы, не для ВР.
begin write('hello') end . // .dne )'olleh'(etirw nigeb

В общем, не получается платформонезависимого решения. Так что второй вариант не теряет актуальности.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата
ибо существуют компиляторы, поступающие иначе.
Bla-bla-bla... Плевать я хотел на нестандартные компиляторы. СТАНДАРТ языка требует, чтобы все, что идет после точки - игнорировалось. Если этого не делает твой компилятор - то выкинь его в мусорку... Досужие рассуждения о правильности написания трансляторов можешь оставить при себе... Тут раздел ПРАКТИКИ, а не ТЕОРИИ...

Кстати, код, приведенный в третьем сообщении, компилируется любым распространенным компилятором. Можно узнать, каким Паскаль-компилятором он НЕ компилируется? И какой именно компилятор обрабатывает текст после точки? Или это опять "у вас у всех неправильно, только я как всегда самый умный, теоретически такое возможно и все остальное меня не волнует"?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


На конкретный вопрос - конкретный ответ: TMT Pascal.
Что же касается стандарта языка, то здесь существует некоторая неопределенность, связанная с тем, что наиболее распространенные диалекты Паскаля (т.е. BP и Delphi) сами по себе очень далеки от стандарта, описанного Н.Виртом.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Знаток
****

Группа: Пользователи
Сообщений: 346
Пол: Мужской
Реальное имя: Иван

Репутация: -  7  +


Помоему искать методы решения глупой задачи - уже глупость (в чем у меня уже была возможность убедиться лично smile.gif ).

З.Ы.
Цитата
begin write('hello') end . // .dne )'olleh'(etirw nigeb

а можно ли это назвать правильным ответом, если "//" будет читаться наоборот как "\\", и скобки тоже самое, тогда надо уже вот так делать smile.gif
begin write('hello') end . // \\.dne ('olleh')etirw nigeb


Сообщение отредактировано: RathaR -


--------------------
Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик!
Я - системный аналитик!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Цитата(RathaR @ 27.09.2009 13:39) *

З.Ы.
а можно ли это назвать правильным ответом, если "//" будет читаться наоборот как "\\"?


Да ладно. Вы хотите сказать, что 'd' должно читаться как 'b', 'q' как 'p'? '//' наоборот читается как '//'.

По поводу этой задачи также ясно, что не существует решения, честно заканчивающегося на 'end.' - ведь тогда код должен начинаться с '.dne', что недопустимо.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Знаток
****

Группа: Пользователи
Сообщений: 346
Пол: Мужской
Реальное имя: Иван

Репутация: -  7  +


Цитата(TarasBer @ 27.09.2009 13:36) *

Да ладно. Вы хотите сказать, что 'd' должно читаться как 'b', 'q' как 'p'? '//' наоборот читается как '//'.

нет, букв это не касаеться, они по своей природе невсегда симетричны smile.gif , а вот знак скобки, слеш, или кавычки это парные символы, поэтому тотже преподаватель которому пришло в голову это задание, может истолковать его решение двояко, мол "Здесь у тебя одни скобки влево, а я когда читаю наоборот, то вижу у тебя одни правые!"


--------------------
Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик!
Я - системный аналитик!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Бывалый
***

Группа: Пользователи
Сообщений: 227
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  3  +


Мне тоже стало интересно, и я попробовал написать, как предлагает volvo, но программа так не работает. Или я что-то сделал не так?

Код
program gf;
begin
write('hello')
end.
.dne
)'olleh'(etirw
nigeb
;fg margorp


Появляется "Ошибка:лишние символы после конца текста программы"


--------------------
Само знание есть сила
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Вячеслав Людской @ 28.09.2009 14:26) *
Появляется "Ошибка:лишние символы после конца текста программы"
Какой у тебя компилятор?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Бывалый
***

Группа: Пользователи
Сообщений: 227
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  3  +


Цитата
Какой у тебя компилятор?


Скажи пожалуйста, что это?


--------------------
Само знание есть сила
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Вячеслав Людской @ 28.09.2009 14:58) *
Скажи пожалуйста, что это?
Компилятор - это программа, которая делает рабочую программу из паскалевского текста. Часто он бывает вставлен в т.н. "среду разработки" (IDE). Это есть редактор, компилятор, библиотеки и отладчик в одном флаконе, как говорится. Кроме Turbo Pascal, есть также Free Pascal, ABC Pascal и т.п.

Что ты запускаешь, когда собираешься программировать?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Бывалый
***

Группа: Пользователи
Сообщений: 227
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  3  +


Запускаю Pascal ABC


--------------------
Само знание есть сила
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Из этого следует, что компилятор Pascal ABC не поддерживает стандарта Pascal. Так как в стандарте (как уже сказал volvo) есть требование прекращения компиляции после последней точки. Оставим это на совести разработчиков..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17





Группа: Пользователи
Сообщений: 2
Пол: Женский

Репутация: -  0  +


volvo
спасибо за идею good.gif

Lapp, Вячеслав Людской
главное, что у меня в Turbo работает wink.gif

Rathar, TarasBer
препод, слава те Господи, в такие дебри не полез

Всем-всем, кто проявил интерес, большущее спасибо smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Aisha @ 14.10.2009 15:19) *
volvo
спасибо за идею good.gif
volvo +1
Думаю, она это имела в виду)).


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 23.04.2024 21:28
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name