Chapitre 9 Structure et données

Documents pareils
Chapitre 10 Arithmétique réelle

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

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

as Architecture des Systèmes d Information

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

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

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

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

Plan du cours Cours théoriques. 29 septembre 2014

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

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

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Python - introduction à la programmation et calcul scientifique

Structure fonctionnelle d un SGBD

Système binaire. Algèbre booléenne

KL5121. Pour activer des sorties en fonction de la position d'un codeur

Conception de circuits numériques et architecture des ordinateurs

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Le langage C. Séance n 4

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

Notions fondamentales du langage C# Version 1.0

Logiciel de Base. I. Représentation des nombres

Cours 1 : Qu est-ce que la programmation?

Représentation des Nombres

Cours 1: Java et les objets

Bases de Données. Plan

Administration de Bases de Données : Optimisation

Introduction à MATLAB R

Introduction aux SGBDR

Rappels d architecture

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

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

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


Informatique Générale

Chap III : Les tableaux

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

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

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

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Cours d Informatique

Inscriptions au trimestre d automne 2012 : quelques observations

Premiers Pas en Programmation Objet : les Classes et les Objets

Mise en oeuvre d'une base de données mono-utilisateur avec SQLite

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

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

PG208, Projet n 3 : Serveur HTTP évolué

Tp 1 correction. Structures de données (IF2)

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

Entraînement au concours ACM-ICPC

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Licence Sciences et Technologies Examen janvier 2010

Traduction des Langages : Le Compilateur Micro Java

Programmer en JAVA. par Tama

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

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

PANORAMA DES MENACES ET RISQUES POUR LE SI

4D v11 SQL Release 5 (11.5) ADDENDUM

Sélection du contrôleur

Cours Informatique Master STEP

INITIATION AU LANGAGE JAVA

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

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Prise en main rapide

TP 1. Prise en main du langage Python

Cabri et le programme de géométrie au secondaire au Québec

Cours Informatique 1. Monsieur SADOUNI Salheddine

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

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

Dérivation : Résumé de cours et méthodes

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Architecture matérielle des systèmes informatiques

Bases de données documentaires et distribuées Cours NFE04

Chapitre 1 I:\ Soyez courageux!

Introduction aux Bases de Données Relationnelles Conclusion - 1

INF 4420: Sécurité Informatique Cryptographie II

WEA Un Gérant d'objets Persistants pour des environnements distribués

Java DataBaseConnectivity

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

Routage AODV. Languignon - Mathe - Palancher - Pierdet - Robache. 20 décembre Une implémentation de la RFC3561

CM2 L architecture MIPS32


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

Algorithmique et Programmation, IMA

TP, première séquence d exercices.

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

IT203 : Systèmes de gestion de bases de données. A. Zemmari zemmari@labri.fr

Sécurité et Firewall

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

Fiche Technique. MAJ le30/03/2011

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90.

Du Datacenter au Cloud Quels challenges? Quelles solutions? Christophe Dubos Architecte Microsoft

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

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

Transcription:

Chapitre 9 Structure et données Jean Privat Université du Québec à Montréal INF2170 Organisation des ordinateurs et assembleur Automne 2013 Jean Privat (UQAM) 09 Structures et données INF2170 Automne 2013 1 / 21

Plan 1 Données 2 Structures 3 Tas et allocation dynamique 4 Listes Jean Privat (UQAM) 09 Structures et données INF2170 Automne 2013 2 / 21

Plan 1 Données 2 Structures 3 Tas et allocation dynamique 4 Listes Jean Privat (UQAM) 09 Structures et données INF2170 Automne 2013 3 / 21

Données Donnés simples Entier (8 bits, 16 bits Charactères Pointeurs Flotants (pas encore) Instructions Données complexes Tableaux (dont chaînes de caractères) Tableaux à plusieurs dimentions Structures (enregistement) Objets (instances de classes) Jean Privat (UQAM) 09 Structures et données INF2170 Automne 2013 4 / 21

En assembleur Principe Tout n est que bits Le sens des tas de bits est la manipulation qui en est faite Et mes données complexes alors? Au programmeur assembleur de se débrouiller Jean Privat (UQAM) 09 Structures et données INF2170 Automne 2013 5 / 21

Plan 1 Données 2 Structures 3 Tas et allocation dynamique 4 Listes Jean Privat (UQAM) 09 Structures et données INF2170 Automne 2013 6 / 21

Structures Définiton Un agrégat de données Exemples (à peu près) Une structure C Un tuple de base de donnée Un objet Java (sans méthode) Jean Privat (UQAM) 09 Structures et données INF2170 Automne 2013 7 / 21

Structures en assembleur En mémoire Les champs en mémoire En séquence La taille de la structure vaut (au moins) la somme de la taille des éléments Accès aux champs On connaît l adresse mémoire de la structure On connaît la position relative du champ Donc, on somme Jean Privat (UQAM) 09 Structures et données INF2170 Automne 2013 8 / 21

Exemple Structure produit Un code (entier 16 bits) Un prix en cents (entier 16 bits) Un nom (pointeur vers une chaîne de caractère) Caractéristique Taille d un produit : 6 octets Position du code : +0 octets Position du prix : +2 octets Position de l adresse de la chaîne : +4 octets Jean Privat (UQAM) 09 Structures et données INF2170 Automne 2013 9 / 21

Exemple en Pep/8 Utiliser.EQUATE prcode :.EQUATE 0 ; #2d Le code p r o d u i t p r P r i x :.EQUATE 2 ; #2d Le p r i x du p r o d u i t ( en c e n t s ) prnom :.EQUATE 4 ; #2h Le nom du p r o d u i t ( cha î ne ) Utiliser l adressage indexé LDX p r P r i x, i DECO p r o d u i t, x ; A f f i c h e l e p r i x Utiliser le débogeur p r o d u i t :.BLOCK 6 ; #prcode #p r P r i x #prnom Jean Privat (UQAM) 09 Structures et données INF2170 Automne 2013 10 / 21

Exercice Sur les produits Afficher le prix d un produit initialisé Afficher un produit en entier (sous-programme) Initialiser un produit vide Initialiser un produit interactivement (sous-programme) Jean Privat (UQAM) 09 Structures et données INF2170 Automne 2013 11 / 21

Tableaux et structures Un tableau Des données concaténées Un tableau de structures Des structures concaténées Accéder à un champ C est de l arithmétique d adresse Jean Privat (UQAM) 09 Structures et données INF2170 Automne 2013 12 / 21

Plan 1 Données 2 Structures 3 Tas et allocation dynamique 4 Listes Jean Privat (UQAM) 09 Structures et données INF2170 Automne 2013 13 / 21

Tas Définition Zone mémoire réservée aux allocations dynamiques malloc, new, etc. Concrètement C est dans la mémoire Gérée par le programme Pas de gestions spécifique de l UCT Jean Privat (UQAM) 09 Structures et données INF2170 Automne 2013 14 / 21

Tas dans les langages de haut niveau Pas gérée pas le programme Gérée par bibliothèque (C) Gérée par le compilateur (C++) Gérée par la machine virtuelle/interpréteur (Java et autres) Et les détails? Cachés au programmeur Jean Privat (UQAM) 09 Structures et données INF2170 Automne 2013 15 / 21

Tas en assembleur Do It Yourself On se déclare une zone de tas On se fait un sous-programme new New Entrée A : nombre d octets à allouer Sortie X : pointeur vers la zone allouée Jean Privat (UQAM) 09 Structures et données INF2170 Automne 2013 16 / 21

Désallocation Manuelle On fait un sous-programme free Une structure permettant de savoir ce qui est libre ou pas new et free mettent à jour la structure Automatique (Ramasse-miettes) Quelque chose fait des free tout seul Les détails quand vous serez plus grands En Pep/8 Laissons tomber la désallocation Jean Privat (UQAM) 09 Structures et données INF2170 Automne 2013 17 / 21

Exercice Des tas de produits Allouer des produits dans le tas Les initialiser Les afficher Jean Privat (UQAM) 09 Structures et données INF2170 Automne 2013 18 / 21

Plan 1 Données 2 Structures 3 Tas et allocation dynamique 4 Listes Jean Privat (UQAM) 09 Structures et données INF2170 Automne 2013 19 / 21

Liste Définition Des maillons chaînés ensembles Une structure contenant l adresse de la structure suivante (voire de la précédente) Exemple c l a s s P r o d u i t { i n t code ; i n t p r i x ; S t r i n g nom ; P r o d u i t next ; } Jean Privat (UQAM) 09 Structures et données INF2170 Automne 2013 20 / 21

Exercice Des listes de produits Allouer et initialiser une liste de produits Les afficher tous mais dans l ordre inverse Afficher seulement ceux dont le prix est > 10 Jean Privat (UQAM) 09 Structures et données INF2170 Automne 2013 21 / 21