Mit Hilfe dieses Algorithmus bzw. C-Programmes wird eine näherungsweise Berechnung der Quadratwurzel einer Zahl durchgeführt.


#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int count=0;
int approximate_count=0;
float approximate_value=1;
float old_approximate_value=0;
float calc_eps;
float square_number;
float eps;
if (argc == 3) {
square_number = atof(argv[1]);
eps = atof(argv[2]);
printf("\n Eingabe Zahl:\t\t\t%f\n", square_number);
printf(" Eingabe eps:\t\t\t%f\n", eps);
printf("------------------------------------------\n\n");
if ((square_number>0)&&(eps>0)) {
while (count<100)
{
if (count==0){
approximate_value = square_number/2;
}
count++;
old_approximate_value = approximate_value;
approximate_value = (approximate_value+square_number/approximate_value)/2;
calc_eps = approximate_value-old_approximate_value;
if (calc_eps < 0) {
calc_eps = calc_eps*(-1);
}
if (calc_eps<eps) {
approximate_count=count;
count=100;
}
}
printf(" Berechnung mit eps = %f bis zu n = %d\n\n", eps, approximate_count);
printf(" Angenaeherte Wurzel der Zahl:\t%f\n", approximate_value);
} else {
printf("\n\tFehler! Es muessen genau zwei Parameter uebergeben werden!\n");
printf("\tBeide Parameter muessen Zahlen groesser 0 sein.\n");
printf("\t1. Zahl\n");
printf("\t2. eps\n");
printf("\tz.B.: SqrtNewton 25 0.1\n");
}
} else {
printf("\n\tFehler! Es muessen genau zwei Parameter uebergeben werden!\n");
printf("\t1. Zahl\n");
printf("\t2. eps\n");
printf("\tz.B.: SqrtNewton 25 0.1\n");
}
return 0;
}


Leave a Comment


You must log in to post a comment.