Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Калькулятор без использования знаков * и /

Калькулятор без использования знаков * и /
Я
   JuixyJes
 
01.05.21 - 17:41
Добрый день, господа, задумалась тут... Ведь умножение и деление это же производные от сложения и вычитания, так? Захотелось написать калькулятор, который будет это все делать без использования уже готовых "*" и "/"... С целыми числами работает все замечательно, только делит без остатка... А как быть с дробными числами? Подскажите, если кто знает как сделать, очень интересно
   JuixyJes
 
1 - 01.05.21 - 17:47
К примеру если я возьму
 "2 * 3" 
то получится 
 "2+2+2"
если возьму 
 "2*3.5"
то получится
 "2+2+2+1"

1 я получаю из следующего:

x=a/b
a=xb
1=2/2
2=1*2

Но только лишь потому, что знаю что 0.5 это половина...
Как быть с разложением дробной части
   Aleksey
 
2 - 01.05.21 - 17:52
делай через логариф
   Aleksey
 
3 - 01.05.21 - 18:00
а так нужно менять на обычные дроби, т.е.

2*3,5 = [2/1] * [3(1/2)]  или 2/1 * 7/2. Т.е. в числители простые числа (2 * 7) в знаменатели тоже простые числа (1 * 2). Ну а работать с простыми числами ты научился
   Aleksey
 
4 - 01.05.21 - 18:05
Хотя нет 1/2 это уже сокращенная запись. в обычной ситуации 3,5 - это десятичный формат написания дроби. Т.е. основание кратное 10. А значит 3,5 это тоже самое что и 35/10. (0,035 соответственно 35/1000)
   JuixyJes
 
5 - 01.05.21 - 18:20
Я поняла, что 2*3.5 это тоже, что и 3.5*2, как следствие  - задача заурядная и легко решаемая, если один из множителей — целое число, то все сводится к простой перемене множителей местами. А как быть с двумя дробными числами?
   acht
 
6 - 01.05.21 - 19:28
(5) Тебе ж в (3) все рассказали. Своди к обычным дробям и выноси общий делитель. Например:

2.1 * 3.75 = (21/10) * (375/100) = (210/100) * (375/100) = (210*375)/100

А умножать и делить целые числа, судя по (0) ты уже умеешь.
   hhhh
 
7 - 01.05.21 - 23:12
(5) сдвигай запятую вправо
2 * 3,5 это 2* 35 / 10

2 * 35 - это тривиально

деление на 10 это сдвиг запятой на одну позицию влево.
   Вафель
 
8 - 01.05.21 - 23:50
Во времена когда сопроцессора не было как то же считали и умножение и деление
   Garykom
 
9 - 02.05.21 - 01:12
(0) Ты чему в школе учился неуч?
Про https://ru.wikipedia.org/wiki/Экспоненциальная_запись не в курсе?
   Garykom
 
10 - 02.05.21 - 01:14
(9)+ ну и https://habr.com/ru/post/112953/ для общего развития
   Провинциальный 1сник
 
11 - 02.05.21 - 11:04
У меня был калькулятор МК-71, который умел считать в натуральных дробях до трех знаков в каждой части(целая, числитель, знаменатель). Но если не получалось уложиться в ограничения, то спрыгивал в десятичные дроби или экспоненциальную форму.

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.