Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 25.12.2013
Сообщений: 11

Нужно исправить пару ошибок

15.01.2014, 15:41. Показов 1719. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1. Дано число N. Определить функцию, возвращающую в виде списка ряд целых
чётных чисел от 2 до N. Использовать только базис Лиспа.
Например: если дано "10", ответом будет "(2 4 6 8 10)".


Lisp
1
2
3
4
5
6
(defun summ-even (n)
  (cond ((oddp n) (summ-even (- n 1)))
        ((zerop n) nil)
        (t (cons n (summ-even (- n 2))))
  )
)
Выводит : 10 8 6 4 2 ... как перевести в вывод 2 4 6 8 10

2. Дано S-выражение, содержащее элементы, записанные в точечной нотации.
Определить функцию, которая возвращает копию этого S-выражения, в которой
каждый бинарный узел заменён на двухэлементный список.
Например: если дано "(2 (0 . 1) 4 (3 . (5 . 7)))", ответом будет "(2 (0 1) 4 (3 (5 7)))".

Lisp
1
2
3
4
5
6
7
8
9
(defun aaa (S)
  (cond
    ((eq s nil) nil)
    ((atom s) (cons s nil))
    (T (cons (aaa (car s)) (aaa (cdr s))))
  )
)
 
(princ (aaa '(2 (0 . 1) 4 (3 . (5 . 7)))))
Выводит ((2) ((0) 1) (4) ((3) (5) 7)) ... не получается вывести правильно , выводит лишние скобки..


3. Даны число N, число M и S-выражение, представляющее дерево вида «(Родитель
РебенокЛевый РебенокПравый)» с числами в качестве вершин. Определить функ-
цию для подсчёта количества вершин, значения которых лежат в диапазоне между
N и M включительно.
Например: если дано "2 7 (0 (5 (1 nil nil) (7 nil nil)) (4 nil (10 nil nil)))", ответом будет "3".


С этим заданием вообще проблема, если кто может решить , буду благодарна за помощь.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.01.2014, 15:41
Ответы с готовыми решениями:

Исправить пару ошибок
Помогите исправить ошибки, выдает в 53 и 134 строках. Ispravit.cpp:53: implicit declaration of function `int getchar(...)' ...

Исправить пару ошибок в графическом режиме
ВОт программа, которая состоит из crt режима с подключением графики: Uses crt, graph; Type T_zap=Record n_r: byte; k_r: byte; ...

Прокомментировать код и если есть-исправить пару ошибок
Help me прокомментировать код и если есть-исправить пару ошибок.MODEL Tiny .STACK 100h .DATA Msg1 DB 'Введите...

4
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
15.01.2014, 16:58
Цитата Сообщение от Танюша92 Посмотреть сообщение
1. Дано число N. Определить функцию, возвращающую в виде списка ряд целых
чётных чисел от 2 до N. Использовать только базис Лиспа.
Например: если дано "10", ответом будет "(2 4 6 8 10)".
Lisp
1
2
3
4
(defun summ-even (n)
  (cond ((oddp n) (summ-even (- n 1)))
        ((zerop n) nil)
        (t (cons n (summ-even (- n 2))))))
Выводит : 10 8 6 4 2 ... как перевести в вывод 2 4 6 8 10
Пусть это будет вспомогательная функция (оформленная или самостоятельно, или через labels), вы вызывайте её в основной и делайте reverse.

Цитата Сообщение от Танюша92 Посмотреть сообщение
2. Дано S-выражение, содержащее элементы, записанные в точечной нотации.
Определить функцию, которая возвращает копию этого S-выражения, в которой
каждый бинарный узел заменён на двухэлементный список.
Например: если дано "(2 (0 . 1) 4 (3 . (5 . 7)))", ответом будет "(2 (0 1) 4 (3 (5 7)))".
Lisp
1
2
3
4
5
6
(defun aaa (S)
  (cond
    ((eq s nil) nil)
    ((atom s) (cons s nil))
    (T (cons (aaa (car s)) (aaa (cdr s))))))
(princ (aaa '(2 (0 . 1) 4 (3 . (5 . 7)))))
Выводит ((2) ((0) 1) (4) ((3) (5) 7)) ... не получается вывести правильно , выводит лишние скобки..
Вы ж сами пишете, что атом превращать в список. Попробуйте написать ((atom s) s), это работает и для nil тоже.

Кстати, если вам всё равно, каким именем называть, можете использовать каноничные foo, bar, foobar, baz, qux...
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,711
Записей в блоге: 14
15.01.2014, 18:02
1) Есть более простой способ:

Lisp
1
2
3
4
5
6
7
8
9
10
(defun task-1 (n &optional r)
  (cond ((zerop n) r)
        (t (task-1 (- n 2) (cons n r)))))
 
 
==> task-1
 
(task-1 10)
 
==> (2 4 6 8 10)
Добавлено через 32 минуты
3)

Lisp
1
2
3
4
5
6
7
8
9
10
(defun task-3 (n m tree)
  (cond ((null tree) 0)
        ((and (>= (car tree) n) (<= (car tree) m)) (+ 1 (task-3 n m (cadr tree)) (task-3 n m (caddr tree))))
        (t (+ (task-3 n m (cadr tree)) (task-3 n m (caddr tree))))))
 
==> task-3
 
(task-3 2 7 '(0 (5 (1 nil nil) (7 nil nil)) (4 nil (10 nil nil))))
 
==> 3
1
493 / 426 / 56
Регистрация: 29.04.2011
Сообщений: 443
15.01.2014, 20:28
1.
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(defun EVEN-ROW (n)
    (cond
        ((zerop n) nil)
        ((oddp n) (EVEN-ROW (- n 1)))
        (t (append (EVEN-ROW (- n 2)) (list n)))))
 
 
(EVEN-ROW '10)
 
==> (2 4 6 8 10)
 
 
(EVEN-ROW '9)
 
==> (2 4 6 8)
Добавлено через 18 минут
Catstail,

(task-1 '9) на нечетных уходит в бесконечность.

чуток покороче:
Lisp
1
(and (>= (car tree) n) (<= (car tree) m)) <==> (<= n (car tree) m)
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,711
Записей в блоге: 14
16.01.2014, 03:45
Цитата Сообщение от route66 Посмотреть сообщение
(task-1 '9) на нечетных уходит в бесконечность.
- увы...

Lisp
1
2
3
4
5
6
7
8
9
(defun task-1 (n &optional r (m (if (evenp n) n (- n 1))))
  (cond ((zerop m) r)
        (t (task-1 n (cons m r) (- m 2)))))
 
==> task-1
 
(task-1 9)
 
==> (2 4 6 8)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.01.2014, 03:45
Помогаю со студенческими работами здесь

Нужно исправить пару строчек в коде с++
https://docs.google.com/document/d/1qN3ds3clGQp-DFco3hDJPTdi8zBO2p15c440S4NsPaI/edit вот задача вот ссылка на архив с программой...

Нужно исправить несколько ошибок
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #pragma hdrstop #include...

Нужно исправить ошибки (работа с графикой, со скрином ошибок)
#include &lt;graphics.h&gt; #include &lt;stdlib.h&gt; #define _USE_MATH_DEFINES #include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;time.h&gt; ...

Программа с рекурсивной функцией. В моем коде несколько ошибок, нужно исправить
Требуется написать программу для решения задачи на скрине, используя рекурсивную функцию. У меня есть подозрение, что я что то делаю не...

Исправить пару программ
Доброго времени суток. Сделал программы, только есть пару недочетов, помогите исправить. 1.Найдите наименьший элемент двумерного массива....


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru