| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > {Конкурс} Lisp. Задачки для студентов

{Конкурс} Lisp. Задачки для студентов

Ответ
Поиск в этой теме
Непрочитано 02.01.2011, 17:18 #1
{Конкурс} Lisp. Задачки для студентов
gomer
 
строю, ломаю
 
Украина
Регистрация: 03.04.2008
Сообщений: 5,515

Пока еще не сошел пьяный угар новогоднего стола, предлагаю вашему вниманию задачки для студентов одного из вузов как продолжение темы о качестве высшего образования, ибо в нормальном рассудке хочется плакать от такого...
Почему конкурс? Да, потому, что преподаватели обычно принимают определенный вариант решения, другие, отличные от искомого караются незачетом, так было давно, так будет еще долго, а может и всегда...
Итак...
Цитата:
Дан отрезок прямой. Разработать Lisp программу строящую окружность, в конечной точке заданного отрезка, длина дуги которой равна длине отрезка.
Запрос пользователю: Select Line

Дана окружность. Разработать Lisp программу строящую отрезок прямой, как диаметр проходящую через центр окружности параллельно оси X.
Запрос пользователю:Select circle

Дан квадрат. Разработать Lisp программу строящую описанную окружность.
Запрос пользователю:
Select first corner
Select other corner

Даны две концентрические дуги. Разработать Lisp программу строящую окружность концентричную заданным дугам и проходящую по середине между ними.
Запрос пользователю:
Select first arc
Select other arc

Дан текст из 10 символов в направлении параллельном оси X. Разработать Lisp программу записи первых 5 символов из указанного текста, в направлении
параллельном оси X и начальной точке заданной пользователем.
Запрос пользователю:
Select text
Enter start point

Дан текст с направлением параллельным оси X. Разработать Lisp программу строящую отрезок прямой подчеркивающий указанный текст, при этом начало отрезка в начальной точке текста и ширина места для одной буквы принимается равной высоте текста.
Запрос пользователю: Select text

Дана окружность. Разработать Lisp программу строящую квадрат, один из углов которого указывается пользователем, равновеликий по площади заданной окружности.
Запрос пользователю:
Select circle
Enter point for corne

Дана окружность. Разработать Lisp программу «вписывающую» квадрат в заданную окружность.
Запрос пользователю:Select circle

Дана окружность. Разработать Lisp программу «вписывающую» равнобедренный треугольник в заданную окружность
Запрос пользователю:Select circle

Даны три окружности различного диаметра. Разработать Lisp программу,
строящую окружность с центром в точке указанной пользователем, площадь
которой равна среднему арифметическому площадей трех заданных окружностей.
Запрос пользователю:
Select circle 1
Select circle 2
Select circle 3

Разработать Lisp программу строящую окружность с центром в середине отрезка, длина дуги которой равна длине отрезка.
Запрос пользователю:Select line

Дан равнобедренный треугольник. Разработать Lisp программу построения круга, с центром в любой вершине треугольника, равного по площади заданному треугольнику.
Запрос пользователю: Select line
Просмотров: 9450
 
Непрочитано 02.01.2011, 17:25
#2
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Цитата:
Пока еще не сошел пьяный угар новогоднего стола
Чтобы он не сразу сошел, заглотни-ка еще грамм 600 водочки.
Profan вне форума  
 
Автор темы   Непрочитано 02.01.2011, 17:54
#3
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Profan Посмотреть сообщение
заглотни-ка еще грамм 600 водочки
Я вообще не пил в НГ, а писал лиспы... Это тот еще наркотик...
gomer вне форума  
 
Непрочитано 03.01.2011, 03:02
#4
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


У этой затеи никакой практической применимости, ладно бы серьезные алгоритмы отлаживали. А тут дет.сад в чем соревновательность в краткости кода чтоли? или в быстродействии?
Sleekka вне форума  
 
Непрочитано 04.01.2011, 00:26
#5
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Цитата:
Сообщение от gomer Посмотреть сообщение
Дан отрезок прямой. Разработать Lisp программу строящую окружность, в конечной точке заданного отрезка, длина дуги которой равна длине отрезка.
Запрос пользователю: Select Line
В общем случае задача решения не имеет. Неизвестна плоскость, в которой выполняются построения. Для мировой системы координат:
Код:
[Выделить все]
(defun c:make-circle-by-line-cmd (/ ent)
  (if (and (setq ent (car (entsel "\nSelect line : ")))
           (= (cdr (assoc 0 (entget ent))) "LINE")
           ) ;_ end of and
    (command "_.circle"
             "_none"
             (cdr (assoc 11 (entget ent)))
             "_none"
             (distance (cdr (assoc 11 (entget ent)))
                       (cdr (assoc 10 (entget ent)))
                       ) ;_ end of distance
             ) ;_ end of command
    ) ;_ end of if
  (princ)
  ) ;_ end of defun

(defun c:make-circle-by-line-entmakex (/ ent)
  (if (and (setq ent (car (entsel "\nSelect line : ")))
           (= (cdr (assoc 0 (entget ent))) "LINE")
           ) ;_ end of and
    (entmakex
      (list (cons 0 "CIRCLE")
            (cons 10 (cdr (assoc 11 (entget ent))))
            (cons 40
                  (distance (cdr (assoc 10 (entget ent)))
                            (cdr (assoc 11 (entget ent)))
                            ) ;_ end of distance
                  ) ;_ end of cons
            (assoc 210 (entget ent))
            ) ;_ end of list
      ) ;_ end of entmakex
    ) ;_ end of if
  (princ)
  ) ;_ end of defun

(defun c:make-circle-by-line-vla (/ ent adoc circle)
  (vl-load-com)
  (vla-startundomark
    (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
    ) ;_ end of vla-startundomark
  (if
    (and (= (type (setq ent (VL-CATCH-ALL-APPLY
                              (function
                                (LAMBDA ()
                                  (car (entsel "\nSelect line <Cancel> : "))
                                  ) ;_ end of LAMBDA
                                ) ;_ end of function
                              ) ;_ end of VL-CATCH-ALL-APPLY
                        ) ;_ end of setq
                  ) ;_ end of type
            'ename
            ) ;_ end of =
         (= (cdr (assoc 0 (entget ent))) "LINE")
         (setq ent (vlax-ename->vla-object ent))
         ) ;_ end of and
     (progn
       (setq
         circle (vla-addcircle
                  (vla-ObjectIDToObject
                    adoc
                    (vla-get-ownerid ent)
                    ) ;_ end of vla-ObjectIDToObject
                  (vla-get-EndPoint ent)
                  (apply
                    'distance
                    (mapcar
                      '(LAMBDA (x)
                         (vlax-safearray->list (vlax-variant-value x))
                         ) ;_ end of LAMBDA
                      (list (vla-get-StartPoint ent)
                            (vla-get-EndPoint ent)
                            ) ;_ end of list
                      ) ;_ end of mapcar
                    ) ;_ end of apply
                  ) ;_ end of vla-addcircle
         ) ;_ end of setq
       (vla-put-normal circle (vla-get-normal ent))
       ) ;_ end of progn
     ) ;_ end of if
  (vla-EndUndoMark adoc)
  ) ;_ end of defun

Цитата:
Сообщение от gomer Посмотреть сообщение
Дана окружность. Разработать Lisp программу строящую отрезок прямой, как диаметр проходящую через центр окружности параллельно оси X.
Запрос пользователю:Select circle
То же самое. Неизвестно направление оси Ох.
Код:
[Выделить все]
(defun c:make-hor-by-circle-entmakex (/ ent rad)
  (if (and (setq ent (car (entsel "\nSelect circle : ")))
           (= (cdr (assoc 0 (entget ent))) "CIRCLE")
           ) ;_ end of and
    (entmakex
      (list
        (cons 0 "LINE")
        (cons 10
              (list (- (cadr (assoc 10 (entget ent)))
                       (setq rad (/ (cdr (assoc 40 (entget ent))) 2.))
                       ) ;_ end of -
                    (caddr (assoc 10 (entget ent)))
                    ) ;_ end of list
              ) ;_ end of cons
        (cons 11
              (list (+ (cadr (assoc 10 (entget ent))) rad)
                    (caddr (assoc 10 (entget ent)))
                    ) ;_ end of list
              ) ;_ end of cons
        ) ;_ end of list
      ) ;_ end of entmakex
    ) ;_ end of if
  ) ;_ end of defun

Остальным заниматься как-то лениво. По крайней мере пока.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 04.01.2011, 01:23
#6
tistas

Structural Engineer
 
Регистрация: 23.06.2008
Сообщений: 155


Цитата:
вашему вниманию задачки для студентов одного из вузов как продолжение темы о качестве высшего образования, ибо в нормальном рассудке хочется плакать от такого
в вузе учат lisp - это уже хорошо. Вот у меня такой радости небыло, я не видел ниразу как оно работает и "с чем его едят" - и от этого хочется плакать. Не лиспа одного у нас не преподавали..
tistas вне форума  
 
Автор темы   Непрочитано 04.01.2011, 19:15
#7
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от tistas Посмотреть сообщение
в вузе учат lisp - это уже хорошо.
Получается парадокс - после получения диплома о высшем образовании в вузе, нужно проходить еще и курсы пользователя автокад, читать книги по автокад и т.д. Зато непременно понадобятся проектировщику 5 семестров высшей математики и 3 семестра физики, психология, социология, "философия", религиоведение и художественное освоение мира...
gomer вне форума  
 
Непрочитано 04.01.2011, 19:44
#8
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
в вузе учат lisp - это уже хорошо
Лучше бы не учили. По крайней мере так, как "учат" в некоторых ВУЗах. Если почитать ахинею, написанную в книгах некоторых преподавателей...

Однако есть и весьма качественное обучение LISP, но не для AutoCAD и не для инженерных специальностей.
ShaggyDoc вне форума  
 
Непрочитано 04.01.2011, 20:34
#9
Pastor

это только кличка
 
Регистрация: 22.10.2006
Москва
Сообщений: 252


Для филологов что ли?
__________________
...в шее моей жилы железные, и лоб мой - медный...
Pastor вне форума  
 
Непрочитано 05.01.2011, 08:03
#10
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
Сообщение от Pastor Посмотреть сообщение
Для филологов что ли?
Для профессиональных программистов
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 05.01.2011, 16:33
#11
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Однако есть и весьма качественное обучение LISP, но не для AutoCAD и не для инженерных специальностей.
Сама попсовость автокада в инженерной практике определяет отношение к нему... В нашем вузе студентами специальности ТМ была создана большая база металлорежущего инструмента, станков, приспособлений... Со слайдами, с текстовыми описаниями... Эдакая САПР... По ней студенты сдают лабораторные работы... все очень красиво... пока я не заглянул в код... Да и запустить ее мне удалось раза с десятого...
В общем получается, что инженер-полупрограммист - это плохо и программист-недоинженер - тоже не очень хорошо...
gomer вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > {Конкурс} Lisp. Задачки для студентов

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу) Red Nova LISP 4555 24.03.2024 13:44
{Конкурс} Lisp. Пребразование в число при возможности back1981 LISP 18 31.12.2010 01:28
Предложение устроить конкурс среди начинающих инженеров и архитекторов. Pavel Samofalov Разное 204 26.09.2009 11:34
Запуск Lisp команды в новом документе BlackHarp LISP 1 26.03.2009 23:06
загрузка DOS прог через LISP Gaa LISP 15 12.08.2005 19:19