Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
 
Slenon
5 / 5 / 3
Регистрация: 25.07.2016
Сообщений: 182
1

Перевод из арабской системы счисления в римскую

14.08.2017, 21:26. Просмотров 301. Ответов 12
Метки нет (Все метки)

Заготовка программы:
Lisp
1
2
3
4
5
6
7
8
9
10
(defun ArabRim ()
(setf R (vector "I" "V" "X" "L" "C" "D" "M"))
(format t "Vvedite Arab = ")
(setf Arab (read-line))
(setf SArab (reverse Arab))
  (do ((i 0 (+ i 1)))
      ((> i 3) 'done)
(setf y  (char SArab i))
(setf s  (parse-integer y))
(format t "~A" (+ 2 s))))
Мне настолько непонятно, что я просто прошу
переделать прогу так что бы она работала ...
И ещё я прошу назвать мне функцию которая
вычисляет кол-во знаков в строке (CLISP) ...
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.08.2017, 21:26
Ответы с готовыми решениями:

[Io] Перевод числа из арабской системы в римскую в цикле
Вопрос №1. Мне требуется фрагмент кода осуществляющий ввод числа с клавиатуры, с сохранением в...

Перевод чисел из арабской системы счисления в римскую, с помощью рекурсии.
Здравствуйте:) помогите, пожалуйста, написать программу, переводящую числа из арабской системы...

Перевод с арабской на римскую сисстему счисления
Подскажите как сделать перевод с арабских на римские числа по принципу этой программы #include...

Перевод из арабской системы в римскую
Здравствуйте!!!Задача:нужно написать программу перевода из арабской системы счисления в римскую...

12
vlisp
602 / 642 / 122
Регистрация: 10.08.2015
Сообщений: 2,786
Завершенные тесты: 1
15.08.2017, 00:50 2
раздели программу на блоки: получение числа, преобразование, вывод.так тебе будет легче
0
Slenon
5 / 5 / 3
Регистрация: 25.07.2016
Сообщений: 182
15.08.2017, 01:17  [ТС] 3
Есть у меня подозрение Уважаемый vlisp, что строка
Lisp
1
(setf y  (char SArab i))
присваивает переменной y не строку состоящую из
одного элемента, а ...
0
vlisp
602 / 642 / 122
Регистрация: 10.08.2015
Сообщений: 2,786
Завершенные тесты: 1
15.08.2017, 02:09 4
проще сразу пристрелить...
Lisp
1
(format nil "~@R" (parse-integer (read-line)))
0
_sg
4266 / 4000 / 314
Регистрация: 12.05.2012
Сообщений: 2,824
15.08.2017, 07:13 5
Цитата Сообщение от Slenon Посмотреть сообщение
вычисляет кол-во знаков в строке
Lisp
1
2
> (length "abcde")
5
Lisp
1
2
> (format nil "~@r" 1958)
"MCMLVIII"
с изысками:
Lisp
1
2
> (format nil "~:@r" 1958)
"MDCCCCLVIII"
Добавлено через 9 минут
18. A Few FORMAT Recipes
http://www.gigamonkeys.com/book/a-few-format-recipes.html

22.3.3. Formatted Output to Character Streams
https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node200.html
0
Catstail
Модератор
25809 / 13316 / 2521
Регистрация: 12.02.2012
Сообщений: 21,829
15.08.2017, 10:33 6
HomeLisp:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
;; алгоритм перевода:
;; [url]http://kazanko.ru/algoritm-rim-to-arab.html[/url]
 
(defun conv-group (n a b c)
  (cond ((= n 1) a)
        ((= n 2) (strCat a a))
        ((= n 3) (strCat a a a))
        ((= n 4) (strCat a b))
        ((= n 5) b)
        ((= n 6) (strCat b a))
        ((= n 7) (strCat b a a))
        ((= n 8) (strCat b a a a))
        ((= n 9) (strCat a c))
        (t "")))
 
(defun arab2rim (n)
  (let ((res ""))
       (setq res (strCat res (conv-group (\ n 1000) "M" "" "")))
       (setq n (% n 1000))
       (setq res (strCat res (conv-group (\ n 100) "C" "D" "M")))
       (setq n (% n 100))
       (setq res (strCat res (conv-group (\ n 10) "X" "L" "C")
                             (conv-group (% n 10) "I" "V" "X")))))
1
Slenon
5 / 5 / 3
Регистрация: 25.07.2016
Сообщений: 182
15.08.2017, 20:11  [ТС] 7
Ещё раз спрашиваю, что присваивается y в строке
Lisp
1
(setf y  (char SArab i))
если не строка из одного элемента, то что
0
vlisp
602 / 642 / 122
Регистрация: 10.08.2015
Сообщений: 2,786
Завершенные тесты: 1
15.08.2017, 21:48 8
Цитата Сообщение от Slenon Посмотреть сообщение
Ещё раз спрашиваю,
ты не спрашивай, не прочитав справки. ну ладно, справка в лиспе - отстой. Книги - шлак. но как ты собираешься программировать, не зная стандартные типы данных?

Lisp
1
(type-of (char "abcd" 2))
0
_sg
4266 / 4000 / 314
Регистрация: 12.05.2012
Сообщений: 2,824
15.08.2017, 22:14 9
http://filonenko-mikhail.github.io/c...l#x11-210002.2
0
Catstail
Модератор
25809 / 13316 / 2521
Регистрация: 12.02.2012
Сообщений: 21,829
16.08.2017, 10:04 10
Цитата Сообщение от Slenon Посмотреть сообщение
Ещё раз спрашиваю, что присваивается y в строке
присваивается i-й символ строки (счет с нуля). Стало легче?
1
Slenon
5 / 5 / 3
Регистрация: 25.07.2016
Сообщений: 182
17.08.2017, 00:03  [ТС] 11
Изменим часть кода ...
--------------------------------------------------------
Lisp
1
2
(setf y  (char "3497" i))
(setf s  (parse-integer y)
--------------------------------------------------------
присваивается i-й символ строки

т.е. строка состоящая из 1-го символа, правильно я понимаю?
Но, тогда какого lispbox пишет следующее:
value #\3 is not of the expected type STRING.
[Condition of type TYPE-ERROR]
0
vlisp
602 / 642 / 122
Регистрация: 10.08.2015
Сообщений: 2,786
Завершенные тесты: 1
17.08.2017, 02:12 12
Цитата Сообщение от Slenon Посмотреть сообщение
правильно я понимаю?
похоже ты совсем не понимаешь, тем более правильно
Цитата Сообщение от Slenon Посмотреть сообщение
#\3
это похоже на строку? ответ найдешь выше в сообщениях.
0
Catstail
Модератор
25809 / 13316 / 2521
Регистрация: 12.02.2012
Сообщений: 21,829
17.08.2017, 09:41 13
Цитата Сообщение от Slenon Посмотреть сообщение
т.е. строка состоящая из 1-го символа, правильно я понимаю?
- нет. В Лиспе (как и в C) символ и строка из одного символа - не одно и то же.
0
17.08.2017, 09:41
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2017, 09:41

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Программа перевод чисел из арабской систеиы счисления в римскую
Перевести заданное целое число в систему римского счисления (1 - I, 5 - V, 10 - X, 50 - L, 100 - C,...

Переведите из десятичной системы счисления (арабской) в римскую числа 99, 3917
подскажите!

Переведите из десятичной системы счисления (арабской) в римскую числа 551, 1918
Пожалуйста подскажите!

Перевод из десятичной системы счисления в римскую
Парни подскажите как работает программа. Опишите пожалуйста каждую строчку. ...


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

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

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