[C++] Czy kwadrat liczby jest liczbą całkowitą?

norwimaj
Użytkownik
Użytkownik
Posty: 5101
Rejestracja: 11 mar 2011, o 16:31
Płeć: Mężczyzna
Lokalizacja: 52°16'37''N 20°52'45''E
Podziękował: 4 razy
Pomógł: 1001 razy

[C++] Czy kwadrat liczby jest liczbą całkowitą?

Post autor: norwimaj »

SlotaWoj pisze:Nadal uważam, że zuza_kotek dopiero uczy się programować w C++ i jeżeli napisała

Kod: Zaznacz cały

float a;
to a jest liczbą wymierną.
Zuzka_kotek sama się za siebie wypowiadała, dopóki nie zaśmieciłeś tematu swoimi sofizmatami.
SlotaWoj
Użytkownik
Użytkownik
Posty: 4211
Rejestracja: 25 maja 2012, o 21:33
Płeć: Mężczyzna
Lokalizacja: Kraków PL
Podziękował: 2 razy
Pomógł: 758 razy

[C++] Czy kwadrat liczby jest liczbą całkowitą?

Post autor: SlotaWoj »

@Zuzka_kotek
SlotaWoj pisze:Komputer z założenia przetwarza jedynie na liczby wymierne.

Przydało by się sprawdzanie zera z jakąś dokładnością, aby kwadrat przybliżenia np. \(\displaystyle{ \sqrt{2}}\) (oczywiście o dużej liczbie cyfr) był rozpoznawany jako liczba całkowita.
Poniżej masz masz programik, który pozytywnie sprawdza kwadraty liczb „niewymiernych”, o ile są wprowadzone jako ich odpowiednio dokładne przybliżenia wymierne. Dokładność względna sprawdzania zależy od zmiennej RAccur.

Kod: Zaznacz cały

#include <iostream.h>
using namespace std;
int main()
{   const double RAccur = 1.E-08;
    double Number, Square, Work, Abs;
    cout << "Podaj liczbe: ";
    cin  >> Number;
    Square = Number*Number;
    Work = 1-int(Square+0.5)/Square;
    if  ( Work > 0 )  Abs =  Work;
      else            Abs = -Work;
    if (Abs < RAccur)
        cout << "Liczba jest calkowita.";
      else
        cout << "Liczba nie jest calkowita."; }
Program pisałem „na kolanie” więc może mieć pewne niedoskonałości.
ODPOWIEDZ