Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 3
1

Составить программу для вычисления функции OTW

21.10.2013, 17:59. Показов 1454. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Составить программу для вычисления функции OTW, аргумент
которой LST представляет собой список, содержащий три
подсписка, в каждом из которых по три элемента. Например,
значением LST может быть список

((A B C) (D E F) (G H I))) .

Значением функции OTW должен быть список, содержащий три
подсписка, в каждом из которых по три элемента При этом в
первом подсписке все три элемента являются первыми элементами
подсписков LST, во втором подсписке все три элемента являются
вторыми элементами подсписков LST,в третьем подсписке все три
элемента являются третьими элементами подсписков LST. Так для
приведенного примера результат будет

((A D G) (B E H) (C F I)) .

Программа должна содержать определения пяти функций,
главное из которых есть определение функции OTW. В этом
определении должен быть только один единственный вызов функции
CONS с соответствующими аргументами, являющимися вызовами двух
других функций.
Последовательность действий, которая осуществляется в
результате вызовов всех функций должна быть следующей:
- строится первый подсписок SP1;
- строится второй подсписок SP2;
- строится третий подсписок SP3;
- подсписки SP2 и SP3 объединяются в список SP23;
- подсписок SP1 и список SP23 объединяются в
результирующий список.
При составлении определений функций необходимо учитывать,
что вызов функции верхнего уровня вложенности вызовов функций
осуществляется первым, а результат ее применения формируется
последним. Это замечание справедливо для функции любого уровня
вложенности вызовов функций.
В определениях функций необходимо использовать только
вызовы функций CONS, CA..DR и функций, определенных через
вызовы этих функций.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2013, 17:59
Ответы с готовыми решениями:

Выбрать алгоритм и составить его блок-схему для вычисления значения указанной функции.Составить программу вычисления
Пожалуйста,помогите!!!

Составить блок-схему, алгоритм вычисления и программу для вычисления значения кусочно заданной функции
помогите решить

Составить блок-схему, алгоритм вычисления и программу для вычисления значения кусочно заданной функции
помогите пожалуйста =) заранее благодарен =) П.5.19.Правил Запрещено создавать темы в виде ссылок...

Составить программу для вычисления значения функции y=ln(1+x) разложением функции в степенной ряд
вычислить с точностью E: y=ln(1+x)=x-x 2\2+x 3\3+.+(-1) (n-1)x n\n+ как это делать, кто знает?

7
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,643
Записей в блоге: 13
21.10.2013, 18:02 2
Цитата Сообщение от stas888 Посмотреть сообщение
Программа должна содержать определения пяти функций,
- не многовато ли?
0
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 3
21.10.2013, 18:04  [ТС] 3
Цитата Сообщение от Catstail Посмотреть сообщение
- не многовато ли?
Преподователь задал столько.
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,643
Записей в блоге: 13
21.10.2013, 18:26 4
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
(defun task (lst)
  (cons 
    (cons (caar lst) (cons (caadr lst) (cons (caaddr lst) nil)))
      (cons  
          (cons (cadar lst) (cons (cadadr lst) (cons (car (cdaddr lst)) nil)))
            (cons 
                (cons (caddar lst) (cons (caddr (cadr lst)) (cons (caddr (caddr lst)) nil))) nil)))) 
 
==> task
 
(task '((a b c) (d e f) (g h i)))
 
==> ((a d g) (b e h) (c f i))
Уф...
1
Заблокирован
21.10.2013, 18:26 5
Лучший ответ Сообщение было отмечено как решение

Решение

Lisp
1
2
(apply 'mapcar
     (cons 'list '((A B C) (D E F) (G H I))))
2
4699 / 4394 / 380
Регистрация: 12.05.2012
Сообщений: 3,096
23.10.2013, 18:51 6
Lisp
1
2
3
4
(defun transpose-matrix (m) (apply #'mapcar #'list m))
 
> (transpose-matrix '((1 2 3) (4 5 6) (7 8 9)))
((1 4 7) (2 5 8) (3 6 9))
0
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 3
23.10.2013, 20:07  [ТС] 7
Цитата Сообщение от Catstail Посмотреть сообщение
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
(defun task (lst)
  (cons 
    (cons (caar lst) (cons (caadr lst) (cons (caaddr lst) nil)))
      (cons  
          (cons (cadar lst) (cons (cadadr lst) (cons (car (cdaddr lst)) nil)))
            (cons 
                (cons (caddar lst) (cons (caddr (cadr lst)) (cons (caddr (caddr lst)) nil))) nil)))) 
 
==> task
 
(task '((a b c) (d e f) (g h i)))
 
==> ((a d g) (b e h) (c f i))
Уф...
при вводе (task '((a b c) (d e f) (g h i))) выдаёт следущее:EVFUN:Не найдена функция CAADR ==> ERRSTATE.Как это исправить?
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,643
Записей в блоге: 13
24.10.2013, 11:33 8
Цитата Сообщение от stas888 Посмотреть сообщение
Как это исправить
Способов два:

1) определить эту функцию:

Lisp
1
2
(defun caadr (lst)
   (car (car (cdr lst))))
2) Загрузить более свежее ядро HomeLisp отсюда

Заменить exe-файл на новый, файл lib-k.lsp перенеси в \lib, запусти HomeLispIde.exe, войди в режим настройки и укажи библиотеку lib-k.lsp
1
24.10.2013, 11:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.10.2013, 11:33
Помогаю со студенческими работами здесь

Составить программу для вычисления значения функции с помощью разложения функции в степенной ряд
Составить программу для вычисления значения функции y=e^-x с помощью разложения функции в степенной...

Составить программу для вычисления значения функции 1/sqrt(1+x) с разложением функции в степенной ряд
Собственно, доброго времени суток. Задание: Составить программу для вычисления значения...

Составить программу для вычисления функции
составить программу для вычисления функции y=2x^3+5x+8, где изменяется от x1 до x2 с шагом dx, x1,...

составить программу для вычисления функции
функция \begin{cases} & \text {lg}^{3} x+{x}^{2}\\ & \text \sqrt{x+t}+1/x \\ & \text...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru