Utilitaires Tableau [tb01] - Outils

Documents pareils
alg - Classes, instances, objets [oo] Exercices résolus

C++ - Classes, instances, objets [oo] Exercices résolus

Introduction à MATLAB R

1.6- Génération de nombres aléatoires

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Algorithmes récursifs

Recherche dans un tableau

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

Algorithmique et Programmation, IMA

STAGE IREM 0- Premiers pas en Python

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

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


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

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

ÉPREUVE COMMUNE DE TIPE Partie D

L exclusion mutuelle distribuée

Chap III : Les tableaux

Algorithmique I. Algorithmique I p.1/??

Chp. 4. Minimisation d une fonction d une variable

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

TP, première séquence d exercices.

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Groupe symétrique. Chapitre II. 1 Définitions et généralités

TD3: tableaux avancées, première classe et chaînes

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

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

1 Recherche en table par balayage

Organigramme / Algorigramme Dossier élève 1 SI

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

Correction du baccalauréat ES/L Métropole 20 juin 2014

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

Taux d évolution moyen.

ARBRES BINAIRES DE RECHERCHE

Les deux points les plus proches

Quelques algorithmes simples dont l analyse n est pas si simple

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

CORRECTION EXERCICES ALGORITHME 1

Algorithmique et structures de données I

Licence Sciences et Technologies Examen janvier 2010

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

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

Logique. Plan du chapitre

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

Probabilités conditionnelles Loi binomiale

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

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

Corrigé des TD 1 à 5

Représentation des Nombres

Adama MBODJI MBODJ.SYSTEM

Algorithmique avec Algobox

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

Les tâches d un projet

LES GENERATEURS DE NOMBRES ALEATOIRES

Leçon 01 Exercices d'entraînement

Cours de Probabilités et de Statistique

Chapitre 2. Eléments pour comprendre un énoncé

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Cours de Programmation en Langage Synchrone SIGNAL. Bernard HOUSSAIS IRISA. Équipe ESPRESSO

Initiation à la Programmation en Logique avec SISCtus Prolog

Correction TD algorithmique

Initiation à LabView : Les exemples d applications :

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

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

V- Manipulations de nombres en binaire

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

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

TP 1. Prise en main du langage Python

Algorithmique et programmation : les bases (VBA) Corrigé

Coefficients binomiaux

Définition des Webservices Ordre de paiement par . Version 1.0

Cours d Algorithmique et de Langage C v 3.0

Programmation linéaire

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

Algorithmique, Structures de données et langage C

Solutions du chapitre 4

Structures algébriques

EXERCICES - ANALYSE GÉNÉRALE

Algorithme. Table des matières

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

La classification automatique de données quantitatives

DM 1 : Montre Autoquartz ETA

Ricco Rakotomalala R.R. Université Lyon 2

LES DECIMALES DE π BERNARD EGGER

Cours de Systèmes d Exploitation

Compter à Babylone. L écriture des nombres

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Plan du cours Cours théoriques. 29 septembre 2014

Plus courts chemins, programmation dynamique

BACCALAURÉAT GÉNÉRAL SESSION 2012 OBLIGATOIRE MATHÉMATIQUES. Série S. Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE

Proposition. Si G est un groupe simple d ordre 60 alors G est isomorphe à A 5.

Application 1- VBA : Test de comportements d'investissements

Probabilités Loi binomiale Exercices corrigés

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

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)

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

Résolution de systèmes linéaires par des méthodes directes

Exercices - Polynômes : corrigé. Opérations sur les polynômes

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

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Transcription:

Utilitaires Tableau [tb01] - Outils Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner Unisciel algoprog Version 9 avril 2015 Table des matières 1 Utilitaires Tableau / tb01outils1 (C++) 1 1.1 Procédure affichertab (affichage d un tableau)............... 2 1.2 Procédure afficherlntab (affichage par ligne)................ 2 1.3 Procédure copiertab (copie d un tableau).................. 2 1.4 d :....................................... 3 1.5 Fonction identiquestab (égalité de tableaux)................ 3 1.6 f :........................................ 3 1.7 Fonction sommetab (somme d un tableau)................. 3 1.8 h : prévu pour somme sioux......................... 3 1.9 Procédure initialisertab (initialisation d un tableau)............ 3 1.10 Procédure aleatoiretab (initialisation aléatoire).............. 4 1.11 Fonction indicemaxtab (indice du maximum)............... 4 1.12 Fonction indicemintab (indice du minimum)................ 5 1.13 Fonction maximumtab (maximum d un tableau)............. 5 1.14 Fonction minimumtab (minimum d un tableau).............. 5 1.15 o :....................................... 5 1.16 Fonction permutationtab (test de permutation).............. 5 1.17 q : prévu pour partitionner (neg à gauche, pos à droite).......... 6 1.18 Procédure renversertab (renverse un tableau)............... 6 1.19 Procédure saisirtab (saisie d un tableau).................. 6 1.20 Fonction nsuperieurstab (nombre de supérieurs).............. 7 1.21 Fonction ninferieurstab (nombre d inférieurs)............... 7 1.22 Procédure minmaxtab (vmin et vmax d un tableau)........... 8 1.23 Procédure extrmstab (extremums d un tableau).............. 8 1.24 Procédure extrairetab (extraction d un sous-tableau)........... 9 1.25 Fonction tabpositifs (test d entiers positifs)................. 9 1.26 Fonction tabnegatifs (test d entiers négatifs)................ 9 1 Utilitaires Tableau / tb01outils1 (C++) Mots-Clés Tableau unidimensionnel, Algorithmique, Programmation, C++. 1

Unisciel algoprog Utilitaires Tableau / tb01outils1 2 Requis Structures de base, Structures conditionnelles, Algorithmes paramétrés, Structures répétitives, Schéma itératif, Tableau unidimensionnel. On suppose les définitions suivantes : Constante NMAX <-... Typedef Tableau = Entier [ NMAX ] Ce document contient un ensemble d utilitaires «Tableau» sous forme de problèmes externalisés. 1.1 Procédure affichertab (affichage d un tableau) Écrivez une procédure affichertab(t,n) qui affiche les n éléments d un Tableau t. Affichez les éléments à la queue-leu-leu séparés par un espace, le tout entre crochet. Exemple : [45 54... -27] C++ @[affichertaba1.cpp] 1.2 Procédure afficherlntab (affichage par ligne) Écrivez une procédure afficherlntab(t,n) qui affiche les n éléments d un Tableau t. Affichez une valeur par ligne, le tout entre crochet. Exemple : [45 54... -27] C++ @[afficherlntaba1.cpp] 1.3 Procédure copiertab (copie d un tableau) Écrivez une procédure copiertab(t,n,copie) qui copie les n éléments d un Tableau t dans un Tableau copie.

Unisciel algoprog Utilitaires Tableau / tb01outils1 3 C++ @[copiertaba1.cpp] 1.4 d : 1.5 Fonction identiquestab (égalité de tableaux) On dira que deux Tableau sont identiques s ils ont les mêmes valeurs en même position. Écrivez une fonction identiquestab(t1,t2,n) qui teste et renvoie Vrai si les Tableau t1 et Tableau t2 sont identiques (mêmes valeurs en j), Faux sinon. C++ @[identiquestaba1.cpp] 1.6 f : 1.7 Fonction sommetab (somme d un tableau) Écrivez une fonction sommetab(t,n) qui calcule et renvoie la somme des n éléments d un Tableau t. C++ @[sommetaba1.cpp] 1.8 h : prévu pour somme sioux 1.9 Procédure initialisertab (initialisation d un tableau) Écrivez une procédure initialisertab(t,n,val) qui initialise les n éléments d un Tableau t à la valeur val (entier).

Unisciel algoprog Utilitaires Tableau / tb01outils1 4 C++ @[initialisertaba1.cpp] 1.10 Procédure aleatoiretab (initialisation aléatoire) Soit la fonction aleatoire(n) qui renvoie un entier pseudo-aléatoire dans [0..n-1]. C++ @[aleatoirea1.cpp] Outil C++ La fonction rand() est définie dans la bibliothèque <cstdlib>. Elle renvoie un entier pseudo-aléatoire dans [0..RAND_MAX]. Le modulo projete l entier dans l intervalle [0..n-1] d où l expression : rand()%n De plus, dans votre programme principal, ajoutez l instruction : srand(time(0)); Elle initialise le germe du générateur de nombres pseudo-aléatoires avec l horloge système. La fonction time est définie dans la bibliothèque <ctime>. Écrivez une procédure aleatoiretab(t,n,vmax) qui initialise les n éléments d un Tableau t avec des entiers pseudo-aléatoires choisis au hasard dans l intervalle d entiers ]-vmax..vmax[. Aide simple En appelant la fonction de génération d un entier pseudo-aléatoire deux fois de suite et en faisant la différence des deux entiers, ceci fournit effectivement un entier dans ]-vmax..vmax[. C++ @[aleatoiretaba1.cpp] 1.11 Fonction indicemaxtab (indice du maximum) Écrivez une fonction indicemaxtab(t,n) qui calcule et renvoie l indice de l élément contenant la plus grande valeur parmi les n éléments d un Tableau t. En cas d ex-aequo, c est l indice le plus petit qui sera renvoyé.

Unisciel algoprog Utilitaires Tableau / tb01outils1 5 C++ @[indicemaxtaba1.cpp] 1.12 Fonction indicemintab (indice du minimum) Écrivez une fonction indicemintab(t,n) qui calcule et renvoie l indice de l élément contenant la plus petite valeur parmi les n éléments d un Tableau t. En cas d ex-aequo, c est l indice le plus petit qui sera renvoyé. C++ @[indicemintaba1.cpp] 1.13 Fonction maximumtab (maximum d un tableau) Écrivez une fonction maximumtab(t,n) qui calcule et renvoie la valeur la plus grande des n éléments d un Tableau t. C++ @[maximumtaba1.cpp] 1.14 Fonction minimumtab (minimum d un tableau) Écrivez une fonction minimumtab(t,n) qui calcule et renvoie la valeur la plus petite des n éléments d un Tableau t. C++ @[minimumtaba1.cpp] 1.15 o : 1.16 Fonction permutationtab (test de permutation) Une n-permutation est l ensemble des entiers {1, 2,..., n}.

Unisciel algoprog Utilitaires Tableau / tb01outils1 6 Écrivez une fonction permutationtab(t,n) qui teste et renvoie Vrai si les n éléments d un Tableau t est une n-permutation, Faux sinon. Aide méthodologique Utilisez un vecteur de booléens afin de vérifier que chaque entier de t est dans [1..n] et qu il n y est qu une unique fois. C++ @[permutationtaba1.cpp] 1.17 q : prévu pour partitionner (neg à gauche, pos à droite) 1.18 Procédure renversertab (renverse un tableau) Soit la procédure permuter2i(a,b) qui permute les contenus des entiers a et b. C++ @[permuter2ia1.cpp] Écrivez une procédure renversertab(t,n) qui renverse les n éléments d un Tableau t en utilisant la procédure permuter2i. C++ @[renversertaba1.cpp] 1.19 Procédure saisirtab (saisie d un tableau) Écrivez l en-tête d une procédure saisirtab(t,n) qui demande et saisit le nombre de valeurs dans n (entier) puis effectue la saisie de n valeurs entières dans un Tableau t. Écrivez la boucle de saisie de n qui doit être compris entre 1 et NMAX (entier). Affichez l invite (où [x] désigne le contenu de x) : Nombre d éléments dans [1..[NMAX]]?

Unisciel algoprog Utilitaires Tableau / tb01outils1 7 Écrivez la boucle de saisie des éléments. Affichez les invites comme dans l extrait d exécution suivant : Nombre d éléments dans [1..[NMAX]]? 10 t[1]? 45 t[2]? 54... t[10]? -27 C++ @[saisirtaba1.cpp] 1.20 Fonction nsuperieurstab (nombre de supérieurs) Ce problème calcule, pour chaque case d un Tableau, le nombre de cases suivantes qui contiennent un élément strictement supérieur. Écrivez une fonction nsuperieurstab(t,k,n,val) qui calcule et renvoie le nombre d éléments de t[k..n] supérieur à val (entier), où t est un Tableau. Déduisez une procédure calculernsuperieurs(t,n,trs) qui calcule, dans un Tableau trs, le nombre de valeurs successeurs supérieures à t[ix] pour chaque case ix des n éléments d un Tableau t. Validez votre fonction et procédure avec la solution. C++ @[nsuperieurstaba1.cpp] 1.21 Fonction ninferieurstab (nombre d inférieurs) Ce problème calcule, pour chaque case d un Tableau, le nombre de cases suivantes qui contiennent un élément strictement inférieurs. Écrivez une fonction ninferieurstab(t,k,n,val) qui calcule et renvoie le nombre d éléments de t[k..n] inférieur à val (entier), où t est un Tableau.

Unisciel algoprog Utilitaires Tableau / tb01outils1 8 Déduisez une procédure calculerninferieurs(t,n,trs) qui calcule, dans un Tableau trs, le nombre de valeurs successeurs inférieures à t[ix] pour chaque case ix des n éléments d un Tableau t. Validez votre fonction et procédure avec la solution. C++ @[ninferieurstaba1.cpp] 1.22 Procédure minmaxtab (vmin et vmax d un tableau) Écrivez une procédure minmaxtab(t,n,vmin,vmax) qui calcule (algorithme naïf) à la fois le minimum dans vmin (entier) et le maximum dans vmax (entier) des n éléments d un Tableau t. C++ @[minmaxtaba1.cpp] 1.23 Procédure extrmstab (extremums d un tableau) L idée pour améliorer l algorithme de recherche des extremums (minimum et maximum) d un Tableau t est de regrouper les éléments à comparer par paires, c.-à-d. à chaque tour de boucle : 1. de comparer t[2k] et t[2k+1], puis 2. de comparer un seul des deux au minimum vmin et l autre au maximum vmax. On distinguera donc le cas où le nombre d éléments du tableau est pair, du cas où il est impair. Écrivez une procédure extrmstab(t,n,vmin,vmax) qui calcule à la fois le minimum dans vmin (entier) et le maximum dans vmax (entier) des n éléments d un Tableau t, en regroupant les éléments à comparer par paires.

Unisciel algoprog Utilitaires Tableau / tb01outils1 9 C++ @[extrmstaba1.cpp] Commentaires La procédure initialise vmin et vmax aux deux premiers éléments (ou au premier élément s il en existe qu un seul). Elle assure ensuite que vmin est effectivement inférieur à vmax (sinon elle permute les deux valeurs). Le test du modulo initialise l indice ix de sorte que les éléments du tableau puissent être traités par paire. La répétitive TantQue traite les éléments par paire et actualise les valeurs de vmin et vmax si besoin. 1.24 Procédure extrairetab (extraction d un sous-tableau) Écrivez une procédure extrairetab(t,ndebut,nfin,trs,ntrs) qui copie les valeurs d un Tableau t de l indice ndebut (entier) à l indice exclus nfin (entier) dans un Tableau trs. L entier ntrs désigne le nombre d éléments de trs. Aide simple La procédure devra actualiser ntrs de sorte qu il représente toujours le nombre d éléments de trs. C++ @[extrairetaba1.cpp] 1.25 Fonction tabpositifs (test d entiers positifs) Écrivez une fonction tabpositifs(t,n,pos) qui teste et renvoie Vrai si aucun entier négatif n a été détecté dans les n éléments d un Tableau t, Faux sinon et restitue alors l indice du premier élément négatif de t dans l entier pos. C++ @[tabpositifsa1.cpp] 1.26 Fonction tabnegatifs (test d entiers négatifs) Écrivez une fonction tabnegatifs(t,n,pos) qui teste et renvoie Vrai si aucun entier positif n a été détecté dans les n éléments d un Tableau t, Faux sinon et restitue alors l indice du premier élément positif de t dans l entier pos.

Unisciel algoprog Utilitaires Tableau / tb01outils1 10 C++ @[tabnegatifsa1.cpp]