diff --git a/slides/boucles_conditions.md b/slides/boucles_conditions.md index ed5c54803f2d10efb3e5bfd8f7315a60e402acb0..8b7eaa11b94bd758214729135c55999d5b2cad8c 100644 --- a/slides/boucles_conditions.md +++ b/slides/boucles_conditions.md @@ -74,6 +74,68 @@ if (x) { // si x s'évalue à `vrai` } ``` + +# Structures de contrôle: `continue`{.C}, `break`{.C} + +- `continue`{.C} saute à la prochaine itération d'une boucle. + + ```C + int i = 0; + while (i < 10) { + if (i == 3) { + continue; + } + printf("%d\n", i); + i += 1; + } + ``` + +- `break`{.C} quitte le bloc itératif courant d'une boucle. + + ```C + for (int i = 0; i < 10; i++) { + if (i == 3) { + break; + } + printf("%d\n", i); + } + ``` + +# La fonction `main()` (1/2) + +## Généralités + +- Point d'entrée du programme. +- Retourne le code d'erreur du programme: + - 0: tout s'est bien passé. + - Pas zéro: problème. +- La valeur de retour peut être lue par le shell qui a exécuté le programme. +- `EXIT_SUCCESS`{.C} et `EXIT_FAILURE`{.C} (de `stdlib.h`) sont des valeurs de retour **portables** de programmes C. + +# La fonction `main()` (2/2) + +## Exemple + +```C +int main() { + // ... + if (error) + return EXIT_FAILURE; + else + return EXIT_SUCCESS; +} +``` + +- Le code d'erreur est lu dans le shell avec `$?`{.bash} + +```bash +$ ./prog +$ echo $? +0 # tout s'est bien passé par exemple +$ if [ $? -eq 0 ]; then echo "OK" ; else echo "ERROR"; fi +ERROR # si tout s'est mal passé +``` + # Entrées/sorties: `printf()`{.C} (1/2) ## Généralités @@ -135,65 +197,29 @@ int main() { } ``` -# Structures de contrôle: `continue`{.C}, `break`{.C} - -- `continue`{.C} saute à la prochaine itération d'une boucle. - - ```C - int i = 0; - while (i < 10) { - if (i == 3) { - continue; - } - printf("%d\n", i); - i += 1; - } - ``` - -- `break`{.C} quitte le bloc itératif courant d'une boucle. - - ```C - for (int i = 0; i < 10; i++) { - if (i == 3) { - break; - } - printf("%d\n", i); - } - ``` - -# La fonction `main()` (1/2) - -## Généralités - -- Point d'entrée du programme. -- Retourne le code d'erreur du programme: - - 0: tout s'est bien passé. - - Pas zéro: problème. -- La valeur de retour peut être lue par le shell qui a exécuté le programme. -- `EXIT_SUCCESS`{.C} et `EXIT_FAILURE`{.C} (de `stdlib.h`) sont des valeurs de retour **portables** de programmes C. +# Nombres aléatoires: `rand()`, `srand()`{.C} (2/2) -# La fonction `main()` (2/2) +``` +$ man 3 rand +The rand() function returns a pseudo-random integer +in the range 0 to RAND_MAX inclusive (i.e., the +mathematical range [0, RAND_MAX]). +``` ## Exemple ```C +#include <stdio.h> +#include <stdlib.h> +#include <time.h> int main() { - // ... - if (error) - return EXIT_FAILURE; - else - return EXIT_SUCCESS; + srand(0); // every run will be identical + srand(time(NULL)); // every run will be be different + for (int i = 0; i < 50; ++i) { + printf("%d\n", rand() % 50); + } + return EXIT_SUCCESS; } ``` -- Le code d'erreur est lu dans le shell avec `$?`{.bash} - -```bash -$ ./prog -$ echo $? -0 # tout s'est bien passé par exemple -$ if [ $? -eq 0 ]; then echo "OK" ; else echo "ERROR"; fi -ERROR # si tout s'est mal passé -``` -