← RU Pythoncursus

Uitwerking: Een wortel uitrekenen

x = float(input())
foutmarge = float(input())
ondergrens = 0

# if-else alleen nodig als het programma moet werken voor 0 <= x < 1,
# anders is 'bovengrens = x' voldoende
# Dit kan ook efficienter met bovengrens = max(1, x)
if (x > 1):
    bovengrens = x
else:
    bovengrens = 1

schatting = x / 2

while abs(x - schatting*schatting) > foutmarge:
    print('schatting is', schatting, '- bovengrens is', bovengrens, '- ondergrens is', ondergrens)
    if schatting**2 > x:
        bovengrens = schatting
    else:
        ondergrens = schatting
    schatting = (bovengrens + ondergrens) / 2
print(schatting, 'gives a square of', schatting**2)