Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lisp
Войти
Регистрация
Восстановить пароль
 
Dark Elf
1 / 1 / 0
Регистрация: 21.09.2011
Сообщений: 7
1

Запись значений в свойства переменной

23.11.2012, 20:53. Просмотров 785. Ответов 0
Метки нет (Все метки)

Есть задание
Записать определение функции F1 на языке программирования Common Lisp, которая выполняла бы следующие действия:
1. Выводила сообщение, в котором пользователю предлагалось ввести 4 числа xi;
2. Записывала введенные числа в список (x1 x2 x3 x4);
3. Вычисляла значения функций Y1 Y2 Y3 Y4 для каждого xi;
4. Записывала значения этих функций в свойства каждой переменной xi.
Результатом работы этой функции является список (x1 x2 x3 x4) у каждого элемента списка будет соответственно 4 свойства: Y1 Y2 Y3 Y4, со значениями соответственно Y1(xi), Y2(xi), Y3(xi), Y4(xi). Функции Yj выбираются в соответствии с последними номерами студенческого билета (см. приложение).

2. Записать определение функции F2 на языке программирования Common Lisp, которая анализировала бы свойства элементов списка созданного функцией F1 и выводила на экран элемент и его свойства, удовлетворяющие определенному правилу. Правило выбирается в соответствии с номером студенческого билета. Формат вывода:
(xi соответствует свойство Yj равное Yj (xi))
Где xi, Yj (xi) – соответственно числовые значения xi и Yj (xi).

Задание выполнять в среде Lisp Works. При определении функции F1 использовать PROG-механизм или предложение DO (DO*) (для организации циклов) и условное предложение COND. При определении функции F2 использовать рекурсию. При выделении элемента из списка пользоваться только комбинациями функций CAR и CDR (NTH не использовать). Не запрещено использовать вспомогательные переменные и функции.
Функции y1 y2 y3 y4 сделал
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(defun y1 (x1) 
          (cond ((> x1 3) (-(expt (/ 1 (tan (* (* pi 0.5) (+ x1 1)))) 2) (sqrt (+ (* 2 x1) (expt x1 3))) ))
                ((and (< 0 x1) (<= x1 1)) (log (+ (sin (* 2 x1))  (* (cos (+ x1 1)) 0.5))))
                (t 0)
 ))
 
(defun y2 (x2)
          (cond ((and (> 0 x2) (<= x2 1))) (- (tan (+ (/ x2 3) 2)) (sin (* 3 x2)))
                ((>= 5 x2) (+ (* 2 (expt x2 (/ 1 3 ))) (* 3 (expt x2 (/ 2 3)) ) ) )
                (t (sinh x2))
 ))
 
(defun y3 (x3) 
          (cond ((> x3 1)(-(/ (log (+(/ x3 0.3) 2)) (log 3)) 1))
                ((and (<= -1 x3) (< x3 0)) (- (sin (/ (- (+ (expt x3 2) x3) 2) pi)) (log(+ x3 3))))
                (t -1)
))
 
(defun y4 (x4)
          (cond ((and (< 1 x4) (<= x4 2)) (- (+ (sinh x4) (cosh (- (* 2 x4)))) (expt x4 3)))
                ((and (< -3 x4) (< x4 0)) (expt x4 (cos (- 2 x4))))
                (t (* 2 x4))
 ))
список элементов примерно могу создать
Код
(setq list1 ‘(x1 x2 x3 x4))
(setq list2 ‘(y1 y2 y3 y4))
а вот как сделать вызовы из списка и все это в цикл засунуть непойму. Прошу помощи у вас товарищи)заранее спс

Добавлено через 21 час 30 минут
первое задание сделал
требуется помощь со вторым
Выводить те элементы, у которых сумма значений любых трех функций больше четвертой. То есть одновременно выполняются условия(см. рис 1)
начало как то так
Lisp
1
2
3
4
5
6
7
8
9
10
11
(defun f2 ()
              (setq args (list 'x1 'x2 'x3 'x4))
              (do ((j 1))
                  ((= j 5))
                (setq func (list 'y1 'y2 'y3 'y4))
                (setq x (car args))
                (setq y (car func))  
                (setq right (get x y))
                (setq func (cdr func))
                )
                (setq j (+ j 1))
а вот дальше теребуетсяпомощь
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2012, 20:53
Ответы с готовыми решениями:

Запись пустых значений в случае пустой переменной
Добрый день ) INSERT INTO alicom_system.AllAccounts (id, mail, pass, fullname, address, city,...

Что лучше, свойства с приватной переменной или автоматические свойства?
Известно, что в классах свойства можно определить так: class MyClass { private...

Как построить накапливающийся график значений переменной (Dv), т.е. график суммы значений переменной Dv
function Proba1602 %Начальные условия m = 0.008; k = 20000; c = 0.0012; Ti = 0.0008; dT = 1e-6;...

Присвоить переменной max наибольшее, а переменной min наименьшее из значений следующих величин
Дано вещественное число х. Присвоить переменной max наибольшее, а переменной min наименьшее из...

Присвоить переменной max наибольшее, а переменной min – наименьшее из значений следующих величин
Добрый день) помогите с решением) Дано вещественное число х. Присвоить переменной max наибольшее,...

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2012, 20:53

Применение свойства из ссылки к переменной
Подскажите, как реализовать такую штуку: Имеется ссылка, помещенная в переменную. (Прим.) n...

Привязать значение свойства объекта к переменной
Можно ли как-то привязать значение свойства объекта к переменной? То есть чтобы при изменении...

Присвоение значения переменной из свойства .Location
Помогите пожалуйста присвоить второе значение свойства .Location переменной)) То есть, мне нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.