IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Программа на Lisp
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 80
Пол: Мужской

Репутация: -  0  +


Задание: Написать программу подсчета количества атомов в заданном интервале уровней для заданного списка.

Код
(setq m nil);количество атомов
(setq A '( 11 12 13 14 15 16 ( 11 12 13 14) 18));список
(setq a1 2);левая граница
(setq a2 6);правая граница
//(setq a1 (getint "element1:"))
//(setq a2 (getint "element2:"))
(setq p (- a2 a1)); количество элементов в "нужной части"
(setq n a1)
(while (> n 0);отрезаю "голову" списка, чтобы оставить только нужную для анализа часть
    (progn
        (cdr A)
        (- n 1))
)
(setq z 0)
(while (> p 0)     ; Проверяю является ли текущий элемент списка атомом
    (progn
        (if (= Atom(nth z 'A) T)
            (+ 1 m) ; Если да, то увеличиваю m
        )
    (+ z 1)); наращиваю z, чтобы посмотреть след. элемент списка
      (setq p (- p 1)); Пока не просмотрю все элементы из нужной части
)
(print m); Вывод m


Вроде всё нормально, не уверен с проверкой на то, является ли элемент атомом, просто не очень удобный Компилятор, не понимаю, что не так...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 13:22
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name