1. ВНИМАНИЕ! В течении пары дней +- будет переезд форума на более защищённый сервер. Возможны перебои в работе.
    Dismiss Notice

Программирование в геодезии

Discussion in 'Общие вопросы' started by Alexyz, May 11, 2009.

  1. zeon111

    zeon111 Форумчанин

    Но вы то на С программируете или Pascal...? Возможно?
    А вот уже разделение. Lisp, C#.
     
  2. trir

    trir Форумчанин

    на C# писать проще и быстрее, а при необходимости можно вызывать методы из C++
     
  3. igor kruchkovskiy

    igor kruchkovskiy Форумчанин

    На лиспе можно простенькие программы создавать, на сишарп по сложнее, есть поддержка объектно ориентированного подхода.
    --- Сообщения объединены, Nov 29, 2017, Оригинальное время сообщения: Nov 29, 2017 ---
    Сильно не владею информацией, но думаю в C#, как и в Java,должна быть поддержка контейнеров,то есть коллекций объектов.Обьектами могут выступать например геодезические точки(набор точек может быть полилинией), имеющие имена, координаты, коды и другие переменные(поля).Контейнеры позволяют производить различные операции с объектами, например отсортировать по имени, вставить, удалить объект в контейнер и т.д.
     
    zeon111 likes this.
  4. BearDyugin

    BearDyugin Модератор Форумчанин

    Наиболее прост это безусловно AutoLisp, да это даже по сути не язык программирования а инструмент для инженеров. Но чего-то гениального на нём не напишешь, хотя я стараюсь ::biggrin24.gif:: Писать какие-то простые приложения на AutoLisp сможет практически любой инженер.
    Самый перспективный это .NET писать там можно хоть на VBA, хоть на С++ но родной язык для .NET это всё таки С# но для написания приложений на .NET уже необходимо быть не просто инженером, а программистом, а это к сожалению не всем дано. Лично я уже много лет пытаюсь начать осваивать .NET но всё безрезультатно ::sad24.gif::
     
    Alex_Shaton and zeon111 like this.
  5. chnav

    chnav Форумчанин

    В 1994 пытался изучать AutoCAD Lisp, элементарные формулы превращаются в головную боль, без пол-литра не прочитаешь.
    Вот так например выглядит сложение четырёх чисел
    Code:
    (+ 1 2 3 4)
    Представьте как выглядел перевод из одной системы координат в другой... В EXCEL и 1C это сделать проще ))

    Из запомнившегося - LISP был (есть) хорош поддержкой списков и переменным числом аргументов, за прошедшие четверть века они появились во всех языках ООП.
    Забросил я его через пару недель т.к. это не программирование, а не пойми что, очень специфичный язык. Меня сложно было чем-то удивить, языки программирования изучал со школы, но Lisp побил все рекорды по нечитаемости. Учитывая что больших задач тогда не стояло - я спокойно дожил до поддержки VBA.

    В современных терминах это скриптовый язык, который относительно просто организует интерактив с пользователем типа "введите первую точку" и вы вводите координаты курсором, потом "вторую точку" и между ними выполняете какую-то команду Автокада. На этом все достоинства заканчиваются.

    PS: впоследствии немного писал под Автокад на VBA - небо и земля.
    PPS: кому интересно, поиском нашел простенький пример с объяснениями, посчитать сумму отрезков https://acad-prog.ru/primer-autolisp-programmy-summa-dlin-otrezkov/
    Он действительно простенький т.к. для вычисления длины отрезка используется встроенная функция.
    Для полноты картины можно попросить опытных разработчиков написать на Lisp формулу
    Code:
    SQRT((x1-x2)^2+(y1-y2)^2)
     
  6. zeon111

    zeon111 Форумчанин

    Это стеб? Что сложного?
    Так какой язык программирования для программ под Автокад вы считаете лучше?
     
  7. trir

    trir Форумчанин

    вы просто не умеете его готовить - сейчас всякие его диалекты очень популярны ;=)
     
  8. chnav

    chnav Форумчанин

    Нет, это не стёб, я же говорю попробуйте развернуть на LISP выражение
    Code:
    SQRT((x1-x2)^2+(y1-y2)^2)
    Я писал на VBA, всё устраивало. Сейчас наверное C# лучше.

    AutoLISP жив для преемственности, потому-что под него написано много кода, но это не значит что надо продолжать мучиться.
     
  9. trir

    trir Форумчанин

    (expt (+ (expt (- x1 x2) 2) (expt(- y1 y2) 2)) 0.5)

    Clojure — современный диалект Лиспа, Появился в 2007
    lisp есть даже в python'е
    lisp на Android
    и даже можно выполнять

    зависит от задаче, но C# лучше
     
    chnav likes this.
  10. zeon111

    zeon111 Форумчанин

    Ну я честно говоря не силен в языках программирования последний раз в университете изучал ... но хотел бы изучить.
    Так что спасибо за совет. У меня батя на Си пишет программы, так что будет у кого спросить.
    Программу построения профиля... как я уже писал ....
     
  11. trir

    trir Форумчанин

    так Civil 3D же есть - зачем велосипед изобретать?
     
  12. igor kruchkovskiy

    igor kruchkovskiy Форумчанин

    C# без условно проще.В основном все происходит на уровне объектов, условно говоря, что то в роде виртуальных моделей аналогов реального мира.К примеру нужно создать аналог забора в виде условного знака(упростим пусть это будет просто полилиния), нужно просто создать шаблон в виде кода, который называется класс.В случае с полилинией, ее шаблон может состоять из более простых(агрегация) объектов-точек, те в свою очередь могут состоять из строковых объектов, внутри классов они могут быть объеденны с помощью массивов или коллекций. Допустим нам нужно создать полилинию, у нас есть готовый шаблон-класс делаем так:

    Полилиния мояПерваяВжизниполилиния = Новая Полилиния(аргумент в виде массива точек или контейнера с точечными объектами) ;

    У каждого объекта есть свои методы, допустим он может выводить в командную строку все точки полилинии или нарисовать ее на экране, для этого можно поступить так:

    мояПерваяВжизниполилиния . нарисоватьМоюПолилинию(здесь опять могут быть различные параметры, например в хорошем качестве, или синим цветом или без ничего, тоесть будет рисовать по умолчанию).
    --- Сообщения объединены, Nov 29, 2017, Оригинальное время сообщения: Nov 29, 2017 ---
    Си мало поможет в освоении С#, синтаксис похож, но принципы применяемые для построения программ в корне отличаются, хотя есть и схожие моменты.Например работа с памятью, С не использует объектно ориентированный подход, за этим скрывается более глубокий смысл чем кажется.
     
    zeon111 likes this.
  13. MaxKal

    MaxKal Форумчанин

    да
    --- Сообщения объединены, Nov 29, 2017, Оригинальное время сообщения: Nov 29, 2017 ---
    код в lisp плохо читается, через неделю трудно понять что писал и тем более как это улучшить.
     
    zeon111 likes this.
  14. trir

    trir Форумчанин

    вы просто плохо его курили
     
    stout likes this.
  15. MaxKal

    MaxKal Форумчанин

    да, пожалуй, но факт плохой читаемости кода это не отменяет, я поставлю это на первое место просто из практических соображений
     
    zeon111 likes this.
  16. ИЛЮХАA

    ИЛЮХАA Форумчанин

    Лисп - функциональщина ж, арифметические операции - обычные функции ::tongue24.gif::
     
    stout likes this.
  17. zeon111

    zeon111 Форумчанин

    спасибо всем... значит C#
     
  18. MaxKal

    MaxKal Форумчанин

    хороший выбор, тем более C# - мультипарадигмальный язык, уже в ранних версиях появились лямбда-выражения и LINQ
     
    stout likes this.
  19. stout

    stout Форумчанин

    Прошу в приличном обществе не выражаться, понимаешь…
     
  20. ИЛЮХАA

    ИЛЮХАA Форумчанин

    Spoiler
    Не совсем уж в ранней, с 3.0
     
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice