Algorithmes et structures de données : TD 4

Documents pareils
Application 1- VBA : Test de comportements d'investissements

Corrigé des TD 1 à 5

Examen Médian - 1 heure 30

Algorithmique & programmation

Plan du cours Cours théoriques. 29 septembre 2014

Consigne : je remplis le tableau en tenant compte des informations de la ligne supérieure et de la colonne de gauche (droite pour les gauchers)

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Limites finies en un point

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

Cours Informatique Master STEP

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

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

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Exercice : la frontière des portefeuilles optimaux sans actif certain

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

Algorithmique et programmation : les bases (VBA) Corrigé

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

Ain Star 3x3 Inscription joueur n 1

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

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

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Création du projet : 1 sur 13

Algorithmique et Programmation, IMA

Compléments de documentation Scilab : affichage de texte et formatage de nombres

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

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

Microsoft Excel : tables de données

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

Fiche d animation n 1 : Pêle-mêle

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Travaux dirigés n 10

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

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

Programmation Visual Basic. Visite guidée d'un programme Visual Basic 6.0

CAISSE ENREGISTREUSE ELECTRONIQUE SE-G1

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Programmation Objet - Cours II

TP : Gestion d une image au format PGM

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

Compilation (INF 564)

Algorithmes et programmation en Pascal. Cours

Intégration et probabilités TD1 Espaces mesurés

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

TP JAVASCRIPT OMI4 TP5 SRC

Guide pour les transferts internationaux en Suisse

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

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

MANUEL D UTILISATION - Précis Poste de Traitement d Images 1 - Déconvolution

Un jour, une question Réponse à une problématique issue de la liste GTA *

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

UNIVERSITE DE TOULON UFR FACULTE DE DROIT REGLEMENT D EXAMEN ANNEE 2012/2017 LICENCE DROIT MENTION DROIT GENERAL

Chap III : Les tableaux

Simulation de variables aléatoires

Introduction à MATLAB R

Faites connaissance avec votre Rubik s Cube Étape 1

1.1 Codage de source et test d hypothèse

Java Licence Professionnelle CISII,

USTL - Licence ST-A 1ère année Initiation à la programmation TP 1

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

LES TYPES DE DONNÉES DU LANGAGE PASCAL

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Programmation C++ (débutant)/instructions for, while et do...while

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Intégration et probabilités TD1 Espaces mesurés Corrigé

Guide Abrégée de la programmation pour la messagerie Flash

:SPECIMEN SPECIMEN SUPPLÉMENT AU DIPLÔME (ANNEXE DESCRIPTIVE AU DIPLÔME)

Network Identity Manager mit SN-Gina Outlook Web Access

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

1. Structure d'un programme FORTRAN 95

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Programmation sous QT

Raisonnement par récurrence Suites numériques

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado

Création d installateurs pour Windows avec InnoSetup

3 Approximation de solutions d équations

MIS 102 Initiation à l Informatique

Utilisation d Hyperplanning 2011

Chapitre 7 : Intégration sur un intervalle quelconque

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

Initiation à Excel. Frédéric Gava (MCF)

L exclusion mutuelle distribuée

1 Année LMD-STSM Algorithmique et Programmation. Série de TD 2

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Comment accéder à une vision synthétique de mon activité commerciale?

Les arbres binaires de recherche

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

Relation d ordre. Manipulation des relations d ordre. Lycée Pierre de Fermat 2012/2013 Feuille d exercices

UNIVERSITE DES ANTILLES et DE LA GUYANE Campus de Fouillole BP Pointe-à-Pitre Cedex MASTER D S P. Mention : DROIT PUBLIC

1 Recherche en table par balayage

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

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

Transcription:

Université Bordeaux 2 Licence MASS/Scico 5ème semestre (2006/2007) Exercice 4.1 Types Algorithmes et structures de données : TD 4 Types - Enregistrements - Temps d un algorithme T(n) Déclarer des types qui permettent de stocker : 1. Un joueur de basket characterisé par son nom, sa date de naissance, sa nationalité, et son sexe 2. Une association de n joueurs de basket stocké dans un tableau 3. Une equipe de basket avec son nom, ses joueurs, ainsi que les points gagnés et les basket marqués et encaissés dans la saison courante. 4. Un tableau de 18 equipes de basket Exercice 4.2 Temps d exécution Je constate que la somme des n premiers nombres impairs est égale à n 2, c est à dire que 1 + 3 + 5 +... + (2n 1) = n 2. 1. Ecrire la function sommeimpairs(n : integer) : integer; qui renvoie la somme des n nombres impairs. 2. Ecrire la function carre(n : integer) : integer; qui renvoie n 2 3. Déterminer les fonctions de temps maximale ( worst case ) T 1 (n) et T 2 (n) des deux fonctions sommeimpairs et carre. 4. Faites tourner l appel de fonction resultat := sommeimpairs(3); 5. Faites tourner l appel de fonction resultat := carre(3); 6. Faites tourner l appel de fonction resultat := sommeimpairs(6); 7. Faites tourner l appel de fonction resultat := carre(6); 8. Quelle de ces deux fonctions est plus efficace? Justifiez. Exercice 4.3 Complexité 1. Considérer le tableau suivant : type t_tableau = array[1..15] of integer; 2. Ecrire la fonction function dedans(quoi : integer) : integer; qui renvoie la position dans le tableau de l élement quoi s il est dedans, et 0. 3. Faites tourner l algorithme resultat := dedans(31) avec le vecteur 1,3,3,7,8,12,17,18,18,26,29,31,40,44,46. 4. Déterminer la fonction de temps maximale ( worst case ) T(n) pour un tableau de taille n.

Exercice 4.4 Complexité 1. Vous pouvez maitenant supposer que le vecteur est trié d ordre croissant, c est à dire que vecteur[i] vecteur[j] i j. Considérer la fonction suivant : function enigme(quoi : integer, n : integer) : integer; var inf, sup, milieu : integer; var trouve : boolean; inf := 1; sup := n; trouve := FAUX; tant que (sup >=inf ET trouve = FAUX) milieu := (inf + sup) DIV 2; si (quoi = tab[milieu]) alors trouve := VRAI; si (quoi < tab[milieu]) sup := milieu -1; inf := milieu + 1; if (trouve = FAUX) result := 0; result := milieu; end 2. Faites tourner cette fonction resultat := enigme(31,15); dans un tableau avec les valeur de dessus. 3. Que fait cet algorithme? Est-ce qu il est mieux que celui dessus? Pourquoi? Avez-vous une idée de sa complexité asymptotique? Exercice 4.5 BONUS 1. Prouver par récurrence (induction) que le constat de l exercice 4.2 est correct. 2

Exercice 4.6 Puissance4 1. Déclarer un type qui permet de stocker un demier du jeu Puissance4 du type type t champ = (vide, jaune, rouge);. 2. Déclarer un type qui permet de stocker 2 joueurs avec leurs noms et leurs couleurs de pion t champ respectives. 3. Ecrire la procédure procedure initialiser; qui initialise le jeu de Puissance4 (tous les champs sont vides). 4. Ecrire la fonction function possible(var c : integer) : boolean; qui teste si un jeueur peut mettre un pion dans la colonne c. 5. Ecrire la procédure procedure poserpion(var c : integer, var couleur : t_champ); qui pose un pion de couleur couleur dans la colonne c. 6. Considérer les fonctions function maxsuiteligne(var l : integer, couleur : t_champ) : integer; max_ i := 1; tant que i<=7 faire si puissance4[l][i] = couleur alors longueur := longueur + 1; si longueur > max_longueur alors max_longueur := longueur; i := i +1; 3

end result := max_longueur; function maxsuitecolonne(var c : integer, couleur : t_champ) : integer; max_ i := 1; tant que i<=6 faire si puissance4[i][c] = couleur alors longueur := longueur + 1; si longueur > max_longueur alors max_longueur := longueur; i := i +1; result := max_longueur; end qui renvoie la longueur maximale d une suite d entrées de couleur consécutive dans une ligne l (resp. colonnes c). Ecrire la fonction function maxsuite(var couleur : t_champ) : integer; qui utilise ces deux fonctions et qui renvoie la longueur maximale d une suite d entrées de couleur consécutive dans toutes les lignes et colonnes. 7. Etant donné une fonction function maxsuitediagonales(var couleur : t_champ) : integer; qui renvoie la longueur maximale d une suite d entrées de couleur consécutive dans les diagonales, le jeu de puissance4 se résume désormais à l algorithme suivant. joueur := 1; fini := FAUX; tant que fini = FAUX faire afficher le damier faire afficher Demander au joueur quelle choix; lire la colonne du clavier dans la variable colonne; tant que possible(colonne); poserpion(colonne,joueur[i].couleur); si maxsuite(joueur[i].couleur = 4 ou maxsuitediagonales(joueur[i].couleur = 4) afficher que le joueur a gagné; fini := VRAI; 4

si joueur = 1 alors joueur = 2 joueur = 1 Exercice 4.7 BONUS 1. Prouver par récurrence (induction) que le constat de l exercice 2 est correct. 2. Ecrire la fonction function maxsuitediagonales(var couleur : t_champ) : integer; qui renvoie la longueur maximale d une suite d entrées de couleur consécutive dans les diagonales. 5