Autres Exemples de boucles
Nous avons vu des boucles qui travaillaient avec des entiers. Voici un exemple qui affiche la portion de la table des codes ASCII des caractères contenus entre les valeurs 65 pour le ‘A' et 90 pour le ‘Z'.
Nous utiliserons ici la conversion implicite d'un caractère en un entier en se basant sur son code ASCII.
#include <stdio.h>
#define a 65
#define b 91
int main()
{
char c;
for (c=a;c<b;c++)
{
printf("\nLe caractere %c ",c);
printf("valeur decimale %3d ",c);
printf("valeur hexadecimale %2X",c);
}
printf("\n\n");
}
Ce qui finalement revient à avoir une boucle sur des entiers.
Voici une autre boucle qui affiche les lettres minuscules :
#include <stdio.h>
int main()
{
char c;
for (c='a';c<='z';c++)
{
printf("\nLe caractere %c ",c);
printf("valeur decimale %3d ",c);
printf("valeur hexadecimale %2X",c);
}
printf("\n\n");
}
Enfin, une boucle qui utilise les fonctions sin et cos de la bibliothèque mathématique pour afficher les sinus est cosinus des angles entre 0 et PI avec un pas de PI/12 :
#include <stdio.h>
#include <math.h>
#define PI 3.14159265358979323846
int main()
{
float angle, deg_angle, val_sinus, val_cosinus, incre_angle;
angle = 0.0; // l'angle initial est 0
incre_angle = PI/12; // Valeur de l'incrément de l'angle
do
{
val_sinus = sin(angle);
val_cosinus = cos(angle);
deg_angle = (angle*180)/PI; //conversion de l'angle en degree pour affichage
printf("\nangle en degre %5.1f ", deg_angle);
printf("sinus %5.6f ", val_sinus);
printf("cosinus %5.6f ", val_cosinus);
angle = angle + incre_angle; // incrémentation de la valeur de l'angle
} while (angle<PI); //quand « angle >= PI » la boucle s'arrête.
printf("\n\n");
}
Nous supposons que ce fichier source s'appelle « table_sinus.c ». Sous un système Unix ou Linux la commande de compilation devra être :
gcc table_sinus.c - o table_sinus –lm
L'option « -lm » est nécessaire pour la librairie mathématique (<math>).