1. Си / Говнокод #5299

    +146

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    #include <stdio.h>
    
    #define BELL '\a'
    #define TACT {for (i = 0; i < 100000000; i++) ;}
    #define HALFTACT {for (i = 0; i < 20000000; i++) ;} 
    
    int main ()
    {
    	int i;
    	putchar(BELL);
    	TACT;
    	putchar(BELL);
    	TACT;
    	putchar(BELL);
    	HALFTACT
    	putchar(BELL);
    	HALFTACT
    	putchar(BELL);
    	TACT;
    	putchar(BELL);
    	HALFTACT;
    	putchar(BELL);
    	HALFTACT;
    	putchar(BELL);
    	HALFTACT;
    	putchar(BELL);
    	TACT;
    	putchar(BELL);
    	HALFTACT;
    	putchar(BELL);
    	return 0;
    }

    Ну хоть что-то автоматизировал...

    Запостил: dwinner, 16 Января 2011

    Комментарии (76) RSS

    • БЛЯ
      Ответить
    • показать все, что скрытоВот поэтому Паскаль предпочтительнее, чем Си, во всех областях.
      Ответить
      • показать все, что скрытоЧастично согласен, если это не программирование дров.
        Обобщая, могу сказать, что на С/С++ только системное программирование
        приветствую + движки для игр. Ну и кончно Objective C Apple'овский для iPhone'ов
        поруливает, но это уже совсем другая история...
        Ответить
        • показать все, что скрытоНасчёт системного программирования тоже не согласен. У Паскаля хреново с нормальными компиляторами, но по возможностям языка Паскаль не уступает в Си, а вот наговнякать на нём сложнее.
          Ответить
          • Если ты на Delphi пишешь, это ещё не значит, что С/С++ и всё остальное - хуже. Приведи пример хоть одной нормальной системы на Delphi, а на Сях - МОРЕ! Заметь, я не опускаю паскаль!
            Ответить
            • >Приведи пример хоть одной нормальной системы
              Можно определение нормальной системы, прежде чем начнём приводить примеры?
              Ответить
            • И там и там много пишут. На С++ - больше крупные проекты, на Delphi - пишут студенты и мелкие проекты.
              C++ и Delphi говно. Но мне всё равно. Пишу на том, что подходит под задачу. Дело не в инструменте. Если задача действительно интересная, то согласен писать на любом, действительно подходящем для этого, инструменте.
              Инструмент - это не то, что нужно любить. Нужно любить людей (и решать задачи ради них).
              Ответить
            • показать все, что скрытоТЕХ.
              Система вёрстки текста.
              Автор, если находились баги, не предлагал скачивать платный патч, а платил нашедшему баг.
              Сям такая надёжность и не снилась.
              Ответить
              • Вы исходники TeX-а видели? Он написан не на Паскале, он транслировался в Паскаль для получения исполняемого файла. А в последние годы транслируется в C для этого же. Можно странслировать в Фортран, в Лисп, в Жаву, в Питон, в ПХП.

                А насчёт денег за баги -- обратитесь в Гуголь. В прошлом году один охотник за ошибками несколько тысяч на этом заработал.
                Ответить
        • >>С++ только системное программирование
          фейспалм))

          то у Вас JSP -- язык программирования
          то у Вас на С++ системное программирование
          ужос
          Ответить
          • ну пишит человек на ояксе, че вы привезались!!!
            Ответить
            • лет 10 назад я наблюдал такой диалог:
              --а ты на dhtml программируешь?
              --нет, только на html

              DHTMLем во времена web 1.0 называли разбавленный жабаскриптом HTML
              Ответить
              • Хех, еще один верующий в уэб 2.5 beta...
                На самом деле всё было не так, термин Dynamic HTML выдумали в Microsoft, как название для интерфейсов DOM level 0 и скриптовой привязки к ним. Ныне никуда термин не делся, до сих пор присутсвует в доках. А особо одаренные личности считают HTML языком программирования.
                Диалог является всего лишь результатом смешения вышеописанного в неокрепших пубертатных мозгах.
                Ответить
      • > Вот поэтому Паскаль предпочтительнее, чем Си, во всех областях.
        Вы не забыли,что это говногод всетаки, поверьте на паскале можно написать еще дибильней. Естественно проигрывание мелодий через спикер нормальные люди так не делают, а используют функции sound, nosound и delay.
        Ответить
        • Мелодии (если уж на то пошло) надо хранить не жёстким кодом, а хотя бы константным массивом, а лучше во внешнем файле.
          Ответить
          • shm не сказал, что собирается хранить мелодии жёстким кодом.
            Ответить
          • "Пирожки свежие?" -- "С капустой."
            Ответить
            • Я кому-то другому отвечал, вроде. Или ему, не помню.
              Ответить
        • >sound, nosound и delay
          Pascal и Turbo/Borland C?
          Ответить
          • Когда я только начинал программировать, помню любил wav'ки "проигрывать" (правда послушав минуту такой звук....) естественно под DOS, в Винде эти функции выпилены, но можно сделать по другому (всех проще через WinApi функцию Beep). Вроде не только Borland'овскими компиляторами поддерживаются.
            Ответить
            • Виндовым бипом вавки не проиграешь... Сильно тормозной...
              Ответить
              • Я для самого простого примера привел, а вообще мелодии лучше через спикер не проигрывать. Уже давно на каждом PC стоит хоть какой нибудь аудиокодек.
                Ответить
              • Можно выводить на ПЦспеакер не через бееп, а нормальной процедурой, не останавливающей программу во время проигрыша.

                http://forum.codenet.ru/showthread.php?t=33342
                Ответить
                • Это для задротов.

                  И да, хорошего звучания с этого не получить при высокой (для PCSpeaker) частоте дискретизации типа 8000Гц. Комп под виндой такую частоту просто держать не сможет...
                  Качественное звучание WAV'ок на PCSpeaker можно получить лишь под однозадачными осями, типа DOS.
                  Ответить
                  • > Качественное звучание WAV'ок

                    Эстет такой эстет. У тебя колонки небось за 100К$, вся музыка в *.flac, и всё крутится под ДОСом?

                    Да ну бред, винамп играет норм, во время игр иногда глохнет, я, чтобы этого не было, приоритет его процесса ставлю на максимум.
                    Ответить
                    • Существует винамп, играющий через PCSpeaker? о_О
                      Ответить
                      • Нет, он играет через звуковуху, но он же (о ужас) под виндой крутится!
                        Ответить
                        • А мы про PCSpeaker говорили, как бы. )

                          Конечно, для звуковухи достаточно винДОСа. )
                          Ответить
                        • Вообще то данные на звуковой кодек идут через DMA и частота сэмплиорвания управляется контроллером (для встроенных вшит в Южный Мост). Так, что ОС и ЦП тут вообще никаким боком.
                          Ответить
                      • драйвер был, давал полноценный¹ WaveOut на пищалке
                        Ответить
                  • > Качественное звучание WAV'ок на PCSpeaker
                    Хе, еще при условии, что сам спикер будет стоять неплохой (а как правило его ставят только для того чтобы сигналы можно было услышать).
                    Ответить
                    • Ну одно время их ставили хорошие. У меня на полке все ещё пылится такой. Динамик PCSpeaker'а в дециметр в диаметре. Очень качественный звук. :)
                      Ответить
                      • Эстет...
                        Ответить
                        • Нисколько не эстет. Я его не специально покупал. Просто случайно мне достался. Сильно повезло. :)
                          Ответить
                • > Я для самого простого примера привел
                  А вообще никто и не спорит...
                  Ответить
            • >не только Borland'овскими компиляторами поддерживаются.
              В стандарте Си/Си++ этого точно нет.
              Ответить
              • Я не спорю, но где то я помимо Борланда это видел... сейчас уже не вспомнить.
                Ответить
            • digpack был)
              Ответить
      • Приведи пример. А я тебе приведу обратный. Если руки из место на котором сидят, то может быть и да.
        Ответить
      • Да, вот таким вот в 80-х на Бейсике и Паскале и развлекались.
        Ответить
      • то, что этот код -- мартышкино говно, вовсе не значит что си -- говно
        Ответить
        • Мартышкино говно...
          Звучит.
          Надо запомнить.
          Ответить
    • прям ассемблер какой то
      Ответить
      • Да ну, даже не жалкое подобие.
        Ответить
        • сама логика (может, только мне?) напоминает:
          бип, ноп-ноп-ноп,бип,ноп-ноп-ноп....
          Ответить
          • У вас немного неправильное представление об ассемблере
            Ответить
            • скорее, ассоциация
              Ответить
              • Если сделать макрос для mov ax, bx впечатление усилилось бы? )))
                Ответить
                • > макрос для mov ax, bx
                  Но тогда это уже и будет использование встроенного ассемблера
                  Ответить
    • У автора кода своё понимание половины: HALFTACT = 1/5 TACT
      Ответить
      • правильно было бы 1/10 = )
        Ответить
      • Действительно, если еще учесть, что задержка основана не на времени, а на командах ЦП. На различных ЦП данная программа выдаст уникальный звук:) Исключениями являются сильно быстрые по отношению к машине автора, на которых можно не успеть услышать и сильно медленные.
        Ответить
        • Я, когда на этот код быстро глянул, решил сначала, что это под какой-то специальный контроллер код. Для них так делать задержку нормально.
          Ответить
          • > специальный контроллер код
            Ага, include <stdio.h>
            Ответить
      • ну от так считает:)
        Ответить
    • Хоть горшком назови... ;-)
      Ответить
    • Па-па-пи-пи-па-пи-пи-пи-па-пи!
      Ответить
    • Думаю не стоит оговаривать, как любой нормальный оптимизатор, встроеный в любой нормальный компилятор поступит с этими циклами, если оптимизация не отключена)

      Человек мог попробывать что-нибудь вроде "volatile" сделать хотя бы..)
      Ответить

    Добавить комментарий