Une introduction au langage C

Dimension: px
Commencer à balayer dès la page:

Download "Une introduction au langage C"

Transcription

1 Une introduction au langage C 1. INTRODUCTION UN EXEMPLE DE PROGRAMME EN C LES ELEMENTS DE BASE DU LANGAGE C LES MOTS RESERVES LES CONSTANTES LES IDENTIFICATEURS LES OPERATEURS LES DELIMITEURS ET LES COMMENTAIRES LES VARIABLES, TYPES ET CLASSES REGLES DE CONVERSION OPERATEURS D'ACCES AUX OBJETS LES INSTRUCTIONS ET LES DIRECTIVES LES ENTREES / SORTIES EXECUTION CONDITIONNELLE BOUCLES ET ITERATIONS INSTRUCTIONS ASSOCIEES AUX BOUCLES FONCTIONS LES DIRECTIVES TABLEAUX, POINTEURS ET STRUCTURES LES TABLEAUX LES POINTEURS LES STRUCTURES

2 1. Introduction Un programme en langage C est une suite de déclarations, d'instructions simples, de structures de contrôle, de commentaires, de directives pour le compilateur, etc. Ecrire un programme en C suppose en premier lieu que l'algorithme a été mis au point. Le but de ce document est de présenter la syntaxe et les règles sémantiques du langage C Un exemple de programme en C /* Calcul des nombres entiers par le crible d'eratosthène */ #define SIZE 1000 int Flags[ SIZE+1 ]; void main() { int i, k, premier, compte; compte = 0; for (i=0; i <= size; i++) Flags[ i ] = 1; for (i=0; i <= size; i++) { if (Flags[ i ]) { premier = i + i + 3; printf("%d\n", premier); for (k=i+premier; k <= SIZE; k+= premier) compte++; Flags[ k ] = 0; /* enlever les multiples */ printf("%d nombres premiers", compte); Lorsqu'on relit un programme en C, on ne perçoit pas dans la plupart des cas l'algorithme mis en jeu. C'est pourquoi il est important de consigner par écrit la logique de traitement et d'expliquer le codage de la représentation informatique du monde réel par tels types de variables ou à l'aide de telle ou telle structure de données. L'indentation des lignes dans un programme permet, quant à elle, de repérer d'un seul coup d'œil les structures de contrôles associées aux traitements. 2

3 2. Les éléments de base du langage C Les mots utilisés dans le langage C peuvent être : des mots réservés, des constantes, des identificateurs, des opérateurs, des délimiteurs ou des commentaires. Attention! les minuscules et les majuscules ne sont pas équivalentes. Ainsi les mots TOTO, Toto et Toto (etc) ne sont pas identiques Les mots réservés Ils servent à spécifier les types ou les classes d'allocation des objets utilisés, à introduire un opérateur symbolique ou une instruction de contrôle ou encore à définir des étiquettes de contrôle Type Classe Instruction Opérateur étiquette int auto if sizeof case char extern else default short static while long register do unsigned typedef for float switch double break struct continue union goto enum return void

4 2.2. Les constantes Elles servent à représenter des entiers, des nombres réels (appelés encore flottants), des caractères, des chaînes de caractères ou des expressions de constantes. Un entier peut être représenté par trois systèmes de notation. La notation décimale est la plus employée, exemples: 12, 25, 56. Dans la notation octale, chaque nombre doit être précédé par le chiffre 0 ceci afin de permettre une différenciation avec la notation décimale. Les chiffres 12, 25 et 56 s'écrivent en octal : 014, 031, 070. Dans la notation hexadécimale, chaque nombre doit être précédé par les caractères juxtaposés "0X" (chiffre 0 et caractère X). Les chiffres hexadécimaux 10 à 15 sont codés à l'aide des lettres 'a', 'b,' 'c', 'd', 'e', et 'f' (indifféremment en minuscule ou en majuscule). Les chiffres 12, 25 et 56 s'écrivent en hexadécimal : 0XCc, 0X1A, 0X38. Un nombre réel comporte une partie entière suivie d'un point et d'une partie fractionnaire, éventuellement suivies d'un caractère "e" ou "E" et d'un entier exprimant le facteur d'échelle en puissance de 10. Exemples : , 0.314e+1. Un caractère s'exprime simplement à l'aide de deux quottes simples. Exemples: 'a', 'b', 'Z', ' '. Certains caractères non imprimables s'écrivent à l'aide d'une notation spéciale introduite par le caractère "\" appelé "backslash" ligne suivante \n simple quote \' tabulation \t octet binaire ddd \ddd backspace \b NUL \0 saut de page \f BIP \ Une chaîne de caractères est constituée d'une séquence de caractères délimitée par des doubles quottes. Exemple : "suite de caractères". Une chaîne de caractères se termine implicitement par le caractère nul \0. Une expression constante est composée de constantes reliées entre elles par des opérateurs. Exemples : * 75, 1<< Les identificateurs Ils servent à référencer des constantes symboliques, des variables ou des fonctions. Un identificateur est constitué d'une séquence de lettres et de chiffres (attention, les minuscules et majuscules ne sont pas identiques). Le premier caractère d'un identificateur doit être obligatoirement une lettre, ce qui permet de le différencier d'une constante. En plus des caractères alphabétiques, sont autorisés certains caractères comme le caractère "_" appelé "underscore". Les mots réservés ne peuvent être utilisés comme identificateurs. 4

5 2.4. Les opérateurs Ils sont représentés par des caractères spéciaux ou par un spécificateur de type mis entre parenthèses. Seul l'opérateur sizeof est représenté par le mot réservé "sizeof". Il existe trois classes d'opérateurs. Les opérateurs unaires agissent sur un identificateur, une constante ou une expression. Les opérateurs binaires relient deux expressions. Il n'y a qu'un seul opérateur ternaire mettant en relation trois expressions unaire binaire ternaire == =? : * +!= += & - > -=! * >= *= ++ / < /= -- % <= %= (type) = sizeof & && &= ^ ^= >> >>= << <<=. -> Les opérateurs arithmétiques permettent les opérations arithmétiques classiques: addition (+), soustraction (-), multiplication (*), division (/) et modulo ou reste de la division (%). Lors de l'évaluation d'une expression arithmétique, des règles de priorité des opérateurs, appelées précédences, existent. Les opérations avec les opérateurs les plus prioritaires sont effectuées en premier. Lorsque les opérateurs ont même précédence, l'expression est évaluée de gauche à droite. Ainsi les opérateurs *, / et % ont la même précédence et cette précédence est supérieure à celle des opérateurs + et -. Exemples : a + b * c est équivalent à a + (b * c) d * e % f est équivalent à (d * e) % f L'utilisation des parenthèses permet de forcer l'évaluation de certaines opérations avant les autres. Les opérateurs de manipulation de bits sont le ET logique (&), le OU logique inclusif ( ), le OU logique exclusif (^), le complément à 1 (~), le décalage vers la gauche (<<) et le décalage vers la droite (>>). 5

6 L'opérateur d'affectation = permet de ranger une valeur dans une variable. La partie droite de cet opérateur est un identificateur de variable. La partie gauche est soit une constante, soit une variable, soit une expression arithmétique de constantes et de variables, soit une fonction. L'évaluation de la partie gauche donne un résultat qui sera rangé dans la variable désignée par la partie droite. Exemples : compte = 0; c = getchar(); res = (j >> 5) & 0377; image[ j ][ i ]=255; En langage C, une affectation est une expression à part entière. Elle donne un résultat et peut être donc à son tour affectée, c'est à dire apparaître à gauche du signe d'affectation =. Exemple : i = j = k = 0; se lit i = (j = (k = 0); et est équivalent à k=0; j=0; i=0; De même, une affectation peut se trouver dans une expression : car_majuscule = 05 & (car = getchar() ) A des fins de simplification d'écriture, l'opérateur d'affectation peut être précédé d'un opérateur arithmétique ou de manipulation de bits. Exemples : somme += n; est équivalent à somme = somme + n; produit *= n; est équivalent à produit = produit * n; Les opérateurs d'incrémentation et de décrémentation (++ et --) permettent respectivement d'ajouter et de retrancher la valeur unité à une variable. Exemples : compte++; est équivalent à compte = compte + 1; compte--; est équivalent à compte = compte - 1; Les opérateurs relationnels (==,!=, >, >=, <, <=) mettent en relation deux expressions qui sont comparées. Une expression relationnelle donne un résultat de type entier égal à 1 si l'expression est vraie et égal à 0 sinon. Une expression relationnelle peut être utilisée à gauche de l'opérateur d'affectation ou bien dans une structure de contrôle réalisant un test (if, for, while, etc). La précédence des opérateurs relationnels est plus faible que celle des opérateurs arithmétiques. Les opérateurs logiques sont la négation unaire (!), le ET logique (&&) et le OU logique ( ). Exemple : (! expression ) est équivalent à (expression == 0) 6

7 L'opérateur conditionnel est composé de 2 symboles? (alors) et : (sinon) et de 3 expressions. Exemple : (expression_1)? expression_2 : expression_3 doit se lire si (expression_1) alors expression_2 sinon expression_3 Le résultat de l'opération ternaire conditionnelle est une expression à part entière. Exemple : max = (n > max)? n : max; Les opérateurs d'accès aux objets et l'opérateur sizeof seront explicités, plus loin, avec la notion de variable informatique. 2.5 Les délimiteurs et les commentaires Les délimiteurs sont des caractères spéciaux utilisés par le compilateur pour reconnaître les différentes unités syntaxiques du langage. Le caractère ";" sert à préciser la fin d'une déclaration de variables ou la fin d'une instruction. Le caractère "," permet de séparer 2 éléments d'une liste. Les caractères "(" et ")" sont utilisés pour encadrer une liste d'arguments ou de paramètres. Les caractères "[" et "]" pour encadrer la dimension ou l'indice d'un tableau. Les caractères "{" et "" pour encadrer un bloc d'instructions ou une liste de valeurs d'initialisation. Exemples : Cf. programme erato. Les commentaires servent à ajouter des explications dans le code source d'un programme. Ils sont très utiles pour la relecture ou la compréhension du programme que ce soit par une tierce personne ou par soi-même quelques semaines ou quelques mois après sa création. Un commentaire est une suite de caractères comprise entre les symboles "/*" et "*/". Le premier symbole introduit le début d'un commentaire. Le second indique la fin du commentaire. Un commentaire peut être constitué de plusieurs lignes. Exemples : /* ceci est un "commentaire" sur une ligne */ /* * ceci est un commentaire esthétique sur plusieurs lignes * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ Attention, on ne peut imbriquer les commentaires les uns dans les autres. 7

8 3. Les variables, types et classes Les objets de base du langage C sont les constantes et les variables (informatiques). Une variable est définie par trois attributs: - son nom ou identificateur - son type - sa classe d'allocation en mémoire Quatre classes d'allocation existent. Elles sont introduites par les mots clés extern, static, auto et register. La classe externe permet de faire le lien avec une variable globale définie dans un autre fichier programme. La classe statique assure la résidence permanente d'une variable en mémoire centrale du début à la fin de l'exécution du programme. La classe automatique permet d'allouer dynamiquement un espace mémoire pour les variables locales temporaires d'une fonction. Par défaut, lorsque rien n'est précisé, les variables sont allouées automatiquement. La classe registre permet de placer une variable dans un registre machine. Exemples : extern int commun; static int variance; int compte; (équivalent à auto int compte;) registre k; Les variables peuvent avoir des tailles différentes selon le type d'objet auquel on fait référence : caractère, entier, flottant, pointeur, tableau, structure, etc. Exemples de définition de variables : int compte; char tab[ 10 ]; Il est possible lors de la déclaration de donner une valeur initiale aux variables. Exemples : int a = 0: char car = 'a'; float res = 2.28; static char message[] = "hello"; long megabyte = 1024*1024; Lorsqu'une variable est de type externe ou statique, l'initialisation est faite une seule fois avant le démarrage du programme. Lorsqu'une variable d'une fonction est de type automatique ou registre, l'initialisation est faite à chaque exécution de cette fonction. L'opérateur sizeof retourne la taille en octets d'une variable informatique. Exemple : sizeof (tab) donne 10 octets (10 caractères). 8

9 3.1. Règles de conversion Le langage C permet de former des expressions mettant en jeu des variables de différents types. Certaines règles implicites de conversion sont utilisées par le compilateur dans l'évaluation d'une expression arithmétique. Les types char, short et int peuvent être mélangés. Les variables de types char et short sont converties implicitement en type int. Si un des opérandes est de type long, l'autre est converti en type long et le résultat est de type long. De même pour les types float et double, si un des opérandes est de type double, l'autre est converti en type double et le résultat est de type double. Il est néanmoins possible de forcer de manière explicite une conversion par l'opérateur (type) appelé cast en anglais. Exemples : double sin(), cos(); /* fonctions à arguments de type double */ main() { int jj, kk; double zz; jj = 1; zz = sin( (double) jj); kk = (int) sin( zz ); 3.2. Opérateurs d'accès aux objets Dans l'affectation a = b le contenu de la variable b est rangé dans la variable a. L'opérateur unaire adresse (&) permet de récupérer l'adresse d'une variable. Le résultat de l'opérateur adresse est de type pointeur. Exemple : adr_obj = &obj; L'opérateur inverse de l'opérateur adresse est l'opérateur indirection (*) appelé encore opérateur "contenu de". L'opérateur unaire * permet de récupérer le contenu d'un objet pointé par une variable de type pointeur. Exemple : adr_obj1 = &objet1; objet2 = *objet1; est equivalent à objet2 = objet1; /* = *&objet1 = contenu de l'adresse de objet1 */ Comment déclarer et utiliser une variable de type pointeur sera expliqué avec les tableaux et les structures. Ne pas confondre l'opérateur unaire adresse & avec l'opérateur binaire ET logique &, ni l'opérateur unaire indirection * avec l'opérateur binaire arithmétique *. 9

10 4. Les instructions et les directives 4.1. Les entrées / sorties On appelle E/S les opérations de base permettant de lire et d'écrire des données dans un programme. Lire des données signifie importer des données à l'intérieur d'un programme dans des variables. Ecrire des données signifie exporter des données. En Langage C, la lecture et l'écriture de données s'effectuent à l'aide d'outils standard. La fonction getchar() permet de lire un caractère depuis le fichier standard d'entrée "stdin" (le clavier par défaut). Elle retourne le caractère lu, exemple : carac = getchar(c); La fonction putchar(c) avec c de type caractère permet d'écrire un caractère vers la sortie standard "stdout". Exemples : putchar("a"); putchar(c); L'utilisation des fonctions getchar et putchar nécessite l'inclusion du fichier "stdio.h" dans le fichier source. Ceci se fait à l'aide de d'une directive #include. Une directive est destinée au compilateur pour la génération du code exécutable. Une directive n'est pas une instruction et ne sera pas exécutée à l'exécution du programme. Exemple d'utilisation de getchar et putchar : /* recopie de fichier standard d'entrée */ #inlude <stdio.h> copyf() { char c; while (c = getchar())!= EOF) putchar(c); La fonction printf("format", arg1, arg2,..., argn) accepte un nombre variable d'arguments. Elle permet l'affichage selon un format donné. Le premier argument précise ce format. Il s'agit d'une chaîne de caractères contenant : du texte à imprimer tel quel et des spécificateurs de format à appliquer sur les autres arguments. Les spécificateurs commencent par la lettre % et sont suivis d'un caractère de format d'impression. Exemples : printf("bonjour tout le monde\n"); printf("15 en notation décimale %d \n", 15); printf("15 en notation octale %o \n", 15); printf("15 en notation hexadécimale %x \n", 15); printf("15 en notation flottante %f \n", 15); printf("caractère imprimable %c \n", 'a'); printf("chaîne de caractères %s \n", "une chaîne"); 10

11 Des caractères spéciaux peuvent être utilisés optionnellement afin de préciser la longueur d'impression, le cadrage à gauche ou à droite dans la zone d'impression et dans le cas des nombres flottants la position du séparateur "." des parties entière et fractionnaire. Exemples : %8d imprime sur 8 chiffres avec un cadrage à droite %-25s imprime une chaîne cadrée à gauche (-) sur 25 caractères %8.2f imprime un réel sur 8 chiffres avec 2 décimales La fonction scanf("format", arg1, arg2,..., argn) permet de lire sur le fichier d'entrée standard. La liste des arguments après le format est une liste d'adresses. Exemple : int nombre; printf("donner deux nombres décimaux :"); scanf("%d", &nombre1, &nombre2); 4.2. Exécution conditionnelle if (expression) instruction ; if (expression_1) { instruction_1 ; else if (expression_2) { instruction_2 ; else { instruction_3 ; switch (expression) { case cste_1 : instruction_1 ; break ; case cste_2 : instruction_2 ; break ; default : instruction_d ; 11

12 4.3. Boucles et itérations while (expression) { instruction_1 ; instruction_2 ; do instruction ; while (expression) for (expr_1 ; expr_2 ; expr_3) { instruction ; est équivalent à expr_1 ; while (expr_2) { instruction ; expr_3 ; Exemples : nombre = 1; while ( nombre <= 10 ) { carre = nombre*nombre; printf("nombre = %2d, carré = %3d\n", nombre, carre); nombre++; for (nombre = 1 ; nombre <= 10 ; nombre++) { carre = nombre*nombre; printf("nombre = %2d, carré = %3d\n", nombre, carre); 12

13 4.4. Instructions associées aux boucles break, continue, goto 4.5. Fonctions Une fonction est un objet externe. Il faut distinguer la déclaration de la fonction et l'appel de la fonction (présence du caractère fin d'instruction ";"). Exemple : void int2stringbin(i, s) int i, char s[]; /* types des arguments */ { int x=0, n; n = (sizeof(i) * 8) -1; /* nombre de décalages */ do { s[ x++ ] = ( (i < 0)? '1' : '0'); i <<= 1; /* decalage vers la gauche d'un bit */ while (n--); s[ x ] = '\0'; /* fin de chaîne = NUL */ La déclaration précédente définit une fonction effectuant la conversion d'un entier en chiffres binaires (suite de caractères 0 et 1). Cette fonction possède 2 arguments : le premier est un entier donné en entrée, le second est le pointeur de la chaîne de caractères recevant le résultat. Le mot clé void (ou l'absence de type) indique que la fonction ne pourra être utilisée comme une expression apparaissant à droite du signe d'affectation. L'instruction suivante permet d'appeler la fonction pour lui demander de convertir le chiffre 252 et de ranger le résultat dans la variable st. int2stringbin(252, st); La plupart du temps les fonctions sont utilisées comme des expressions retournant un résultat. Lors de la déclaration, le type du résultat retourné apparaît devant le nom de la fonction et le mot clé return permet d'indiquer la valeur retournée. Exemple : float puissance_5( r1 ) float r; { float r2; r2 = r1 * r1; return r2 * r2 * r1; 13

14 Attention en langage C, les paramètres (arguments) sont passés en valeur. Les arguments de sortie doivent être des pointeurs d'objets. void swap( x, y ) /* appel : swap( &a, &b) */ int *x, *y; { int tmp; tmp=*x; *x=*y; *y=tmp; 4.5. Les directives Les directives pour le compilateur sont introduites par des mots clés commençant par le caractère "#". La directive #include <fichier.h> demande au compilateur de lire et de prendre en compte les lignes d'un fichier situé dans un répertoire du système. La directive #include "fichier.h" demande de prendre en compte un fichier situé dans le répertoire courant (utilisateur). La directive #define SYMBOLE valeur permet de définir un symbole. Lorsque ce symbole apparaîtra ensuite dans le fichier source, il sera automatiquement substitué par sa valeur. La valeur d'un symbole peut être éventuellement réduite à une chaîne vide : le symbole existe mais n'a pas de valeur. Les directives #ifdef SYMBOLE et #ifndef SYMBOLE permettent respectivement de prendre en compte ou non les lignes suivantes situées avant la directive #endif. Exemple : #ifdef SUN message = "nous sommes sur SUN" /* si le symbole SUN existe */ #else message = "nous sommes ailleurs" #endif 14

15 5. Tableaux, pointeurs et structures 5.1. Les tableaux Un tableau est une structure de données composée d'éléments consécutifs en nombre limité. Tous les éléments d'un tableau sont du même type. Un tableau est caractérisé par son nom, son type, sa dimension et sa classe d'allocation. Exemples : auto int TabInt[ 1000 ]; /* tableau de 1000 entiers */ static char TabChr[ 2000 ]; /* tableau de 2000 caractères */ Un tableau n'est pas une variable mais est considérée comme une succession de variables. TabInt[ 0 ] TabInt[ 1 ] TabInt[ k ] est le 1er élément du tableau TabInt est le 2ème est l k_ième L'identificateur de tableau TabInt n'est pas une variable, il n'est pas possible d'y appliquer l'opérateur adresse (&). Il est possible par contre d'obtenir l'adresse de chacun des éléments du tableau : &TabInt[ 0 ] est l'adresse du premier élément Notons que lors de la déclaration [ 1000 ] indique le nombre d'éléments du tableau, alors qu'à l'utilisation [ k ] indique la position de l'élément d'indice k dans le tableau (0 <= k < 1000). Il est possible d'initialiser un tableau avec des valeurs lors de sa déclaration uniquement si sa classe d'allocation est statique ou externe. Dans ce cas, la dimension du tableau peut ne pas être spécifiée. Si elle l'est, elle doit être égale ou supérieure au nombre d'éléments de la liste d'initialisation. Exemple : static char TabChr[ 17 ] = " ABCDEF" static int TabN[ 10 ] = { 4, 3, 2, 1 static long TabL[ ] = { 2, 4, 8, 16, 32, 64 Les 6 derniers éléments du tableau TabN sont nuls et le tableau TabL possède 6 éléments. Dans une déclaration, l'opérateur [] signifie "tableau de". Il est possible de définir des tableaux à plusieurs dimensions. Ainsi l'exemple suivant permet de déclarer un tableau de 16 tableaux de 256 éléments entiers : int image[ 16 ][ 256 ]; La notation image[ 16 ] n'est pas une variable mais représente un tableau de 256 éléments. On dit qu'elle est de type tableau. 15

16 5.2. Les pointeurs Un pointeur est une variable qui contient l'adresse d'une autre variable. Pour déclarer une variable de type pointeur, on utilise l'opérateur (*) qu'il faut faire précéder par le type de la variable "pointée". Exemple : int *ptri; la variable ptri est un pointeur d'entier char *ptrc; la variable ptrc est un pointeur de caractères Un pointeur est utilisé pour référencer une zone de mémoire. Exemple : int k; int *ptr; int tab[ 100 ]; for ( k=0; k < 100; k++) tab[ k ]=0; est équivalent à for (ptr = &tab[ 0 ]; ptr <= &tab[ 99 ]; ptr++) *ptr=0; ou encore à for (ptr = tab; ptr < tab+100; ptr++) *ptr=0; On peut remarquer que l'identificateur de type tableau est en fait un pointeur vers le premier élément d'un tableau : char ptrc[ ]; est équivalent à char *ptrc; 5.3. Les structures Une structure est un agrégat de plusieurs objets de différents types. Exemple ci-après, où on définit à l'aide du mot clé struct le type d'une structure qui a pour nom "TypIndividu" : struct TypIndividu { char nom[ 16 ]; int age; ; Les variables de types TypIndividu se déclarent alors de la manière suivantes : struct TypIndividu MisterX; Il est aussi possible d'écrire directement : struct TypIndividu { 16

17 MisterX ; char nom[ 16 ]; int age; ou même encore sans donner de nom au type de la structure : struct { char nom[ 16 ]; int age; MisterX ; L'accès aux différents membres d'une structure s'effectue en utilisant les opérateurs "." et "->". L'opérateur "." permet de désigner un membre d'une structure en reliant l'identificateur de la variable "structure" au nom de ce champ. L'opérateur "->" permet de relier l'identificateur d'un pointeur de structure à un nom de champ. Exemples : struct TypIndividu MisterX, *PtrX; PtrX = &MisterX; MisterX.nom="Pierrot" est équivalent à PtrX->nom="Pierrot"; ou encore à (*PtrX).nom="Pierrot"; 17

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

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

Programmation en langage C

Programmation en langage C Programmation en langage C Anne CANTEAUT INRIA - projet CODES B.P. 105 78153 Le Chesnay Cedex Anne.Canteaut@inria.fr http://www-rocq.inria.fr/codes/anne.canteaut/cours C 2 Table des matières 3 Table des

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

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

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Table des matières 1 Les bases 3 2 Variables et constantes 5 3 Quelques fonctions indispensables

Plus en détail

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

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

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

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

SUPPORT DE COURS. Langage C

SUPPORT DE COURS. Langage C Dpt Informatique 2010-2011 SUPPORT DE COURS Langage C Semestre 1 par : «CaDePe» Marie-Françoise Canut Marianne de Michiel André Péninou Table des Matières 1 Généralités...8 1.1 Introduction aux langages

Plus en détail

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

Langage C. Patrick Corde. Patrick.Corde@idris.fr. 22 juin 2015. Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289 Langage C Patrick Corde Patrick.Corde@idris.fr 22 juin 2015 Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289 Table des matières I 1 Présentation du langage C Historique Intérêts

Plus en détail

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

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

Rappels Entrées -Sorties

Rappels Entrées -Sorties Fonctions printf et scanf Syntaxe: écriture, organisation Comportement Données hétérogènes? Gestion des erreurs des utilisateurs 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk

Plus en détail

INF 321 : mémento de la syntaxe de Java

INF 321 : mémento de la syntaxe de Java INF 321 : mémento de la syntaxe de Java Table des matières 1 La structure générale d un programme 3 2 Les composants élémentaires de Java 3 2.1 Les identificateurs.................................. 3 2.2

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Introduction au langage C

Introduction au langage C Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

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)

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) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

Claude Delannoy. 3 e édition C++

Claude Delannoy. 3 e édition C++ Claude Delannoy 3 e édition Exercices Exercices C++ en en langage langage delc++ titre 4/07/07 15:19 Page 2 Exercices en langage C++ AUX EDITIONS EYROLLES Du même auteur C. Delannoy. Apprendre le C++.

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

Plus en détail

INITIATION A LA PROGRAMMATION

INITIATION A LA PROGRAMMATION 2004-2005 Université Paris Dauphine IUP Génie Mathématique et Informatique INITIATION A LA PROGRAMMATION PROCEDURALE, A L'ALGORITHMIQUE ET AUX STRUCTURES DE DONNEES PAR LE LANGAGE C Maude Manouvrier La

Plus en détail

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

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

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

Programmation C. J.-F. Lalande. 15 novembre 2012 Programmation C J.-F. Lalande novembre 0 Ce cours est mis à disposition par Jean-François Lalande selon les termes de la licence Creative Commons Attribution - Pas d Utilisation Commerciale - Partage à

Plus en détail

Conventions d écriture et outils de mise au point

Conventions d écriture et outils de mise au point Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette

Plus en détail

Cours de Programmation Impérative: Zones de mémoires et pointeurs

Cours de Programmation Impérative: Zones de mémoires et pointeurs Cours de Programmation Impérative: Zones de mémoires et pointeurs Julien David A101 - david@lipn.univ-paris13.fr Julien David (A101 - david@lipn.univ-paris13.fr) 1 / 1 Z`o n`e s `d`e m`é m`o i r`e Julien

Plus en détail

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

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

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

Anis ASSÈS Mejdi BLAGHGI Mohamed Hédi ElHajjej Mohamed Salah Karouia Ministère de l Enseignement Supérieur, de la Recherche Scientifique et de la Technologie Direction Générale des Etudes Technologiques Institut Supérieur des Etudes Technologiques de Djerba SUPPORT DE COURS

Plus en détail

Introduction au Langage de Programmation C

Introduction au Langage de Programmation C Faculté Polytechnique de Mons Service d'informatique Introduction au Langage de Programmation C Mohammed Benjelloun 1 ère Candidature Année académique 2003-2004 Avant-propos Ces notes permettent de se

Plus en détail

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

UE C avancé cours 1: introduction et révisions Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple

Plus en détail

Programmation en langage C Eléments de syntaxe

Programmation en langage C Eléments de syntaxe Programmation en langage C Eléments de syntaxe Université Paul Sabatier IUP Systèmes Intelligents L2 Module Informatique de base 2 Initiation à la programmation en langage C Isabelle Ferrané SOMMAIRE I-

Plus en détail

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE UNIVERSITE M HAMED BOGARA DE BOUMERDES

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE UNIVERSITE M HAMED BOGARA DE BOUMERDES REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE UNIVERSITE M HAMED BOGARA DE BOUMERDES FACULTE DES SCIENCES - DEPARTEMENT PHYSIQUE

Plus en détail

Le langage C. Introduction, guide de reference

Le langage C. Introduction, guide de reference Le langage C Introduction, guide de reference Ce document est une présentation du langage de programmation C, de sa syntaxe et de ses spécificités. Il est destiné essentiellement à servir de mémo-guide

Plus en détail

Cours d Algorithmique et de Langage C 2005 - v 3.0

Cours d Algorithmique et de Langage C 2005 - v 3.0 Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

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

Programmation en C. École Nationale Supérieure de Techniques Avancées. Pierre-Alain Fouque et David Pointcheval École Nationale Supérieure de Techniques Avancées Programmation en C Pierre-Alain Fouque et David Pointcheval E-mail : Pierre-Alain.Fouque@ens.fr Web : http://www.di.ens.fr/~fouque/ Table des matières

Plus en détail

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

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel) Algorithmes et Programmes Introduction à l informatiquel! Vie d'un programme! Algorithme! Programmation : le langage! Exécution et test des programmes Chapitre : Algorithmes et Programmes 2 Cycle de vie

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

V- Manipulations de nombres en binaire

V- Manipulations de nombres en binaire 1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,

Plus en détail

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

Introduction à l algorithmique et à la programmation M1102 CM n 3 Introduction à l algorithmique et à la programmation M1102 CM n 3 DUT Informatique 1 re année Eric REMY eric.remy@univ-amu.fr IUT d Aix-Marseille, site d Arles Version du 2 octobre 2013 E. Remy (IUT d

Plus en détail

Langage Éric Guérin 5 octobre 2010

Langage Éric Guérin 5 octobre 2010 Langage Éric Guérin 5 octobre 2010 Langage C TABLE DES MATIÈRES Table des matières 1 Introduction 7 1.1 Historique........................................... 7 1.2 Architecture matérielle....................................

Plus en détail

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

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan Cours de C++ François Laroussinie Dept. d Informatique, ENS de Cachan 2 novembre 2005 Première partie I Introduction Introduction Introduction Algorithme et programmation Algorithme: méthode pour résoudre

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Les chaînes de caractères

Les chaînes de caractères Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

COURS DE LANGAGE C. DIAO Oumar. oumar.diao@univ-rennes1.fr. Université de Rennes 1. Master 1

COURS DE LANGAGE C. DIAO Oumar. oumar.diao@univ-rennes1.fr. Université de Rennes 1. Master 1 COURS DE LANGAGE C DIAO Oumar oumar.diao@univ-rennes1.fr Université de Rennes 1 Master 1 théorie de l'information & cryptographie analyse numérique & modélisation Année universitaire 20112012 1 Table des

Plus en détail

Programmation Structurée en Langage C

Programmation Structurée en Langage C École Centrale Marseille Programmation Structurée en Langage C Stéphane Derrode Mathématique et Informatique Révision 2.5, 2006. Table des matières 1 En guise d'introduction... 7 1.1 Quelques repères

Plus en détail

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

Méthodes de programmation systèmes UE n NSY103. Notes de cours. Nombre d'heures : 55h (~18 + 1 cours de 3 heures) Méthodes de programmation systèmes UE n NSY103 Notes de cours Code de l UE : NSY103 Titre de la formation : Méthodes de programmation systèmes Ouvert : Ouvert Type de diplôme : Unité de valeur CNAM. Nombre

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

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

Analyse de sécurité de logiciels système par typage statique Contexte Modélisation Expérimentation Conclusion Analyse de sécurité de logiciels système par typage statique Application au noyau Linux Étienne Millon UPMC/LIP6 Airbus Group Innovations Sous la direction

Plus en détail

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece

Plus en détail

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

Le Langage C Licence Professionnelle Qualité Logiciel Pr. Mouad BEN MAMOUN ben_mamoun@fsr.ac.ma Année universitaire 2011/2012 Le Langage C Licence Professionnelle Qualité Logiciel Pr. Mouad BEN MAMOUN ben_mamoun@fsr.ac.ma Année universitaire 2011/2012 2011/2012 Pr. Ben Mamoun 1 Plan du cours (1) 1. Introduction 2. Types, opérateurs

Plus en détail

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

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 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 Activité Codage et Réalisation Tâches T3.3, T3.4 et T3.5 Temps

Plus en détail

Support de Cours de Langage C. Christian Bac

Support de Cours de Langage C. Christian Bac Support de Cours de Langage C Christian Bac 15 février 2013 ii Table des matières Avant-propos xi 1 Historique et présentation 1 1.1 Historique........................................... 1 1.2 Présentation

Plus en détail

PROJET ALGORITHMIQUE ET PROGRAMMATION II

PROJET ALGORITHMIQUE ET PROGRAMMATION II PROJET 1 ALGORITHMIQUE ET PROGRAMMATION II CONTENU DU RAPPORT A RENDRE : o Fiche signalétique du binôme o Listing des différents fichiers sources o CD sources o Il sera tenu compte de la présentation du

Plus en détail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

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

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS CCS Sommaire Généralités sur le langage. 2 Structure d un programme en C.. 3 Les constantes et équivalences.. 4 Les variables...

Plus en détail

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

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

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

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs Brefs rappels sur la pile et le tas (Stack / Heap) et les pointeurs (exemples en C) v1.11 - Olivier Carles 1 Pile et Tas Mémoire allouée de manière statique Mémoire Allouée Dynamiquement variables locales

Plus en détail

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

Cours de C. Petits secrets du C & programmation avancée. Sébastien Paumier Cours de C Petits secrets du C & programmation avancée Sébastien Paumier paumier@univ-mlv.fr Illustrations provenant du site http://tux.crystalxp.net/ 1 Affectations étendues a+=expression a=a+expression

Plus en détail

INF 104 (SELC) 2012-2013 Introduction au langage C

INF 104 (SELC) 2012-2013 Introduction au langage C INF 104 (SELC) 2012-2013 Introduction au langage C Plan Première partie C après Java Structure d un programme Préprocesseur Variables Types de base Types composés Pointeurs(1) Instructions Deuxième partie

Plus en détail

Généralités sur le Langage Java et éléments syntaxiques.

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

Plus en détail

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

Plus en détail

INF111. Initiation à la programmation impérative en C http://ama.liglab.fr/ amini/cours/l1/inf111/ Massih-Reza Amini

INF111. Initiation à la programmation impérative en C http://ama.liglab.fr/ amini/cours/l1/inf111/ Massih-Reza Amini Initiation à la programmation impérative en C http://ama.liglab.fr/ amini/cours/l1// Massih-Reza Amini Université Joseph Fourier Laboratoire d Informatique de Grenoble 2/52 Introduction Structures de contrôle

Plus en détail

Chapitre 1 : La gestion dynamique de la mémoire

Chapitre 1 : La gestion dynamique de la mémoire Chapitre 1 : La gestion dynamique de la mémoire En langage C un programme comporte trois types de données : Statiques; Automatiques ; Dynamiques. Les données statiques occupent un emplacement parfaitement

Plus en détail

Programmation système I Les entrées/sorties

Programmation système I Les entrées/sorties Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les

Plus en détail

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

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

I. Introduction aux fonctions : les fonctions standards

I. Introduction aux fonctions : les fonctions standards Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

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

Cours de programmation avancée. Le langage C. Université du Luxembourg 2005 2006 Université du Luxembourg 2005 2006 Cours de programmation avancée. Le langage C Sébastien Varrette Version : 0.4 Nicolas Bernard 2 Table des matières

Plus en détail

Programmation C++ (débutant)/instructions for, while et do...while

Programmation C++ (débutant)/instructions for, while et do...while Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de

Plus en détail

Informatique Générale

Informatique Générale Informatique Générale Guillaume Hutzler Laboratoire IBISC (Informatique Biologie Intégrative et Systèmes Complexes) guillaume.hutzler@ibisc.univ-evry.fr Cours Dokeos 625 http://www.ens.univ-evry.fr/modx/dokeos.html

Plus en détail

Cours Informatique Master STEP

Cours Informatique Master STEP Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions

Plus en détail

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

Plus en détail

Programmation Classique en langage C

Programmation Classique en langage C DI GALLO Frédéric Programmation Classique en langage C Cours du Cycle d Approfondissement CNAM ANGOULEME 2000-2001 DI GALLO Frédéric Page 1 01/04/01 PROGRAMMATION CLASSIQUE : LANGAGE C DI GALLO Frédéric

Plus en détail

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

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation : Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de

Plus en détail

Programme Compte bancaire (code)

Programme Compte bancaire (code) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; Programme Compte bancaire (code) namespace compte_bancaire /// Classe Program public

Plus en détail

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5 UNIVERISTE MOHAMMED PREMIER Faculté des Sciences d Oujda Oujda - Maroc Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5 Pr. El Mostafa DAOUDI Département de Mathématiques

Plus en détail

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET I. INTRODUCTION 1.1. HISTORIQUE 1991: Concepts Java pour Sun -conception d'un langage pour des appareils électroniques(code embarqué) -syntaxe proche du C++

Plus en détail

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année 2003-2004 Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES Maude Manouvrier La reproduction de ce document par

Plus en détail

Notions fondamentales du langage C# Version 1.0

Notions fondamentales du langage C# Version 1.0 Notions fondamentales du langage C# Version 1.0 Z 2 [Notions fondamentales du langage Csharp] [Date : 25/03/09] Sommaire 1 Tout ce qu il faut savoir pour bien commencer... 3 1.1 Qu est ce qu un langage

Plus en détail

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

Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire et Damien Simon Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire et Damien Simon 13 janvier 2015 2 Table des matières Organisation générale du cours 7 1 Notions générales d algorithmique et de programmation

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

Codage d information. Codage d information : -Définition-

Codage d information. Codage d information : -Définition- Introduction Plan Systèmes de numération et Représentation des nombres Systèmes de numération Système de numération décimale Représentation dans une base b Représentation binaire, Octale et Hexadécimale

Plus en détail

COURS D'INFORMATIQUE: LANGAGE C NOTES DE COURS

COURS D'INFORMATIQUE: LANGAGE C NOTES DE COURS MASTER PROFESSIONEL LASERS, MATERIAUX, MILIEUX BIOLOGIQUES COURS D'INFORMATIQUE: LANGAGE C NOTES DE COURS Christine ANDRAUD 2007/08 2 PLAN DU COURS: I. Introduction II. III. IV. Notions de bases Types

Plus en détail

Le prototype de la fonction main()

Le prototype de la fonction main() Le prototype de la fonction main() 1. Introduction...1 2. Paramètres et type de retour de la fonction main()...1 3. Exemple 1...2 4. La fonction exit() du C...2 5. Détecter le code de retour d un programme

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

Plus en détail

ALGORITHMIQUE ET PROGRAMMATION En C

ALGORITHMIQUE ET PROGRAMMATION En C Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2

Plus en détail

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers. I Présentation : Dans le chapitre 1, nous avons vu comment utiliser les appels-systèmes de bas niveau pour créer et accéder à des fichiers sur le disque. Nous avons notamment mis en évidence leur dépouillement

Plus en détail

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

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing 3/4/27 Programmation Avancée Multimédia Multithreading Benoît Piranda Équipe SISAR Université de Marne La Vallée Besoin Programmes à traitements simultanés Réseau Réseau Afficher une animation en temps

Plus en détail

Cours d Informatique

Cours d Informatique Cours d Informatique 1ère année SM/SMI 2007/2008, Info 2 Département de Mathématiques et d Informatique, Université Mohammed V elbenani@hotmail.com sayah@fsr.ac.ma 2007/2008 Info2, 1ère année SM/SMI 1

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail

Algorithmique, Structures de données et langage C

Algorithmique, Structures de données et langage C UNIVERSITE PAUL SABATIER TOULOUSE III Algorithmique, Structures de données et langage C L3 IUP AISEM/ICM Janvier 2005 J.M. ENJALBERT Chapitre 1 Rappels et compléments de C 1.1 Structures Une structure

Plus en détail

Conception de circuits numériques et architecture des ordinateurs

Conception de circuits numériques et architecture des ordinateurs Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique

Plus en détail

Informatique / Programmation

Informatique / Programmation Java / Introduction Caractéristiques principales Informatique / Programmation Orientation Objet (C++) -- Sécurité intégrée Portabilité Programmation orientée objet avec Java 01 : Introduction / Éléments

Plus en détail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

Plus en détail

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail