J0MS7301 : Algorithmique et Programmation Objet. Feuille d'exercices 2. Structures



Documents pareils
SYSTÈME DE GESTION DE FICHIERS

Le langage C. Séance n 4

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

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

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

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

et Programmation Objet

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

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

Architecture des Systèmes d Information Architecture des Systèmes d Information

Les structures de données. Rajae El Ouazzani

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

Le Langage De Description De Données(LDD)

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

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

RÉALISATION DE GRAPHIQUES AVEC OPENOFFICE.ORG 2.3

Conventions d écriture et outils de mise au point

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

Guide de démarrage Janvier 2012

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Cours Informatique Master STEP

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

Compte-rendu de projet de Système de gestion de base de données

MODE D'EMPLOI DE LA CALCULATRICE POUR LES COURTS SÉJOURS DANS L'ESPACE SCHENGEN


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

TP3 : Creation de tables 1 seance

I. Introduction aux fonctions : les fonctions standards

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

NOTATIONS PRÉLIMINAIRES

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Bienvenue dans notre guide de démarrage et merci d avoir choisi Easygiga pour l hébergement de votre ou vos sites Internet.

Programmation impérative

Systemes d'exploitation des ordinateurs

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

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

INITIATION A LA PROGRAMMATION

Rapidolect Les Productions de la Columelle ( ) Page 1

Bernard HAMM, Évelyne LAVOISIER

Chap III : Les tableaux

Algorithmes d'apprentissage

TP3 : Manipulation et implantation de systèmes de fichiers 1

Algorithmique, Structures de données et langage C

Feuille TD n 1 Exercices d algorithmique éléments de correction

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

Cours 14 Les fichiers

Structure fonctionnelle d un SGBD

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

(VM(t i ),Q(t i+j ),VM(t i+j ))

Créer une base de données

Recherche dans un tableau

Chapitre 2. Classes et objets

Installation d un serveur AmonEcole

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

l'ordinateur les bases

B2i Brevet Informatique. Internet. Livret de l enseignant

Correction TD Algorithmique 5.3 Pile Liste 5.3 Pile

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX

Cours Bases de données 2ème année IUT

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

1 Systèmes triphasés symétriques

Algorithmique avec Algobox

Algorithmique et Programmation, IMA

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

Structurer ses données : les tableaux. Introduction à la programmation

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)

Partie 7 : Gestion de la mémoire

LE PROBLEME DU PLUS COURT CHEMIN

TP : Gestion d une image au format PGM

Dans la série. présentés par le site FRAMASOFT

Examen Médian - 1 heure 30

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

Guide d utilisation de fonctionnalités avancées de Beyond 20/20 (application à des données départementales issues de Sit@del2)

Algorithmique et structures de données I

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

Automatisation d'une Facture 4. Liste Déroulante Remises Case à cocher Calculs

Boîtier Externe USB 3.0 pour Disque Dur 2,5 SATA III avec soutien UASP

SOMMAIRE. Travailler avec les requêtes... 3

CONFIGURER VOTRE HEBERGEMENT WINDOWS

Conception de circuits numériques et architecture des ordinateurs

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

Tutoriel Inscription et utilisation basique d'un blog hébergé chez Blogger.com

= constante et cette constante est a.

Algorithmes récursifs

TP PLACO. Journées Mathrice d'amiens Mars 2010

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

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

Qu'est ce que le Cloud?

Comment développer et intégrer un module à PhpMyLab?

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

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

Manuel utilisateur. des. listes de diffusion. Sympa. l'université Lille 3

Bureau Virtuel Lyon 2

Le modèle de données

CCI Génie Logiciel UFR - IMA. Objectifs du cours d'aujourd'hui. Génie Logiciel Validation par le test. Qu est-ce que tester un programme?

ARBRES BINAIRES DE RECHERCHE

REALISER UN SITE INTERNET AVEC IZISPOT SOMMAIRE

Transcription:

Master MIMSE - Spécialité 3-1ère Année J0MS7301 : Algorithmique et Programmation Objet Feuille d'exercices 2 Structures Exercice 1 : Ecrire un programme qui : dénit une structure horaire au format heures, minutes, secondes, déclare une variable du type horaire, lit un horaire dans cette variable, ache l'horaire lu. Exercice 2 : Ecrire un programme qui dénit une structure immatriculation permettant de stocker les informations d'une plaque d'immatriculation de voiture (numéro, chire, département). dénit une structure voiture permettant de gérer les informations liées à une voiture (marque, modèle, plaque d'immatricumlation). lit et ache une voiture. Exercice 3 : En reprenant les structures de l'exercice précédent, écrire un programme qui déclare, lit et ache un tableau de 3 voitures. Les pointeurs et les références Exercice 4 : int x = 0; int y = 1; int &ref1 = x; ref1 = 2; 1

cout << "x = " << x << endl; int *pt1 = &y; *pt1 = ref1; (*pt1)++; cout << "y = " << y << endl; ref1*=2; cout << "x = " << x << " -- y = " << y << endl; ref1 = y; y++; cout << "x = " << x << " -- y = " << y << endl; Analyser les résultats obtenus (s'aider d'un schéma). Exercice 5 : int x = 0; int y = 42; int * pt1 = &x; cout << *pt1 << endl; pt1++; cout << *pt1 << endl; Analyser les résultats obtenus (s'aider d'un schéma). Exercice 6 : int *tab = new int[10]; 2

int *ctab; tab[i] = i; ctab = tab; cout << *ctab << " - "; ctab++; cout << endl; cout << tab[i] << " - "; cout << endl; delete[] tab; Analyser les résultats obtenus. Exercice 7 : Ecrire un programme C++ qui alloue dynamiquement un tableau de taille n (n entré au clavier), l'initialise à 0 puis l'ache. Ne pas oublier de libérer l'espace mémoire alloué à la n du programme! Exercice 8 : Ecrire un programme en C++ qui déclare et alloue dynamiquement un tableau à deux dimensions n m de réels (n et m entrés au clavier), initialise ce tableau avec comme terme général a ij = i/j, ache le tableau. Ne pas oublier de libérer l'espace mémoire alloué à la n du programme! Exercice 9 : Ecrire un programme en C++ qui déclare et alloue dynamiquement un tableau de pointeurs sur des réels, initialise ce tableau avec comme terme général a i = i, ache le tableau. Ne pas oublier de libérer l'espace mémoire alloué à la n du programme! 3

Exercice 10 : En reprenant les structures de l'exercice 2, écrire un programme qui alloue dynamiquement un tableau de 3 voitures, lit 3 voitures et les stocke dans le tableau, et ache le tableau. Les listes chaînées Un tableau permet de stocker consécutivement en mémoire un ensemble de taille xé d'éléments. Ce stockage consécutif permet un accès direct (à l'aide des crochets) aux éléments. En revanche, il est nécéssaire de connaître la tailole de l'ensemble au moment de la création (déclaration pour un tableau statique, allocation pour un tableau dynamique) du tableau. Lorsque l'on ne connaît pas la taille de l'ensemble, une solution est l'utilisation de la structure de liste chaînée. La base d'une liste chaînée est le maillon (ou chaînon). Un maillon est une structure qui contient deux types d'attributs : l'élément que l'on veut stocker, l'adresse du maillon suivant. Une liste chaînée est caractérisée par l'adresse de son premier maillon (un pointeur sur le premier maillon). Ce dernier est égale à 0 (ou NULL) si la liste est vide. La liste chaînée est construite au fur et à mesure que l'on y ajoute des éléments. Ces éléments ne sont plus stockés de manière consécutive en mémoire. On ne peut donc plus y accéder directement en utilisant les crochets. On y accedera de manière séquentielle en partant du début de la liste et en passant itérativement aux éléments suivants. 3 9 2 6 3 Exemples de listes chaînées. Exercice 11 : Ecrire un programme en C++ qui : dénit la structure du maillon, les éléments que l'on veut stocker seront des entiers. déclare un pointeur tete sur un maillon, 4

initialise la liste à une liste vide, ajoute un premier maillon à la liste, ajoute en un second maillon (on insère le maillon entre la et le premier maillon), ajoute en un troisième maillon, ache la liste, libère tout l'espace mémoire alloué pour la liste. nouv Ajout en dans une liste chaînée. 5