La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Cours de programmation en langage C (Norme ANSI)

Présentations similaires


Présentation au sujet: "Cours de programmation en langage C (Norme ANSI)"— Transcription de la présentation:

1 Cours de programmation en langage C (Norme ANSI)
Soutien C et Java Anthony REY – 4A AL Cours N°1

2 Plan du cours I) Introduction II) Les bases du langage III) Exercices
Historique Mais c’est quoi un langage de programmation ? Processus classique de compilation II) Les bases du langage Le programme minimal utile Compiler et exécuter un programme Les variables et les types Les conditions et introduction à la logique booléenne La portée des variables III) Exercices

3 I) Introduction Historique : Crée en 1972 : Procédural et Impératif
Dennis Ritchie Bell Labs Procédural et Impératif 2ème langage le plus utilisé au monde (Index TIOBE 2015) Java est 1er, le C l’était en 2014 Les deux langages se trouvent souvent au coude à coude TIOBE est un Indicateur un peu mauvais toutefois (Analyse des recherches web)

4 I) Introduction Bas niveau Plusieurs normes : Utilisé en embarqué
Programmation système UNIX Programmation réseaux Plusieurs normes : C84 C ANSI (C90) C99 C11

5 I) Introduction Mais c’est quoi un langage de programmation ?
Communication Homme > Machine Transformation code source > code machine Interprété (Python, PHP…) Compilé (C / C++ / Haskell…) Hybride (Java / C#…) Attention : Le HTML n’est pas un langage de programmation !! C’est un langage d’organisation de l’information basé sur SGML

6 I) Introduction Processus classique de compilation : Compilation
Conversion of C source to assembler and assembly into object code Link edition It joins the different object code needed by the final executable

7 I) Introduction Aller plus loin : Processus classique de compilation :
Compilation conditionnelle (make) Assembleur et assemblage Dynamic et static linking

8 II) Les bases du C Le programme minimal utile :
#include <stdio.h> int main(int argc , char** argv) { printf(« Hello, world ! »): return 0; }

9 II) Les bases du C Directives de préprocesseur 2) Fonction main
Inclusion des définitions de fonctions voulues pour le programme Commencent par # Ici, on veut les entrées-sorties standards (stdio.h) 2) Fonction main Point d’entrée d’un programme C A recopier telle qu’elle ( à quelques exceptions près pour ses paramètres) La totalité du programme tiens entre les accolades qui sont le corps de la fonction En C tout les blocs de codes sont délimités par des accolades On expliquera en détail le reste lorsque l’on verra les fonctions.

10 II) Les bases du C Une ligne contenant une instruction fini par un ;
Les blocs sont délimités par des accolades Les messages d’erreurs à l’exécution sont cryptiques Les erreurs de linker sont cryptiques

11 Compiler et exécuter un programme
Compilation de base : GCC : GNU C Compiler gcc [-ansi] main.c [-o nom_du_binaire] [-l librairies] Exécuter un programme : ./nom_du_binaire Attention : sudo chmod +x Un programme doit être marqué comme exécutable sur linux (C’est le cas par défaut avec les sorties de GCC)

12 Les variables et les types
Zone mémoire qui contient une et une seule valeur Mémoire : Meuble de rangement Variable Tiroir On déclare une variable puis on initialise celle-ci avec une valeur Attention : Une variable est forcement déclarée (sinon il n’y a pas de variable…), mais pas forcement initialisée Lire une variable non initialisée résulte en une valeur complètement imprévisible !

13 Les variables et les types
Exemple simplifié : Déclaration suivie d’une affectation : ma_variable = 10; Déclaration simple : ma_variable; « = »  est appelé opérateur d’affectation

14 Les variables et les types
Leur taille en mémoire dépends de l’implémentation sous-jacente… Les types principaux : Entiers Int Short (short int) Long (long int) Flottants (chiffres à virgule) Float (simple précision) Double (double précision) Caractères Char

15 Les variables et les types
Signe : Signed Unsigned Aller plus loin ? e

16 Les variables et les types
Exemple complet : Déclaration typée suivie d’une affectation : int ma_variable = 10; Déclaration simple : unsigned short ma_variable; Déclaration suivie d’une affectation : float ma_variable; float ma_variable = 10.0;

17 Les conditions et introduction à la logique booléenne
Branchement logique On embranche si l’évaluation de la condition est VRAI Vrai / Faux (Logique booléenne) Pas de variables booléennes en C ANSI : Les entiers 1 et 0 sont utilisés 1 = TRUE 0 = FALSE On a les principales conditions suivantes en C : If / else / else if

18 Les conditions et introduction à la logique booléenne
Opérateurs : == test d’égalité Renvoie 1 si égal, 0 sinon ! (non) Négation Inverse la valeur booléenne évaluée != test d’inégalité Renvoie 1 si NON égal, 0 sinon

19 Les conditions et introduction à la logique booléenne
Petit aparté : Les // dénotent un commentaire (uni-ligne) Un commentaire n’est pas pris en compte par le compilateur, son but est de documenter le code pour le / les développeur(s) On peut créer des commentaires sur plusieurs lignes avec /* blah blah */

20 Les conditions et introduction à la logique booléenne
Exemple : If ( 1 == 1 ) // évalué à 1 lors de l’éxecution du programme { //1 == 1 est toujours VRAI //Donc on rentre dans la condition } If ( 1 != 1 ) // évalué à 0 lors de l’éxecution du programme //1 != 1 est toujours FAUX //Donc on ne rentre pas

21 Les conditions et introduction à la logique booléenne
On peut aussi encapsuler la condition pour lui appliquer l’opérateur de négation : If ( !(1 == 1) ) // 1 == 1 vaut 1 qui est transformé en 0 par ! { //C’est donc équivalent à 1 != 1 //On ne rentre pas dans la condition }

22 Les conditions et introduction à la logique booléenne
Utilisation de else et de else if : /* On peut omettre les accolades si il n’y a qu’un seul bloc dans le bloc de code de la condition. Mais c’est toutefois une mauvaise pratique. */ if( 1 == 0 ) // n’y rentrera jamais (on compare des constantes) else if( 1 == 2 ) else if( 1 == 3 ) else // Cas par défaut si rien n’a matché plus haut

23 Les conditions et introduction à la logique booléenne
Combiner des expressions booléennes vous avez dit ? Les opérateur ET et OU : && (et) || (ou) Ex Je veux > (un chat à poils longs) && (qui n’est pas roux) Quels sont les cas qui sont répondent à ce problème ?

24 Les conditions et introduction à la logique booléenne
1

25 Les conditions et introduction à la logique booléenne
OU : OU 1

26 Les conditions et introduction à la logique booléenne
Exemple : If ( 1 == 1 && 2 == 2 ) //On rentre car : // 2 == 2 est evalué à 1 // 1 == 1 est évalué à 1 // (1 && 1) > 1 //Idéalement on isolera les composantes de la condition pour plus de lisibilité // (1 == 1) && (2 == 2)

27 Les conditions et introduction à la logique booléenne
Soit un chaton nommé « Fluffy » : Je veux > (un chat à poils longs) && (qui n’est pas roux) (cat_p == poils_longs) && (cat_c != roux) (1) && (1) 1 TRUE Cet adorable chaton correspond aux critères de notre condition booléenne

28 La portée des variables
Une variable n’est accessible que dans le bloc de déclaration et ses sous blocs : int main (…) { int i = 0; If( i == 0) int j = 2; printf(« %d », i); //OK printf(« %d », j); //OK } printf(« %d », i); // OK printf(« %d », j); //plante à la compil, détruite lors de la sortie du if return 0;

29 III) Exercices Afficher le message suivant :
Salut ! [saut de ligne] Ca va ? Créer une variable entière, lui affecter 10 et l’afficher Créer un flottant, lui affecter 10.0 et l’afficher Créer une variable entière lui affecter 10, si cette variable vaut 10, afficher : « Ma variable vaut 10 » Reprendre ce programme et affecter 11 à votre variable, gérez l’autre cas (« ma variable ne vaut pas 10 »)


Télécharger ppt "Cours de programmation en langage C (Norme ANSI)"

Présentations similaires


Annonces Google