Помощь - Поиск - Пользователи - Календарь
Полная версия: Написал тут...
Форум «Всё о Паскале» > Другое > Свободное общение
lFOXl
У вас есть возможность посмотреть)

Захотелось что-то написать на скорую руку.. вот ничего больше в л=голову не пришло)
Выводит на экран надпись в стиле ANSCII-art =)

Исполняемый файл удален (Правила, п.9)
Lapp

Прикрепляю исходник.
sheka
Цитата(lFOXl @ 27.08.2009 15:47) *

У вас есть возможность посмотреть)
Ну я и сам сколько угодно могу таких написать. Вот одна из них
begin end.
Безполезней біть не может. разве что вреднее.
tank.gif а вдруг там какой нибудь вирус???
RathaR
Цитата
У вас есть возможность посмотреть)

Офигенно заманчивое предложение, но боюсь что оно мало кого заинтерисует...
Даже "самая бесполезная программа" должна нести перед собой хоть какоето описание, а иначе не интересно и безсмысленно - "кому кота в мешке?" а может попугая, или трояна...
Судя по кол-ву закачек дураков нет... хотя могло ли быть иначе? nea.gif

З.Ы. Sheka взял бы прогу в теги кода good.gif
Unconnected
А я скачал, даже запустил (посмотрел , вроде ни с чем не склеена\закриптована), программа рисует симпатичную надпись. 8 кб - ассемблер, видимо?
lFOXl
Какие все не доверчивые) Я не говорю, что опасаться не стоит, но в таких случаях я полагаюсь на антивирус, который завоет раньше, чем я докачаю файл, если там будет вирус) а вообще RAR сам по себе не исполняеться, т\е даже если бы был склеен - его бы запросто можно было бы проверит раз сто, на том же virustotal)

Unconnected немного не понял вопрос =) программу писал не на ассемблере, на паскале)
Unconnected
Цитата
Какие все не доверчивые)


Какие вы наивные) Ага, антивирус, вот напишу я программу, отсылающую пароли от квипа мне на E-mail, и ни один антивирус даже не пикнет. Потому что сигнатур нету у него моей программы, а эвристически плохого кода он не находит. И разнообразные крипторы имеются, полиморфные в том числе.



Lapp
lFOXl, пожалуйста, уважай Правила Форума - они для всех участников.
Файл удален.
SKVOZNJAK
Цитата(lFOXl @ 27.08.2009 12:47) *

Захотелось что-то написать на скорую руку.. вот ничего больше в л=голову не пришло)


Мне вот пришло, да пока лень, как приспичит, обязательно напишу консольный переводчик с русского на русский lol.gif Реально полезная программа для некоторых продвинутых сайтов. К примеру, захожу через линукс, родная кодировка UTF8, на www.litportal.ru, пишу в поисковике лукьяненко, а мне отвечают:
Код
Вы искали: "МХЛШСОЕОЛП"


ПО ВАШЕМУ ЗАПРОСУ НИЧЕГО НЕ НАЙДЕНО

А так, введу в консоль слово, переводчик выдаст абракадабру которую сайт определит как имя писателя. Например, для поиска буквы "Й" нужно вводить в окно "и".
renesko1
Я тогда удержался, но теперь не могу smile.gif
Сколько goto. Специально ?
lFOXl
чесно - нет) я знаю паскаль на очень низком уровне. изучал его буквально три месяца.
Что плохого в goto?
renesko1
Заметил, что писать if then очень скучно smile.gif
Используй в таких случаях case.
**
Pascal позволяет решить любую задачу без goto. // скорее всего
А Goto плохо тем, что запутывает программу для понимания. ((Хотя в данной ситуации тебе достаточно прибавлять 1 к твоему random цвету))
**
подумай, как переписать программу без goto и с одной числовой переменной для цвета. smile.gif
Ну, или с массивом, где каждая ячейка хранит цвет.
SKVOZNJAK
Цитата

Pascal позволяет решить любую задачу без goto. // скорее всего


Ну да, позволяет, но какой ценой. Специально для проверки данного тезиса ограничил использование гото в одной длиннющей функции. А когда где-то через год стал вносить в исходник изменения, оказалось что там где из кода искусственно исключён этот оператор, код модернизируется дубово. А переписывать каждый раз весь блок заново - пусть этим профессионалы в MS занимаются, им за это платят. Идеальный код пишется раз и на столетия, а потом только корректируется smile.gif
Lapp
Цитата(SKVOZNJAK @ 29.09.2009 4:15) *
Ну да, позволяет, но какой ценой.
Сколько писал на Паскале - ни разу не использовал GoTo вообще. В опциях он всегда отключен. Помнится. на заре были позывы воспользоваться им, и казалось, что так лучше. Но при более тщательном рассмотрении всегда оказывалось, что лучше не надо. При этом код выигрывал во всем: в читабельности, экономичности, скорости.. Возможно, в редких случаях это приводит к увеличению кода - но очень незначительному и не в ущерб красоте.
andriano
Угу.
Я вот тоже на Паскале не использовать GOTO ни разу (разве что j* в ассемблерных вставках).
Последнее время даже на Фортране его не использую.
SKVOZNJAK
Цитата(Lapp @ 29.09.2009 9:01) *

Возможно, в редких случаях это приводит к увеличению кода - но очень незначительному и не в ущерб красоте.


Приходилось ковыряться в больших сишных исходниках (с языком пока не дружу, так, подрезать код чуток чтобы компиляция пошла) - не из любопытства, а просто в техническом описании говорилось: хотите знать больше опций командной строки, смотрите исходники. Там кода не видно, набор процедур и функций почти без смысла, сплошное дробление на мелкие фрагменты разбросанные по разным файлам в разных каталогах. Причём файлов с одинаковым названием часто несколько штук и они разные smile.gif Компилятор при сборке путём сложных манипуляций выбирает нужные. Если выбрал не те - неудачная сборка, ошибки. Чтобы что-то найти, нужно из поисковика не вылезать. И хорошо если при сборке не используются посторонние исходники хранящиеся не в проекте а в системе. Зато никаких крупных блоков плохо реализуемых без GOTO. Спасибо, полазил по таким джунглям в погоне за знаниями, на память не надеюсь и в своём исходнике через несколько лет заблудиться не хочу. В компиляторе FPC такая же система, потому некоторыми модулями народ не может пользоваться - исходник не осилил, а описания даже кривого не существует. Не так много лет компилятору а столько в нём потерянной информации. По мне, лучше б там было меньше дробления и куча кривого неупорядоченного описания сваленного в кучу и зазипованного. Сама по себе абстрактная красота кода как-то не греет.
andriano
Возвращаясь к топику:
Как-то пришлось писать Паскаль-программу, которая генерировала бы Паскаль-исходники, удовлетворяющие некоторым условиям. Вот эти сгенерироанные исходники и можно было бы считать самой бесполезной программой, т.к. никакой полезной работы они в самом деле не делали, зато имели объем, исчисляемый десятками тысяч строк.

А нужно было это для отправки баг-репонта разработчику TMT Pascаl, версия 2.* которого падала, если ей пытались скармливать исходнокт достаточно большого объема. Притом на исходниках в несколько сотен или даже тысяч строк такого эффекта не наблюдалось. Вот эта "бесполезная" программа и послужила доказательством, что "валится" компилятор именно под влиянием объема, а не какой-то хитрой (или ошибочной) структуры компилируемой программы.

Так что и "бесполезные" программы иногда на что-то годятся.
SKVOZNJAK
Знакомая система smile.gif В BP7 от таких программ тоже польза была, практическая. Но лучше было использовать поменьше строк но максимальной длины в одной процедуре. Примерно таких:
Код

write(
'453656897656790655434436564543323456676777654344355656355776457656655555467'
);

Строки копипастились, сообщения обрабатывались генератором случайных чисел, чтобы компилятор не смог их оптимизировать. Весь модуль должен быть такого объёма чтобы занимать почти весь сегмент памяти - 64kb. Тогда он не перемещается по сегменту. Модуль компилился а после в него записывалась информация к которой из программы через указатель можно получить доступ на чтение - обход ограничения на объём основной памяти, глобальных переменных и констант. А всё потому что великие теоретики программирования на паскале вскользь и на фрагментах а не целиком и на рабочих примерах объяснили доступ к памяти в защищённом режиме. Проще говоря, схалтурили, вместо того чтобы сказать: лажа тут в коде, лучше и не пытайтесь.
andriano
И это все ради того, чтобы обойтись единственным ехе-шником без ресурсного файла?
SKVOZNJAK
Ага, задумка была сделать программу которая обращается к диску только для чтения и записи сохранок, а куча не резиновая чтобы её зря использовать. Резервировал доступную память для следующих версий, но к тому времени 20 МГц тоже кончились.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.