© Harry Broeders.
Deze pagina is bestemd voor studenten van de Haagse Hogeschool - Academie voor Technology, Innovation & Society Delft.
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):
#include
<stdio.h>
toegevoegd.
z += x;
vervangen
door z = z + x;
.
getchar(); return
0;
toegevoegd.
#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:
z
wordt aangemaakt als het programma start.
main
.
z
krijgt de waarde 5
(door
de instructie z = 5;
).
f
wordt aangeroepen met z
als argument.
5
) wordt gekopieerd naar de parameter
x
(dus x
wordt 5
).
x
krijgt de waarde 2
. (Natuurlijk
is het niet logisch om dit te doen, maar dit is dan ook geen "echt" programma
...)
x
(2
) wordt opgeteld bij de globale
variabele z
(dus z
wordt 5
+
2
is 7
).
printf
statement.
printf
functie print z = 7
op het scherm, de
waarde van z
wordt ingevuld op de plaats van de %d
.