#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double n, blad;
cin >> n >> blad;
if(n>0)
{
double w1 = 1;
double w = n;
while( abs(w-w1) > blad )
{
w = (w + w1)/2;
w1 = n/w;
}
cout << w << endl;
}
return 0;
}
Wejście: liczba n (n>0)
blad - precyzja obliczeń, np. 1E-4 (0.0001)
Wyjście: pierwiastek kwadratowy liczby n z dokładnością do parametru blad
Lista kroków:
K01: CZYTAJ n, blad
K02: JEŻELI n>0 WYKONAJ
K03: w1 ← 1
K04: w ← n
K05: DOPÓKI |w - w1 | > blad WYKONUJ
K06: w ← (w + w1 )/2
K07: w1 ← n/w
K08: WYPISZ w + ' ↵'
K09: ZAKOŃCZ
Zadanie wydaje się proste, bo przecież mam rozpisane kroki, ale i tak nie chce mi poprawnie działać.
+ jeszcze w1 chodzi o tą jedyneczkę to ma być w indeksie dolnym ale nie potrafię tego zrobić :(
zadanie samo w sobie nosi nazwę:
Pierwiastek kwadratowy metodą Herona
liczę na pomoc, bardzo proszę!
NA GORZE MOJA PRÓBA POPRAWIONA lecz nadal nie działa tak jak trzeba. Gdy pierwiastkuje 25 wychodzi jakieś 5.00002 i nie jest ona zaokrąglona :(