Structures de Données
|
|
- Clementine Beaudoin
- il y a 7 ans
- Total affichages :
Transcription
1 Université Mohammed V- Agdal Ecole Mohammadia d'ingénieurs Département Génie Informatique Définition Les iles - Une pile est une liste linéaire d'éléments déléments (entiers, ) où l'ajout et la suppression d'un élément se font du même côté. Sommet Structures de Données - Si la pile n'est pas vide, l'élément accessible est le dernier ajouté et qui se trouve au sommet de la pile rotocole LIFO: Last In First Out Exemple : Utilisation de la pile en informatique: ar: Mr N.EL FADDOULI Année Universitaire:2013/2014 Journalisation des mises à jour pour réaliser la fonction undo (logiciels de bureautique p.e.) Allocation de la mémoire pour les variables locales lors de l exécution des procédures EMI/ Structures de Données / N. El Faddouli EMI/ Structures de Données / N. El Faddouli 33 1
2 Les iles - Les deux opérations principales sont: Empiler: ajoute un élément au dessus du sommet de la pile. Dépiler: supprime l'élément au sommet de la pile si elle n'est pas vide. - D'autres opérations sont possibles : Initile : Cree une pile vide. Sommet: Retourne l'élément au sommet de la pile qui doit être non vide. ilevide: Détermine si la pile est vide ou non et retourne Vrai ou Faux. EMI/ Structures de Données / N. El Faddouli 34 Les iles Exemple d'utilisation de pile: Inverser une chaîne S Algorithme: : ile de caractères N Longueur(S) our i 0 à N-1 Empiler (S[i], ) our i 0àN-1 S[i] Sommet() Depiler () Implémentation statique avec un tableau: - La pile est représentée par un enregistrement contenant les champs suivants: -L'indice du sommet de la pile: un entier -Untableau des éléments de la pile. - Ce tableau peut être statique (taille maximale fixée ) ou dynamique (réservation dynamique du tableau). - Il faut faire un contrôle de taille lors de l'empilement pour éviter un débordement (la pile ne doit pas être pleine) EMI/ Structures de Données / N. El Faddouli 35 2
3 Les iles Implémentation statique avec un tableau: 1- ile avec un tableau statique: ile d'entiers typedef struct int S; /* indice du sommet de la pile */ int [100]; /* ableau statique */ ile; ile Initile() ile ;.S = -1; return ; int ilevide(ile ) if(.s==-1) return 1; else return 0; int ileleine(ile ) if(.s==99) return 1; else return 0; int Sommet(ile, int *x) if (! ilevide() ) *x =.[.S]; return 1; else return 0; Il faut vérifier si la pile n'est pas vide avant de dépiler ou prendre le sommet de la pile. int Empiler (ile *, int X) Les iles if (ileleine(*)) return 0; else (*).S ++; /* ->S ++; */ (*) (). [ (*) ().S ] = X; /* -> [ ->S ] = X ; */ return 1; int Depiler (ile *) if (ilevide(*)) (*)) return 0; else (*).S -- ; /* ->S -- */ return 1; EMI/ Structures de Données / N. El Faddouli 36 EMI/ Structures de Données / N. El Faddouli 37 3
4 Définition Les Files - Une file est une liste linéaire d'éléments déléments où les insertions se font d'un côté et les suppressions de l'autre côté. Les Files - Les opérations sur les files sont: InitFile: Cree une file vide. ête : Retourne l'élément en tête de la file qui doit être non vide. Défiler Enfiler Enfiler: Insère un élément à la fin de la file. Défiler: Supprime l'élément en tête de la file qui doit être non vide. - Les noms spécifiques pour ces opérations sont Enfiler pour insérer et Défiler pour supprimer. - Les opérations sur les files sont syntaxiquement les mêmes que sur les piles ; c'est par leur effet qu'elles diffèrent: l'élément supprimé est le premier arrivé dans la file. - Une file se comporte comme une file d'attente; (suitleprotocolefirst In First Out (FIFO) ) - Exemple d'utilisation de file: Documents à imprimer,... EMI/ Structures de Données / N. El Faddouli 38 FileVide: este si la file est vide et retourne vrai ou faux Implémentation statique par un tableau: - Simplicité d'implémentation. - Quand le nombre d'insertions est à priori limité. - ableau contenant les éléments de la file. - Deux indices, représentant respectivement le début et la fin de la file. - Opération supplémentaire: Fileleine qui détermine si une file est pleine. EMI/ Structures de Données / N. El Faddouli 39 4
5 Les Files - Implémentation en langage C: typedef struct Version 1: intn; /* Nombre maximal d'éléments*/ int, Q; /*tête et queue de file*/ int *E; /* représente les éléments de la file*/ / File; - La tête de la file ne change pas ( = 0) - La queue Q de la file contient l'indice du dernier élément ajouté dans la file. File InitFile (int a) /* file de a élément*/ File F ; F.N = a ; F. = 0; F.Q = 0; /* aille maximale de la file*/ F.E = (int *) malloc( a * sizeof(int) ); return (F); EMI/ Structures de Données / N. El Faddouli 40 int FileVide( File F) return ( F.Q Q == 0); int ete( File F) return (F.E [ F. ]); int Fileleine( File F) return (F.Q == F.N) ; int Enfiler (File *F, int a) Les Files if (Fileleine (*F)) return 0; else (*F).E[ (*F).Q ]=a; (*F).Q ++; return 1; F->Q ++; F->E [ F->Q ] = a; EMI/ Structures de Données / N. El Faddouli 41 5
6 int Defiler (File *F) Les Files int i ; if (FileVide (*F)) return 0; else /* Suppression du premier élément */ for (i=0; i<(*f).q - 1; i++ ) (*F) (F).Q --; return 1; (*F).E [ i ] = (*F).E [ i+1 ]; Le temps d'exécution de la fonction Defiler dépend du nombre d'élément de la file (peut être N éléments) Les autres fonctions ont un temps d'exécution invariant. Comment faire pour que le temps d'exécution de Defiler soit invariant lui aussi? (Voir la version 2) EMI/ Structures de Données / N. El Faddouli 42 Les Files Version 2: File circulaire - Éviter le décalage des éléments au défilement. Exemple: File F de aille maximale 3 ( on prévoit 4 cases: aille =4 ) Après les opérations: Enfiler(F, X ); Q X Après les opérations: Enfiler(F, Y ); Enfiler(F, Z ); Q X Y Z File pleine Après les opérations: Défiler( F) ; Enfiler(F, R ); Q File pleine Y Z R EMI/ Structures de Données / N. El Faddouli 43 6
7 typedef struct Les Files int N; /*Nombre maximal */ int, Q; int *E; File; File InitrFile (int a) File F ; /* tête et queue de file*/ /* représente les éléments de la file*/ F.N = a ; F. = 0; F.Q = 0; F.E = (int *) malloc( a * sizeof(int) ); return (F); int ete(file F) return F.E [ F. ]; Les Files int Enfiler (File *F, int a) if (Fileleine (*F)) return 0; else F- E [? F- Q ]=a;] = a; F- Q =? (F- Q +1 ) % F- N ; return 1; int Defiler (File *F) if (FileVide (*F)) return 0; else F- =?; ( F- + 1) % F- N ; return 1; int Fileleine( File F) if (F.== (F.Q+1) % F.N) return 1; else return 0; int FileVide( File F) if(f. == F.Q ) return 1; else return 0; EMI/ Structures de Données / N. El Faddouli 44 EMI/ Structures de Données / N. El Faddouli 45 7
8 Exercice 1 Évaluation des expressions ostfixées - Notation infixe: l opérateur se trouve entre les deux opérandes. Exemple: A+B. - Deux autres notations existent: 1- La notation préfixée: l opérateur est placé avant les opérandes. Exemple: +AB. 2- La notation postfixée (polonaise): l opérateur est placé après les opérandes. Exemple: AB+. - On doit connaître la priorité des opérateurs. Quand on écrit A+B*C, c est équivalent à: A+(B*C). - our convertir l expression A+(B*C) en postfixée on effectue les étapes suivantes : A+(B*C) A+(BC*) ABC*+ Exercice 1 - our traduire une expression arithmétique (infixe) en une expression en notation polonaise, il faut : 1- Convertir la partie la plus prioritaire 2- La partie convertie est ensuite considérée comme un opérande. Exemple : (A+B)*C (AB+)*C AB+C* (A+B)*(C-D) (A+B)(C-D)* AB+CD-* Si on considère l opérateur d exponentiation noté par $: A$B*C-D+E//(G+H). Remarques: - as de parenthèses dans les expressions postfixées. - L ordre des opérateurs l ordre des opérations. - Un opérateur dans une expression postfixée s applique aux deux opérandes qui le précèdent. - Ces opérandes peuvent à leur tour être le résultat de l application d un opérateur *+ = 3+20 = * = 7 * 5 = 35 EMI/ Structures de Données / N. El Faddouli 46 EMI/ Structures de Données / N. El Faddouli 47 8
9 Exercice 1 Exercice 2 Algorithme général : On utilisera une pile, ileoperande our i 0 à Longueur(E) -1 Si E[ i ] est un opérande alors Empiler (ileoperande, E[ i ] ) Sinon Sommet (ileoperande, val1 ) Fin our Depiler (ileoperande) Sommet (ileoperande, val2 ) Depiler (ileoperande) Res appliquer E[ i ] à val2 et val1 Empiler ( ileoperande, Res) Sommet (ileoperande, Resultat ) Depiler(ileOperande) Ecrire "Résultat de calcul de", E, " est ", Resultat.A.F: Ecrire la fonction: float Calcul( char E[ ]) qui retourne le résultat de l expression postfixée E. EMI/ Structures de Données / N. El Faddouli 48 On veut créer une file d attente d une imprimante. Cette file d attente contient des fichiers à imprimer sachant qu un fichier est caractérisé par: Un nom ( Nom ) Le nombre de page (N) 1) Définir la structure Document représentant un fichier. 2) Définir la structure File représentant une file d attente de fichier (document à imprimer). 3) Réécrire les fonctions: InitFile ete Enfiler Remarque: Les autres fonction restent inchangées. 4) Écrire un programme principal pour tester ces fonctions EMI/ Structures de Données / N. El Faddouli 49 9
10 Un tableau: - aille Fixe - Les éléments en mémoire sont contigus. - Difficulté de redimensionner le tableau. - realloc permet de redimensionner un tableau avec éventuellement un déplacement en mémoire de ses éléments realloc coûteuse en temps de traitement. Exemple: int*t=(int*)malloc (4 * sizeof(int));. t=(int*)realloc ( t, 20 * sizeof(int)); Une liste chaînée: - Un ensemble d'éléments non contigus organisés séquentiellement. Opérations sur une liste chaînée: Ces opérations sont basées sur la manipulation des liens - Simplicité d'ajout d'un élément.(ajout de 5 entre 8 et 1) Vs un tableau: Il faut décaler à droite les cases qui suivront la position d'insertion. - Simplicité de suppression ( supprimer 8 par exemple) Vs un tableau: lien noeud EMI/ Structures de Données / N. El Faddouli 50 Il faut décaler à gauche les cases qui suivent l'élément à supprimer. EMI/ Structures de Données / N. El Faddouli 51 10
11 Comment représenter les nœuds et les liens? - Un nœud est une structure t contenant: t les données utilisateur (entier, réel, ). (les éléments de la liste) un pointeur (lien) vers le nœud suivant Le dernier nœud a un lien NULL 6 Adresse = On mémorise l'adresse du premier nœud dans un pointeur appelé l'en-tête de la liste chaînée. 20. Structure en C représentant un noeud Exemple: Une liste d'entiers typdef struct Element V Suiv int V ; // une donnée utilisateur struct Element *Suiv; //pointeur sur l'élément suivant Nœud; Une liste vide: L'initialisation de l'en-tête avec la valeur NULL permet d'indiquer une liste vide. Exemple: void main() Nœud *; = NULL; EMI/ Structures de Données / N. El Faddouli 52 EMI/ Structures de Données / N. El Faddouli 53 11
12 Insérer un élément au début d'une liste Nœud * InsererDebut ( Nœud *, int X) Le nouvel en-tête de la liste après l'insertion En-tête de la liste Entier à insérer au début de la liste (2) Le champ Suiv du nouveau nœud doit pointer sur le premier nœud de la liste X ->Suiv = ; (1) Créer un nouveau nœud pointé par un pointeur et contenant l'entier X. X Nœud *; = (Nœud *) malloc ( sizeof (Noeud) ); ->V = X; /* ou (*).V = X */ EMI/ Structures de Données / N. El Faddouli 54 Le nouvel en-tête de la liste est: Nœud * InsererDebut ( Nœud *, int X) Nœud * = (Nœud *) malloc ( sizeof (Noeud) ); ->V=X; ->Suiv = ; return ; EMI/ Structures de Données / N. El Faddouli 55 12
13 Exercice 1 Écrire un programme principal (main) permettant à l'utilisateur de saisir plusieurs entiers jusqu'à ce qu'il veuille s'arrêter. Chaque valeur saisie doit être insérer au début d'un liste chaînée (appel de InsererDebut). Afficher une liste chaînée void AfficherListe ( Nœud *) En-tête de la liste 20 6 (1) Utiliser un pointeur initialisé à. (2) ant Que NULL - Afficher le champ V du nœud pointé par. - ositionner sur le nœud suivant - Revenir à (2) EMI/ Structures de Données / N. El Faddouli 56 EMI/ Structures de Données / N. El Faddouli 57 13
14 void AfficherListe ( Nœud *) Nœud * = ; while (!= NULL) /* ou while ( ) */ printf("%d \t", ->V ); = ->Suiv; void AfficherListe ( Nœud *) if (!= NULL) printf("%d \t", ->V ); AfficherListe (->Suiv); Exercice 2 - Écrire et faire appel à une fonction récursive qui retourne le nombre d'éléments d'une liste chaînée. int aille ( Nœud *) EMI/ Structures de Données / N. El Faddouli 58 EMI/ Structures de Données / N. El Faddouli 59 14
15 Déterminer l'adresse du dernier noeud. Nœud * DernierNoeud ( Nœud *) Adresse du dernier noeud En-tête de la liste 20 6 (1) Utiliser un pointeur initialisé à. (2) ant Que ->Suiv NULL - ositionner sur le nœud suivant - Revenir à (2) 7 Nœud * DernierNoeud ( Nœud *) Nœud * = ; if ( == NULL) return ; while ( ->Suiv!= NULL) /* ou while (!->Suiv ) */ =->Suiv; retrun ; Cas articulier - Si la liste est vide: == NULL On ne peut pas parler de ->Suiv. EMI/ Structures de Données / N. El Faddouli 60 EMI/ Structures de Données / N. El Faddouli 61 15
16 Insérer un élément à la fin d'une liste Nœud * InsererFin ( Nœud *, int X) Le nouvel en-tête de la liste après l'insertion En-tête de la liste Entier à insérer à la fin de la liste (1) Créer un nouveau nœud pointé par un pointeur et contenant l'entier X. Nœud *; = (Nœud *) malloc ( sizeof (Noeud) ); ->V = X; /* ou (*).V = X */ ->Suiv = NULL; EMI/ Structures de Données / N. El Faddouli 62 X (2) Stocker dans un pointeur Q l'adresse du dernier noeud. Q (3) Faire le chaînage entre les deux nœuds pointés respectivement par Q et. Q->Suiv = ; Nœud * InsererFin ( Nœud *, int X) Nœud *, *Q; = (Nœud *) malloc ( sizeof (Noeud) ); ->V=X; ->Suiv = NULL; if ( == NULL) return ; Q = DernierNoeud( ); Q->Suiv = ; return ; Cas particulier: Liste vide : = NULL EMI/ Structures de Données / N. El Faddouli 63 X 16
17 Supprimer le premier nœud: Nœud * SupprimerDebut ( Nœud *) Le nouvel en-tête de la liste après la suppression En-tête de la liste (1) Mémoriser la valeur de dans un pointeur. Nœud *; =; (2) ositionner sur le deuxième nœud. Nœud * SupprimerDebut ( Nœud *) Nœud * = ; if ( == NULL) return ; = ->Suiv ; free(); retrun ; Cas particulier -Listevide: == NULL = ->Suiv; (3) Libérer l'espace occupé par le nœud pointé par. free(); (4) Retourner. EMI/ Structures de Données / N. El Faddouli 64 EMI/ Structures de Données / N. El Faddouli 65 17
18 Supprimer le dernier nœud: Nœud * SupprimerFin ( Nœud *) Nœud * SupprimerFin ( Nœud *) Le nouvel en-tête de la liste après la suppression En-tête de la liste (1) Mémoriser la valeur de dans un pointeur. Nœud *; =; (2) ositionner sur l'avant dernier nœud. (3) Libérer l'espace occupé par le dernier nœud. Nœud * = ; if ( == NULL) return NULL; if (->Suiv == NULL) free( ) ; return NULL; while(->suiv->suiv) = ->Suiv; free ( ->Suiv ) ; ->Suiv = NULL; retrun ; free(->suiv); (4) Le champ Suiv du nœud pointé par reçoit la valeur NULL. ->Suiv = NULL; EMI/ Structures de Données / N. El Faddouli 66 Cas particuliers -Listevide: == NULL - Liste contenant un seul noeud : ->Suiv == NULL EMI/ Structures de Données / N. El Faddouli 67 18
19 Représentation dynamique d une pile Représentation dynamique d une pile 1. Définir une structure ile représentant une liste d entiers. 2. Ecrire les fonctions suivantes: ile * Empiler( ile *, int x) ile * Depiler (ile *) int Sommet(ile *, int *x) int ilevide(*) EMI/ Structures de Données / N. El Faddouli 68 EMI/ Structures de Données / N. El Faddouli 69 19
20 Représentation dynamique d une pile Représentation dynamique d une file 1. Définir une structure Nœud représentant une liste d entiers. 2. Définir i une structure t File contenant t deux pointeurs de type Nœud. 3. Ecrire les fonctions suivantes: File InitFile( ) Créer une file dont les deux pointeurs sont égales à NULL. void Enfiler ( File *F, int x) void Defiler (File *F) int ete(file *F, int *x) int FileVide(File *F) EMI/ Structures de Données / N. El Faddouli 70 EMI/ Structures de Données / N. El Faddouli 71 20
21 Représentation dynamique d une file Représentation dynamique d une file EMI/ Structures de Données / N. El Faddouli 72 EMI/ Structures de Données / N. El Faddouli 73 21
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étailLes 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étailTP 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étailGé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étail1. 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étailAlgorithmique, 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étailT. 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étailINITIATION 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étailCours 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étailLes 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étailCours 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étail1/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étailUniversité 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étailSTAGE IREM 0- Premiers pas en Python
Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer
Plus en détailPROJET 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étailLicence 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étailLangage 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étailInitiation à 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étailTravaux 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étailPré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étailRecherche dans un tableau
Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6
Plus en détail#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étailTravaux 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étailMISE 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étailCompression 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étailProgrammation 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étailCours 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étailTD3: tableaux avancées, première classe et chaînes
TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première
Plus en détailChapitre 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étailRepré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étailBrefs 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étailI. 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étailIN 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É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étailProgrammation 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étailBases 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étailCours 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étailSuivant 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étailINTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores
INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN
Plus en détailLe 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étailUtilisation 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étailArchitecture 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étailV- 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étailDE 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étailINITIATION 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étailProgramme 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étailInitiation. à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étailArchitecture 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étailConventions 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étailLicence Sciences et Technologies Examen janvier 2010
Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.
Plus en détailAlgorithmique 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étailLes 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étailSUPPORT 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étailClaude 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étailPremiers Pas en Programmation Objet : les Classes et les Objets
Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.
Plus en détailUE 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étailIntroduction à 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étailProjet 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étailSolutions du chapitre 4
Solutions du chapitre 4 Structures de contrôle: première partie 4.9 Identifiez et corrigez les erreurs (il peut y en avoir plus d une par segment de code) de chacune des proposition suivantes: a) if (
Plus en détailDé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étailCours 1 : Introduction Ordinateurs - Langages de haut niveau - Application
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un
Plus en détail03/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étailProgrammation 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étailChapitre 10. Les interfaces Comparable et Comparator 1
Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],
Plus en détailas 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étailChap 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étailProgrammation avec des objets : Cours 7. Menu du jour
1 Programmation avec des objets : Cours 7 Menu du jour 1. Retour sur la classe Liste 2. Précisions sur l interface 3. Difficultés dans le cas d erreurs 4. Soulever des exceptions 5. Utilisation des Listes
Plus en détailInfo0101 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étailAnalyse 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étail6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr
6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr Interface d un SGF Implémentation d un SGF Gestion de la correspondance entre la structure logique et la structure
Plus en détailLes 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étailLicence 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étailSUPPORT 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étailPour 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étailIRL : Simulation distribuée pour les systèmes embarqués
IRL : Simulation distribuée pour les systèmes embarqués Yassine El Khadiri, 2 ème année Ensimag, Grenoble INP Matthieu Moy, Verimag Denis Becker, Verimag 19 mai 2015 1 Table des matières 1 MPI et la sérialisation
Plus en détailIV- Comment fonctionne un ordinateur?
1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions
Plus en détailCours 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étailCours de Systèmes d Exploitation
Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation
Plus en détailCours 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étailCours 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étailExercices INF5171 : série #3 (Automne 2012)
Exercices INF5171 : série #3 (Automne 2012) 1. Un moniteur pour gérer des ressources Le moniteur MPD 1 présente une première version d'un moniteur, exprimé en pseudo-mpd, pour gérer des ressources le nombre
Plus en détailExceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;
CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe
Plus en détailIntroduction à 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étailAssurance Qualité. Cours de génie logiciel. Renaud Marlet. LaBRI / INRIA http://www.labri.fr/~marlet. (d'après A.-M. Hugues) màj 23/04/2007
1 Cours de génie logiciel (d'après A.-M. Hugues) Assurance Qualité Renaud Marlet LaBRI / INRIA http://www.labri.fr/~marlet màj 23/04/2007 2 Les deux facettes de la qualité Conformité avec la définition
Plus en détailDécouverte de Python
Découverte de Python Python est un des langages informatiques au programme des concours à partir de la session 2015. Ce tutoriel vous permettra de vous mettre à peu près à niveau de ce qui a été fait en
Plus en détailStructurer ses données : les tableaux. Introduction à la programmation
Structurer ses données : les tableaux Introduction à la programmation Plan du document Introduction Introduire la notion de type Types primitifs Types composés Tableaux de type primitif Page 2 Notion de
Plus en détailStructure 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étailINITIATION AU LANGAGE JAVA
INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal
Plus en détailEnsimag 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étailCours d algorithmique pour la classe de 2nde
Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage
Plus en détailRappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme
Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
Plus en détailProgrammation 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étailLe 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étailInitiation à 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étailTP 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étailChap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1
Chap 4: Analyse syntaxique 1 III- L'analyse syntaxique: 1- Le rôle d'un analyseur syntaxique 2- Grammaires non contextuelles 3- Ecriture d'une grammaire 4- Les méthodes d'analyse 5- L'analyse LL(1) 6-
Plus en détail1 Recherche en table par balayage
1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément
Plus en détailACTIVITÉ 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étailProgrammer 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étailCOMPARAISONDESLANGAGESC, C++, JAVA ET
REPUBLIQUE DU BENIN *******@******* MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE(MESRS) *******@******* UNIVERSITE D ABOMEY CALAVI(UAC) *******@******* ECOLE POLYTECHNIQUE D ABPOMEY
Plus en détail