Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Найти произведение в строке из символов и цифр 
:(
    Опции темы
KL1CK3R
Дата 16.6.2011, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 16.6.2011

Репутация: нет
Всего: нет



вот текст программы для нахождения суммы (один символ цифры воспринимается как одно число, тоесть рядом стоящие 4 и 5 это не 45(сорок пять),а 4 и 5). 
(defun isnum(x) 
(if (null (position x '(\0 \1 \2 \3 \4 \5 \6 \7 \8 \9))) 
0 (- (ascii x) 48)) 
) 

(defun atomnum(x) 
(let ((num 0) (atm NIL)) 
(dolist (atm x num) 
(setq num (+ (isnum (car atm)) num)) 
) 
) 
) 

(defun listnum(x) 
(let ((num 0) (atm NIL)) 
(dolist (atm x num) 
(setq num (+ (atomnum (unpack atm)) num)) 
) 
) 
) 

(load common) 

(print (listnum (read))) 
Подскажите как сделать для нахождения произведения!Пробовал менять плюсы на умножение,не помогло, в результате пишет ноль. Помню както надо результату единицу присвоить, тогда,возможно, нуля не будет. Кто знает решение проблемы отпишитесь!

Добавлено через 2 минуты и 46 секунд
результат нахождения суммы выглядит так : 
при вводе такой строки (asda24 dfs44fd 34) 

будет результат 21
PM MAIL   Вверх
k0rvin
Дата 17.6.2011, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: нет
Всего: 5



Цитата(KL1CK3R @ 16.6.2011,  17:08)
Пробовал менять плюсы на умножение,не помогло, в результате пишет ноль

наверное потому что x * 0 = 0


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
KL1CK3R
Дата 17.6.2011, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 16.6.2011

Репутация: нет
Всего: нет



k0rvin, подскажите пожалуйста, в чём может быть проблема,я меняю num 1 ,но оно некорректно считает. Считает нормально если записать так : (5 6 9 4 8 3). А если так: (sdfs34 sd34fd 67), то уже не верно выходит. Подскажите плз,очень надо
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума LISP
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Lisp — это целое семейство языков. Всегда указывайте в теме используемый диалект (Common Lisp, Scheme и т.д.).
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | LISP | Следующая тема »


 




[ Время генерации скрипта: 0.0507 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.