Aide Mémoire - langage C

Documents pareils
1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Programmation en langage C

Rappels Entrées -Sorties

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Introduction au langage C

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

SUPPORT DE COURS. Langage C

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Programmation système I Les entrées/sorties


Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Cours de programmation avancée. Le langage C. Université du Luxembourg

Langage C. Patrick Corde. 22 juin Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin / 289

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Langage Éric Guérin 5 octobre 2010

COMPARAISONDESLANGAGESC, C++, JAVA ET

INITIATION A LA PROGRAMMATION

Programmation impérative

Algorithmique et Programmation, IMA

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Anis ASSÈS Mejdi BLAGHGI Mohamed Hédi ElHajjej Mohamed Salah Karouia

Introduction au Langage de Programmation C

Programmation en langage C Eléments de syntaxe

Claude Delannoy. 3 e édition C++

UE C avancé cours 1: introduction et révisions

Programmation C. J.-F. Lalande. 15 novembre 2012

Cours d Algorithmique et de Langage C v 3.0

Cours de C. Petits secrets du C & programmation avancée. Sébastien Paumier

INF 321 : mémento de la syntaxe de Java

Chapitre 1 : La gestion dynamique de la mémoire

Programmation en C. École Nationale Supérieure de Techniques Avancées. Pierre-Alain Fouque et David Pointcheval

Programmer en JAVA. par Tama

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE UNIVERSITE M HAMED BOGARA DE BOUMERDES

Programmation système de commandes en C

Chap III : Les tableaux

Plan du cours. Historique du langage Nouveautés de Java 7

Java Licence Professionnelle CISII,

Algorithmique, Structures de données et langage C

Support de Cours de Langage C. Christian Bac

Les structures de données. Rajae El Ouazzani

INF 104 (SELC) Introduction au langage C

MINIMUM. connaissances nécessaires à la programmation des microcontrôleurs PIC18 en langage C (une introduction au langage c A.N.S.

Le Langage C Licence Professionnelle Qualité Logiciel Pr. Mouad BEN MAMOUN ben_mamoun@fsr.ac.ma Année universitaire 2011/2012

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs

Programmation Classique en langage C

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Méthodes de programmation systèmes UE n NSY103. Notes de cours. Nombre d'heures : 55h (~ cours de 3 heures)

Le prototype de la fonction main()

as Architecture des Systèmes d Information

COURS D'INFORMATIQUE: LANGAGE C NOTES DE COURS

Le langage C. Séance n 4

Bases de programmation. Cours 5. Structurer les données

Les fichiers. Chapitre 4

Introduction à l algorithmique et à la programmation M1102 CM n 3

BTS IRIS Cours et Travaux Pratiques. Programmation C. A. Lebret, TSIRIS, Lycée Diderot, 1995/06. en conformité avec le référentiel du BTS IRIS

V- Manipulations de nombres en binaire

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Les débordements de tampons et les vulnérabilités de chaîne de format 1

Le langage C. Introduction, guide de reference

COURS DE LANGAGE C. DIAO Oumar. Université de Rennes 1. Master 1

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Les structures. Chapitre 3

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Notions fondamentales du langage C# Version 1.0

Les chaînes de caractères

Pensez à vous inscrire... si ce n est pas encore fait

Conventions d écriture et outils de mise au point

Programmation en C/C++

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Programmation en C - Sommaire

Analyse de sécurité de logiciels système par typage statique

Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire et Damien Simon

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Initiation. àl algorithmique et à la programmation. en C

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Le Langage C++ Patrick TRAU - ULP IPST version du 02/10/05

3IS - Système d'exploitation linux - Programmation système

Langages et Concepts de Programmation Introduction à la programmation en langage C

Java Licence Professionnelle CISII,

Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire

Programmation Structurée en Langage C

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Programmation système en C/C++

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Gestion de la mémoire

PROGRAMMATION PAR OBJETS

Programme Compte bancaire (code)

Informatique / Programmation

UE Programmation Impérative Licence 2ème Année

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Cours 6 : Tubes anonymes et nommés

OS Réseaux et Programmation Système - C5

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

Compression de Données - Algorithme de Huffman Document de Conception

Transcription:

Université du Luxembourg 2005 2006 Aide Mémoire - langage C 1 Directives de préprocesseur inclusion de fichiers pour un fichier système : #include <nom_de_fichier> pour un fichier du répertoire courant : #include "nom_de_fichier" ex : #include <stdio.h> définition de macros (remplacement textuel) : sans arguments : #define nom valeur avec arguments : #define nom(x 1,,x n ) f(x 1,,x n ) ex : #define carre(x) ((x)*(x)) compilation conditionnelle : #if #ifdef #ifundef chacune de ces directives doit être terminée par #endif. Les texte entre les deux est pris en compte seulement si la condition est vérifiée. ex : #ifdef DEBUG printf("message de debug\n"); #endif 2 Commentaires Entre /* et */. Ne peuvent pas être imbriqués. ex : /* ceci est un commentaire valide */ /* ceci n est pas un /* commentaire */ valide */ // Ceci est un commentaire sur une ligne 3 Structure d un programme en C /* Declarations globales (variables, prototypes, fonctions) */ int main (int argc, char *argv[]) } 1

4 Variables et types Les types de base les plus répandus sont : short int long float double char Ils peuvent, entre autres, être prefixés par un ou plusieurs des modificateurs suivants : unsigned short long static extern register variable(s) simple(s) : type nom; ou type nom 1,,nom n ; ex : unsigned int i,j; tableau : type nom[taille]; indéxé de 0 à taille-1. Accès à un élément i par nom[i]. ex : char chaine[25]; structure : struct nom_structure type 1 nom 1 ; type n nom n ; } nom; Le dernier nom est optionnel et déclare une variable ayant la structure définie comme type. Le champ nom_structure est optionnel est permet de nommer la structure pour y accéder ultérieurement avec struct nom_structure. Accès à un champ par l opérateur. (point). ex : struct point int x,y; }; struct point mon_point; mon_point.x = 5; type : typedef declaration_de_variable; Le nom utilisé pour la déclaration est le nom du nouveau type défini. ex : typedef struct int x,y; } point; point mon_point; mon_point.x = 5; 5 Fonctions Chacune des fonctions peut être prototypée ou non. Dans tous les cas le prototype se place avant la declaration. 2

prototype : type_retour nom(type 1 arg 1,, type n arg n ); ou type_retour nom(type 1,, type n ); déclaration : type_retour nom(type 1 arg 1,, type n arg n ) /* déclaration des variables */ /* instructions (corps) */ /* si type_retour est différent de void */ return valeur; } 6 Opérateurs, Expressions Une expression est constituée d une valeur, d une variable, ou de la combinaison de deux expressions par un opérateur arithmétiques ou logiques. Attention, en C, par convention, une valeur nulle est fausse et une valeur non nulle est vraie. ex : opérateurs arithmétiques (addition, soustraction/négation, multiplication, division et modulo) : + - * / % opérateurs logiques (conjonction, disjonction, négation, et comparaisons) : &&! < > <= >= ==!= opérateurs bit-à-bit (ou, et, non, ou exclusif, décalage à gauche / à droite) : & ~ ^ << >> pré/post incrémentation/décrémentation : ++ -- appliqués comme opérateur unaire pré/post-fixes à une variable. Incrémente/décrémente la variable. La valeur de l expression est soit la valeur de la variable (si l opérateur est postfixe), soit la valeur de la variable une fois incrémentée/décrémentée (si l opérateur est préfixe). affectations : = += -= *= /= %= = &= ^= <<= >>= affecte la valeur en partie droite à la variable en partie gauche (= simple). Pour la composition d un opérateur avec l affectation, affecte le resultat de l opérateur appliqué à la valeur de la variable en partie gauche et la valeur en partie droite à la variable en partie gauche. La valeur de l expression est la valeur affectée. /* les expressions suivantes ont le m^eme effet et la m^eme valeur */ i=i+1; i+=1; ++i; /* i++ a le meme effet, mais pas la meme valeur */ 3

7 Instructions Une instruction est soit une expression, soit une structure de contrôle soit un bloc d instructions délimité par et }. Toute instruction doit être suivie d un ; (sauf un bloc). ex : /* une instruction */ i=0; /* un bloc */ i=0; j=1; } 8 Structures de contrôle condition : if (expression) instruction 1 ; ou if (expression) instruction 1 ; else instruction 2 ; si l expression est vraie, effectue instruction 1, sinon effectue instruction 2 (le cas échéant). répétition tant que : while (expression) instruction; tant que l expression est vraie, répette l execution de l instruction. répétition jusqu à : do instruction; while (expression); répette l execution de l instruction jusqu à ce que l expression soit fausse. boucle : for (expression 1 ;expression 2 ;expression 3 ) instruction; évalue une (unique) fois expression 1, puis tant que expression 2 est vraie, execute instruction et évalue expression 3 (dans cet ordre). ex : for (i=0; i<n; i++) printf("%d\n",tableau[i]); 9 Pointeurs déclaration : type *nom; adresse d une variable : &variable déréférence (accès à la valeur pointée) : *pointeur 4

déréférence et accès à un champ (pour un pointeur sur structure) : variable->champ équivalent à (*variable).champ (les parenthèse sont nécessaires à cause de la précédence). 10 Quelques fonctions système utiles dans malloc.h (allocation et libération de mémoire) : malloc free dans stdio.h (entrées/sorties) : printf scanf fopen fprintf fscanf fclose dans stdlib.h (conversion entre types) : atoi atol strtol dans ctype.h (test sur les caractères) : isalpha isdigit isalnum dans string.h (manipulation de chaines) : strlen strcpy strcmp 11 Les mots réservés auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while 12 Les utilisations de la fonction printf Voici plusieurs exemples didactiques: printf(" %d \n",14); 14 printf(" %d \n",-14); -14 printf(" %+d \n",14); +14 printf(" %+d \n",-14); -14 printf(" % d \n",14); 14 printf(" % d \n",-14); -14 printf(" %x \n",0x56ab); 56ab printf(" %X \n",0x56ab); 56AB printf(" %#x \n",0x56ab); 0x56ab printf(" %#X \n",0x56ab); 0X56AB printf(" %o \n",14); 16 printf(" %#o \n",14); 016 printf(" %10d \n",14); 14 printf(" %10.6d \n",14); 000014 printf(" %.6d \n",14); 000014 5

format conversion en écriture %d int décimale signée %ld long int décimale signée %u unsigned int décimale non signée %lu unsigned long décimale non signée %o unsigned int octale non signée %lo unsigned long octale non signée %x unsigned int hexadécimale non signée %lx unsigned long hexadécimale non signée %f double décimale virgule fixe %lf long double décimale virgule fixe %e double décimale notation exponentielle %le long double décimale notation exponentielle %g double décimale, représentation la plus courte parmi %f et %e %lg long double décimale, représentation la plus courte parmi %lf et %le %c unsigned char caractère %s char* chaîne de caractères Table 1: Les différents formats de la fonction printf printf(" %*.6d \n",10,14); 000014 printf(" %*.*d \n",10,6,14); 000014 printf(" %f \n",1.234567890123456789e5); 123456.789012 printf(" %.4f \n",1.234567890123456789e5); 123456.7890 printf(" %.20f \n",1.234567890123456789e5); 123456.78901234567456413060 printf(" %20.4f \n",1.234567890123456789e5); 123456.7890 printf(" %e \n",1.234567890123456789e5); 1.234568e+05 printf(" %.4e \n",1.234567890123456789e5); 1.2346e+05 printf(" %.20e \n",1.234567890123456789e5); 1.23456789012345674564e+05 printf(" %20.4e \n",1.234567890123456789e5); 1.2346e+05 printf(" %.4g \n",1.234567890123456789e-5); 1.235e-05 printf(" %.4g \n",1.234567890123456789e5); 1.235e+05 printf(" %.4g \n",1.234567890123456789e-3); 0.001235 printf(" %.8g \n",1.234567890123456789e5); 123456.79 6