1. Pascal / Говнокод #5879

    +107

    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
    procedure delonefromend(var p:TPointer);
    var i,n:integer; t:TPointer;
    begin
           i:=1;
           t:=p;
           while p<>nil do
                   begin
                           t:=t^.next;
                           i:=i+1;
                   end;
           for n:=1 to i do p:=p^.next;
           dispose(p^.next);
    end;

    Для того чтобы добраться до последнего элемента в списке, сначала циклом подсчитывается в i их количество, а потом другим циклом от 1 до I указатель p перемещается на i элементов, тобишь в конец.

    Запостил: anigon, 03 Марта 2011

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

    • Студенты некоторых вузов ещё и не такого могут наклепать. Им только PABC дай.
      Ответить
      • PABC это такая кустарная шароварная херня, которую лучше записать на болванку и дать своему любимому шредеру
        Ответить
        • ну так вроде же она бесплатная (херня)
          Ответить
          • когда-то давно была опция жрат, сейчас вроде халявно или хорошо спрятано
            Ответить
            • проясните терминологию: "опция жрат" - это чё?
              и насчет "давно" - мне даже интересно... я последний раз в делфях работал аж в версии 6 (хотя тогда была и 7), freepascal как проект я помню, а вот про PABC до настоящего времени не слыхал.
              Ответить
              • > "опция жрат"
                был какой-то премиум-швемиум без которого в этой игрушке не было чего-то нужного.

                > "давно"
                < 5 лет назад, точнее не помню, D7 - начало прошлой декады, очевидно, что позже, ибо даже с феноменальной памятью нереально запомнить сведения о беглом взгляде на случайную прожку.

                > freepascal
                то серьезный проект

                кстати, дельфи тоже были халявные когда-то
                Ответить
                • Дельфи-7 и сейчас халявные.
                  Ответить
                  • вот это да, и правда "Personal edition of Delphi 7 will be available for free"
                    найти бы табличку сравнения возможностей разных версий Delphi 7 - Architect, Enterprise, Professional, Personal, чисто ради исторического интереса...
                    Ответить
                    • Кстати, я не знаю, какой версией пользуюсь. Всё равно при инсталляции ставлю только минимум+исходники VCL+инструкцию. Чтобы быстрее грузилось.
                      Ответить
                      • какую инструкцию?
                        Ответить
                        • Которая по F1 выдаётся.
                          Ответить
                          • я всегда называл это хелпом...
                            Ответить
                            • > хелпом...

                              На русском языке это называется инструкцией.
                              Ответить
                              • Справка, не?
                                Ответить
                              • если по-русски, то "помощь" (буквально) или "справка" (вольный перевод), но никак не "инструкция"
                                Ответить
                                • Ты когда телевизор покупаешь, у него в коробке лежит "помощь", "справка" или "инструкция"?
                                  Ответить
                                  • при чем тут телевизор? обычно там лежит "Руководство по эксплуатации", или "User manual", и смысл такого документа совершенно не тот, что у справочной системы в среде разработки
                                    Ответить
                                  • а user guide грузчики спиздили?
                                    Ответить
                                    • взял первую попавшуюся от фотика - "user manual", еще есть "owner manual", "instruction manual" - все это переводится как "руководство пользователя", в последнем случае ~ "техническое". "guide" - почти буквально и есть "руководство", от глагола "вести".
                                      а "help" - это помощь, но не инструкция и не руководство.
                                      Ответить
                        • Чтобы быстрее грузилось.
                          Ответить
                    • видел в каком-то пдф, но щас не смог вспомнить где :(
                      отличие в поддержке RaveReports, Corba(?) и т.д.
                      Сам не юзаю это все, так что по идее хватает Personal.
                      Ответить
                      • о, нашел
                        http://www.ibase.ru/prices/d7_feamatrix.pdf
                        хм, получается, что Personal вообще не работает с базами?
                        Ответить
                        • хуй с базами, там сырцов нет
                          Ответить
                          • судя по табличке, почти всего нет
                            так что хуй с этой Personal, лучше уж Architect нагуглить
                            Ответить
                          • я все-равно юзаю сторониие - sdac, odac. а для firebird - когда-то сами через его апи сделали - в разы быстрее стандартных.
                            А сырцы интересно можно руками в нужные пути положить? Вот тока в лом проверять.
                            Ответить
                  • там вроде какая-то подъёбка, толи хер скачаешь, толи ключ не шлется
                    Ответить
                    • Не знаю, я не офсайта качал.
                      Ответить
                      • дык, варезную-то можно хоть архитект выкачать...
                        речь-то об официальной халяве для личного юзания
                        Ответить
                        • видать, нахяляву "искаропки" есть только возможность покидать на форму стандартные контролы в программах типа "Hello, world!" :)
                          Ответить
                          • в Turbo Delphi так было, халявная версия не ставила сторонние, а насчет Delphi 7 Personal я не помню

                            но это всё дѣла давно мiнувших днѣй, в багланде не жадничали и занимались популяризацией среди хоббистов
                            Ответить
                          • на самом деле, в табличке много херни про value-add довески, важное про кодоредактор и багоотладчик, где кастрированные возможности будут мешать работе с большим проектом
                            Ответить
          • FPC тоже бесплатный)
            Ответить
    • Делон с конца
      Ответить
    • аа.... где p^.next := NIL; ?
      я у ж молчу про индусятину с двумя циклами
      Ответить
    • Не, ну а чё, алгоритмическая сложность не изменилась из-за лишнего цикла, работает же, и ладно... Шутка.

      Связные списки должны вообще явно запоминать не только начало и конец, но и последний элемент, к которому было обращение. А то в цштфзш вроде много списков, к которым можно обращаться только по индексу, часто перебирают последовательные индексы.
      Ответить
      • не обязательно - все зависит от задачи.
        а вообще использовать список и обращаться по индексу - как-то странновато.
        Ответить
        • > а вообще использовать список и обращаться по индексу - как-то странновато.

          В цштфзш работа с некоторыми компонентами именно такая.
          Ответить
    • procedure delonefromend(var p:TPointer);

      Прикольно. После
      dispose(p^.next);
      оказались в хвосте списка. Надеюсь список хоть двунаправленный?
      Ответить
      • ха-ха, сразу не заметил :(
        может, при вызове голову запоминают? хотя, вряд ли :(
        Ответить
    • t:=p;
      while p<>nil do
      begin
      t:=t^.next;
      i:=i+1;
      end;

      этот цикл вечен
      Ответить
      • ну... да, тока не вечен, а создающий AV-шку
        Ответить
        • Если Дельфи - то АВ.
          Если Турбо Паскаль под ДОС - то распидарасить память может нехило.
          Ответить

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