Inny sposób zapisu potęgi w C


(sandra1) #1

Napisał taki program:Czy istnieje możliwość zapisu r do kwadratu normalnie, bo poszedłem tu na łatwiznę i jestem ciekaw czy istnieje normalny sposób?

#include

#include


main(){

float r ,h , wynik;

float pi=3.14;

printf("Program oblicza obiętość stożka!! \n");

printf("Podaj r: \n");

scanf("%f",&r);

printf("Podaj wysokość(h):\n");

scanf("%f",&h);

wynik=(pi*r*r*h)/3;

printf("obientość stożka wynosi :%f\n",wynik);

return 0;

}

(Frankfurterium) #2

W cmath z C++

pow(podstawa, wykładnik);

W math.h z C pewnie tak samo.


(Mirek Sztramski) #3

'potengi' możemy napisać w inny sposób tj. 'potęgi', a 'objentości' możemy zapisać normalnie tj. 'objętości'. W pozostałych kwestiach kolega wyżej ma w zupełności rację - funkcja pow.


(sandra1) #4

możesz podać przykład?


(floyd) #5

Najpierw, to popraw 'potengę' na 'potęgę' bo aż szczypie w oczy.

'Czy istnieje możliwość zapisu r do kwadratu normalnie?'. To zależy co rozumiesz przez słowo 'normalnie'.

Normalnie należy zbudować funkcję potęgowania, którą podaję w Pascalu, żebyś nie miał na talerzu i może wyglądać tak:

function potega( x,y : single) : single;

begin

  potega := exp(ln(abs(x))*y);

end;

gdzie 'x' to podstawa, a 'y' wykładnik potęgi. 'ln' to funkcja logarytmiczna (logarytm naturalny), 'exp' to funkcja wykładnicza odwrotna do logarytmicznej, a 'abs' to wartość bezwzględna liczby.

Wywołanie funkcji wyglądało by wówczas tak: wynik:=potega(podstawa,wykladnik);

Oczywiście jednorazowo można sobie budowanie funkcji darować i tylko wykorzystać sam wzór występujący w funkcji.


(sandra1) #6

dzięki wielke


([alex]) #7

W C/C++ to co użyłeś do potęgowania czyli r*r to jest normalne.

Natomiast użycie pow do podnoszenia do kwadratu to jest nie normalne ponieważ pow wygląda tak jak to opisał wyżej floyd

No chyba że naprawdę pytasz o potendze , w takim przypadku to naprawdę pierwsze słyszę.