Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
1

Калькулятор

09.01.2013, 20:05. Показов 4044. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Функция 'CALC' ввод двух чисел и операции между ними, выход из функция словом 'konec'
Например:
>(calc)
Vvedite vashy chisla i operaciju: 4 + 1
5
Vvedite vashy chisla i operaciju: 5 - 1
4
Vvedite vashy chisla i operaciju: konec
T
>

Не использовать optional

Добавлено через 1 минуту
Надо как можно проще..
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.01.2013, 20:05
Ответы с готовыми решениями:

Функция калькулятор
Вот собственно код задачи, функция калькулятор. "=====Calculator=====" (define tc1 (list 1 '*...

Программа-калькулятор
Помогите, пожалуйста, разработать программу-калькулятор. Калькулятор позволяет использовать четыре...

Своеобразный калькулятор без eval
Нужна помощь,написать код,который из этого ((3 + 4) (2 * 5) (1 + 6)) выведет потом результаты...

Калькулятор
Я только начинаю изучать руби, поэтому еще тяжело ориентируюсь даже в таких простых задачах как...

5
Модератор
Эксперт функциональных языков программированияЭксперт Python
36606 / 20334 / 4221
Регистрация: 12.02.2012
Сообщений: 33,653
Записей в блоге: 13
09.01.2013, 21:15 2
Цитата Сообщение от Doctor_ Посмотреть сообщение
Не использовать optiona
- дались они тебе...

Вот без особых изысков... Но вводимое нужно заключать в скобки:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
(defun calc Nil
  (let ((a 0) (b 0) (op nil) (cmd nil))
   (loop
     (printsline "Введите команду в виде (Число Операция Число)")
     (setq cmd (read))
     (when (EQ cmd 'quit) (return 'ok))
     (setq a  (car cmd))
     (setq op (cadr cmd))
     (setq b  (caddr cmd))
     (print a)
     (prints " ")
     (print op)
     (prints " ")
     (print b)
     (prints " =")
     (printline (apply op (list a b))))))
         
 
==> calc
 
(calc)
Введите команду в виде (Число Операция Число)
(8 + 7)
8 + 7 =15
Введите команду в виде (Число Операция Число)
(5 * 6)
5 * 6 =30
Введите команду в виде (Число Операция Число)
quit
 
==> ok
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36606 / 20334 / 4221
Регистрация: 12.02.2012
Сообщений: 33,653
Записей в блоге: 13
09.01.2013, 21:23 3
Для Common-Lisp:

Lisp
1
2
3
4
5
6
7
8
9
10
(defun calc Nil
  (let ((a 0) (b 0) (op nil) (cmd nil))
   (loop
     (print "Введите команду в виде (Число Операция Число)")
     (setq cmd (read))
     (when (EQ cmd 'quit) (return 'ok))
     (setq a  (car cmd))
     (setq op (cadr cmd))
     (setq b  (caddr cmd))
     (print (apply op (list a b))))))
Миниатюры
Калькулятор  
1
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
10.01.2013, 12:32 4
Цитата Сообщение от Catstail Посмотреть сообщение
Но вводимое нужно заключать в скобки:
Lisp
1
2
3
4
5
6
7
8
(defun calc ()
  (loop
     (format t "> ")
     (finish-output)
     (let ((op (read)))
       (when (eq op 'quit)
         (return))
       (format t "~A~%" (funcall (read) op (read))))))
Но все же лучше вручную разбирать ввод.
1
4699 / 4394 / 380
Регистрация: 12.05.2012
Сообщений: 3,096
10.01.2013, 13:20 5
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
(defun  calculate (&aux cmd)
   (loop (print "Enter: Number Operator Number")
         (setq cmd (read-from-string
                    (concatenate 'string "(" (read-line) ")")))
         (when (eql (car cmd) 'quit) (return 'ok))
         (print (eval `(,(cadr cmd) ,(car cmd) ,(caddr cmd))))))
 
> (calculate)
"Enter: Number Operator Number" 2 + 3
5 
"Enter: Number Operator Number" quit
OK
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
36606 / 20334 / 4221
Регистрация: 12.02.2012
Сообщений: 33,653
Записей в блоге: 13
11.01.2013, 19:23 6
Калькулятор - так калькулятор!

Кликните здесь для просмотра всего текста

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//
//  Программа отображения диалога _Dlg_
//
(prog nil
      (try (dlgDestroy '_Dlg_) except Nil)
      (dlgCreate '_Dlg_ 511 274 "Калькулятор" &H8000000F)
      (dlgAddControl '_Dlg_ '_LBL_1 _LABEL 18 15 466 23 '("Tahoma" 14,25 1 0 0) "Вводите формулу в алгебраической записи:" 2 &H80000012 &H8000000F)
      (dlgAddControl '_Dlg_ '_TXT_1 _TEXT 17 51 469 68 '("Tahoma" 12 1 0 0) "" 0 &H80000008 &H80000005)
      (dlgAddControl '_Dlg_ '_BUT_2 _BUTTON 107 181 139 51 '("Tahoma" 8,25 1 0 0) "Вычислить")
      (dlgPutPicture '_BUT_2 7)
      (dlgAddControl '_Dlg_ '_LBL_2 _LABEL 24 132 457 43 '("Tahoma" 14,25 1 0 0) "" 0 &HFF0000 &H8000000F)
      (dlgAddControl '_Dlg_ '_BUT_3 _BUTTON 287 181 139 51 '("Tahoma" 8,25 1 0 0) "Закрыть")
      (dlgPutPicture '_BUT_3 36)
      //
      // Пролог загрузки диалога _DLG_
      //
      (Prog () 
      )
      //
      // Обработчик события CLICK для кнопки _BUT_2
      //
      (defun _BUT_2_Click  Nil 
       (let* (
                (frm-e (dlgGetText '_TXT_1))
                (frm-i (parse frm-e))
                (frm-v (inf2pref frm-i))
                (val   (eval frm-v))
             )
             (dlgPutText '_LBL_2 (output val)) 
        ))
      //
      // Обработчик события CLICK для кнопки _BUT_3
      //
      (defun _BUT_3_Click  Nil 
        (dlgHide '_DLG_)
        (dlgDestroy '_DLG_) 
       )
      //
      //   Назначение процедуры-события _BUT_2_Click  контролу _BUT_2
      //
      (dlgSetEvent '_BUT_2 '_BUT_2_Click )
      //
      //   Назначение процедуры-события _BUT_3_Click  контролу _BUT_3
      //
      (dlgSetEvent '_BUT_3 '_BUT_3_Click )
      //
      //   Отображение диалога _Dlg_
      //
      (dlgShow '_Dlg_)
)


Выглядит так:
Миниатюры
Калькулятор  
0
11.01.2013, 19:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.01.2013, 19:23
Помогаю со студенческими работами здесь

Стековый калькулятор
Здравствуйте! Прошу помощи в изменении стекового калькулятора на Ruby. Необходимо, чтобы...

Калькулятор множеств
Есть список множеств, хранятся множества так ),("2",)]. + - объединение * - пересечение...

Програма-калькулятор
Подскажите мне, пожалуйста, как мне организовать эти операции и как сделать проверку, что бы одно...

Калькулятор на Ruby
Задача: сделать калькулятор, который бы считал сложение, вычитание и умножение. причем умножение в...

Программа-калькулятор AUTOLISP
Пожалуйста,помогите!Срочно нужна программа-калькулятор на AUTOLISP в среде AUTOCAD выполняющая...

Сервер-калькулятор на Ruby
Имеется сервер-калькулятор, принимающий от клиента сообщения вида "calc + 2 3", который производит...


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

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