Chapitre 3 : Les piles et les files

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

Download "Chapitre 3 : Les piles et les files"

Transcription

1 Chapitre 3 : et les files Université Mohamed 1er Faculté des sciences Oujda FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 1 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 2 Définition : Une pile (stack) est une structure de données linéaire dans laquelle les opérations d insertion et de suppression sont réalisées à une extrémité fixée de la liste, appelée «sommet de la pile». Dans une pile, le dernier élément entré (inséré) est le premier sorti (supprimé). Le terme «Last In, First Out» ou LIFO indique cette stratégie utilisée avec une pile. Insertion dans une pile : L opération «insérer» dans une pile est souvent appelée «empiler» (push). Suppression dans une pile : L opération «supprimer» dans une pile est souvent appelée «dépiler» (pop). Sommet de la pile : L opération «retourner sommet» dans une pile est souvent appelée «sommet» (top). FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 3 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 4 Applications des piles : Utilisées par les compilateurs pour vérifier le bon parenthésage. Utilisées pour évaluer une expression postfixée. Utilisées pour convertir une expression infixée en une expression postfixée/préfixée. Dans une procédure ou une fonction récursive, tous les arguments intermédiaires et toutes les valeurs de retour sont stockées dans une pile. Durant l appel d une fonction, les arguments et les adresses de retour sont empilées dans la pile et dépilées de cette pile après une instruction «return». Opération «empiler» : Pile vide Empiler 11 Empiler 22 Empiler 33 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 5 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 6 1

2 Opération «dépiler» : Pile initiale Dépiler Dépiler Dépiler Pile vide Représentation contiguë avec un tableau (exemple : une pile d entiers) : #define STACKSIZE 100 typedef struct StackType int stack[stacksize]; int stackpointer; // initialisé à 0 StackType; int isempty(stacktype P) return P.stackPointer == 0; FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 7 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 8 Représentation contiguë avec un tableau (suite): int isfull(stacktype P) return P.stackPointer == STACKSIZE - 1; void push(stacktype P, int x) if(isfull(p)) printf("error : the stack is full!!!"); P.stack[stackPointer++] = x; FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 9 Représentation contiguë avec un tableau (suite): void pop(stacktype P) if(isempty(p)) printf("error : the stack is empty!!!"); stackpointer--; void top(stacktype P) if(isempty(p)) printf("error : the stack is empty!!!"); return 0; return stack[stackpointer - 1]; FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 10 Représentation contiguë avec un tableau (suite): main( ) StackType P; push(p, 2); push(p, 3); push(p, 5); push(p, 7); printf("%d\n", top(p)); pop(p); printf("%d\n", top(p)); stack stackpointer stackpointer stackpointer stackpointer stackpointer Représentation non contiguë (exemple : une pile d entiers) : typedef struct Node int data; struct Node *next; Node; typedef Node *stack; FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 11 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 12 2

3 Représentation non contiguë (suite) : int isempty(stack P) return P == NULL; void push(stack *P, int x) Node *newnode = (Node*) malloc(sizeof(node)); newnode->data = x; newnode->next = *P; *P = newnode; FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 13 Représentation non contiguë (suite) : void pop(stack *P) if(isempty(*p)) printf("error : the stack is empty\n"); Node *temp = *P; *P = (*P)->next; free(temp); FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 14 Représentation non contiguë (suite) : int top(stack P) if(isempty(p)) printf("error : the stack is empty\n"); return 0; return P->data; Représentation non contiguë (suite) : main( ) stack P; push(&p, 2); push(&p, 3); push(&p, 5); push(&p, 7); printf("%d\n", top(p)); pop(&p); printf("%d\n", top(p)); FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 15 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 16 Définition : Une file (queue) est une structure de données linéaire dans laquelle l opération d insertion est réalisée à une extrémité de la liste (la queue), et l opération de suppression est réalisée à l autre extrémité de la liste (la tête). Dans une file, le premier élément entré (inséré) est le premier sorti (supprimé). Le terme «First In, First Out» ou FIFO indique cette stratégie utilisée avec une file. FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 17 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 18 3

4 Insertion dans une file : L opération «insérer» dans une file est souvent appelée «enfiler» (enqueue). Suppression dans une pile : L opération «supprimer» dans une file est souvent appelée «défiler» (dequeue). Considérons une file qui peut contenir au maximum 5 éléments. La queue est repérée par un pointeur appelé «Rear» (= en arrière). La tête est repérée par un pointeur appelé «Front» (= en avant). FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 19 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 20 Initialement, la file est vide : Maintenant, insérons 11 (en queue) : File vide F(Front) = 0 R(Rear) = 0 Front = 0 Rear = Rear + 1 = 1 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 21 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 22 Ensuite, insérons 22 à la file : Encore une fois, insérons l élément 33 à la file. Front = 0 Rear = Rear + 1 = 2 Front = 0 Rear = Rear + 1 = 3 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 23 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 24 4

5 Maintenant, retirons un élément de la file. L élément à retiré est l élément qui se trouve en tête de la file (Front). L état de la file sera alors : Retirons encore un élément de la file. L élément à retiré est l élément qui se trouve en tête de la file (l élément 22) : Front = Front + 1 = 1 Rear = 3 Front = Front + 1 = 2 Rear = 3 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 25 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 26 Maintenant, insérons les éléments 44 et 55 : Front = 2 Rear = 5 Maintenant, il est impossible d insérer un élément 66 même s il y a deux positions vacantes en tête de la file. Pour régler ce problème, on peut décaler les éléments de la file en tête (Front) de celle-ci pour créer des positions vacantes en queue de la file : les valeurs de Front et Rear doivent être ajustées correctement. L élément 66 peut maintenant être inséré en queue. FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 27 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 28 Représentation d une file par un tableau : # include <stdio.h> Front = 0 Rear = 4 # define SIZE 5 typedef struct File int contenu[size]; int tete, queue; /* Front et Rear */ File; FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 29 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 30 5

6 Opérations (sans ajustement des positions void initialiser(file* F) F->tete = F->queue = 0; int estvide(file F) return (F.queue== 0); Opérations (sans ajustement des positions int estpleine(file F) return (F.queue == SIZE); void enfiler(file* F, int x) if(estpleine(*f)) printf("\n\n Erreur : la file est vide!!!"); F->contenu[F->queue++] = x; FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 31 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 32 Opérations (sans ajustement des positions void defiler(file* F) if(estvide(*f)) printf("\n\n Erreur : la file est vide!!!"); F->tete++; Opérations (sans ajustement des positions void afficher(file F) if(!estvide(f)) int i; for(i = F.tete; i < F.queue; i++) printf("%d ", F.contenu[i]); puts(""); FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 33 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 34 Opérations (sans ajustement des positions main ( ) File F; initialiser(&f); enfiler(&f, 11); afficher(f); enfiler(&f, 22); afficher(f); enfiler(&f, 33); afficher(f); defiler(&f); afficher(f); defiler(&f); afficher(f); enfiler(&f, 44); afficher(f); enfiler(&f, 55); afficher(f); enfiler(&f, 66); afficher(f); system("pause"); FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 35 Solution par décalage à gauche : Tous les éléments reculent d une place lorsque le premier est servi (supprimé). Le pointeur de tête (Front) est alors inutile, puisqu il est toujours égal à 0. Par conséquent, la file est gérée par un tableau et un seul pointeur (Rear) et lorsqu un élément est supprimé, les autres éléments restants sont décalés à gauche et la valeur de «Rear» est décrémentée. FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 36 6

7 Solution par décalage à gauche : # include <stdio.h> # define SIZE 5 typedef struct File int contenu[size]; int queue; /* Pas besoin de Front (tete) */ File; Solution par décalage à gauche : void initialiser(file* F) F->queue = 0; int estvide(file F) return (F.queue == 0); int estpleine(file F) return (F.queue == SIZE); FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 37 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 38 Solution par décalage à gauche : void enfiler(file* F, int x) if(estpleine(*f)) printf("file pleine : "); printf("impossible d'enfiler %d\n", x); F->contenu[F->queue++] = x; FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 39 Solution par décalage à gauche void defiler(file* F) if(estvide(*f)) printf("file vide : impossible de defiler la file\n"); int i; /* décalage des éléments restants vers la tête */ for(i = 0; i < F->queue - 1; i++) F->contenu[i] = F->contenu[i + 1]; F->queue--; /* reculer la queue */ FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 40 Solution par décalage à gauche : void afficher(file* F) if(!estvide(f)) int i; for(i = 0; i < F.queue; i++) printf("%d ", F.contenu[i]); puts(""); FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 41 Solution par tableau «circulaire» : Efficace : car elle minimise la place nécessaire dans le tableau, tout en évitant les opérations de décalage. Lorsque la tête (Front) devient égale à la queue (Rear) (modulo N), la file est soit vide, soit pleine. On est donc amené à distinguer les 2 possibilités en utilisant deux indicateurs booléens «vide» et «pleine». FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 42 7

8 Au départ la file est vide : pleine := 0 et vide := 1 La procédure «enfiler(x)» : Si la file est pleine : impossible d enfiler x. Sinon (la file n est pas pleine), il y a deux cas : Si queue < N, alors on enfile x dans la case queue, et l on incrémente queue. Si queue = N, alors on enfile x dans la case 0, et l on incrémente queue. On peut regrouper les deux cas en un seul : queue := queue % N; On enfile x dans la case queue, et l on incrémente queue. La file est certainement non vide : vide := 0 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 43 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 44 Finalement, on teste si la file est pleine : pliene := (queue < N et tete == queue) ou (queue = N et tete = 0) La procédure «défiler()» : Si la file est vide : impossible d enfiler x. Sinon (la file n est pas vide), il y a deux cas : Si tete < N, alors on l on incrémente. Si tete = N, alors tete := 1. On peut regrouper les deux cas en un seul : tete := tete % N; on incrémente tete FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 45 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 46 La file est certainement non pleine : pleine := 0 On teste si la file est vide : vide := (tete < N et tete == queue) ou (tete = N et queue = 0) #include <stdio.h> #define SIZE 5 typedef struct File int contenu[size]; int tete, queue; int vide, pleine; File; FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 47 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 48 8

9 void initialiser(file* F) F->tete = F->queue = 0; F->vide = 1; F->pleine = 0; int estvide(file F) return F.vide; int isfull(file F) return F.pleine; void enfiler(file* F, int x) if(estpleine(*f)) printf("erreur : la file est pleine!!!\n"); F->queue = F->queue % SIZE; F->contenu[F->queue++] = x; F->vide = 0; F->pleine = (F->tete == 0 && F->queue == SIZE) (F->queue < SIZE && F->tete == F->queue); FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 49 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 50 void defiler(file* F) if(estvide(*f)) printf("erreur : la file est vide!!!\n"); F->tete = F->tete % SIZE; F->tete++; F->pleine = 0; F->vide = (F->tete == SIZE && F->queue == 0) (F->tete < SIZE && F->tete == F->queue); FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 51 void afficher(file F) int i; if(estvide(f)) printf("la file est vide\n"); if(f.tete < F.queue) for(i = F.tete; i < F.queue; i++) FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 52 printf("%d ", F.contenu[i]); puts(""); if(f.tete >= F.queue) for(i = F.tete; i < SIZE; i++) printf("%d ", F.contenu[i]); for(i = 0; i < F.queue; i++) printf("%d ", F.contenu[i]); puts(""); FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 53 C est une représentation classique de liste chaînée, dans laquelle on utilise un pointeur supplémentaire : le pointeur vers la dernière cellule, ce qui permet d accélérer l algorithme d insertion à la fin de la liste. Front Rear FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 54 9

10 # include <stdio.h> # include <stdlib.h> typedef struct Noeud int info; struct Noeud* suiv; Noeud; typedef struct File Noeud* tete; Noeud* queue; File; FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 55 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 56 void initialiser(file* F) F->tete = NULL; F->queue = NULL; int estvide(file F) return F.tete == NULL; FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 57 void enfiler(file* F, int x) Noeud* temp = (Noeud*) malloc(sizeof(noeud)); if(temp == NULL) printf("erreur : impossible d'enfiler %d\n", x); temp->info = x; temp->suiv = NULL; FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 58 if(estvide(*f)) F->tete = F->queue = temp; F->queue->suiv = temp; F->queue = temp; printf("l'element %d est enfile\n", x); FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 59 void defiler(file* F) if(estvide(*f)) printf("erreur : la file est vide!!!\n"); Noeud* temp = F->tete; printf("l'element %d est defile\n", temp->info); F->tete = F->tete->suiv; free(temp); FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 60 10

11 void afficher(file F) Noeud* temp; temp = F.tete; while(temp!= NULL) printf("%d ", temp->info); temp = temp->suiv; puts(""); Représentation d une file par une liste circulaire: Dans ce cas, la file sera représentée par un pointeur vers la dernière cellule. Rear FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 61 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 62 Représentation d une file par une liste circulaire: #include <stdio.h> #include <stdlib.h> typedef struct Noeud int info; struct Noeud* suiv; Noeud; typedef Noeud* File; Représentation d une file par une liste circulaire: void initialiser(file* F) *F = NULL; int estvide(file F) return F == NULL; FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 63 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 64 Représentation d une file par une liste circulaire: void enfiler(file* F, int x) Noeud* temp = (Noeud*) malloc(sizeof(noeud)); temp->info = x; if(estvide(*f)) *F = temp; temp->suiv = temp; temp->suiv = (*F)->suiv; (*F)->suiv = temp; *F = temp; Représentation d une file par une liste circulaire: void defiler(file* F) if(estvide(*f)) printf("erreur : la file est vide!!!\n"); if((*f)->suiv == *F) free(*f); initialiser(f); Noeud* temp = (*F)->suiv; (*F)->suiv = temp->suiv; free(temp); FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 65 FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 66 11

12 Représentation d une file par une liste circulaire: void afficher(file F) if(estvide(f)) puts("file vide"); Noeud* temp = F->suiv; while(temp!= F) printf("%d ", temp->info); temp = temp->suiv; printf("%d\n", temp->info); FSO, Filière SMI-S4, Printemps 2017 Prof. Abdelmajid DARGHAM 67 12

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

Génie Logiciel avec Ada. 4 février 2013

Génie Logiciel avec Ada. 4 février 2013 Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre

Plus en détail

#include <stdio.h> #include <stdlib.h> struct cell { int clef; struct cell *suiv; };

#include <stdio.h> #include <stdlib.h> struct cell { int clef; struct cell *suiv; }; #include #include struct cell int clef; struct cell suiv; ; / longueur. pc->suiv est l abréviation de (pc).suiv. pour cette fonction comme pour les suivantes, on donne, lorsqu il existe

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

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

Les arbres binaires de recherche

Les arbres binaires de recherche Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s

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

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en détail

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

Compression de Données - Algorithme de Huffman Document de Conception ROLLET Samuel SALLE Jennifer Compression de Données - Algorithme de Huffman Document de Conception Projet d'algorithmique et Structure des Données 1 SOMMAIRE 1. Domaine d application....4 1.1 Objectifs

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

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

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

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

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

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

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

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

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

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

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

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

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

TD2/TME2 : Ordonnanceur et Threads (POSIX et fair)

TD2/TME2 : Ordonnanceur et Threads (POSIX et fair) UE PC2R page 1/8 TD2/TME2 : Ordonnanceur et Threads (POSIX et fair) Exercice 1 (Modélisation) Chemin de Fer Cet exercice est dédié à l étude d un problème de circulation de trains : Voie! out1 in1 Voie!

Plus en détail

Travaux Dirigés n 1 : chaînes de caractères

Travaux Dirigés n 1 : chaînes de caractères UE LE315 Travaux Dirigés n 1 : chaînes de caractères Exercice 1 Ecrire une fonction int nombre_caract(char *chaîne) qui retourne la taille d une chaîne de caractères. Exercice 2 Ecrire la fonction void

Plus en détail

SUPPORT DE COURS. Dr. Omari Mohammed Maître de Conférences Classe A Université d Adrar Courriel : omarinmt@gmail.com

SUPPORT DE COURS. Dr. Omari Mohammed Maître de Conférences Classe A Université d Adrar Courriel : omarinmt@gmail.com Dr. Omari Mohammed Maître de Conférences Classe A Université d Adrar Courriel : omarinmt@gmail.com SUPPORT DE COURS Matière : Algorithmiques et Structures de Données 1 Niveau : 2 ème Année Licence en Informatique

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

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

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

Plus en détail

Programmation Orientée Objet Java

Programmation Orientée Objet Java Programmation Orientée Objet Java Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 12 novembre 2014 Bertrand Estellon (DII AMU) Programmation Orientée Objet Java 12 novembre

Plus en détail

Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail

Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail Finalités Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail Réalisé par sa modestie Arnaud de VILLEDON de NAIDE, le 9 mars 2013 Document sous licence GPL. Vous avez le droit d'en faire

Plus en détail

T. A. D. pile. Chapitre 7 (suite) Listes particulières. T. A. D. file. représentation chaînée de la file algorithmique. Files

T. A. D. pile. Chapitre 7 (suite) Listes particulières. T. A. D. file. représentation chaînée de la file algorithmique. Files Chapitre 7 (suite) Listes particulières Pile : liste particulière T. A. D. pile insertion et suppression au sommet de la pile extraction Files queue Listes doublement chaînées insertion file : liste particulière

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

Cours Programmation Système

Cours Programmation Système Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février

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

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

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin 2010. Algorithmique 1

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin 2010. Algorithmique 1 Algorithmique 1 Durée : 2h Machines électroniques interdites Tous documents papiers autorisés Il est conseillé de traiter les deux parties dans l ordre du sujet. Veuillez respecter les notations introduites

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

Cours de C. Allocation dynamique. Sébastien Paumier

Cours de C. Allocation dynamique. Sébastien Paumier Cours de C Allocation dynamique Sébastien Paumier paumier@univ-mlv.fr Illustrations provenant du site http://tux.crystalxp.net/ 1 Les pointeurs pointeur=adresse mémoire+type type* nom; nom pointe sur une

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

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

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

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

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes

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

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

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

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être

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

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

Université Bordeaux 1, Licence Semestre 3 - Algorithmes et struct...

Université Bordeaux 1, Licence Semestre 3 - Algorithmes et struct... Université Bordeaux 1 table des matières Licence Semestre 3 - Algorithmes et structures de données 1 Dernière mise à jour effectuée le 23 Octobre 2013 Piles et Files Déitions Primitives de piles, exemples

Plus en détail

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004 Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)

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

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7 Cahier des charges driver WIFI pour chipset Ralink RT2571W sur hardware ARM7 RevA 13/03/2006 Création du document Sylvain Huet RevB 16/03/2006 Fusion des fonctions ARP et IP. SH Modification des milestones

Plus en détail

Evaluation et mise en place d un serveur de messages pour Chamilo 2.0

Evaluation et mise en place d un serveur de messages pour Chamilo 2.0 Evaluation et mise en place d un serveur de messages pour Chamilo 2.0 Descriptif Dans ce projet, on va montrer l évaluation et la mise en place d un serveur de message pour Chamilo. Le but est d améliorer

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

Gestion distribuée (par sockets) de banque en Java

Gestion distribuée (par sockets) de banque en Java Gestion distribuée (par sockets) de banque en Java Université Paris Sud Rappel sur la solution locale de gestion simple de banque L objet de cet exercice était de créer une application java qui implante

Plus en détail

Arguments d un programme

Arguments d un programme Arguments d un programme L2 SPI, Bruno Jacob 1 Arguments Quand on appelle un programme dans un environnement UNIX ou MS- DOS, on compose une ligne de commandes de la forme : nom-du-programme argument1

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

Les structures. Chapitre 3

Les structures. Chapitre 3 Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre

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

Resolution limit in community detection

Resolution limit in community detection Introduction Plan 2006 Introduction Plan Introduction Introduction Plan Introduction Point de départ : un graphe et des sous-graphes. But : quantifier le fait que les sous-graphes choisis sont des modules.

Plus en détail

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits Architecture des ordinateurs TD1 - Portes logiques et premiers circuits 1 Rappel : un peu de logique Exercice 1.1 Remplir la table de vérité suivante : a b a + b ab a + b ab a b 0 0 0 1 1 0 1 1 Exercice

Plus en détail

Génération de code binaire pour application multimedia : une approche au vol

Génération de code binaire pour application multimedia : une approche au vol Génération de binaire pour application multimedia : une approche au vol http://hpbcg.org/ Henri-Pierre Charles Université de Versailles Saint-Quentin en Yvelines 3 Octobre 2009 Présentation Présentation

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

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

Pensez à vous inscrire... si ce n est pas encore fait Sommaire UE C avancé cours 1: introduction Jean-Lou Desbarbieux et Stéphane Doncieux LI215 Licence Informatique UMPC 2013/2014 Introduction Présentation Évaluation Calendrier Biblio Intro au C Types Types

Plus en détail

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009 Déroulement Algorithmes et structures de données Cours 1 et 2 Patrick Reuter http://www.labri.fr/~preuter/asd2009 CM mercredi de 8h00 à 9h00 (Amphi Bât. E, 3 ème étage) ED - Groupe 3 : mercredi, 10h30

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

Cours 6 : Tubes anonymes et nommés

Cours 6 : Tubes anonymes et nommés Cours 6 : Tubes anonymes et nommés Mécanisme de communications du système de fichiers I-node associé. Type de fichier: S_IFIFO. Accès au travers des primitives read et write. Les tubes sont unidirectionnels

Plus en détail

Chap III : Les tableaux

Chap III : Les tableaux Chap III : Les tableaux Dans cette partie, on va étudier quelques structures de données de base tels que : Les tableaux (vecteur et matrice) Les chaînes de caractères LA STRUCTURE DE TABLEAU Introduction

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

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

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

Introduction à la programmation concurrente

Introduction à la programmation concurrente Introduction à la programmation concurrente Moniteurs Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud This work is licensed under

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

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?

Plus en détail

Cours de Programmation 2

Cours de Programmation 2 Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes

Plus en détail

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

3IS - Système d'exploitation linux - Programmation système 3IS - Système d'exploitation linux - Programmation système 2010 David Picard Contributions de : Arnaud Revel, Mickaël Maillard picard@ensea.fr Environnement Les programmes peuvent être exécutés dans des

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

Plateforme PAYZEN. Définition de Web-services

Plateforme PAYZEN. Définition de Web-services Plateforme PAYZEN Définition de Web-services Ordre de paiement Version 1.1 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Lyra-Network

Plus en détail

Définition des Webservices Ordre de paiement par email. Version 1.0

Définition des Webservices Ordre de paiement par email. Version 1.0 Définition des Webservices Ordre de paiement par email Version 1.0 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Historique du document

Plus en détail

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles La compilation peut

Plus en détail

Programmation impérative

Programmation impérative Programmation impérative Cours 4 : Manipulation des fichiers en C Catalin Dima Organisation des fichiers Qqs caractéristiques des fichiers : Nom (+ extension). Chemin d accès absolu = suite des noms des

Plus en détail

Structure fonctionnelle d un SGBD

Structure fonctionnelle d un SGBD Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert

Plus en détail

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

MINIMUM. connaissances nécessaires à la programmation des microcontrôleurs PIC18 en langage C (une introduction au langage c A.N.S. MINIMUM connaissances nécessaires à la programmation des microcontrôleurs PIC18 en langage C (une introduction au langage c A.N.S.I maj n 4) Equipe de formation sur les microcontrôleurs PIC Robert Toquebeuf

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche 1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de

Plus en détail

OS Réseaux et Programmation Système - C5

OS Réseaux et Programmation Système - C5 OS Réseaux et Programmation Système - C5 Rabie Ben Atitallah rabie.benatitallah@univ-valenciennes.fr RPC - XDR Rappel RPC: Remote Procedure Call Besoin d un environnement de haut niveau pour le développement

Plus en détail

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

Initiation. àl algorithmique et à la programmation. en C Initiation àl algorithmique et à la programmation en C Initiation àl algorithmique et à la programmation en C Cours avec 129 exercices corrigés Illustration de couverture : alwyncooper - istock.com Dunod,

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

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence Licence Algorithmique & Langage C Paternité - Pas d'utilisation Commerciale Partage des Conditions Initiales à l'identique 2.0 France Vous êtes libres : * de reproduire, distribuer et communiquer cette

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

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

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

et Programmation Objet

et Programmation Objet FACULTE POLYTECHNIQUE DE MONS Service d Informatique et Programmation Objet Mohammed Benjelloun 2 ème Bachelier Année académique 2008-2009 Table des matières Avant-propos--------------------------------------------------------------------------

Plus en détail

Les processus légers : threads. Système L3, 2014-2015 1/31

Les processus légers : threads. Système L3, 2014-2015 1/31 Les processus légers : threads Système L3, 2014-2015 1/31 Les threads Les threads sont des processus légers exécutés à l intérieur d un processus L exécution des threads est concurrente Il existe toujours

Plus en détail

INFO-F-105 Language de programmation I Séance VI

INFO-F-105 Language de programmation I Séance VI INFO-F-105 Language de programmation I Séance VI Jérôme Dossogne Année académique 2008 2009 Un grand merci à Yves Roggeman pour ses relectures et remarques des codes et commentaires qui ont contribuées

Plus en détail

Initiation à la Programmation en Logique avec SISCtus Prolog

Initiation à la Programmation en Logique avec SISCtus Prolog Initiation à la Programmation en Logique avec SISCtus Prolog Identificateurs Ils sont représentés par une suite de caractères alphanumériques commençant par une lettre minuscule (les lettres accentuées

Plus en détail

REALISATION d'un. ORDONNANCEUR à ECHEANCES

REALISATION d'un. ORDONNANCEUR à ECHEANCES REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6

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

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE Question 1 : Un câble de catégorie 5 fait référence a : A un câble coaxial fin B un câble coaxial épais C une paire torsadée non blindée (UTP) D une paire torsadée

Plus en détail

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement des objets d'une classe Utilisation d'une classe Droit

Plus en détail

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

Les débordements de tampons et les vulnérabilités de chaîne de format 1 Les débordements de tampons et les vulnérabilités de chaîne de format 1 Patrice Lacroix Groupe LSFM Département d informatique et de génie logiciel Université Laval 18 décembre 2002 1 Cette recherche a

Plus en détail