Re: хороший калькулято р

2009-12-20 Пенетрантность Evgeny M. Zubok
Олег Цимаенко ts...@lafox.net writes:

 из консольных пользуюсь bc

 $ sudo aptitude install bc
 $ echo scale=50; 4*a(1) | bc -l
 3.14159265358979323846264338327950288419716939937508

В bc проблемы с использованием разных систем (hex, dec, bin и. т. д.) в
одном выражении. И автор топика в курсе этой проблемки, поэтому и
спросил о чем-то другом. В bc поменять систему ввода (ibase) и вывода
(obase) ты можешь, но глобально только. Но, наверное, можно написать
свой скриптик-обвязку, читающий ввод. Потом гнать введенное выражение
типа 0b000+0xFFF234+0o34267 через фильтр, который будет искать
числа, которые имеют разные системы счисления (например, строчки типа
0x..., 0b...), потом выделить то, что после 0x, дергая bc, чтобы перевел
все десятичную систему (ну или к любой другой одной базе) и сделать
замену. Из фильтра все направляется в bc. Ну и завершает все -- вывод
результата.


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: хороший калькулято р

2009-12-20 Пенетрантность Andrey Rahmatullin
On Mon, Dec 21, 2009 at 10:36:28AM +0300, Ed wrote:
  не подскажет ли кто хороший калькулятор? на ncurses, консольный, 
  графический - не важно.
  Сначала я пользовался mupad'ом, потом питоном, теперь zcalc'ом.
 url zcalc'а?
http://www.zsh.org

-- 
WBR, wRAR (ALT Linux Team)
Powered by the ALT Linux fortune(6):

thresh империя наносит ответные зависимости


signature.asc
Description: Digital signature


Re: хороший калькулято р

2009-12-06 Пенетрантность Evgeny M. Zubok
Stanislav Maslovski stanislav.maslov...@gmail.com writes:

 Вот полезняшка есть funcs.bc. Выложу весь файлик сюда. Он не такой
 длинный. Стартовать можно так bc -ql funcs.bc. В сети можно взять
 всякие пеобразования еще типа из разных величин: унции, мм, градусы и
 т. д. Тут найдешь функцию pow (x, y).

 [skipped]

 Спасибо, полезная штука. А ссылка на источник сохранилась?

Не сохранилась, так как давно дело было, но я поискал. Кажется, я это
взял с http://www.phodd.net/cyrek/gnu-bc/ . На это место есть ссылка с
Wikipedia по bc.


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: хороший калькулято р

2009-12-05 Пенетрантность Andrey Rahmatullin
On Sat, Dec 05, 2009 at 02:02:01PM +0300, Ed wrote:
  Только что открыл для себя scilab
  Ага, и maxima туда же.
 ну это всё-таки совсем из пушки...
А scliab нет? :)
Я, впрочем, его не смотрел.

-- 
WBR, wRAR (ALT Linux Team)
Powered by the ALT Linux fortune(6):

stalker37 Вот циска - это правильный длинк...


signature.asc
Description: Digital signature


Re: хороший калькулято р

2009-12-05 Пенетрантность Stanislav Maslovski
On Fri, Dec 04, 2009 at 07:14:40PM +0300, Evgeny M. Zubok wrote:
 Ed sp...@yandex.ru writes:
 
  bc сейчас и пользую, претензии есть. во-первых работа с разными
  основаниями счисления неудобна, во-вторых не раз натыкался на:
  2^(1/2)
  Runtime warning (func=(main), adr=9): non-zero scale in exponent
  1
 
 Ну так в документации явно написано, что показатель степени должен быть
 целочисленным. Для возведения в произвольную степень надо написать
 функцию e в степени ln.
 
 Вот полезняшка есть funcs.bc. Выложу весь файлик сюда. Он не такой
 длинный. Стартовать можно так bc -ql funcs.bc. В сети можно взять всякие
 пеобразования еще типа из разных величин: унции, мм, градусы и т. д. Тут
 найдешь функцию pow (x, y).

[skipped]

Спасибо, полезная штука. А ссылка на источник сохранилась?

-- 
Stanislav


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: хороший калькулято р

2009-12-05 Пенетрантность Stanislav Maslovski
On Sat, Dec 05, 2009 at 02:20:44PM +0300, Ed wrote:
 Andrey Rahmatullin wrote:
 Ага, и maxima туда же.

 сразу вопрос - как сказать, что я приемлю результат только в виде числа?
 например (%pi^ev(%e,numer)),numer; выглядит черезчур громоздко.

(%i1) numer: true$ %enumer: true$ display2d: false$

(%i4) %pi^%e-%e^%pi;

(%o4) -0.68153491441823

-- 
Stanislav


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



хороший калькулято р

2009-12-04 Пенетрантность Ed
не подскажет ли кто хороший калькулятор? на ncurses, консольный, 
графический - не важно.


пока для меня идеалом был калькулятор из dos navigator:
- 2+2*2=6 - воспринимает выражения;
- 10h+0b10=18 - понимает смешение разных оснований счисления в одном 
выражении;

- показывает результат в нескольких системах счисления сразу;
- pi/atn(1)~4, e^ln(2)~2 - умеет не только 4 арифметических действия;
- результат считается по мере ввода выражения (не критично - но удобно же).


--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: хороший калькулято р

2009-12-04 Пенетрантность Sergey Korobitsin
Fri, Dec 04, 2009 at 16:13 +0300 Ed воздействовал на энтропию:
 bc, возможно, подойдёт.
 Сам я его в пределах 4-х действий пользую, да и для скриптов он зело удобен.
 Но в документации про всякие синусы что-то было.
 
 bc сейчас и пользую, претензии есть. во-первых работа с разными
 основаниями счисления неудобна, во-вторых не раз натыкался на:
 2^(1/2)
 Runtime warning (func=(main), adr=9): non-zero scale in exponent
 1

Напиши свой :-)
В Unix programming environment Кернигана-Пайка есть пример, как
сделать что-то похожее.

Ну, или maxima пускать, например.

-- 
Best regards, Sergey Korobitsin
Arta Software, Astana, KZ
mailto:undertaker{at}arta.kz
xmpp:underta...@jabber.arta.kz

--
Условно-бесплатная программа — это такая программа, которую ставишь бесплатно, 
а потом тебе за неё дают условно…
-- aceler в 
http://lj.rossia.org/users/k001/659660.html?thread=4968140#t4968140


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: хороший калькулято р

2009-12-04 Пенетрантность Alexander GQ Gerasiov
Fri, 04 Dec 2009 16:22:38 +0300
Ed sp...@yandex.ru wrote:

 x_empty_dragon wrote:
  python?
 
 
   2+2^(1/2)
 4
   2+2.0^(1.0/2)
 Traceback (most recent call last):
   File stdin, line 1, in module
 TypeError: unsupported operand type(s) for ^: 'float' and 'float'
   0x16+0b10
   File stdin, line 1
 0x16+0b10
 ^
 SyntaxError: invalid syntax

zcalc:

1 2+2**(1.0/2) 
3,41421



-- 
Best regards,
 Alexander GQ Gerasiov

 Contacts:
 e-mail:g...@cs.msu.su Jabber:  g...@jabber.ru
 Homepage:  http://gq.net.ru ICQ: 7272757
 PGP fingerprint: 04B5 9D90 DF7C C2AB CD49  BAEA CA87 E9E8 2AAC 33F1


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: хороший калькулято р

2009-12-04 Пенетрантность Evgeny M. Zubok
Ed sp...@yandex.ru writes:

 bc сейчас и пользую, претензии есть. во-первых работа с разными
 основаниями счисления неудобна, во-вторых не раз натыкался на:
 2^(1/2)
 Runtime warning (func=(main), adr=9): non-zero scale in exponent
 1

Ну так в документации явно написано, что показатель степени должен быть
целочисленным. Для возведения в произвольную степень надо написать
функцию e в степени ln.

Вот полезняшка есть funcs.bc. Выложу весь файлик сюда. Он не такой
длинный. Стартовать можно так bc -ql funcs.bc. В сети можно взять всякие
пеобразования еще типа из разных величин: унции, мм, градусы и т. д. Тут
найдешь функцию pow (x, y).



### Funcs.BC - a large number of functions for use with GNU BC

## Not to be regarded as suitable for any purpose
## Not guaranteed to return correct answers

scale=20;
define pi(){return(a(1)*4)} ; pi  = pi()
  e   = e(1)
define phi(){return((1+sqrt(5))/2)} ; phi = phi()
define psi(){return((1-sqrt(5))/2)} ; psi = psi()

### Reset base to ten
define resetbase() { ibase=1+1+1+1+1+1+1+1+1+1;obase=ibase; }
d0=0;d1=1;d2=2;d3=3;d4=4;d5=5;d6=6;d7=7;d8=8;d9=9
d10=10;d11=11;d12=12;d13=13;d14=14;d15=15;d16=16;d17=17;d18=18;d19=19
d20=20;d21=21;d22=22;d23=23;d24=24;d25=25;d26=26;d27=27;d28=28;d29=29
d30=30;d31=31;d32=32;d33=33;d34=34;d35=35;d36=36;d37=37;d38=38;d39=39

### Integer and Rounding

# Round to next integer nearest 0:  -1.99 - 1, 0.99 - 0
define int(x)   { auto os;os=scale;scale=0;x/=1;scale=os;return(x) } 

# Round down to integer below x
define floor(x) { auto xx;xx=int(x);if(xxx)xx-=1;return(xx) }

# Round up to integer above x
define ceil(x) { return(-floor(-x)) }

# Fractional part of x:  12.345 - 0.345
define frac(x) { return(x-floor(x)) }

# Absolute value of x
define abs(x) { if(x0)return(-x)else return(x) }

# Sign of x
define sgn(x) { if(x0)return(-1)else if(x0)return(1);return(0) }

# Round x up to next multiple of y
define rup(x,y) { return(y*ceil(x/y)) }

# Round x down to previous multiple of y
define rdn(x,y) { return(y*floor(x/y)) }

# Round x to the nearest multiple of y
define rnd(x,y) { return(y*floor(x/y+.5)) }

# Find the remainder of x/y
define rem(x,y) { return(x-rdn(x,y)) }

# Greatest common divisor of x and y
define gcd(x,y) { auto r;while(y0){r=rem(x,y);x=y;y=r};return(x) }

# Lowest common multiple of x and y
define lcm(x,y) { return (x*y/gcd(x,y)) }

# Output function - prints a and b as a fraction in smallest terms
define sft(a,b) { #smallest fractional terms
  auto c,d,e
  c=gcd(a,b);
  d=int(a/c);
  e=int(b/c);
  print a,/,b, = ,d,/,e,\n;
  return(d/e)
}

### Exponential / Logs / Trig

# Raise x to the y-th power
define pow(x,y) {
 auto yy;yy=int(y)
 if (y==yy) { return(x^yy); }
 return( e(y*l(x)) );
}

# y-th root of x [ x^(1/y) ]
define root(x,y) {
 auto iy,iyy;
 iy=1/y;iyy=int(iy)
 if (iy==iyy) { return(x^iyy); }
 scale+=5;y=e(l(x)/y);scale-=5;y=y/1+10^-scale
 x=int(y);if(x==y)y=x
 return( y );
}

# workhorse function for powrem
define powrem_(x,y,m) {
  auto r, y2;
  if(y==0)return(1)
  if(y==1){if(xm){return(x)}else{return(x-m*(x/m))}}
  y2=y/2
  r=powrem_(x,y2,m); if(r=m)r%=m
  r^=2 ; if(r=m)r%=m
  if(2*y2!=y){r*=x ; if(r=m)r%=m}
  return( r )
}

# Raise x to the y-th power, modulo m
define powrem(x,y,m) {
  auto os,r;
  os=scale;scale=0
  if(x0){
print powrem: base is negative, rectifying...\n
x*=-1
  }
  if(x!=x/1){
print powrem: base is not an integer, truncating...\n
x/=1
  }
  if(y0){
print powrem: exponent is negative, rectifying...\n
y*=-1
  }
  if(y!=y/1){
print powrem: exponent is not an integer, truncating...\n
y/=1
  }
  if(m0){
print powrem: modulus is negative, rectifying...\n
m*=-1
  }
  if(m!=m/1){
print powrem: modulus is not an integer, truncating...\n
m/=1
  }
  if(m==0){
print powrem: modulus is zero - doing full calculation!\n
return x^y
  }
  r=powrem_(x,y,m)
  scale=os
  return( r )
}

# Logarithm of y, base x:  log(2, 32) = 5 because 2^5 = 32
define log(x,y) { return(l(y)/l(x)) }

# Sine
#efine s(x) { predefined }
# Cosine
#efine c(x) { predefined }
# Tangent
define t(x) { auto c;c=c(x);if(c==0)c+=10^-scale;return(s(x)/c) }

# Secant
define sc(x) { return(1/s(x)) }
# Cosecant
define cs(x) { return(1/c(x)) }
# Cotangent
define ct(x) { auto s;s=s(x);if(s==0)s+=10^-scale;return(c(x)/s) }

# Arcsine
define as(x) { if(abs(x)==1)return(2*a(1)*x)else return( a(x/sqrt(1-x^2)) ) } 
# Arccosine
define ac(x) { return 2*a(1)-as(x) }

# Arctangent (one argument)
#efine a(x)  { single argument arctangent is predefined }

# Arctangent (two arguments)
define at(x,y) { 
  auto p;
  if(x==0y==0)return(0)
  p=(1-sgn(y))*2*a(1)*(2*(x=0)-1)
  if(x==0||y==0)return(p)
  return(p+a(x/y))
}

# Arcsecant
define asc(x) { return( a(x/sqrt(x^2-1)) ) }
# Arccosecant
define acs(x) { return( asc(x)+2*a(1)*(sgn(x)-1) ) }
# Arctangent
define act(x) { return( a(x)+2*a(1) ) }

# Hyperbolic Sine
define sh(x) { auto 

Re: хороший калькулято р

2009-12-04 Пенетрантность Andrey Rahmatullin
On Fri, Dec 04, 2009 at 09:44:33AM +, Nicholas wrote:
 Только что открыл для себя scilab
Ага, и maxima туда же.

-- 
WBR, wRAR (ALT Linux Team)
Powered by the ALT Linux fortune(6):

raorn dottedmag, wRAR, rossMoHaX: мне насрать сколько будет питонов если оно
не будет выносить мне пол системы


signature.asc
Description: Digital signature