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

Изменить формат вывода результата

18.03.2014, 16:19. Показов 1271. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!
Ребят есть пример
Lisp
1
(setq g   (rtos 33 2 0))
понятно что результатом будет значение 33(натуральное число), а вот как сделать чтобы, результат выводился как 01 02 ... 09, вот в таком формате, что только не пробовал, ноль отрезается и все...
Спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.03.2014, 16:19
Ответы с готовыми решениями:

Можно ли изменить формат вывода вещественного результата?
Доброго времени суток. Вопрос следующего плана. Довольно-таки простая задача, смысл которой -...

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

Формат результата
Здравствуйте, подскажите. После оператора explicit, в промежуточных вычислениях много знаков после...

Как осуществить формат результата
Я ввел 0:0.2:18000. Выполнил. Потом щелкнул в Workspace на ans. щелкнул на строку и скопировал ее....

9
4527 / 3521 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
18.03.2014, 17:20 2
Если вывод в терминал, то
Lisp
1
(format t "~2,'0D" 1)
печатает 01. Ваша задача непонятна, а то бы точнее подсказал.

Добавлено через 1 минуту
А у вас часом не автолисп? Тогда я пас.
1
1050 / 944 / 107
Регистрация: 04.11.2012
Сообщений: 974
Записей в блоге: 3
18.03.2014, 18:26 3
Цитата Сообщение от Slavok47 Посмотреть сообщение
результатом будет значение 33(натуральное число)
нет, результатом будет строка.

а теперь ее можно сцепить с нулем:
Lisp
1
2
Команда: (strcat "0" (rtos 1))
"01"
2
Модератор
Эксперт функциональных языков программированияЭксперт Python
36606 / 20334 / 4221
Регистрация: 12.02.2012
Сообщений: 33,654
Записей в блоге: 13
18.03.2014, 18:26 4
Лучший ответ Сообщение было отмечено ildwine как решение

Решение

Попробуй вот это:

Lisp
1
2
3
(defun int2str (i n)
   (let  (ist (itoa i))
          (if (< (strlen ist) n) (dotimes (j (- n (strlen ist)) ist) (setq ist (strcat "0" ist)) itoa))
2
Заблокирован
18.03.2014, 21:36 5
В качестве бреда...
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
((lambda (lst)
   (mapcar '(lambda (x)
              (write-line (strcat (chr (if (< x 10) 48 0)) (itoa x)))
            )
            lst
   )
   (write-line
     (vl-string-left-trim
       (chr 32)
       (apply 'strcat
              (mapcar
                '(lambda (x)
                   (strcat (chr 32) (chr (if (< x 10) 48 0)) (itoa x))
                 )
                (reverse lst)
              )
        )
      )
    )
  )
  '(0 1 2 3 4 5 6 7 8 9 10 11 12 13)
)
зы Catstail, поздравляю с назначением
3
Модератор
Эксперт функциональных языков программированияЭксперт Python
36606 / 20334 / 4221
Регистрация: 12.02.2012
Сообщений: 33,654
Записей в блоге: 13
18.03.2014, 21:42 6
Цитата Сообщение от ur_naz Посмотреть сообщение
Catstail, поздравляю с назначением
- спасибо!
0
2 / 2 / 3
Регистрация: 13.10.2012
Сообщений: 130
19.03.2014, 08:27  [ТС] 7
Цитата Сообщение от helter Посмотреть сообщение
А у вас часом не автолисп? Тогда я пас.
Наверно)) скрипт для автокада
Ну да я не полностью описал назначение, дело в том, что, значение вводится через форму, в переменную s
типа
Lisp
1
(setq g   (rtos s 2 0))
потом при каждом клике переменная s добавляет 1
Lisp
1
(setq s (+ 1 s))
поэтому просто добавить ноль как
Lisp
1
strcat "0"
не пойдет, если я например захочу сделать нумерацию с 1, то все равно получится 01, поэтому я подумал что есть какое то преобразование чтобы 0 не обрезался, видимо придется сделать так:
добавить еще одно поле и вводить туда 0, и условием как то обработать, ну типа если значение s >9, то ноль не добавляем, а пишем 10, ну а если я захочу сделать маркировку как 001, в общем бред...
я просто сравнил с Экселем, ну там типа если формат ячейки как текст, то ничего не преобразуется и не пересчитывается, в отличии от числового формата...
0
2 / 2 / 3
Регистрация: 13.10.2012
Сообщений: 130
20.03.2014, 09:08  [ТС] 8
Вобщем сделал так
Lisp
1
(if (and (<= s 99) (= o 1)) (setq u "00") (setq u ""))
а теперь вопрос, как добавить в это условие проверку на больше 9, чтобы добавить (setq u "0")
то есть чтобы с 10 ставился один ноль

то есть получается или условие выполняется то 00, если нет, то без нуля, а вот как быть с третьим параметром...
0
Заблокирован
20.03.2014, 09:22 9
проще надо писать, проще
Lisp
1
2
3
4
5
6
( (lambda (num)
  (strcat  (cond ((< num 10) "00")
                 ((< num 100) "0")
                 (T ""))
           (itoa num)))
   99)
3
2 / 2 / 3
Регистрация: 13.10.2012
Сообщений: 130
20.03.2014, 11:30  [ТС] 10
ur_naz, Спасибо! Пока ждал ответа, почитал книгу по Лисп и сделал именно так, все работает))
0
20.03.2014, 11:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.03.2014, 11:30
Помогаю со студенческими работами здесь

Задержка результата и формат числа
Вводим 5 чисел с клавиатуры,и считаем их среднеарифметическое. Но как сделать чтобы результат...

выгрузка результата запроса в формат .xml
кое-как собрал запрос, а как его выгрузить в формат .xml не знаю, помогите пжлста... //запрос...

Формат вывода
Ребятки всем привет... Подскажите пожалуйста, кто может.... Такая проблема у меня, мне нужно...

Формат вывода
Здравствуйте, уважаемые форумчане! Помогите, пожалуйста, исправить вывод, чтобы табличка ровненькой...


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

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