Action script tangens i cotangens

0

Hej zwracam się z zapytaniem ponieważ dostałem prace domową z informatyki a jestem totalnie zielony. Miałem zrobić kalkulator w flashu action scriptem i wszystko mi normalnie działa wyniki są prawidłowe oprócz tangensa i cotangensa nie wiem co zrobić a w internecie nie znalazłem niczego co mogło by mi pomóc więc zwracam się z pomocą do was. Aktualnie tangens mam tak i nie wiem co zrobić ,żeby wynik wynosił zero aktualny wynik to -7.8327876

on(release)
{
c =  Math.tan(a*Math.PI)
}
0

Co to znaczy wyniki są nieprawidłowe?
Jakie wartości są przez Ciebie oczekiwane dla jakich argumentów?

0

180 i 360 mają równać się zero

1

... a w tej chwili równają się?

To w Twoim interesie powinno być opisać problem jak najdokładniej, podczas gdy póki co to ja ciągnę Cię za język.

0

180 i 360 tangens 180=-7.83278766945035e-15 ctg 180 =-1.56655753389007e-14 tan 360= -1.56655753389007e-14 ctg 360 = -63834233876926.5

3

No, czyli praktycznie zero :-)

Taki urok działania na liczbach zmiennoprzecinkowych - nie uzyskasz nigdy dokładnego rezultatu, tylko przybliżenie, a -7.8 * 10^-15 znajduje się całkiem blisko zera, czyli wszystko gra.

0

Mój pan od informatyki sprawdzał to dzisiaj i powiedział że mam to poprawić tak żeby wynik wynosił zero a ja już nie wiem naprawdę co mam zrobić

0

Możesz pokazywać wynik z zaokrągleniem do np. dwóch cyfr po przecinku bądź dorzucić if (kąt % 180 == 0) { return 0; }.

0

Dziękuje spróbuje tak zrobić

0
Patryk27 napisał(a):

Możesz pokazywać wynik z zaokrągleniem do np. dwóch cyfr po przecinku bądź dorzucić if (kąt % 180 == 0) { return 0; }.

on(release)
{

c =  Math.tan(a*Math.PI)

}

przepraszam ale nie wiem za bardzo gdzie mam to wkleić żeby to poprawnie działało

1
Dawid Pik napisał(a):

Mój pan od informatyki sprawdzał to dzisiaj i powiedział że mam to poprawić tak żeby wynik wynosił zero a ja już nie wiem naprawdę co mam zrobić

Jeśli to prawda, to ma braki w wiedzy

0

Czyli nie ma żadnej możliwości żeby wynik wynosił dokładnie 0 ?

1

Jest – albo zwróć zero, albo zaokrąglij wynik do iluś tam miejsc po przecinku.

0

tyle ,że ja naprawdę nie mam pojęcia jak to zrobić

2

180 i 360 mają równać się zero

Math.PI i 2 * Math.PI jeśli już, bo podajemy kąt w radianach.
weź spróbuj to zaokrąglić

Math.tan(Math.PI).toFixed(2)

https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Number.html#toFixed()

przy czym pamiętaj, że toFixed robi ci z tego stringa.

Możesz też zastosować sztuczkę

Math.round(Math.tan(Math.PI) * 100) / 100

wtedy dalej będziesz miał liczbę, a po prostu zaokrągloną (tutaj: do dwóch miejsc po przecinku, bo dałem 100, jakbyś dał 1000, to do trzech itp.)

Tak nawiasem mówiąc strasznie przestarzałej wiedzy was uczą. Nie mam na myśli oczywiście trygonometrii, bo to matematyka, a matematyka ma już kilka tysięcy lat i dalej się nie starzeje, ale fakt, że każą wam pisać w ActionScript, języku, którego już się nie używa prawie. Ale to pokazuje po prostu zacofanie nauczycieli informatyki, że taki nauczyciel raz się nauczy jednego języka programowania i będzie go nauczał przez kilkanaście albo i więcej lat. Mimo, że mógłby się już JavaScriptu nauczyć i uczyć go na lekcjach. Język zbliżony, a bardziej na czasie.

Polska szkoła to trochę jak odkrywanie historii informatyki XD Lekcje muzealne.

1 użytkowników online, w tym zalogowanych: 0, gości: 1