Rappels C
Introduction Gestion de la mémoire Langages de programmation La gestion de la mémoire : comme des tiroirs Langages de prog : 1- Langage machine (assembleur) 2- Lanages de haut niveau Structuré c objet c++
Introduction Présentation du langage C Kernighan et Ritchie Lanage de programmation tres utilisé pdt les 80 Structuré et typé
Un exemple simple Le Hello World #include <stdio.h> int main(void) { printf("hello, world\n"); return 0; } Tout expliquer en global Exercice 1
Le langage C Les fichiers en tête #include <stdio.h> int main(void) { printf("hello, world\n"); return 0; } Header
Le langage C Les fichiers C #include <stdio.h> int main(void) { printf("hello, world\n"); return 0; } HelloWorld.c
Des sources à l’executable Préprocesseur
Des sources à l’executable Directives du préprocesseur #include <stdio.h> int main(void) { printf("hello, world\n"); return 0; } Preprocess Avant le code Inclusion du fichier
Des sources à l’executable Directives du préprocesseur #include #define Exercice 2
Des sources à l’executable Compilation Exercice 1 & 2
Des sources à l’executable Liens Exercice 1&2
Syntaxe Les fichiers en tête #include <stdio.h> int main(void) { printf("hello, world\n"); return 0; } Elements de syntaxe Bien rappeler l’importance du ; Parenthèses dans maths Saut à la ligne pas d’importance On va revenir sur les fonctions
Types et variables Types entiers : char char toto = ‘c’; Types entiers : short, unsigned short short court = 12; Types entiers : int, unsigned int. int moinsCourt = 24; Types entiers : long, unsigned long. long plusLong = 36; Types à virgule flottante : float, double float aVirgule = 24,36; Types entiers >= 8 bits : char, unsigned char, signed char (C89). Types entiers >= 16 bits : short (identique à signed short), unsigned short. Types entiers (mot machine) >= 16 bits : int (identique à signed int), unsigned int. Types entiers >= 32 bits : long (identique à signed long), unsigned long. Types entiers >= 64 bits (C99) : long long (identique à signed long long), unsigned long long. Types à virgule flottante : float, double, long double (C89). Types énumérés : enum. Types élaborés : struct, union, * pour les pointeurs, [ ... ] pour les tableaux, ( ... ) pour les fonctions. Voir exemple 1&2&1er code
Types et variables Types énumérés : enum enum jourSemaine { Samedi = 0, Dimanche = 1, Lundi = 2, Mardi = 3, Mercredi = 4, Jeudi = 5, Vendredi = 6 }; Enum de types définis mais constant Utilisation : int main() { enum Days today = sunday; switch (today) { case 1: cout << "It's Monday" << endl; break; default: cout << "Not Monday" << endl; }} Les enums sont très utilisé en programmation 3d
Types et variables Types élaborés : struct, union, * pour les pointeurs, [ ... ] pour les tableaux, ( ... ) pour les fonctions. Types entiers >= 8 bits : char, unsigned char, signed char (C89). Types entiers >= 16 bits : short (identique à signed short), unsigned short. Types entiers (mot machine) >= 16 bits : int (identique à signed int), unsigned int. Types entiers >= 32 bits : long (identique à signed long), unsigned long. Types entiers >= 64 bits (C99) : long long (identique à signed long long), unsigned long long. Types à virgule flottante : float, double, long double (C89). Types énumérés : enum. Types élaborés : struct, union, * pour les pointeurs, [ ... ] pour les tableaux, ( ... ) pour les fonctions.
Types élaborés Les pointeurs Définition Un pointeur va ‘pointer’ vers des données Allocation et libération mémoire La gestion de la mémoire Le signe * Indiquation d’un pointeur Récupérer les données Le signe & Récupérer le pointeur
Types élaborés Les pointeurs Allocation statique int a = 2; Voir exempleptr int a = 2; int * p = NULL; p = &a ; *p = 2; int p[10]; p[0] = 1; p[1] = 2; … P[9] = 10;
Types élaborés Les pointeurs Allocation Dynamique, l’instruction malloc Voir exemplemalloc int *p = malloc(sizeof(int)*n);
Types élaborés Les pointeurs Libération Dynamique, l’instruction free free(p)
Types élaborés Tableau de caractères char tab[] = {'t', 'a', 'b', '\0'}; char * p1 = &tab[0];
Types élaborés Les fonctions Définition Déclaration d’une fonction Le corps de la fonction Le retour de la fonction ! F() Déclaration : Type nom(args)
Types élaborés Comment appeler une fonction Un exemple de ce que nous avons vu Un exercice ou deux Exemple p34 / exemplefcn
Structures de contrôle L’instruction conditionnelle ‘if’ Si telle condition est vrai, alors Les opérateurs && || Les tests <= >= == etc… Sinon, si… Sinon…
Structures de contrôle L’instruction Switch Permet le choix Instruction très puissante
Structures de contrôle Les boucles for while do… while Voir exemple while
Exemples Et Exercices Faire exos