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

    −47

    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
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    iPart := ksPart(iDocument3D.GetPart( pNew_Part )); // новый компонент
      if iPart <> nil then
      begin
       iSketchEntity := ksEntity( iPart.NewEntity( o3d_sketch ));
        if iSketchEntity <> nil then
        begin
          // интерфейс свойств эскиза
          iSketchDef := ksSketchDefinition(iSketchEntity.GetDefinition);
          if iSketchDef <> nil then
          begin
            // интерфейс плоскости XOY
            iPlaneEntity := ksEntity(iPart.GetDefaultEntity( o3d_planeXOY ));
    
            if iPlaneEntity <> nil then
            begin
              iSketchDef.SetPlane( iPlaneEntity ); // установим плоскость XOY базовой для эскиза
              iSketchEntity.Create; // создадим эскиз
              // интерфейс редактора эскиза
              iSketchDocument2D := ksDocument2D(iSketchDef.BeginEdit);
    
              if iSketchDocument2D <> nil then
              begin
    
    
    
                ... //сокращено для вашего благополучия
    
    
    
    
    		      if iBossExtrusionDef <> nil then
                          begin
    		      	iExtrusionProperty := ksExtrusionPa-ram(iBossExtrusionDef.ExtrusionParam); // интерфейс структуры параметров выдавли-вания
    		      	iThinProperty := ksThinParam(iBossExtrusionDef.ThinParam); // интер-фейс структуры параметров тонкой стенки
    
    		      	if (iExtrusionProperty <> nil) and (iThinProperty <> nil ) then
                            begin
       		      	  iBossExtrusionDef.SetSketch( iSketch2Entity ); // эскиз операции выдав-ливания
                              iExtrusionProperty.Direction := dtNormal; // направление выдавливания (прямое)
    			  iExtrusionProperty.TypeNormal := etBlind; // тип выдавливания ( стро-го на глубину )
    			  iExtrusionProperty.DepthNormal := 50; // глубина выдавливания
                              iThinProperty.Thin := false; // без тонкой стенки
    
                              iBossExtrusion.Create; // создадим операцию
                            end;
                          end;
                        end;
                      end;
                          end;
                        end;
                      end;
                    end;
                end;
              end;
            end;
          end;
        end;
      end;
    end;
    
        Form2.Close;
    end;

    Официальный пример использования API КОМПАС-3D под Delphi

    Запостил: itaksoydet, 16 Апреля 2016

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

    • конец здорового человека
                   end;
                 end;end; 
                end;  end;
                end;  end;
                end;  end;
                end;  end;
                end;  end;
                end;  end;
                end;  end;
                end;  end;
                end;  end;
                end;  end;
                end;  end;
                end;  end;
      end;end;end;      end;end;end;
      end;    end;      end;    end;
      end;end;end;      end;end;end;


      конец курильщика:
                              end;
                            end;
                          end;
                        end;
                            end;
                          end;
                        end;
                      end;
                  end;
                end;
              end;
            end;
          end;
        end;
      end;
      Ответить
      • > конец здорового человека

        Да это же логотип Промышленно-строительного банка!
        Ответить
        • мне кажется что он стал ВТБ уже лет 10 как
          Ответить
          • Да. Но что было увидено, не может быть развидено. Это как гоатсе.
            Ответить
    • На паскале вообще что-нибудь нормальное пишут?
      Да и вообще, может ли нормальный человек каждый раз писать ":=" вместо "=".
      Я предлагаю расширить синтаксис паскаля и писать ":=>"
      Ответить
      • Лучше 8===D
        Ответить
        • Предлагаешь уйти на php/js, в которых есть оператор ===, а 8===D - валидный код?
          Ответить
          • Нужно пойти дальше. Например чтобы можно было бы вводить свои новые операторы, и в качестве операторов чтобы можно было б использовать картинки и видеоролики порнографического содержания. Таким образом, можно будет на вполне законных основаниях смотреть порнографию на рабочем месте, будучи программистом
            Ответить
        • 8=========3
          Ответить
      • раньше писали

        на поскале даже целые ОС написаны были
        отличный яп кстати гря
        Ответить
      • Вы так говорите, как будто писа́ть "==" (а в некоторых языках "===") вместо "=" естественно.
        Ответить
        • Таки да. Присвоение пишется чуть чаще, чем сравнение, поэтому упрощение присвоения в ущерб сравнению кажется разумным. Да и двойное равно таки проще написать, чем эту сраную комбинацию: нажми шифт, нажми :, отпусти шифт, нажми =... Это же пиздец, как неудобно!
          Ответить
          • В SQL и в Бейсике в обоих случаях обходятся простым знаком "=". Ни к каким недоразумениям это не приводит.
            Ответить
            • Там нет присвоений внутри ифа.
              Ответить
              • Верно. А присвоения внутри ифа хоть где-нибудь нужны?
                Ответить
                • http://govnokod.ru/19766
                  Ответить
                  • - auto a;
                    + auto a = n/b;
                    - if(a=n/b)
                    + if(a)

                    Так разве не будет нагляднее?
                    Ответить
                    • Конечно, можно вообще даже от if-ов отказаться. Где-то у меня был про это говнокод
                      Ответить
                • Ну здрассте! А как ты без них себе в ногу выстрелишь?
                  Ответить
                  • Действительно. И нотация Йоды магистра в честь названная нужной перестаёт в отсутствие их быть.
                    Ответить
                • Внутри циклов иногда полезны. В C-подобных языках это одна из основных идиом.
                  Ответить
                • > А присвоения внутри ифа хоть где-нибудь нужны?

                  В крестах нашли применение:
                  if (auto* derived = dynamic_cast<Derived*>(base)) {
                      derived->doSomething();
                  }
                  Вместо унылых жабьих instanceof.
                  Ответить
          • Лишние буквы жать неудобно только детям с недоразвитыми пальцами.
            А вот опасность допустить ошибку в условии сравнения - она реальна.
            Ответить
            • Мне всегда было непонятно, почему для присваивания не использовали оператор <-.
              a <- 5
              Кмк, гораздо нагляднее, чем = или :=.
              Ответить
              • Из-за коллизии с a < (-5)?
                Ответить
                • > Из-за коллизии с a < (-5)?

                  Это всё фигня. Генерить ошибку парсинга, делов-то. В Scala есть такие же "коллизии", проблема скорее теоретическая, чем практическая.
                  Ответить
              • В языке R так и сделали. Там можно писать так:
                a <- 5

                А можно и так:
                5 -> a

                И даже мешать оба стиля в одной программе.
                Ответить
                • > В языке R так и сделали.

                  В OCaml тоже.
                  Ответить
                  • А пример не покажете?
                    Ответить
                    • (* https://realworldocaml.org/v1/en/html/imperative-programming-1.html *)
                      
                      # let rev_inplace ar =
                          let i = ref 0 in
                          let j = ref (Array.length ar - 1) in
                          (* terminate when the upper and lower indices meet *)
                          while !i < !j do
                            (* swap the two elements *)
                            let tmp = ar.(!i) in
                            ar.(!i) <- ar.(!j);
                            ar.(!j) <- tmp;
                            (* bump the indices *)
                            incr i;
                            decr j
                          done
                        ;;
                      Ответить
                      • Действительно, всё интуитивно понятно.
                        = — это уравнение, как в математике;
                        -> — это отображение, как в математике;
                        <- — это уже чисто императивная конструкция, стрелка показывает направление копирования данных.
                        Ответить
            • В том же шарпике перепутать сравнение с присвоением компилятор не позволит. Так что тут вопрос только удобства набора. Кстати, существуют недоразумения, которые пишут yoda conditions в шарпе несмотря на это.
              А ошибиться в условии... Ну был бы дурак, ошибиться всегда где найдётся )
              Ответить
              • bool b=foo();
                if (b=bar())...
                такое шарп тоже не пропустит?
                Ответить
                • Хм. Бул пропустит. Правда, решарпер будет сильно ругаться на конструкцию.
                  Ответить
            • >А вот опасность допустить ошибку в условии сравнения - она реальна.
              42 == x
              null == ptr
              "".equals(str)

              Ошибки? Слышал не.Только так и можно на сишко- кресто- жаба- блядском говне писать.
              Ответить
    • end;
                            end;
                          end;
                        end;
                            end;
                          end;
                        end;
                      end;
                  end;
                end;
              end;
            end;
          end;
        end;
      end;

      Предлагаю ввести новый оператор - "всё, пиздец;", который будет автоматически закрывать все открытые скобки begin'ы.
      Ответить
      • > автоматически закрывать все открытые скобки
        Предлагаю пойти на питон.
        Ответить
        • Я уже на нём.
          Ответить
        • Кстати, у меня есть Питон-клавиатура специальная с хоткеями питона. backspace
          Ответить
          • Вспоминаю свой старый спектрум, на котором были подписаны все хоткеи.
            Ответить
            • для бейсика, да)

              на современных ЯП хрена-с так сделаешь
              понаплодили лексем, блядь
              Ответить
              • В крестах ключевых слов мало. Даже в новомодных C++100500 сплошные смайлики [](){}();
                Ответить
                • Зато можно сделать хоткеи для ->, +=, == и т.п.
                  Ответить
    • http://www.govnokod.ru/19280 похожее говно
      Ответить
      • > похожее говно
        Мне нравятся местные ценители. Они всегда знают где найти похожее говно
        Ответить
    • Волшебное говно
      Ответить

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