GESPRG: Uitwerking huiswerk les 5.

© Harry Broeders.

Deze pagina is bestemd voor studenten van de Haagse Hogeschool - Academie voor Technology, Innovation & Society Delft.

Huiswerk les 5:

Uitwerking:

1. 5_17_1.c:

#include <stdio.h>

/* functie power berekent x tot de macht n.
   deze functie werkt alleen correct voor n >= 0 */

double power(double x, int n) {
    int macht;
    double resultaat = 1;
    for (macht = 0; macht < n; macht = macht + 1) {
        resultaat = resultaat * x;
    }
    return resultaat;
}

int main(void) {
    int testwaarde;
    for (testwaarde = 0; testwaarde <= 7; testwaarde = testwaarde + 1) {
        printf("3.5 tot de macht %d is %20.10f\n", testwaarde, power(3.5, testwaarde));
    }

    getchar();
    return 0;
}

De uitvoer is:

3.5 tot de macht 0 is         1.0000000000
3.5 tot de macht 1 is         3.5000000000
3.5 tot de macht 2 is        12.2500000000
3.5 tot de macht 3 is        42.8750000000
3.5 tot de macht 4 is       150.0625000000
3.5 tot de macht 5 is       525.2187500000
3.5 tot de macht 6 is      1838.2656250000
3.5 tot de macht 7 is      6433.9296875000

1. 5_17_2.c:

#include <stdio.h>
#include <math.h>

/* functie vierdeMachtsWortel berekent de vierde-machts wortel van n.
   deze functie maakt gebruik van de standaard functie sqrt die de tweede-machts wortel betekent
   de vierde-machts wortel van n is gelijk aan de tweede-machts wortel van de tweede-machts wortel van n 
   deze functie werkt alleen voor n >= 0 */

double vierdeMachtsWortel(int n) {
    return sqrt(sqrt(n));
}

int main(void) {
    int testwaarde;
    printf("   n vierde-machts wortel van n\n");
    for (testwaarde = 0; testwaarde <= 16; testwaarde = testwaarde + 1) {
        printf("%4d %26.10f\n", testwaarde, vierdeMachtsWortel(testwaarde));
    }

    getchar();
    return 0;
}

De uitvoer is:

   n vierde-machts wortel van n
   0               0.0000000000
   1               1.0000000000
   2               1.1892071150
   3               1.3160740130
   4               1.4142135624
   5               1.4953487812
   6               1.5650845801
   7               1.6265765617
   8               1.6817928305
   9               1.7320508076
  10               1.7782794100
  11               1.8211602868
  12               1.8612097182
  13               1.8988289221
  14               1.9343364203
  15               1.9679896713
  16               2.0000000000

1. Ik heb het programma uit het boek een klein beetje aangepast (zonder de werking te wijzigen):

5_17_3.c:

#include <stdio.h>

int z;

void f(int x) {
    x = 2;
    z = z + x;
}

int main(void) {
    z = 5;
    f(z);
    printf("z = %d\n", z);

    getchar();
    return 0;
}

De uitvoer is:

z = 7

Stap voor stap verklaring: