Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Lisp
Перезагрузить страницу Определите функцию (f a b c), которая вычисляет список корней квадратного уравнения
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
назарово назарово вне форума
Новичок
 
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 28.01.2008
По умолчанию Определите функцию (f a b c), которая вычисляет список корней квадратного уравнения - 30.01.2008, 07:10

Определите функцию (f a b c), которая вычисляет список корней квадратного уравнения a*x^2+b*x+c=0 (если корней нет, то список пустой)
С уважением, Назар.
Ответить с цитированием
  (#2 (permalink)) Старый
VH VH вне форума
Member
 
Сообщений: 781
Сказал(а) спасибо: 0
Поблагодарили 11 раз(а) в 10 сообщениях
Регистрация: 29.06.2006
По умолчанию 30.01.2008, 09:51

Вариант для школьников:
Код:
(defun F (a b c)
  ((lambda (d)
    (if (minusp d) nil
     (mapcar
     '(lambda (sign)
       (/
        (+ (* -1 b) (* sign (sqrt d)))
        (* 2 a)))
     '(-1 +1))))
   (- (* b b) (* 4 a c))))
Вариант для студентов:
Код:
(defun F (a b c)
  ((lambda (d)
    (mapcar
    '(lambda (sign)
      (/
       (+ (* -1 b) (* sign (sqrt d)))
       (* 2 a)))
    '(-1 +1)))
   (- (* b b) (* 4 a c))))
Ответить с цитированием
  (#3 (permalink)) Старый
VH VH вне форума
Member
 
Сообщений: 781
Сказал(а) спасибо: 0
Поблагодарили 11 раз(а) в 10 сообщениях
Регистрация: 29.06.2006
По умолчанию 30.01.2008, 13:01

1. Напишите функцию, аналогичную встроенной функции замены subst в списке s выражение x на y, но производящую взаимную замену x на y, т.е. x->y, y->x
Код:
(defun MUTUAL_SUBST (S x y)
  (if S
   ((lambda (elem result)
     (cons
      (cond
       ((equal elem x) y)
       ((equal elem y) x)
       (T elem))
      result))
    (car S)
    (MUTUAL_SUBST (cdr S) x y))))
2. определите функцию (f s), результатом которой является список, получающийся после удаления на всех уровнях всех положительных элементов списка чисел s
Код:
(defun EXCLUDEPOSITIVE (S)
  (if S
   ((lambda (elem result)
     (if (listp elem)
      (cons (EXCLUDEPOSITIVE elem) result)
      (if (plusp elem)
       result
       (cons elem result))))
    (car S)
    (EXCLUDEPOSITIVE (cdr S)))))
Ответить с цитированием
  (#4 (permalink)) Старый
VH VH вне форума
Member
 
Сообщений: 781
Сказал(а) спасибо: 0
Поблагодарили 11 раз(а) в 10 сообщениях
Регистрация: 29.06.2006
По умолчанию 01.02.2008, 10:06

1. Определите функцию (f n), n кратное 3, вычисляющую сумму:
1*2*3+4*5*6+...+(n-2)*(n-1)*n.
Код:
(defun F (N)
  (if (< N 3) 0
   (+
    (* (- N 2) (- N 1) N)
    (F (- N 3)))))
2. Определите функцию (f s), которая в одноуровневом списке чисел s представляет все отрицательные элементы в начало списка, например, (f '(4 -8 6 -9 -7)) -> (-8 -9 -7 4 6).
Код:
(defun F (S)
  (if S
   ((lambda (elem result)
     (cond
      ((null result) (cons elem result))
      ((minusp elem) (cons elem result))
      ((plusp (car result)) (cons elem result))
      (T
       (cons (car result) (F (cons elem (cdr result)))))))
    (car S)
    (F (cdr S)))))
3. Определите функцию (f s), которая из списка чисел s создает новый список, меняя знак у каждого атома. Исходный список не предполагается одноуровневым.
Код:
(defun F (S)
  (if S
   ((lambda (elem result)
     (cons
      (if (atom elem)
       (- elem)
       (F elem))
      result))
    (car S)
    (F (cdr S)))))
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определите функцию, переворачивающую список deman Lisp 5 06.05.2011 16:37
Определите функцию. которая по исходному списку строит новый список Masha11 Lisp 1 14.01.2011 15:33
Определите функцию, которая из двух списков одинаковой длины строит список Masha11 Lisp 2 13.01.2011 15:11
Определите функцию same, которая для двух списков находит первый Masha11 Lisp 4 13.01.2011 13:33
Определите функцию (f s), которая вычисляет список mario[x] Lisp 4 09.12.2010 15:37
Написать рекурсивную функцию,которая вычисляет сумму всех чисел kugur Lisp 1 22.07.2009 18:50
Написать функцию UNION, которая вычисляет объединение двух множеств Horror Lisp 22 06.01.2008 11:08
Написать функцию UNION, которая вычисляет объединение двух множеств Serg13 Lisp 3 13.09.2007 14:22
Написать функцию UNION,которая вычисляет объединение множеств compadre_sai Lisp 1 24.05.2007 02:11
Определите функцию которая из списка чисел s создает новый список Astilla Lisp 2 30.01.2005 02:22
Как составить функцию, которая вычисляет произведение элементов Anonymous Вопросы начинающих программистов 1 25.05.2004 16:40
Определите функцию которая вычисляет список корней квадратного уравнения Anonymous Lisp 0 05.05.2003 11:32



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов