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

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

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

Transcription

1 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 fichiers textes, sans perte d'information, afin qu'ils occupent moins d'espace sur un disque. On demande également d'écrire un décompresseur qui devra restaurer le fichier original. Les algorithmes de compression sont nombreux. Celui proposé ici est l'algorithme de Huffman. Nous nous proposons de le coder en langage C Notation du projet La notation sera faite au terme d une présentation de votre travail. La forme de cette présentation est laissée totalement libre (Power Point, film, exposé oral en français, en anglais, animation, documents écrits ). Un vidéo-projecteur est à votre disposition si besoin. Le temps de cette présentation est de 5 minutes (démonstrations comprises). Vous devrez être donc extrêmement concis et préparer toutes vos démonstrations au préalable afin de limiter le temps de manipulation Organisation d un projet de programmation L ensemble du projet devra obligatoirement comporter : Toutes les versions de votre logiciel en commençant par huff_v0.c. Chaque amélioration de votre logiciel vous fera passer à la version supérieure et vous conserverez une sauvegarde de la dernière version qui fonctionne. Un fichier «version.txt» dans lequel vous écrirez la description de chacune des versions de votre logiciel que vous avez écrit. Il est préférable que vous respectiez les propositions de prototypage des fonctions faites dans l énoncé afin que le debugage soit plus aisé. 2. Principe de l'algorithme de Huffman Une idée apparue très tôt en informatique pour compresser les données a été exploitée indépendamment dans les années 1950 par Shannon et Fano. Elle est basée sur la remarque suivante : les caractères d'un fichier sont habituellement codés sur un octet, donc tous sur le même nombre de bits. Il serait plus économique en terme d'espace disque, pour un fichier donné, de coder ses caractères sur un nombre variable de bits, en utilisant peu de bits pour les

2 caractères fréquents et plus de bits pour les caractères rares. Le codage choisi dépend donc du fichier à compresser. Les propriétés d'un tel codage sont les suivantes : a. Les caractères sont codés sur un nombre différent de bits (pas nécessairement un multiple de 8) ; b. Les codes des caractères fréquents sont courts ; ceux des caractères rares sont longs ; c. Bien que les codes soient de longueur variable, on peut décoder le fichier compressé de façon unique. d. La dernière de ces trois propriétés est automatiquement assurée si l'on à la propriété suivante : Si c1 et c2 codent deux caractères différents, c1 ne commence pas par c2 et c2 ne commence pas par c1. En effet, si la propriété d est assurée, lorsqu'on décode le fichier compressé en le lisant linéairement, dès que l'on reconnaît le code d'un caractère, on sait que l'on ne pourra pas le compléter en un autre code. L'algorithme de Huffman, qui garantit ces propriétés, fonctionne de la façon suivante : 2.1. Calcul des occurrences des caractères On prend l exemple d un fichier texte dont le contenu est «Une banane». On calcule tout d'abord le nombre d occurrence de chaque caractère dans le fichier à compresser. Dans l exemple ci-dessous, on a le nombre d occurrence du caractère espace, U, b, n, a et e. Figure 1 : Fréquence des caractères 2.2. Création de l arbre de Huffman On prend ensuite les caractères qui possèdent la plus faible occurrence et on ajoute leur nombre d occurrence pour réaliser un nouveau nœud. Figure 2 : Création d un nouveau nœud On fait exactement la même chose en reprenant en compte le nouveau nœud (et non plus les caractères espace et U). Dans l exemple précédent l occurrence la plus faible est celle de b et celle du nouveau nœud (on aurait pu prendre aussi a ou e puisque leur valeur est 2 aussi, cela revient au même à la fin).

3 Figure 3 : Création d un autre nouveau nœud IMPORTANT : Dans toute la suite du TP, on appellera «une feuille» de l arbre les éléments qui sont en bout de l arbre (les caractères). On appellera un nœud les éléments regroupant deux feuilles (ou deux nœuds). Figure 4 : Création complète de l'arbre de Huffman Avec d'autres choix, on peut obtenir des arbres différents, mais l'algorithme fonctionne avec tout choix respectant la construction ci-dessus. À partir de l'arbre, on construit le code d'un caractère en lisant le chemin qui va de la racine au caractère. Un pas à gauche étant lu comme 0 et un pas à droite comme 1. Figure 5 : Arbre de Huffman avec le codage des caractères On lit le code des caractères en descendant depuis le haut jusqu au caractère.

4 Figure 6 : Code binaire de chaque caractère Dans l'exemple précédent, on obtient la suite de bits pour le codage du mot «Une banane». On peut voir que ce codage vérifie toujours les propriétés a) à d), et permet donc la compression et la décompression. Avec cet algorithme, le décompresseur doit connaître les codes construits par le compresseur. Lors de la compression, le compresseur écrira donc ces codes en début de fichier compressé, sous un format à définir, connu du compresseur et du décompresseur. Le fichier compressé aura donc deux parties disjointes : Une première partie permettant au décompresseur de retrouver le code de chaque caractère; Une seconde partie contenant la suite des codes des caractères du fichier à compresser. Attention, le décompresseur doit toujours pouvoir trouver la séparation entre ces deux parties. Aussi, vous pouvez toujours vérifier le code générer par votre algorithme en vérifiant que le code générer pour coder un caractère ne doit pas ressembler au début d un code d un autre caractère. 3. Travail demandé 3.1. Première partie : Occurrences des caractères L objectif est de travailler avec des fichiers (qui par la suite seront les fichiers à compresser). Il faut donc que nous maitrisions les fonctions de manipulation de fichier. Q1. Réaliser un programme qui ouvre un fichier texte et qui affiche une partie du contenu à l écran. (Utiliser la fonction fread()). Q2. Réaliser un programme qui ouvre un fichier texte et qui affiche la totalité du contenu du fichier à l écran. Vous ferez une lecture grâce à la fonction fgetc( ) jusqu'à ce que vous rencontriez le caractères de fin de fichier (EOF=End Of File). Nous nous intéressons au comptage des occurrences des caractères présents dans le fichier texte. Pour cela nous utiliserons un tableau de caractère appelé tab_caractere[256]. Ce tableau comporte 256 éléments. Dans chaque case de ce tableau, nous rentrerons le nombre d occurrence du caractère dont le code ASCII est donné par l index de tab_caractère. Exemple : Le code ASCII du a est 97. tab_caractere[97] comportera donc le nombre d occurrence du caractère a. Q3. Coder une fonction dont le prototype est [ void occurence(file* file, int tab[256]) ]. Cette fonction comptera les occurrences des caractères du fichier file, et stockera les

5 occurrences dans le tableau tab passé en paramètre. Afficher à l écran une partie du tableau pour vérifier le fonctionnement Seconde partie : Réalisation de l arbre de Huffman Pour chaque caractère (ou nœud de l arbre), nous allons créer une structure commune qui nous permettra de créer l arbre et de créer le code. Nous avons appelé cette structure «nœud» mais en réalité elle sera aussi utilisée pour les feuilles de l arbre. La structure est donc définie comme suit : 1. struct noeud{ 2. unsigned char c; /* Caractère initial*/ 3. unsigned int occurence; /* Nombre d'occurrences dans le fichier */ 4. int code; /* Codage dans l'arbre */ 5. int bits; /* Nombre de bits sur lesquels est codée le caractère */ 6. struct noeud *gauche, *droite; /* Lien vers les nœuds suivants */ 7. }; La seule différence entre un nœud et une feuille, est que pour une feuille, les pointeurs vers les nœuds suivant sont NULL. C est de cette façon que nous les distinguerons. Q4. Réaliser une boucle dans votre programme afin de créer dynamiquement une structure nœud pour chacun des caractères contenu dans le fichier. Vous testerez votre programme en affichant le contenu du champ c caractère et occurrence de chacune des structures créées. Chacune de ces structures seront réservées en mémoire par la fonction malloc(). De plus, afin de conserver l ensemble des structures créées, nous sauvegarderons les pointeurs sur ces structures nœud (*) dans le tableau suivant : [struct noeud* arbre_huffman[256] ] Explications complémentaires : On doit donc créer pour chacun des caractères de notre tableau tab_caractere[256] une structure nœud comme suit : c= Occurrence=1 c= U Occurrence=1 c= b Occurrence=1 c= n Occurrence=3 c= a Occurrence=2 c= e Occurrence=2

6 Afin de conserver les références sur chacune des structures créées, il faut que nous conservions l adresse de ces structures. Nous allons donc les conserver dans un tableau appelé : [ * arbre_huffman[256] ] Ce tableau Struct nœud* arbre_huffman[256] aura donc le contenu suivant : [0] Adresse de la structure «nœud» du caractère [1] Adresse de la structure«nœud» du caractère U [2] Adresse de la structure «nœud»du caractère b [ ] [ ] [5] Adresse de la structure «nœud»du caractère e Q5. Réalisez exactement la même chose mais cette fois ci en faisant appel à une fonction dont le prototype est le suivant : [ struct noeud* creer_feuille(int* tab, int index )] Nous allons maintenant faire apparaître des nouveaux nœuds dans l arbre comme préciser dans la Figure 2. Q6. En dehors du contexte de cet algorithme de compression, réaliser une fonction pouvant chercher dans un tableau les deux entiers les plus petits. Exemple : int tab[5]={6,0,4,2,1} >>> Le premier entier le plus petit est 0 à l index 1. >>> Le second entier le plus petit est 1 à l index 4. Note : Une façon simple de rechercher les deux entiers les plus petits est de trier le tableau et de récupérer les valeurs à l index 0 et 1. Une fois que cette fonction est validée, vous pouvez parcourir votre tableau de Huffman [struct noeud* arbre_huffman[256] ] afin de rechercher les nœuds comportant la plus petite occurrence. Dès lors que vous avez trouvé ces deux nœuds, vous aller créer un nouveau nœud dont la valeur d occurrence vaut la somme des deux nœuds d origine comme préciser dans la Figure 2. Q7. Réaliser la fonction [ void creer_noeud(struct noeud* tab[], int taille) ] qui réalisera la recherche des plus petites occurrences, fera la création du nouveau nœud et le sauvegardera dans le même tableau de Huffman. Note : il y a deux emplacements possibles pour le nouveau nœud. «!» est le nouveau nœud.

7 Figure 7 : Création du tableau de Huffman avec un nouveau nœud A la fin de la création de l arbre, vous devez obtenir une seule référence (pointeur sur structure) qui est celle du haut de l arbre binaire, et qui possède dans les champs «droite» et «gauche» les références des deux nœuds suivant (qui eux même possèdent deux références des deux nœuds suivants, etc, etc ) 3.3. Troisième partie : Création du code En parcourant l arbre binaire depuis le haut de l arbre, nous allons créer les codes comme nous l avons exposé à la Figure 5. La méthode pour le parcours de l arbre de la racine jusqu au feuille est donné par le code C suivant. Il s agit d une fonction récursive, c'est-à-dire qu elle s appelle elle-même : niveau : nombre de bit du code de chaque caractère element : un nœud code : code du caractère 1. void creer_code(struct noeud* element,int code,int niveau){ 2. //On est sur une feuille 3. if(element->droite==null && element->gauche==null){ 4. element->bits=niveau; 5. element->code=code;

8 6. printf("\n %c\t %d\t",element->c,element->occurence); 7. } 8. else{ 9. //On va a droite (on injecte un 0 à droite) 10. creer_code(element->droite,code<<1,niveau+1); // On va a gauche (On injecte un 1 à droite) 13. creer_code(element->gauche,(code<<1)+1,niveau+1); 14. } 15. } Q8. Réaliser la création du code de votre arbre binaire Q9. Dans la fonction créer code, lorsque vous êtes dans une feuille et que vous avez trouvé le code correspondant, faites appel à une fonction [ void affichage_code(int nbr_bits, int codage) ] qui permettra d afficher le code du caractère sous forme binaire. int nbr_bits : Correspond au nombre de bits du code ( champ bit de la structure) int codage : Correspond au code (champ code de la structure) Dans notre exemple nous aurons l affichage suivant : Caractere Code : 0000 Caractere U Code : 0001 Caractere b Code : 001 Caractere n Code : 01 etc La compression va maintenant pouvoir avoir lieu. Pour cela, nous allons modifié un peu la fonction créer_code() afin de sauvegarder toutes les liens (pointeur) vers les structures «noeud» des caractères existants dans le fichier. Ceci sera très similaire au tableau tab_caractere du début (int tab_caractere[256]). Nous conservons donc le pointeur sur la structure de chacun des caractères du fichier dans le tableau : Struct nœud * alphabet[256] Le positionnement dans ce tableau sera fait de la même façon que pour tab_caractere, c'est-àdire : Le code ASCII du a est 97. alphabet[97] comportera donc le pointeur vers la structure nœud du caractère «a». On aura donc directement accès au code de «a» et au nombre de bit du code par : alphabet[97]->code ; alphabet[97]->bits ; 3.4. Quatrième partie : Compression Le fichier final devra posséder 2 parties :

9 Une partie «entête» possédant le nombre de feuilles différentes (nombre de caractères différents) de votre fichier, et la structure «alphabet» correspondant à chacun de ces caractères. Une partie «contenu» possédant le code compressé des caractères du fichier. Q10. Réaliser une entête dans votre fichier et faite en la relecture immédiate. Grâce à cette entête le logiciel de décompression pourra prendre connaissance des caractères présent dans le fichier, et pour chacun d entre eux connaître son code. Note : Entre la création de l entête, et sa relecture, vous pouvez effacer le tableau * alphabet[256]. En effet, l objectif même de la relecture est justement de recréer ce tableau sans en avoir la connaissance au préalable. Q11. Ecrire l ensemble des codes correspondant à chaque caractère du fichier d origine les uns à la suite des autres Cinquième partie : Décompression L objectif est d une part de recréer le tableau * alphabet[256] (déjà fait). D autre part il nous faut recréer le tableau de Huffman afin de décoder les bits du fichier compresser. Le travail que nous avons effectué au début de l algorithme était : Il nous faut maintenant réaliser le travail inverse. Grâce à l arbre reconstitué, lorsque nous allons lire chacun des bits du fichier compressé, nous descendrons dans les nœuds de l arbre, jusqu'à ce que nous trouvions une feuille (un nœud avec des valeurs NULL pour les pointeurs droite et gauche).

10 Q12. Réaliser la création «inverse» de l arbre de Huffman depuis le tableau * alphabet[256]. Q13. Parcourir votre arbre pour chacun des bits lus et afficher la valeur du caractère décompressé. BON COURAGE

Langage C/C++ TD 3-4 : Création dynamique d objets. Hubert Godfroy. 27 novembre 2014

Langage C/C++ TD 3-4 : Création dynamique d objets. Hubert Godfroy. 27 novembre 2014 Langage C/C++ TD 3-4 : Création dynamique d objets Hubert Godfroy 7 novembre 014 1 Tableaux Question 1 : Écrire une fonction prenant un paramètre n et créant un tableau de taille n (contenant des entiers).

Plus en détail

C12. Les structures arborescentes. Août 2006

C12. Les structures arborescentes. Août 2006 Les structures arborescentes Août 2006 Objectifs du C12 Connaître le principe de la structure d arbre binaire Connaître les détails d implémentation de la structure d arbre binaire de recherche Les structures

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

TP 8 : Arbres binaires de recherche

TP 8 : Arbres binaires de recherche TP 8 : Arbres binaires de recherche Semaine du 17 Mars 2008 Exercice 1 Dénir une structure struct noeud_s permettant de coder un n ud d'un arbre binaire contenant une valeur entière. Ajouter des typedef

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

Arbres binaires et codage de Huffman

Arbres binaires et codage de Huffman MP Option Informatique Premier TP Caml Jeudi 8 octobre 2009 Arbres baires et codage de Huffman 1 Arbres baires Soit E un ensemble non vide. On défit la notion d arbre baire étiqueté (aux feuilles) par

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

Structures de données non linéaires

Structures de données non linéaires Structures de données non linéaires I. Graphes Définition Un graphe (simple) orienté G est un couple (S, A), où : S est un ensemble dont les éléments sont appelés les sommets. A est un ensemble de couples

Plus en détail

Algorithmique P2. HeapSort et files de priorité Ulg, 2009-2010 Renaud Dumont

Algorithmique P2. HeapSort et files de priorité Ulg, 2009-2010 Renaud Dumont Algorithmique P2 HeapSort et files de priorité Ulg, 2009-2010 Renaud Dumont Structure de tas - arbre Un tas est une structure de données qui Permet un nouveau type de tri (Tri par tas) Permet l'implémentation

Plus en détail

COMPRESSION/DECOMPRESSION D UNE IMAGE BINAIRE

COMPRESSION/DECOMPRESSION D UNE IMAGE BINAIRE Le 29 novembre 2013, Rapport projet TS114 COMPRESSION/DECOMPRESSION D UNE IMAGE BINAIRE Par Marc BELLINGER et Antoine BINON. 2eme année Télécommunications. 1 Introduction : Le but de ce projet est d implémenter

Plus en détail

TS214 - Compression/Décompression d une image binaire

TS214 - Compression/Décompression d une image binaire Filière Télécommunications, 2 ème année TS214 - Compression/Décompression d une image binaire De nombreux télécopieurs utilisent la recommandation T.4 Groupe 3 de l International Telecommunications Union

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

PROJET INFORMATIQUE RECHERCHE DE SOUS-CHAÎNE DE CARACTERES

PROJET INFORMATIQUE RECHERCHE DE SOUS-CHAÎNE DE CARACTERES PROJET INFORMATIQUE RECHERCHE DE SOUS-CHAÎNE DE CARACTERES I-Présentation Un algorithme de recherche de sous-chaine est un type d'algorithme de recherche qui a pour objectif de trouver une chaîne de caractères

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

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

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

Plus en détail

RECURSIVITE ARBRES BINAIRES

RECURSIVITE ARBRES BINAIRES RECURSIVITE ARBRES BINAIRES Insertion, Parcours pré, post et in ordre, Recherche, Suppression. Ch. PAUL Algorithmique Arbres binaires 1 ARBRE BINAIRE DEFINITION RECURSIVE Les arbres binaires sont des arbres

Plus en détail

Complément à un : addition, signes opposés. Complément à un : addition, signes opposés

Complément à un : addition, signes opposés. Complément à un : addition, signes opposés Complément à un : addition, signes opposés Soient p et q deux entiers de signes opposés. Leur somme est toujours représentable pour la taille de mot mémoire fixée car min(p, q) < p + q < max(p, q) Exemple

Plus en détail

Formats d images. 1 Introduction

Formats d images. 1 Introduction Formats d images 1 Introduction Lorsque nous utilisons un ordinateur ou un smartphone l écran constitue un élément principal de l interaction avec la machine. Les images sont donc au cœur de l utilisation

Plus en détail

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

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

Plus en détail

Représentation de l information en binaire

Représentation de l information en binaire Représentation de l information en binaire Les ordinateurs sont capables d effectuer de nombreuses opérations sur de nombreux types de contenus (images, vidéos, textes, sons,...). Cependant, quel que soit

Plus en détail

Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101. Travail pratique #2

Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101. Travail pratique #2 Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101 Danny Dubé Hiver 2014 Version : 11 avril Questions Travail pratique #2 Traduction orientée-syntaxe

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

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

UV Théorie de l Information. Codes à longueur variable

UV Théorie de l Information. Codes à longueur variable Cours n 5 : UV Théorie de l Information Compression de l information : Codage de source sans distorsion Ex 1 : Code de Shannon Fano Ex 2 : Code de Huffman Ex 3 : Codage par plage Ex 4 : Codage de Lempel

Plus en détail

Mini-Projet : Tournoi de Dames

Mini-Projet : Tournoi de Dames Mini-Projet : Tournoi de Dames L objectif du projet est de programmer un jeu de dames de façon à ce que votre programme puisse jouer une partie de dames avec les programmes des autres étudiants. 1 Organisation

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

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

Arbres Binaire. PSI DAKHLA Prof Youssef El marzak. 1 Prof Youssef Elmarzak

Arbres Binaire. PSI DAKHLA Prof Youssef El marzak. 1 Prof Youssef Elmarzak Arbres Binaire PSI DAKHLA Prof Youssef El marzak 1 Prof Youssef Elmarzak 1.introduction: Les arbre sont très utilisées en informatique, d une part parce que les informations sont souvent hiérarchisées,

Plus en détail

Structures de données, IMA S6

Structures de données, IMA S6 Structures de données, IMA S6 Arbres Binaires d après un cours de N. Devésa, Polytech Lille. Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@polytech-lille.fr Université Lille 1 - Polytech

Plus en détail

Tableaux (introduction) et types de base

Tableaux (introduction) et types de base Tableaux (introduction) et types de base A. Motivation..................................................... 4 B. Les tableaux.................................................... 5 C. Construction des tableaux.......................................

Plus en détail

THÉORIE DE L'INFORMATION : RAPPELS

THÉORIE DE L'INFORMATION : RAPPELS THÉORIE DE L'INFORMATION : RAPPELS 1920 : premières tentatives de définition de mesure de l'information à partir de 1948 : travaux de Shannon Théorie de l'information discipline fondamentale qui s'applique

Plus en détail

Systèmes Informatiques TD 3: langage C opérations élémentaires

Systèmes Informatiques TD 3: langage C opérations élémentaires Systèmes Informatiques TD 3: langage C opérations élémentaires P. Bakowski bako@ieee.org Opérateurs logiques/arithmétiques Le langage C offre une liste importante d opérateurs logiques et arithmétiques.

Plus en détail

1.1 L EXPLORATEUR WINDOWS

1.1 L EXPLORATEUR WINDOWS Gérer les fichiers et les dossiers Cette partie du T.P. a pour objectifs de vous familiariser avec les méthodes pour copier, déplacer, effacer, renommer des dossiers et des fichiers. 1.1 L EXPLORATEUR

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

Cours d Algorithmique et Complexité

Cours d Algorithmique et Complexité Cours d Algorithmique et Complexité Structures de données (2e suite) Catalin Dima Arbres binaires de recherche Propriété de base des arbres binaires de recherche Soit x un noeud de l arbre. Alors : 1.

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

2012/2013 Le codage en informatique

2012/2013 Le codage en informatique 2012/2013 Le codage en informatique Stéphane Fossé/ Marc Gyr Lycée Felix Faure Beauvais 2012/2013 INTRODUCTION Les appareils numériques que nous utilisons tous les jours ont tous un point commun : 2 chiffres

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

Recherche dans un tableau

Recherche 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

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION Licence STS Université Claude Bernard Lyon I LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION 1 COURS 7 : Structures et Fichiers OBJECTIFS DE LA SÉANCE Deux notions abordées dans ce cours Celle

Plus en détail

T.P. Être efficace avec un ordinateur 05/12/03

T.P. Être efficace avec un ordinateur 05/12/03 1. Paramétrer son environnement sous Windows XP 1.1 LE BUREAU Icône de votre dossier personnel Mes documents Icône Poste de travail Bureau Icône Corbeille Menu démarrer Barre d outils : lancement rapide

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

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

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

Manipulations binaires en C++

Manipulations binaires en C++ Manipulations binaires en C++ Tous les exercices devront être résolus sans utiliser les opérateurs *, / et % Rappels En informatique, les nombres sont stockés sous forme binaire. Même si ce n'est pas nécessaire,

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE

EPREUVE OPTIONNELLE d INFORMATIQUE EPREUVE OPTIONNELLE d INFORMATIQUE A) QCM Les réponses au QCM doivent être portées directement sur la feuille de sujet de QCM. Ne pas omettre de faire figurer votre numéro de candidat sur cette feuille

Plus en détail

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

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

Plus en détail

Rappels Entrées -Sorties

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

Plus en détail

Arbres ordonnés, binaires, tassés, FAP, tri par FAP, tas, tri par tas

Arbres ordonnés, binaires, tassés, FAP, tri par FAP, tas, tri par tas Arbres ordonnés, binaires, tassés, FAP, tri par FAP, tas, tri par tas 1. Arbres ordonnés 1.1. Arbres ordonnés (Arbres O) On considère des arbres dont les nœuds sont étiquetés sur un ensemble muni d'un

Plus en détail

Proposition d activité utilisant l application. Tripatouille. (http://www.malgouyres.fr/tripatouille/)

Proposition d activité utilisant l application. Tripatouille. (http://www.malgouyres.fr/tripatouille/) IREM Clermont-Ferrand Algorithmique au lycée Malika More malika.more@u-clermont1.fr 28 janvier 2011 Proposition d activité utilisant l application Tripatouille (http://www.malgouyres.fr/tripatouille/)

Plus en détail

UEO11 Cours/TDn 2 Algorithmique : bases - 2007-2008. 3- Algorithmique...1 3.1 Définition : algorithmique...1. Critère algorithmique élémentaire

UEO11 Cours/TDn 2 Algorithmique : bases - 2007-2008. 3- Algorithmique...1 3.1 Définition : algorithmique...1. Critère algorithmique élémentaire UEO11 Cours/TDn 2 Algorithmique : bases - 2007-2008 Table des matières 3- Algorithmique...1 3.1 Définition : algorithmique...1 Critère algorithmique élémentaire...1 3.2 De l algorithme au programme...2

Plus en détail

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/2011. 1.1 Présentation. 1.2 Ressources

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/2011. 1.1 Présentation. 1.2 Ressources Master Maths Finances 2010/2011 Data Mining janvier 2011 RapidMiner 1 Introduction 1.1 Présentation RapidMiner est un logiciel open source et gratuit dédié au data mining. Il contient de nombreux outils

Plus en détail

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

Cours 7 : fonctions recursives, arithmétique binaire, flottants 1

Cours 7 : fonctions recursives, arithmétique binaire, flottants 1 Cours 7 : fonctions recursives, arithmétique binaire, flottants 1 Les types énumérés On peut aussi définir des types qui ont un nombre fini de valeurs (ex: jours de la semaine, couleurs primaires, etc.)

Plus en détail

Travaux dirigés n o 6

Travaux dirigés n o 6 Travaux dirigés n o 6 Lycée Kléber MPSI, Option Info 2014/2015 Exercice 1 (Indexation d un arbre binaire) Ecrire une fonction Caml indexation : ( f, n) arbre_binaire -> (string,string) arbre_binaire qui

Plus en détail

BAZIN Danil et PRIEZ Jean-Baptiste. LEX & YACC : Calculatrice Évoluée

BAZIN Danil et PRIEZ Jean-Baptiste. LEX & YACC : Calculatrice Évoluée BAZIN Danil et PRIEZ Jean-Baptiste LEX & YACC : Calculatrice Évoluée Table des matières 1 Introduction 3 2 Description 4 3 La grammaire utilisée 6 4 Lexèmes et FLEX 8 5 Analyse syntaxique et YACC 8 5.1

Plus en détail

Représentation des fonctions booléennes

Représentation des fonctions booléennes Représentation des fonctions booléennes Épreuve pratique d algorithmique et de programmation Juillet 2003 Ce problème est consacré à l étude de deux représentations des fonctions booléennes de N variables

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

Architecture des ordinateurs TP 3

Architecture des ordinateurs TP 3 Architecture des ordinateurs ESIPE - IR1 TP 3 Objectif de cette séance L objectif de cette séance est d apprendre à utiliser la pile et à écrire des fonctions en assembleur En particulier, nous verrons

Plus en détail

Chapitre 3 Structures de données linéaires : listes, piles et files

Chapitre 3 Structures de données linéaires : listes, piles et files Chapitre 3 Structures de données linéaires : listes, piles et files 1. Introduction Le but de ce chapitre est de décrire des représentations des structures de données de base telles les listes en général

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

chapitre 4 Nombres de Catalan

chapitre 4 Nombres de Catalan chapitre 4 Nombres de Catalan I Dénitions Dénition 1 La suite de Catalan (C n ) n est la suite dénie par C 0 = 1 et, pour tout n N, C n+1 = C k C n k. Exemple 2 On trouve rapidement C 0 = 1, C 1 = 1, C

Plus en détail

Codage de l'information

Codage de l'information Organisation des ordinateurs et assembleur Codage de l information Chapitre 3 Codage de l'information Les cellules de mémoire ne contiennent pas vraiment des valeurs décimales : elles contiennent en fait

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

Informatique Générale

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

Plus en détail

Rapport du Jury du Concours 2010 Épreuve Pratique d Algorithmique et de Programmation (EPAP)

Rapport du Jury du Concours 2010 Épreuve Pratique d Algorithmique et de Programmation (EPAP) Rapport du Jury du Concours 2010 Épreuve Pratique d Algorithmique et de Programmation (EPAP) Loris Marchal, Guillaume Melquion, Frédéric Tronel 21 juin 2011 Remarques générales à propos de l épreuve Organisation

Plus en détail

Initiation aux algorithmes des arbres binaires

Initiation aux algorithmes des arbres binaires Initiation aux algorithmes des arbres binaires Plan I. Les arbres biniaires I. Définition II. Représentation graphique d un arbre III. Terminologie IV. Représentation en mémoire des arbres binaires V.

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

TIC. Tout d abord. Objectifs. L information et l ordinateur. TC IUT Montpellier

TIC. Tout d abord. Objectifs. L information et l ordinateur. TC IUT Montpellier Tout d abord TIC TC IUT Montpellier Nancy Rodriguez Destruel Dans la salle de cours (et partout ailleurs ) : Ponctualité et assiduité exigées Ne pas manger, ni boire, ni dormir, ni travailler à autre chose

Plus en détail

Niveau 2. Atelier d'initiation à l'ordinateur et à Windows ... xfondation de la Bibliothèque Memphrémagog inc. Magog (Québec) J1X 2E7 Tél.

Niveau 2. Atelier d'initiation à l'ordinateur et à Windows ... xfondation de la Bibliothèque Memphrémagog inc. Magog (Québec) J1X 2E7 Tél. xfondation de la Bibliothèque Memphrémagog inc. Magog (Québec) J1X 2E7 Tél. : 843-1330. Atelier d'initiation à l'ordinateur et à Windows Niveau 2.......... JB 15 septembre 2008 ( Canevas original : Marcel

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

Plus en détail

Gestion de la mémoire

Gestion de la mémoire Gestion de la mémoire ENSIIE : Programmation avancée 1/20 Langages et mémoire Différence principale entre langages de haut niveau : OCaml, Java, C# langages de bas niveau : C, C++ : Gestion de la mémoire

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche Chapitre 1 Arbres binaires de recherche 1 Les arbre sont très utilisés en informatique, d une part parce que les informations sont souvent hiérarchisées, et peuvent être représentées naturellement sous

Plus en détail

fichiers Exemple introductif : stockage de photos numériques

fichiers Exemple introductif : stockage de photos numériques b- La Gestion des données Parmi les matériels dont il a la charge, le système d exploitation s occupe des périphériques de stockage. Il s assure, entre autres, de leur bon fonctionnement mais il doit être

Plus en détail

Question 1 : Sur votre compte-rendu, indiquer les réponses pour les positions a et b des interrupteurs.

Question 1 : Sur votre compte-rendu, indiquer les réponses pour les positions a et b des interrupteurs. 2 nde MPI Le Binaire 1 / 8 I) Le codage 1) Présentation du L informatique utilise des courants électriques, des aimantations, des rayons lumineux... Chacun de ces phénomènes met en jeu deux états possibles

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 La récursivité 2 Définition Une procédure ou une fonction est dite récursive si elle fait appel à elle même, directement ou indirectement. 3 Exemple : Réalisation

Plus en détail

Julien Rosener (julien.rosener@digital-scratch.org) Le contrôle CRC. 17/05/2004 : Rajout des références

Julien Rosener (julien.rosener@digital-scratch.org) Le contrôle CRC. 17/05/2004 : Rajout des références Historique des versions Le contrôle CRC 03/05/2004 : Création du document 17/05/2004 : Rajout des références Sommaire 1 Introduction... 1 2 Rappel sur l'arithmétique sur les nombres binaire...2 2.1 L'opérateur

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

La mémoire. Un ordinateur. L'octet. Le bit

La mémoire. Un ordinateur. L'octet. Le bit Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve

Plus en détail

Cours 1 : Qu est-ce que la programmation?

Cours 1 : Qu est-ce que la programmation? 1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre

Plus en détail

Département Informatique Programmation objet. Cours n 8. Structures de données partie 3 Arbres binaires de calcul

Département Informatique Programmation objet. Cours n 8. Structures de données partie 3 Arbres binaires de calcul Programmation objet Cours n 8 Structures de données partie 3 Arbres binaires de calcul 1 Arbre binaire de calcul Nous avons vu l'utilisation des arbres binaires en tant que structure de données optimisée

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

Projet Matlab : un logiciel de cryptage

Projet Matlab : un logiciel de cryptage Projet Matlab : un logiciel de cryptage La stéganographie (du grec steganos : couvert et graphein : écriture) consiste à dissimuler une information au sein d'une autre à caractère anodin, de sorte que

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

Windows 7 - Dossiers et fichiers

Windows 7 - Dossiers et fichiers Windows 7 - Dossiers et fichiers Explorez votre PC : dossiers et fichiers Tous les fichiers nécessaires au fonctionnement de votre ordinateur, qu il s agisse de ceux de Windows, des logiciels installés

Plus en détail

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

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

Plus en détail

Transmission d informations sur le réseau électrique

Transmission d informations sur le réseau électrique Transmission d informations sur le réseau électrique Introduction Remarques Toutes les questions en italique devront être préparées par écrit avant la séance du TP. Les préparations seront ramassées en

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

IUT de Colmar - Département RT 1ière année. Numération

IUT de Colmar - Département RT 1ière année. Numération IUT de Colmar - Département RT 1ière année. Numération 1 Laurent MURA. SOMMAIRE 1. Les différents systèmes 2. Les différentes conversions 3. Quelques systèmes de codage 4. L arithmétique binaire 2 IUT

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers 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étail

Introduction. Les performances d une machine sont liées au: 1. nombre d instructions. 2. temps de cycle horloge

Introduction. Les performances d une machine sont liées au: 1. nombre d instructions. 2. temps de cycle horloge Introduction Les performances d une machine sont liées au: 1. nombre d instructions 2. temps de cycle horloge 3. nombre de cycle horloge par instructions. C est: le compilateur et l architecture du jeu

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

Héritage en java : Calculatrice SDC

Héritage en java : Calculatrice SDC Programmation orientée objet L3 MIAGE Héritage en java : Calculatrice SDC Travail à rendre : le code complet du projet SDC sous forme d une archive tar.gz. L archive comportera trois répertoires : un répertoire

Plus en détail

9. Implantations des arbres binaires par un tableau: les monceaux (les tas) - heap en anglais.

9. Implantations des arbres binaires par un tableau: les monceaux (les tas) - heap en anglais. 9. Implantations des arbres binaires par un tableau: les monceaux (les tas) - heap en anglais. Définition : Un monceau (tas) est un arbre binaire complet dans lequel il existe un ordre entre un nœud et

Plus en détail

Chaînes de caractères. Enregistrement. TCH010-Informatique

Chaînes de caractères. Enregistrement. TCH010-Informatique Chaînes de caractères Enregistrement Exemple 1: Écrire un programme de conjugaison des verbes en "er". Le programme lit un verbe régulier en "er" au clavier et en affiche la conjugaison au présent de l'indicatif.

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

Partie 3. Gilles Lebrun (gilles.lebrun@unicaen.fr)

Partie 3. Gilles Lebrun (gilles.lebrun@unicaen.fr) Partie 3 Gilles Lebrun (gilles.lebrun@unicaen.fr) Les arbres binaires Définition : C est une structure arborescente ou hiérarchique ou récursive Chaque élément (nœud) constituant la structure de l arbre

Plus en détail

Chapitre 1 I:\ Soyez courageux!

Chapitre 1 I:\ Soyez courageux! Chapitre 1 I:\ Soyez courageux! Pour ne rien vous cacher, le langage d'assembleur (souvent désigné sous le terme "Assembleur", bien que ce soit un abus de langage, puisque "Assembleur" désigne le logiciel

Plus en détail

Les chaînes de caractères

Les chaînes de caractères Les chaînes de caractères Comme déjà précisé dans les premiers chapitres de ce cours, il n existe pas de type chaîne de caractères prédéfinit en C. Il existe deux façons pour déclarer une chaîne de caractères

Plus en détail