Си :: Узкий Hello World

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...

Длина наидлиннейшей строки кода в символах

Опрос закончился 06.09.2012 (Чт) 17:24

1
0
Ответы отсутствуют.
2
1
33%
4
0
Ответы отсутствуют.
8
0
Ответы отсутствуют.
16
1
33%
Другой ответ
1
33%
 
Всего голосов : 3

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Си :: Узкий Hello World

Сообщение Qwertiy » 30.08.2012 (Чт) 17:24

Если на Си написать программу, выводящую "Hello World", так, чтобы самая длинная строка кода была как можно короче, то чему будет равна длина этой строки? А можно ли при этом сделать все строки равной длины так, чтобы никакой единичный символ нельзя было удалить? Программа должна возвращать значение 0, если вывод был успешно выполнен.

Голосование продлится неделю. Изменять свой ответ нельзя. Код и принципы его написания прошу не называть до окончания голосования. На дополнительный вопрос отвечаем просто в теме (по желанию, естественно).

PS: Хотел разместить в разделе по Си++, но там нет возможности добавить голосование...
Последний раз редактировалось Qwertiy 30.08.2012 (Чт) 17:46, всего редактировалось 1 раз.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Си :: Узкий Hello World

Сообщение Хакер » 30.08.2012 (Чт) 17:26

Вообще непонятно.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 30.08.2012 (Чт) 17:28

Хакер писал(а):Вообще непонятно.

Что именно непонятно?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Си :: Узкий Hello World

Сообщение Хакер » 30.08.2012 (Чт) 17:41

В чём задача? Написать код, состоящий из строк, такой, чтобы из всех строк, самая длинная была рекордно короткой?
Имеется в виду строка как стоковая константа или строка как последовательность символов исходника, ограниченная символами перевода строки и границами файла? Какие ограничения на используемый подход?
Почему среди вариантов ответов только степени двойки? Я, например, хочу ответить «3».

Ну и т.п.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Си :: Узкий Hello World

Сообщение Хакер » 30.08.2012 (Чт) 17:45

А ещё есть люди, которые с привеликим удовольствием путают Си и Си++. Это не тот ли случай? Имелся в виду именно Си без плюсов?

А ещё огромное значение имеют ключи вызова компилятора. А ещё компилятор порожаёт объектный файл, который сам по себе неработоспособен. Чтобы он стал работоспособным, его нужно с чем-то слинковать и получить исполняемый файл под конкретную ОС. Либо нужно указать, слинковывание с чем подразумевается, либо надо указать, что слинковывание не подразумевается, а значит подразумевается генерация абсолютно неработоспособного obj-файла.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 30.08.2012 (Чт) 17:53

Хакер писал(а):Написать код, состоящий из строк, такой, чтобы из всех строк, самая длинная была рекордно короткой?

Да.

Хакер писал(а):Имеется в виду строка как стоковая константа или строка как последовательность символов исходника, ограниченная символами перевода строки и границами файла?

Как последовательность символов исходника.

Хакер писал(а):Почему среди вариантов ответов только степени двойки?

А почему бы нет?

Хакер писал(а):Я, например, хочу ответить «3».

Добавил вариант "Другой ответ".

Хакер писал(а):А ещё есть люди, которые с привеликим удовольствием путают Си и Си++. Это не тот ли случай? Имелся в виду именно Си без плюсов?

Ответ на оба вопроса одинаков для обоих языков. Потом расскажешь, что именно тебе захотелось использовать из Си++ :)

Хакер писал(а):А ещё огромное значение имеют ключи вызова компилятора. А ещё ...

Подразумеваются написание обычной программы и её компиляция в соответствии со стандартами языка.
Единственная причина, по которой сказано, что должна делать программа - для того, чтобы показать, что её можно написать без использования [не скажу чего], приводящего к увеличению максимальной длины строки.
Гарантированно работает в VS2010 и на сайте http://codepad.org при выбранных языках Си и Си++.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 30.08.2012 (Чт) 18:19

Хакер писал(а):Какие ограничения на используемый подход?

Никаких. Ограничения только для второго вопроса.

Qwertiy писал(а):Единственная причина, по которой сказано, что должна делать программа - для того, чтобы показать, что её можно написать без использования [не скажу чего], приводящего к увеличению максимальной длины строки.

Хм... Оказывается, даже в случае наличия этого ответ не меняется. Странно.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Си :: Узкий Hello World

Сообщение Хакер » 30.08.2012 (Чт) 18:40

Ты живёшь илюзией дотнет-мира.

Qwertiy писал(а):Подразумеваются написание обычной программы и её компиляция в соответствии со стандартами языка.

Нет ничего в мире обычного. Устал уже объяснять. И уж тем более нет никакой компиляции в соответствии со стандартными. Есть куча разных компиляторов для Си/Си++. Во-первых ни один из низ не может быть поставлен превыше прочих. У всех разные фичи компиляции есть. И в конце-концов, ЕЩЁ РАЗ ПОВТОРЯЮ один только компилятор не может сделать работоспособную программу. Если предполагается использование исключительно компилятора без линкера, работоспособной пограммы не будет. А раз не будет, не важно вообще какой код там будет. Хоть никакого — в любом случае программы не получить.

Ладно, мой ответ — 2.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 30.08.2012 (Чт) 18:58

Хакер писал(а):Нет ничего в мире обычного. Устал уже объяснять.

В чём смысл давать ссылку, которую нельзя посмотреть?

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 02.09.2012 (Вс) 11:55

Что-то мало ответов... Кстати, при выборе "Другой ответ", стоит написать, какой :) А второй вопрос вообще без внимания остаётся как-то :(

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Си :: Узкий Hello World

Сообщение Хакер » 02.09.2012 (Вс) 11:57

Qwertiy писал(а):А можно ли при этом сделать все строки равной длины так, чтобы никакой единичный символ нельзя было удалить?

Да, да.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 07.09.2012 (Пт) 22:23

Я думал, больше людей выскажут какое-то мнение...
Ладно, правильный ответ 2 и да. Если кто-то хочет высказать какие-то мысли, давайте.
Потом приведу код.

В качестве подсказки: то, что надо использовать, чаще всего применяется в макросах.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Си :: Узкий Hello World

Сообщение iGrok » 07.09.2012 (Пт) 23:14

Ну да, 2. И да, можно. И, в принципе, не только hello world так написать можно, а всё, что угодно, если я правильно понимаю суть происходящего.
label:
cli
jmp label

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 08.09.2012 (Сб) 11:23

iGrok писал(а):Ну да, 2. И да, можно.

Что же тогда не голосовал? :)

iGrok писал(а):И, в принципе, не только hello world так написать можно, а всё, что угодно

Про 2 символа - похоже, что да. Вообще, я думал, что esc-последовательности нельзя, но, видимо, тоже можно.
А вот про прямоугольник - скорее всего, можно сделать идентичный код, который так записывается, но записать так любой код нельзя из-за моего ограничения на невозможность удаления единичного символа.


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 2

    TopList  
cron