Chapitre 1 : Vers le premier programme C 1 Structure d’instruction L’instruction est composée, en assembleur, du Code opératoire et de deux opérandes. Elle est analysée par le µP bit/bit. Le processeur doit avoir accès en lecture et en écriture. 2 Définitions Variable = zone de mémoire identifiée par un nom (dyn.) Constante = valeur texte, numérique ou logique (fixe) Les variables et les constantes occupent une certaine place en mémoire. 3. Premières instructions Assignation : on donne à une variable une valeur. / !\ Si on ne donne pas de valeur à une variable, elle ne vaut pas 0 ! Déclaration : on définit une zone en mémoire pour une variable (taille varie selon le type : float, double, int, etc) Affichage : printf(‘’ch de caractères’’,variable) ; 4. Périphériques Un périphérique est un matériel informatique relié à l’ordinateur. Ex : le clavier. L’intérêt ici est de lire les données entrées par l’utilisateur (d’où « lire a »). On utilise la fonction scanf. Syntaxe : scanf(‘’%x »,&a’’) : x dépend du type de variable : float %f , double %lf, int %d INCONVENIENT : Si on tape ENTER, pas de message d’erreur – Le buffer peut ne pas être vide Vider le buffer : fflush(stdin) 5. Etapes de programmation Pseudo-code : Quoi ? Lesquelles ? Vers quoi ? Comment ? Qu’afficher ?... => LOGIQUE V Encodage : Editeur -> fichier .C V Compilation : Vérifie la syntaxe, fournit le fichier obj qui contient les infos d’emplacement des biblios de fct. V Link : Editeur de liens - lie les biblios au fichier obj afin de pouvoir créer le fichier exe V Execution du programme 6. Structure d’un programme - #include <biblio.h> (nb : .h = header file) - fonction principale (void main (void)) - Accolade d’ouverture, décla. variables, instructions, accolade de fermeture / !\ En C, tout est fonction y compris le programme. Chapitre 2 : Programmation structurée 1 Introduction Diviser un problème en module => démarche rationnelle. Séparer les modules : - Meilleure compréhension - Facilite la maintenance - Répartition entre programmeurs Les modules sont des fonctions 2 Appel de fonction L’appel de la fonction n’est composée que du nom de celle-ci (cf pg 16) 3. Commentaires Le comilateur ignore tous les commentaires (syntaxe : /* (début) et */ (fin) Chapitre 3 : Données numériques 1 Données numériques et binaire Short int 2 octets Int 4 octets Unsigned int 4 octets Long 4 octets Float 4 octets Double 8 octets limite : -32 768 à + 32 767 (2^15 – 1) limite : 2^31 – 1 Le bit de poids fort ou le bit de signature est le bit le plus à gauche et dit si le nombre est positif ou négatif. 0:+ 1:2 Conversion entre types de données. Un entier par un entier donne un entier, un float par un entier donne un float. Il y a moyen alors de convertir : - Casting : r = (float) a/ b. Le compilateur doit interpréter a comme un float - Transformation : r = a * 1.0 / b. a*1.0 sera un float 3. Dépassement de valeurs. / !\ Aux limites permises par les types de variables et aux résultats intermédiaires sinon on obtient n’importe quoi. La priorité des opérateurs intervient ici. 4. Format d’affichage float %x.yf %f : toutes les décimales - %8.2f : 8 positions dont 2 décimales - %.2f : limite de décimales uniquement 5. Identificateurs Variables et fonctions : ensemble de majuscules et minuscules avec prédominance de minuscules (ex : iPwet) Constantes : majuscules uniquement. (ex : CSTE) / !\ Premier caractère : toujours une lettre ou underscore. Pas d’espace. Pas de mots réservés. Chapitre 4 : Priorité des opérateurs () Fonctions *,/,% (calcul modulo : reste de la division entière du 1er nbre par le 2ème ) +,= Chapitre 5 : Séquence Les instructions sont exécutées en séquence, c'est-à-dire les unes après les autres. Si le programme est décomposé en modules, les modules seront eux aussi exécutés dans l’ordre. Les instructions du module sont dites structurées. Chapitre 6 : Alternatives Evaluation d’une condition . Ex : S’il fait beau,j’irai me promener, sinon,j’irai au cinéma. / !\ Le ALORS n’est pas traduit en C. Pseudo-code : SI (condition) ALORS instructions ; SINON instructions ; FIN SI En C : if ( a > b ) { instructions; } Else { Instructions ; } Règles d’écriture - Accolades d’ouverture et de fermeture ! Ne pas oublier de fermer les accolades dès ouverture - Décalage des instructions - Les instructions doivent commencer à la même colonne. Alternative incomplète (ex : S’il fait beau j’irai me promener) SI (condition) ALORS instruction ; FIN SI Importance des {} Si la condition est vraie : les instructions seront exécutées et le programme se comportera comme attendu Si la condition est fausse : la première instruction ne sera pas exécutée mais les autres bien. Conditions composées ET ( && ) : - Vrai : si toutes les conditions sont vraies - Faux : si au moins UNE condition est fausse OU ( || ) : - Vrai : si au moins UNE condition est vraie - Faux : si toutes les conditions sont fausses 0 ou différent de 0 : Condition vraie si elle vaut 0, condition fausse si != de 0 If (i != 0) (différent de) peut s’écrire if (i ) If (i == 0) peut s’écrire if ( ! i ) (négation) Assignation n’est pas comparaison If ( a = b ) ,b sera assigné à a. Puis la condition sera interprétée comme « si a différent de 0 » Donc attention ! Lisibilité Attention aux indentations ! Structure sélective Permet d’éviter d’avoir trop de if imbriqués. Pseudo code, Le switch est traduit par SELECTIONNER. Syntaxe : Switch(Variable de choix) { Case #value : instructions ; Break ; Case#value2 : instructions ; Break ; Default : instructions ; }