Библиотеку работы с дробями никто не встречал?
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1376
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
- Контактная информация:
Библиотеку работы с дробями никто не встречал?
Чтобы передать туда "1/2 + 1/3" и получить "5/6" (ну или отдельными параметрами)
Библиотеку работы с дробями никто не встречал?
В Python есть класс Fractions https://pythonworld.ru/moduli/modul-fractions.html. Есть также класс sympy для выполнения символических вычислений, тоже пойдёт...
Библиотеку работы с дробями никто не встречал?
Если две дроби и четыре простых операции, может написать своё что-то без большой крови?
C10, Win10x64
- Admin
- Администратор
- Сообщения: 3959
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 25 раз
- Поблагодарили: 22 раза
- Контактная информация:
Библиотеку работы с дробями никто не встречал?
Вот заготовка:
Код: Выделить всё
program
map
end
fraction class
numerator long,private
denominator long,private
set function(long numerator, long denominator)
set function(string number)
setnum function(long numerator)
setden function(long denominator)
getnum function(),long
getden function(),long
reduction function
show function(),string
add function(fraction f)
sub function(fraction f)
mul function(fraction f)
end
f1 fraction
f2 fraction
code
! сложение
!f1.set('1/2')
!f2.set('1/3')
!f1.add(f2)
!message(f1.show()) ! 5/6
! вычитание
!f1.set('1/3')
!f2.set('1/5')
!f1.sub(f2)
!message(f1.show()) ! 2/15
! умножение
!f1.set('1/3')
!f2.set('1/5')
!f1.mul(f2)
!message(f1.show()) ! 1/15
fraction.set function(long numerator, long denominator)
code
self.setnum(numerator)
self.setden(denominator)
fraction.set function(string number)
pos long
code
pos = instring('/', number, 1, 1)
if pos = 0 then return end
self.setnum(sub(number, 1, pos - 1))
self.setden(sub(number, pos+1, len(number) - pos))
fraction.getnum function()
code
return self.numerator
fraction.setnum function(long numerator)
code
self.numerator = numerator
fraction.setden function(long denominator)
code
self.denominator = denominator
fraction.getden function()
code
return self.denominator
fraction.reduction function
n long
d long
t long
code
n = self.getnum()
d = self.getden()
loop while d <> 0
t = d
d = n % d
n = t
end
self.setnum(self.getnum() / n)
self.setden(self.getden() / n)
fraction.show function()
code
return self.getnum() & '/' & self.getden()
fraction.add function(*fraction f)
r fraction
code
self.reduction
r.setden(self.getden() * f.getden())
r.setnum((r.getden() / self.getden()) * self.getnum() + (r.getden() / f.getden()) * f.getnum())
self.setnum(r.getnum())
self.setden(r.getden())
fraction.sub function(*fraction f)
r fraction
code
self.reduction
r.setden(self.getden() * f.getden())
r.setnum((r.getden() / self.getden()) * self.getnum() - (r.getden() / f.getden()) * f.getnum())
self.setnum(r.getnum())
self.setden(r.getden())
fraction.mul function(fraction f)
r fraction
code
self.reduction
r.setnum(self.getnum() * f.getnum())
r.setden(self.getden() * f.getden())
self.setnum(r.getnum())
self.setden(r.getden())
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Библиотеку работы с дробями никто не встречал?
Если не секрет, зачем ?
Я делал что-то похожее ( с переменными, раскрытием и сокращениум многочленов ) в начале 80-х, писал на Фортране, был некий конкурс молодых программистов...
Кстати, стоит посмотреть Python\lib\fractions.py - как там наворочено
Я делал что-то похожее ( с переменными, раскрытием и сокращениум многочленов ) в начале 80-х, писал на Фортране, был некий конкурс молодых программистов...
Кстати, стоит посмотреть Python\lib\fractions.py - как там наворочено
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1376
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
- Контактная информация:
Библиотеку работы с дробями никто не встречал?
Размещение рекламы на странице задается в виде дроби, типа 1/4 страницы, 1/3 страницы, просят выводить что заполнено 2/3, а не 0,67 (самый простой пример)
Библиотеку работы с дробями никто не встречал?
Admin, не скромничай.
Просто ради справки... В начале 80? Конкурс молодых программистов? Это где было?
C10, Win10x64
Библиотеку работы с дробями никто не встречал?
Было в Саратове, что там было на самом деле - ХЗ, позвонили и пригласили поучаствовать. Я поучаствовал, сдал работу. И всё заглохло.... Абыдно было
- Admin
- Администратор
- Сообщения: 3959
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 25 раз
- Поблагодарили: 22 раза
- Контактная информация:
Библиотеку работы с дробями никто не встречал?
Только что накатал с какого то примера в инете.
Реально заготовка. Там с целыми х.з. как работать.
Сам я в дробях не шарю вообще
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
-
- ✯ Ветеран ✯
- Сообщения: 4960
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 6 раз
- Поблагодарили: 19 раз
Библиотеку работы с дробями никто не встречал?
Не надо искать универсальный вариант. Надо плясать от минимального рекламного блока на странице. По-моему, у рекламщиков такое практикуется, можно уточнить конкретный размер. Допустим - 1/96 страницы. Заказанную площадь превращаем в дробь типа хх/96. Складываем числители. И в итоге можем получить 64/96 (переводится в 2/3), 72/96 (3/4). Знаменатель итоговой дроби считается так - 96/(96-72).
We are hard at work… for you.
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1376
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
- Контактная информация:
Библиотеку работы с дробями никто не встречал?
Как писать, в целом, понятно. Но прежде чем начинать писать, я обычно ищу уже написанное. Часто сильно экономит время