Mam problem z potrójnym znakiem równości a dokładnie tym jak go włączyć do funkcji (co on oznacza bo zakładam że nie to samo co zwykły znak równości). Zadanie wygląda tak:
A to co na razie napisałem wygląda tak:
double MYSQRT(double x)
{
double y,y0,roznica;
y0=x/2; //tutaj wspomniany problem z tym co oznacza wyrażenie - tutaj wpisane tak jakby ten znak oznaczał to samo co zwykle "="
do
{
y=0.5*(y0+(x/y0));
roznica=y0-y;
y0=y;
}while(roznica10e-6);
return y;
}
gdyby ktoś był tak miły i naprowadził mnie na właściwą drogę byłbym niezmiernie wdzięczny… program ogólnie działa i liczy ale jak patrzę na przykład takiego obliczania na wikipedii to już mi to niestety nie pasuje
czyli mam rozumieć że y0 jest dobrze wpisane i mam się nie przejmować tym dziwnym symbolem? na wikipedii intryguje mnie w przykładnie dlaczego dla liczby 2 wartosc y0=1,5 (a nie wg tego wzoru 1). co jest nie tak ze stopem? ah i jeszcze jedna sprawa jeśli chciałbym żeby zaokrąglenie było do 6 miejsc po przecinku to jak miałbym to zrobić? z tego co obserwuję działanie programu zaokrąglenie blokuje się na 5 miejscach
Ja już też trochę mam namieszane w głowie dlatego mogę nie kontaktować dobrze Daje cały kod jaki mam z opisem:
#include "stdafx.h"
#include
using namespace std;
double mysqrt(double x)
{
double y,y0,roznica;
y0=x/2; // tutaj wspomniany problem z tym co oznacza wyrażenie - tutaj wpisane tak jakby ten znak oznaczał to samo co zwykle "="
do{
y=0.5*(y0+(x/y0)); // główny wzór
roznica=y0-y; // różnica poprzedniego wyrazu ciągu z obecnym
y0=y;
}while(roznica>10e-6); // przerwanie pętli jeśli różnica jest mniejsza od 0.000001 (jeśli będzie ujemna pętla również powinna się zakończyć jeśli dobrze rozumuję)
return y;
}
int main()
{
double p;
cout << "Podaj liczbe: ";
cin >> p;
p=mysqrt(p);
cout << "Obliczona wartośc: " << p << endl;
system("pause");
return 0;
}