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

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

Тема в разделе "Общие вопросы", создана пользователем Alexyz, 11 май 2009.

  1. zeon111

    zeon111 Форумчанин

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

    trir Форумчанин

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

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

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

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

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

    chnav Форумчанин

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

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

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

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

    zeon111 Форумчанин

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

    trir Форумчанин

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

    chnav Форумчанин

    Нет, это не стёб, я же говорю попробуйте развернуть на LISP выражение
    Код:
    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 нравится это.
  10. zeon111

    zeon111 Форумчанин

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

    trir Форумчанин

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

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

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

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

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

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

    MaxKal Форумчанин

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

    trir Форумчанин

    вы просто плохо его курили
     
    stout нравится это.
  15. MaxKal

    MaxKal Форумчанин

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

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

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

    zeon111 Форумчанин

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

    MaxKal Форумчанин

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

    stout Форумчанин

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

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

    Оффтоп
    Не совсем уж в ранней, с 3.0
     
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление