Skocz do zawartości

[C] Potęgowaniem zmiennych [STM32, HAL, Eclipse]


ArczerMX

Pomocna odpowiedź

Cześć,
W jaki sposób można podnieść zmienną do potęgi 0.19?

Próbowałem już z funkcją pow(), np:

 wynik = pow(zmienna, 0.19) 

Program nie kompiluje się. Wpisanie w wykładniku liczby 19/100 równierz nie rozwiązuje problemu.

Istnieje funkcja która by obsłużyła taki typ wykładnika?

Z góry dzięki za pomoc.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Nie zmyślaj. To jest funkcja ze standardowej biblioteki matematycznej math.h, oczekuje dwóch argumentów typu double, oddaje też zmienny przecinek i może podnosić do dowolnej potęgi. Piekielnie długo się liczy, bo używa log() i exp(), no ale lepszego sposobu na takie potęgowanie nie ma.

Czekamy na komunikat kompilatora, może to rozjaśni zagadkę.

Poza tym w C mamy konwersje w locie. Nawet jeśli funkcja oczekuje argumentu jakiegoś typu, Ty wpiszesz inny a kompilator umie to zamienić - zrobi to.

Link do komentarza
Share on other sites

Przy próbie budowania programu wypisuje mi taki komunikat:

Zauważyłem że program działa tylko jeśli w wykładniku są liczby 1 lub 2. Wpisanie do wykładnika jakiejkolwiek innej liczby (nawet całkowitej (np. 3)) powoduje pojawienie się tego samego błędu.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.