• 1. Vidéo

       

       

    • La programmation graphique

      Il existe 2 types de programmation graphique multiplateforme : CFML et SDL2.

      Solution de programmation graphique multi-plateforme en langage C
      SDL CSFML

      Nous allons tester CSFML. Aller sur https://github.com/jlsalvat/CSFML-VisualStudio_2_6_0/ télécharger le projet et le dézipper.

      Un programme graphique est constitué d'une boucle infinie dans laquelle il y a 2 parties : la première permet de lire les évènements issus du clavier, souris et joystick et la deuxième partie consiste à gérer l'affichage graphique (qui va varier en fonction des évènements).

      Il existe plusieurs programmes simples de prise en main de l'interface graphique, vous apprendrez :

      • Comment créer une fenêtre graphique et comment la paramétrer (taille, gestion de la fermeture)
      • Comment gérer les évènements claviers ou souris
      • Comment afficher un rond ou un carre et modifier la position de ces éléments
      • Comment afficher du texte dans la fenêtre graphique (notion de Font)
      • Comment émettre un son

      L'intérêt de cette partie est de démontrer l'intérêt des fonctions et les bonnes pratiques d'écriture de ces fonctions.

    • 3 Retour sur les fonctions de gestion des caractères

      Solution 1
      Solution 2
      Solution 3

      int main() {

          char c;

          c = getchar();

          if (c >= '0' && c <= '9')

              printf("un chiffre");

          else if (c >= 'a' && c <= 'z') {

              c = c + 'A' - 'a';

              putchar(c);

          }

          return 0;

      }

      int isDigit(char c) {

          return (c >= '0' && c <= '9');

      }

      char toUpper(char c) {

      c = c + 'A' - 'a';

          return c;

      }

      int isLower(char c) {

          return (c >= 'a' && c <= 'z');

      }

      int main() {

          char c;

          c = getchar();

          if (isDigit(c))

              printf("un chiffre");

          else if (isLower(c)) {

              c = toUpper(c);

              putchar(c);

          }

          return 0;

      }

      #include <stdio.h>

      #include <ctype.h>

      int main() {

          char c;

          c = getchar();

          if (isdigit(c))

              printf("un chiffre");

          else if (islower(c)) {

              c = toupper(c);

              putchar(c);

          }

          return 0;

      }

      Les fonctions de test de caractères

      Nom

      Description

      isalnum

      Vérifie si un caractère est alpha-numérique.

      isalpha

      Vérifie si un caractère est alphabétique.

      isblank

      Vérifie si un caractère est blanc ou non.

      iscntrl

      Vérifie si l'on a à faire à un caractère de contrôle.

      isdigit

      Vérifie si un caractère est un chiffre.

      isgraph

      Vérifie si un caractère posséde une représentation graphique.

      islower

      Vérifie si un caractère est une lettre minuscule.

      isprint

      Vérifie si un caractère est affichable (printable) ou non.

      ispunct

      Vérifie si l'on a à faire à un caractère de ponctuation.

      isspace

      Vérifie si l'on a à faire à un caractère d'espacement.

      isupper

      Vérifie si un caractère est une lettre majuscule.

      isxdigit

      Vérifie si un caractère est un chiffre hexadécimal.

      Les fonctions de transformations de caractères

      Nom

      Description

      tolower

      Transforme une lettre majuscule en une minuscule.

      toupper

      Transforme une lettre minuscule en une majuscule.

      Quizz
    • 4. mot clé static


      Une variable permanente (static) occupe un emplacement en mémoire qui reste le même durant toute l'exécution du programme. Cet emplacement est alloué une fois pour toutes lors de la compilation. La partie de la mémoire contenant les variables permanentes est appelée segment de données. Par défaut, les variables permanentes sont initialisées à zéro par le compilateur. Elles sont caractérisées par le mot-clef static.

      Fonction sans le mot clé static (la variable n est toujours égale à 1)
      Fonction avec le mot clé static (la variable n s'incrémente)

      void test_static();

      void main() {

        int i;

        for (i = 0; i < 5; i++)

          test_static();

      }

      void test_static() {

        int n = 0;

        n++;

        printf("appel numero %d\n", n);

      }

      void test_static();

      void main() {

        int i;

        for (i = 0; i < 5; i++)

          test_static();

      }

      void test_static() {

        static int n = 0;

        n++;

        printf("appel numero %d\n", n);

      }

      appel numero 1

      appel numero 1

      appel numero 1

      appel numero 1

      appel numero 1

      appel numero 2

      appel numero 3

      appel numero 4

      Fonction sans le mot clé static (la variable valeur est toujours égale à 1)
      Fonction avec le mot clé static (la variable valeur s'incrémente)

      int somme(int);

      int main() {

        int n;

        n = somme(2);

        n = somme(4);

        printf("n=%d\n", n);

      }

      int somme(int n) {

        int valeur=0;

        valeur += n;

        return valeur;

      }

      int somme(int);

      int main() {

        int n;

        n = somme(2);

        n = somme(4);

        printf("n=%d\n", n);

      }

      int somme(int n) {

        static int valeur=0;

        valeur += n;

        return valeur;

      }

      n=2

      n=4

      n=2

      n=6

    • 5. Test de fin de chapitre