Добро пожаловать!

Войдите или зарегистрируйтесь сейчас!

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

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

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

  1. zeon111

    Форумчанин

    Регистрация:
    19 сен 2012
    Сообщения:
    258
    Симпатии:
    77
    Но вы то на С программируете или Pascal...? Возможно?
    А вот уже разделение. Lisp, C#.
     
    #61
  2. trir

    Форумчанин

    Регистрация:
    25 ноя 2014
    Сообщения:
    1.273
    Симпатии:
    339
    на C# писать проще и быстрее, а при необходимости можно вызывать методы из C++
     
    #62
  3. igor kruchkovskiy

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

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

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

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

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

    Регистрация:
    5 янв 2011
    Сообщения:
    657
    Симпатии:
    587
    Адрес:
    Москва
    В 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)
     
    #65
  6. zeon111

    Форумчанин

    Регистрация:
    19 сен 2012
    Сообщения:
    258
    Симпатии:
    77
    Это стеб? Что сложного?
    Так какой язык программирования для программ под Автокад вы считаете лучше?
     
    #66
  7. trir

    Форумчанин

    Регистрация:
    25 ноя 2014
    Сообщения:
    1.273
    Симпатии:
    339
    вы просто не умеете его готовить - сейчас всякие его диалекты очень популярны ;=)
     
    #67
  8. chnav

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

    Регистрация:
    5 янв 2011
    Сообщения:
    657
    Симпатии:
    587
    Адрес:
    Москва
    Нет, это не стёб, я же говорю попробуйте развернуть на LISP выражение
    Код:
    SQRT((x1-x2)^2+(y1-y2)^2)
    Я писал на VBA, всё устраивало. Сейчас наверное C# лучше.

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

    Форумчанин

    Регистрация:
    25 ноя 2014
    Сообщения:
    1.273
    Симпатии:
    339
    (expt (+ (expt (- x1 x2) 2) (expt(- y1 y2) 2)) 0.5)

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

    зависит от задаче, но C# лучше
     
    #69
    chnav нравится это.
  10. zeon111

    Форумчанин

    Регистрация:
    19 сен 2012
    Сообщения:
    258
    Симпатии:
    77
    Ну я честно говоря не силен в языках программирования последний раз в университете изучал ... но хотел бы изучить.
    Так что спасибо за совет. У меня батя на Си пишет программы, так что будет у кого спросить.
    Программу построения профиля... как я уже писал ....
     
    #70
  11. trir

    Форумчанин

    Регистрация:
    25 ноя 2014
    Сообщения:
    1.273
    Симпатии:
    339
    так Civil 3D же есть - зачем велосипед изобретать?
     
    #71
  12. igor kruchkovskiy

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

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

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

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

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

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

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

    Форумчанин

    Регистрация:
    25 ноя 2014
    Сообщения:
    1.273
    Симпатии:
    339
    вы просто плохо его курили
     
    #74
    stout нравится это.
  15. MaxKal

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

    Регистрация:
    17 окт 2014
    Сообщения:
    89
    Симпатии:
    114
    да, пожалуй, но факт плохой читаемости кода это не отменяет, я поставлю это на первое место просто из практических соображений
     
    #75
    zeon111 нравится это.
  16. ИЛЮХАA

    Форумчанин

    Регистрация:
    8 сен 2014
    Сообщения:
    415
    Симпатии:
    249
    Адрес:
    Москва
    Лисп - функциональщина ж, арифметические операции - обычные функции ::tongue24.gif::
     
    #76
    stout нравится это.
  17. zeon111

    Форумчанин

    Регистрация:
    19 сен 2012
    Сообщения:
    258
    Симпатии:
    77
    спасибо всем... значит C#
     
    #77
  18. MaxKal

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

    Регистрация:
    17 окт 2014
    Сообщения:
    89
    Симпатии:
    114
    хороший выбор, тем более C# - мультипарадигмальный язык, уже в ранних версиях появились лямбда-выражения и LINQ
     
    #78
    stout нравится это.
  19. stout

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

    Регистрация:
    5 янв 2008
    Сообщения:
    3.197
    Симпатии:
    8.011
    Адрес:
    Златоглавая и Белокаменная
    Прошу в приличном обществе не выражаться, понимаешь…
     
    #79
  20. ИЛЮХАA

    Форумчанин

    Регистрация:
    8 сен 2014
    Сообщения:
    415
    Симпатии:
    249
    Адрес:
    Москва
    Оффтоп
    Не совсем уж в ранней, с 3.0
     
    #80

Поделиться этой страницей