Jak na funkci arc sinus v shellu ?

Petr Simek petrsi na jcu.cz
Neděle Srpen 15 18:34:55 CEST 1999


On 15 Aug 1999, David Sauer wrote:

>     LD> arc tan tam je, ostatni se asi musi (opet :-) spocitat.  Zacnete
>     LD> treba tim, ze tan x = sin x / cos x Treba z toho neco vydedukujete.
> 
> Zkuste nekterou knihu o matematice, urcite to bude v ucebnicich pro VS.
> Nebo, pokud nevyhovuje 'bc', zkuste treba genius
> (http://www.5z.com/jirka/genius.html [myslim]).

No ja jsem to chtel do shellu z duvodu ze jsem potreboval vypocitat stupne
nebo casove zpozdeni pro sinusovku kdyz chci mit jednotlive useky siroke
1% vykonu z cele pulvlny. Kvuli spinani triaku a regulaci vykonu sirkou
pulsu. Takze jsem chtel v shellu generovat radu cisel a vybirat ta vhodna,
tedy graficka kalkulacka mi byla k nicemu. Nakonec jsme to udelal v C.

Kazdopadne jsem narazil na zajimavou vec prave s funkci asin (acos).
Mam promennou float kterou v cyklu zvysuju o 0.02 . A kdyz je v te
promenne 1.000000 tak asin na tom chcipne - vypise +NAN . Kdyz si tu
promennou vytisknu - pres printf("%f") tak vypise 1.000000 . Kdyz
zadam asin(1.000000) tak to funguje - vrati to Pi. Neni to divne ??
Zda se ze kdyz dam do promenne float nulu a pak k ni padesatkrat pripoctu
0.02 tak nedostanu jedna ale trochu vic ?!@ Ani cyklus na to nefunguje -
kdyz zapisu :

  float i;
  for(i = 0.0; i <= 1.0; i += 0.02){ printf("%f\n", i) }

tak to i 1.000000 uz nevypise. Kdyz to zmenim na :

  for(i = 0.0; i <= 1.001; i += 0.02){ printf("%f\n", i) }

tak to posledni hodnotu i vypise jako 1.000000 ale asin na tom chcipne .


> * David Sauer, student of Czech Technical University

*------------------------------------------------------------------------*
|                          Petr Simek   APS JU                           |
|                             petrsi na jcu.cz                              |
*------------------------------------------------------------------------*



Další informace o konferenci Linux