Opgaver i denne lektion   Gå til annoteret slide, hvor denne opgave er tilknyttet -- Tastaturgenvej: 'u'   Alfabetisk indeks   Kursets hjemmeside   

Opgaveløsning:
Programmering af en kvadratrodsfunktion


Her er en mulig løsning:

#include <stdio.h>
#include <math.h>
#define EPSILON 0.00001

double my_sqrt(double x);

int main(void) {
  double d;

  for(d = 1.0; d <= 25; d++)
    printf("my_sqrt(%4f) = %8f   sqrt(%4f) = %f\n", d, my_sqrt(d), d, sqrt(d));

  return 0;
}

double my_sqrt(double a){
 double guess = a / 3 , next_guess = 0;
 int done = 0;
 int c = 0;

 while (!done){
   next_guess = 0.5 * (guess + a / guess); 
   done = fabs(next_guess - guess) <= EPSILON;
   guess = next_guess;
 }

 return guess;
}