Cour 5 : la pile d’appel (et aussi char et double)

Flyer par Cristina Bejarano (et Cole Goins ?) en cc-by.
, par
Algorithmique et programmation : les supports du cinquième cours, où vous avez découvert la notion de pile d’appel, pour vous repérer dans le déroulement de l’exécution de vos programmes, ainsi que : le mot-clé void pour les procédures ; deux types, char et double ; l’usage de la bibliothèque math ; des limitations de scanf et un menu.
Voici les supports du cinquième cours, où vous avez surtout découvert la notion de pile d’appel, qui je l’espère vous sera profitable pour vous repérer dans le déroulement de l’exécution de vos programmes.
Nous en avons profité pour insister sur le passage de paramètres aux fonctions.
- /* Declaration de fonctionnalites supplementaires */
- #include <stdlib.h> /* EXIT_SUCCESS */
- #include <stdio.h> /* printf() */
- /* Declarations constantes et types utilisateurs */
- /* Declarations de fonctions utilisateurs */
- void permute_valeurs(int a,int b);
- /* Fonction principale */
- int main()
- {
- /* Declaration et initialisation des variables */
- int x = 1;
- int y = 2;
- permute_valeurs(x, y); /* fail */
- /* Valeur fonction */
- return EXIT_SUCCESS;
- }
- /* Definitions de fonctions utilisateurs */
- void permute_valeurs(int a,int b)
- {
- int aux; /*var aux pour permutation */
- aux = a;
- a = b;
- b = aux;
- }
Pour ouvrir un peu l’horizon des applications de vos nouveaux talents, nous avons aussi vu comment manipuler des caractères et des nombres à virgule (les types char et double du C), ainsi que comment utiliser les fonctions d’une bibliothèque (math). Le mot-clé void pour déclarer des fonctions qui n’ont pas de valeur (ne retournent pas de résultat), que nous appelerons plutôt procédures a aussi fait sa première apparition officielle en cours.
Nous avons également passé un peu de temps à critiquer scanf et à souhaiter l’introduction dans un prochain cours d’un majordome, fgets, qui aidera scanf dans sa propre maison. Enfin une petite démo a ouvert la voie de l’écriture de programmes dialoguant avec l’utilisateur en affichant des menus (façon années 70’ mais sans boule disco).
- /* Declaration de fonctionnalites supplementaires */
- #include <stdlib.h> /* pour EXIT_SUCCESS */
- #include <stdio.h> /* pour printf() */
- /* Declaration des constantes et types utilisateur */
- #define TRUE 1
- #define FALSE 0
- /* Declaration des fonctions utilisateur */
- void afficher_menu();
- int saisie_utilisateur();
- void faire_patin();
- /* Fonction principale */
- int main()
- {
- /* Declaration et initialisation des variables */
- int continuer = TRUE;
- int choix = 0;
- while(continuer) {
- afficher_menu();
- choix = saisie_utilisateur();
- if (1 == choix) {
- faire_patin();
- }
- if (0 == choix) {
- continuer = FALSE;
- }
- }
- /* Valeur fonction */
- return EXIT_SUCCESS;
- }
- /* Definition des fonctions utilisateur */
- void faire_patin() {
- }
- void afficher_menu() {
- }
- int saisie_utilisateur() {
- int saisie = 0;
- return saisie;
- }