Memo C
Memo C
Memo C
L UHP
Memo langage C
Structure de programme
/* Rle : */ /* Auteurs : */ /* Partie dclarations */ #include <stdio.h> /* dclaration des bibliothques */ #include mylib.h /* dclarations de bibliothque personnelles */ typedef nomdetype definition ; /* dclarations de type */ #define constante valeur /* dclaration de constante */ /* variables globales */ /* Procdures */ /* Programme principal*/ int main(void) /* un seul programme principal */ { /* partie dclaration de variables locales */ /* partie instructions du programme principal unique dans un projet*/ return 0; }
entiers non signs rels double prcision Caractre Chane de caractres Boolens Dclaration de variable Rle: identifier et rserver de la place en mmoire pour stocker une valeur Syntaxe de dclaration de variables <type_variable> <nom_variable>,<autre_variable> ; Exemples de dclaration de variables numriques int annee ; float x1, x2 ; avec initialisation de valeur int jour=5, mois=11 ; float tva=17.6 ; Pointeur : Rle : permet de grer des adresses de variables Dclaration : <type_variable_pointe> *<nom_variable> ; Exemples float *ptr; int *pti; /* pointeur sur rel, sur entier */ char *str[]; /* pointeur sur tableau de caractres */ Utilisation Affecter une adresse ptr=&x ; pti= &i ; Affecter une valeur une variable pointe *ptr=1.5 ; *pti=2 ; Il nest pas facile dafficher la valeur dun pointeur La variable relle pointe par ptr est symbolise par (*ptr) Transtypage (casting) Rle : lire le contenu de la mmoire comme si ctait un type diffrent (mais compatible) que celui dclar initialement pour cette valeur Automatique bien souvent car C nest pas un langage fortement typ Volontaire syntaxe : <var_type1> = (<nom_type1>) <var_type2> ; Exemple : long int li ; int i ; /* dclarations */ li = (longint) i ; /* instructions */
page 1/4
J. M.L UHP
Memo langage C
Utillisation
page 2/4
J. M.L UHP
Memo langage C
Principales instructions
Commentaire /* <texte_du_commentaire> */ Itrations Avec compteur for (<expr_initc_ptr> ; <expr_cond.repet_cptr> ; <expr_cptr>) {bloc} on utilise un compteur, interdit de modifier le compteur dans le bloc pas de exit goto ou branchement quelconque Exemple : afficher tous les caractres minuscules for (i=a ; i<=z ; i++) printf(%c , i) ; printf(\n) ; /* afficher toutes les lettres de lalphabet */ Avec condition darrt Exprimer la condition darrt : puis la traduire en condition pour continuer en respectant les lois de De Morgan Syntaxe : while (<condition>) {<bloc >} attention : aux initialisations avant litration, bien modifier la valeur de la condition dans le bloc dinstruction sous peine davoir une itration infinie Exemple i= a ; while (i<=z) { printf(%c , i); i++ ;} printf(\n) ; Syntaxe : do {<bloc> } while ( <condition> ) ; Conditionnelles Simple if (<condition>) <instr> ; Complte if (<condition>) <instr1> ; else <instr2> ; Avec des blocs dinstructions if (<condition>) {<bloc1>} else {<bloc2>} Aiguillage switch (<var_int> ) { case <valeur1> : <instr1> ; <instr2> ;break ; case <valeur2> : ; default : <instr> ; }
Entres- sorties
Saisie de variable : scanf(<format_de_saisie>, &<var>) ; Affichage : printf(<message>\n ) ou printf(<message format>\n, <variable>) ; Saisie de caractre : getc( <caractere>) ; Affichage de caractre putc ( <caractere>) ; Saisie de chane de caractres : gets(<chaine>) ; Affichage de chanes de caractres : puts(<chane>) ;
page 3/4
J. M.L UHP
Memo langage C
Procdures
Fonction Syntaxe de profil /* role de la procdure : */ /* donnes : liste des paramtres avec leur type */ /* rsultat : type du rsultat */ <type_result> <nom_fonction> ( <type_param> <nom_param_formel>) { /* variables locales */ /* instructions */ return <var_de_type_result> ; } avec type_result de type simple Procdure Syntaxe de profil /* role de la procdure : */ /* donnes : liste des paramtres avec leur type */ /* rsultat via : pointeur sur le type du rsultat */ void <nom_procedure> ( <type_param> <nom_param_formel> ) { /* variables locales */ /* instructions */ }
Compilation
Pour compiler le programme source essai.c en l'objet excutable, taper dans une fentre console : gcc -o essai essai.c si le programme contient des fonctions mathmatiques, taper : gcc -lm -o essai essai.c pour garantir une bonne portabilit de votre code, taper : gcc -ansi -Wall -o essai essai.c et s'assurer qu'il n'y a plus aucun de message d'erreur ou de prvention.
page 4/4