• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przekształcanie wzoru na objętość kuli

VPS Starter Arubacloud
0 głosów
431 wizyt
pytanie zadane 27 lutego 2017 w Matematyka, fizyka, logika przez Marchewka900 Bywalec (2,970 p.)
W kursie pana Mirosława Zelenta pojawiło się zadanie domowe (Dziedziczenie). W jednym z podpunktów trzeba było przy pomocy wzoru obliczyć pole koła. Tu się zatrzymałem, bo nie umiem tego wzoru przekształcić tak, by nie miał ułamków. Oto, co już stworzyłem:

(4 / 3)*PI*r*r*r

Program działa, ale pokazuje zły wynik. Dla zrozumienia zamieniłem M_PI na PI.
P.S. Wzór na objętość koła - 4/3*PI*r^3
komentarz 27 lutego 2017 przez niezalogowany
Koło to czy kula jednak? Zły wynik? Podaj przykład. Pokaż kod. Przekaż mi więcej informacji bym mógł coś z tym zrobić.
komentarz 27 lutego 2017 przez Marchewka900 Bywalec (2,970 p.)

Jasne, ciągle mi się myli - Kula. Już podaję, już pokazuję kod.
Dam tylko kawałek kodu, bo to zadanie domowe.
 

	void wyswietl()
	{
		cout << endl << " Kula ma nazwe: " << nazwa << endl;
		Kolo::wyswietl();
		cout << " Objetosc tej kuli to " << 4 / 3 * M_PI*r*r*r << " [j^3]" << endl;
	}

I przykład:

Promień tego koła to 1 | Pole tego koła to 3,14... | Objętość tej kuli to 3,14...

r = 1.

komentarz 27 lutego 2017 przez niezalogowany
Dałem odpowiedz :D

2 odpowiedzi

0 głosów
odpowiedź 27 lutego 2017 przez niezalogowany
edycja 27 lutego 2017
 
Najlepsza

Chodzi tutaj o to, że kompilator traktuje 4 i 3 jako liczby typu int. Czyli 4 / 3 to 1 bez części ułamkowej. Możesz to poprawić na kilka sposobów:

Pi*r*r*r*4/3 // tu chyba kompilator się domyśli sam...
4.0/3.0*PI*r*r*r // podanie kompilatorowi, że 4 i 3 to dwie liczby zmiennoprzecinkowe
(float) 4/3*PI*r*r*r // rzutowanie 
static_cast<float>(4)/3*PI*r*r*r // rzutowanie

Warto zapamiętać rzutowanie. Przyda się gdy nie będzie można dopisać zera:

int a = 1;
int b = 3;

cout<<a/b<<endl;
cout<<(float) a/b<<endl;

 

komentarz 27 lutego 2017 przez Marchewka900 Bywalec (2,970 p.)
Dzięki! :)
komentarz 27 lutego 2017 przez niezalogowany
Zrobiłem małą edycję :)
0 głosów
odpowiedź 27 lutego 2017 przez DarthMazut Bywalec (2,990 p.)
liczba 4/3 to inaczej 1 i 1/3 - tę część postaci 1/3 nie da się wyrazić dokładnie w skończonej liczbie po przecinku chyba, że z użyciem okresu 1/3 = 0,(3).

Nie wiem dokładnie o co prosisz? Dlaczego program nie możesz stosować ułamków?

P.S. Koło nie ma objętości
komentarz 27 lutego 2017 przez Marchewka900 Bywalec (2,970 p.)
Pomyliłem się, chodziło mi o kulę. Napisałem komentarz wyżej o co mi chodzi.

Podobne pytania

+2 głosów
2 odpowiedzi 349 wizyt
pytanie zadane 9 października 2016 w JavaScript przez Dawid Wiśniewski Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 326 wizyt
pytanie zadane 21 października 2017 w Matematyka, fizyka, logika przez ELyyE Początkujący (320 p.)
0 głosów
1 odpowiedź 103 wizyt
pytanie zadane 29 marca 2020 w C i C++ przez Miszka255 Początkujący (280 p.)

93,031 zapytań

141,995 odpowiedzi

321,300 komentarzy

62,379 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...