NO_NAME
(Bartisz)
13 Październik 2007 10:41
#1
Napisałem następujący program:
# include
# include
# include
const float PI = 3.14159265;
int main()
{
int nPromien1;
float fWynik;
int nPromien;
float fWynik2;
int nPotega = 2; //tutaj pojawia się problem
std::cout << "/Autor: bartisz\\" << std::endl;
std::cout << "--------------------" << std::endl;
std::cout << "Podaj promien kola:" << std::endl;
std::cin >> nPromien1;
fWynik = (2 * nPromien1) * PI;
fWynik2= PI * pow(nPromien,nPotega);
std::cout << "Obwod kola to: " << fWynik << std::endl;
std::cout << "Pole kola to: " << fWynik2 << std::endl;
std::cout << "--------------------" << std::endl;
std::cout << std::endl;
getch();
}
Program nie liczy potęg, na początku prosi o wpisanie promienia - obwód okręgu liczy dobrze, natomiast pole źle - pojawia się błąd
Dlaczego nie liczy potęg?
nie mozesz policzyc pola np tak:
fWynik2 = PI * (nPromien1 * nPromien1);
Fiolek
(Fiołek)
13 Październik 2007 11:24
#3
Prawidłowo działa! Ale wiem czemu uważasz, że działa źle. Spójrz na zmienne(szczególnie nPromien). Inicjujesz ją gdzieś? Nie, dlatego zawiera śmieci(domyślnie największą możliwą liczbę) i wynik potęgi wychodzi tak duży, że można go pokazać tylko w notacji naukowej.
Btw. Wzór na obwód koła to 2PIr a nie 2rPI(A no tak, przemienność mnożenia…).
Ryan
(Ryan)
13 Październik 2007 11:30
#4
Iloczyn jest przemienny.
Warto czasem zerknąć na ostrzeżenia kompilatora, lub jeśli takowych nie serwuje - zmienić kompilator. Dobry powinien poinformować o użyciu niezainicjalizowanej zmiennej. :roll:
NO_NAME
(Bartisz)
13 Październik 2007 11:32
#5
Bardzo dziękuję za poradę, wcześniej coś kombinowałem i się trrochę pogubiłem…
tak, muszę zmienić kompilator - dev-c++ jest średni…
Trzeba linuxa 8)
Racja nPromiem i nPromien1 wprowadzilo mnie w bład, stosujac funkcje pow napisz :
fWynik2= PI * pow(nPromien1,nPotega);
a zmienna nPromien wywal.
Fiolek
(Fiołek)
13 Październik 2007 11:35
#7
Na linuxie jest ten sam kompilator co w dev-c++. I tu g++ i tu g++(na windzie jego port[MinGw]).
Ryan:
Iloczyn jest przemienny.
Racja, mój błąd.
NO_NAME
(Bartisz)
13 Październik 2007 12:51
#8
A znasz może jakieś dobre ide pod wina?