A- Les tableaux à une dimension

Documents pareils
Architecture des Systèmes d Information Architecture des Systèmes d Information

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

Maintenabilité d un parc applicatif

SOLUTIONS TECHNOLOGIQUES Fiche activité élève

4. Les structures de données statiques

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

Recherche dans un tableau

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

Perfectionnement Excel 2007

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

Limites finies en un point

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Algorithmique, Structures de données et langage C

PREDURA TMS PREvention DURAble des TMS Programme de suivi des entreprises exposées au risque de TMS. Journées Marcel Marchand 23 novembre 2013

Partie 1. Fonctions plus complexes dans Excel. Fonctions Si(), Et(), Ou() et fonctions imbriquées. Opérateurs logiques. I.1.

CORRECTION EXERCICES ALGORITHME 1

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

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

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

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Adama MBODJI MBODJ.SYSTEM

Algorithmes récursifs

Chap III : Les tableaux

Plan du cours Cours théoriques. 29 septembre 2014

!" #$#% #"& ' ( &)(*"% * $*' )#""*(+#%(' $#),")- '(*+.%#"'#/* "'") $'

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)

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

Quelques algorithmes simples dont l analyse n est pas si simple

Cours d analyse numérique SMI-S4

Choisir le mode d envoi souhaité. Option 1 : Envoyer un SMS à un nombre réduit de numéros (0 10 )

M06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS

Introduction à MATLAB R

CLUB TMS 23 OCTOBRE 2012

Algorithmique et Programmation

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

MÉTHODES NUMERIQUES. Cours. Licence de Physique Année Universitaire : Licence Chimie, parcours Physique. Semestre S3

Chapitre 2. Matrices

Analyser des données à l aide de formules

Algorithmique et Programmation, IMA

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

Cours Informatique Master STEP

Continuité et dérivabilité d une fonction

Corrigé des TD 1 à 5

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

DOSSIER TECHNIQUE KIMONO «JADE»

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Latitude N Longitude E Altitude 376 m RÉSUMÉ MENSUEL DU TEMPS DE JANVIER 2014

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Algorithmique et structures de données I

= constante et cette constante est a.


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

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

Le Raid c est quoi? Comment ca marche? Les différents modes RAID :

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Jean-Philippe Préaux

CHAPITRE VI ALEAS. 6.1.Généralités.

SOUS SOL PANOPLIE EF. MAITRISE D'OUVRAGE la justice du Burundi Bujumbura Tel Architectes mandataires Atelier D MAITRISE D'OEUVRE

FctsAffines.nb 1. Mathématiques, 1-ère année Edition Fonctions affines

Java Licence Professionnelle CISII,

CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES.

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

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

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

1 Recherche en table par balayage

EMPLOI DU TEMPS du 4 ème SEMESTRE

Excel Avancé. Plan. Outils de résolution. Interactivité dans les feuilles. Outils de simulation. La valeur cible Le solveur

Les deux points les plus proches

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

Cours d Informatique

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

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

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

Exemple 4.4. Continuons l exemple précédent. Maintenant on travaille sur les quaternions et on a alors les décompositions

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

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

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

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

MODE D'EMPLOI

Distribution Uniforme Probabilité de Laplace Dénombrements Les Paris. Chapitre 2 Le calcul des probabilités

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

Formation tableur niveau 1 (Excel 2013)

Administration de Bases de Données : Optimisation

1. Structure d'un programme FORTRAN 95

(51) Int Cl.: H04L 29/06 ( ) G06F 21/55 ( )

CODIFICATION ADMINISTRATIVE DE L ARRANGEMENT EN VUE DE LA RECONNAISSANCE MUTUELLE DES QUALIFICATIONS PROFESSIONNELLES ENTRE POUR LE QUÉBEC :

Réévaluation des devises

Cours 02 : Problème général de la programmation linéaire

Complétez, signez la Convention ci-après et paraphez les conditions générales,

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

COMPTABILITE GENERALE ETAPE 2 : LE COMPTE

Principes des langages de programmation INF 321. Eric Goubault

Découverte du tableur CellSheet

Initiation à la programmation en Python

Résolution d équations non linéaires

N.B : L explorateur vivement conseillé pour utiliser le service d inscription est Firefox. Accessible à :

chapitre 4 Nombres de Catalan

Transcription:

CH 6 : Les tableaux A- Les tableaux à une dimension 1- Définition Un tableau T est une variable structurée formée d un nombre entier N de variables simples de même type, qui sont appelées les composantes du tableau. Le nombre de composantes N est alors la dimension du tableau. T... N composantes On dit encore que T est un vecteur de dimension N. 2- Utilité Un tableau est une structure de données constituée d un nombre fini d éléments de même type. Lorsque plusieurs données de même type, généralement destinées au même traitement doivent être accessibles le long d un programme, on propose d utiliser la structure d un tableau. 3- Composantes Nom : identificateur d un tableau. Type-élément : Les éléments d un tableau sont caractérisés par leur type (entier, réel, caractère,..). Indice : Tout type dont les éléments possèdent un successeur (les types scalaires), généralement de type entier. 4- Déclaration Exemples Nom_tab : Tableau [premind.. deuxind] de type_élément T1 : Tableau [1..50] d entier T2 : Tableau [1..20] de réel T3 : Tableau [1..20] de caractère Remarque Il est également possible de définir un type tableau comme dans l exemple suivant : CONST nmax = 50 TYPE tab : Tableau [1..nmax] d entier T : tab 5- Accès aux composantes d un tableau Considérons un tableau T de dimension N L accès au premier élément du tableau se fait par T[1] L accès au dernier élément du tableau se fait par T[N] Exemple Nom : T 100 200 300 400 500 F. Mguis 70

Indice 1 2 3 4 5 Contenu T[1] T[2] T[3] T[4] T[5] 6- Chargement d un tableau Procédure CHARGEMENT ( T : tab ; N :entier) i : entier Pour i de 1 à N Faire Écrire ("T [", i, "] :") Lire (T[i]) 7- Affichage du contenu d un tableau Procédure AFFICHE ( T : tab ; N : entier) i : entier Pour i de 1 à N Faire Écrire ( T[i] ) Fin Pour 8- Méthodes de tri dans un tableau 8-1- Tri par sélection (par minimum) Principe : Le principe de cette méthode est simple. Elle consiste à : Chercher l indice du plus petit élément du tableau T[1..n] et permuter l élément correspondant avec l élément d indice 1; Chercher l indice du plus petit élément du tableau T[2..n] et permuter l élément correspondant avec l élément d indice 2 ;.. Chercher l indice du plus petit élément du tableau T[n-1..n] et permuter l élément correspondant avec l élément d indice n-1; Tableau initial 60 50 20 40 10 30 Après la 1 ère itération 10 50 20 40 60 30 Après la 2 ème itération 10 20 50 40 60 30 Après la 3 ème itération 10 20 30 40 60 50 Après la 4 ème itération 10 20 30 40 60 50 Après la 5 ème itération 10 20 30 40 50 60 F. Mguis 71

Fonction IND_MIN (T : tab ; N, d:entier) : entier posmin,j:entier posmin d Pour j de d+1 T do Si T[j] < T[posmin] Alors posmin j Fin Si Fin Pour IND_MIN posmin Procédure TRISELECTION ( T : tab ; N : entier) i, j, aux, posmin : entier Pour i de 1 à n-1 faire posmin IND_MIN (T, N, i ) Si (posmin i) Alors aux T[i] T[i] T[posmin] T[posmin] aux Fin Si FinPour 8-2- Tri à bulles Principe Cet algorithme porte le nom de tri bulle car, petit à petit, les plus grands éléments du tableau remontent, par le jeu des permutations, enfin de tableau. La méthode de tri à bulles consiste à répéter le traitement suivant : Parcourir les éléments du tableau de 1 à (n-1); si l'élément i estsupérieur à l'élément ( i+1), alors on les permute. Le programme s'arrête lorsqu aucune permutation n'est réalisableaprès un parcours complet du tableau Tableau initial 50 30 20 40 10 1 ère étape 30 50 20 40 10 30 20 50 40 10 30 20 40 50 10 30 20 40 10 50 2 ème étape 20 30 40 10 50 20 30 10 40 50 3 ème étape 20 10 30 40 50 F. Mguis 72

4 ème étape 10 20 30 40 50 Procédure TRISBULLE ( T : tab ; N : entier) i, aux : entier permut : Booléen Répéter permut faux Pour j de 1 à N-1 faire Si T[i]> T[i+1] alors aux T[i] T[i] T[i + 1] T[i + 1] aux permut vrai Fin si N N - 1 Jusqu à (echange = faux) OU ( N = 1) 8-3- Tri par insertion Méthode: Trier le tableau de gauche à droite en insérant à chaque fois l'élément I+1 dans le tableau (déjà trié) des I premiers éléments. Comparer et permuter si nécessaire T[1] et T[2] de façon à placer le plus petit dans la case d indice 1 Comparer et permuter si nécessaire l élément T[3] avec ceux qui le précèdent dans l ordre ( T[2] puis T[1]) afin de former une sous-liste triée T[1..3]. Comparer et permuter si nécessaire l élément T[n] avec ceux qui le précèdent dans l ordre ( T[n-1] puis T[n-2]) afin de former un tableau trié. Tableau T Valeur à insérer 50 30 10 20 60 40 30 30 50 10 20 60 40 10 10 30 50 20 60 40 20 10 20 30 50 60 40 60 10 20 30 50 60 40 40 10 20 30 40 50 60 Procédure TRISINSERTION ( T : tab ; N : entier) i, j, aux : entier Pour i de 2 à N faire aux T[i] j i Tant que (T[j 1] > aux ) ET (j > 1) Faire T[j] T[j-1] j j-1 Fin Tant Que T[j] aux Fin Pour F. Mguis 73

9- Méthodes de recherche dans un tableau 9-1- La recherche séquentielle Problème Déterminer la première position d une valeur donnée dans un tableau de N élément. Résoudre ce problème en utilisant la notion de procédures/fonctions. Fonction RECH_SEQ ( T : tab ; N, val :entier) : entier i, pos : entier pos -1 i 1 Tant que (i N et pos = -1 ) Faire Si (T[i] = val ) alors pos i Si non i i+1 Fin si Fin Tant que RECH_SEQ pos 9-2- La recherche dichotomique Problème Déterminer la première position d une valeur donnée dans un tableau de N élément triés dans le sens croissant. Principe Le principe est de décomposer le tableau T en deux sous tableaux. Trois cas peuvent se produire : Si val = T[milieu] alors val est trouvé et la recherche est terminée. Si val < T[milieu] alors on va chercher val dans la partie gauche du tableau T. Si val > T[milieu] alors on va chercher val dans la partie droite du tableau T. On poursuit la recherche tant que T[milieu] est différent de val est tant que la dimension de sous tableau reste valide. Fonction RECH_DICH ( T : tab ; N, val :entier) : entier i, pos,mil, inf, sup : entier pos -1 inf 1 sup N Tant que ( inf sup et pos = -1 ) Faire mil (inf + sup) div 2 Si (T[mil] = val ) alors pos mil Si non Si (val<t[mil] ) alors sup mil - 1 Si non inf mil + 1 Fin Si Fin Si Fin Tant Que F. Mguis 74

RECH_DICH pos B- Les tableaux à deux dimensions 1- Définition Un tableau à deux dimensions A et à interpréter comme un tableau (unidimensionnel) de dimension L dont chaque composante est un tableau (unidimensionnel) de dimension C. On appelle L le nombre de lignes du tableau et C le nombre de colonnes du tableau. Un tableau à deux dimensions contient L*C composantes. M.... L lignes C colonnes 2- Déclaration Nom_tab : Tableau [premind..deuxind, premind..deuxind] de type_élément Exemples : M1 : Tableau [1..30, 1..30] d entier M2 : Tableau [1..20, 1..20] de réel M3 : Tableau [1..20, 1..20] de caractère Remarque : Il est également possible de définir une matrice comme dans l exemple suivant : CONST NL = 30 NC = 20 TYPE MAT : Tableau [1.. NL, 1.. NC] d entier M : MAT 3- Accès aux composantes d une matrice Considérons un tableau M de L lignes et C colonnes. Les indices du tableau varient de 1 à L, respectivement de 1 à C. La composante de la N ième ligne et M ième colonne est notée : A[N,M]. Syntaxe : <Nom du tableau>[<ligne>,<colonne>] Exemple : Considérons une matrice de 3 lignes et 4 colonnes 1 2 3 4 1 A[1,1] A[1,2] A[1,3] A[1,4] F. Mguis 75

2 A[2,1] A[2,2] A[2,3] A[2,4] 3 A[3,1] A[3,2] A[3,3] A[3,4] 4-Chargement d une matrice Algorithme Chargement M : Tableau [1.. 3, 1..4] d entier i,j : entier Pour i de 1 à 3 Faire Pour j de 1 à 4 Faire Écrire ("M [", i, ", ", j, "] :") Lire (M [i, j]) CH6 : Les tableaux 5-Affichage du contenu d une matrice Algorithme Afficher M : Tableau [1.. 3, 1..4] d entier i,j : entier Pour i de 1 à 3 Faire Pour j de 1 à 4 Faire Écrire ( M[i, j]) Exemple 1 Soient M1 et M2 deux matrices à n lignes et m colonnes. On veut écrire une procédure qui calcule les éléments de la matrice M3 = M1 + M3 Rappel: / M1 \ / M2 \ / M3 \ a b c d a' b' c' d' a+a' b+b' c+c' d+d' e f g h + e' f' g' h' = e+e' f+f' g+g' h+h' i j k l i' j' k' l' i+i' j+j' k+k' l+l' \ / \ / \ / Procédure SOMME ( M1, M2 : MAT ; M3 : MAT ;n, m : entier) i,j : entier Pour i de 1 à n Faire Pour j de 1 à m Faire M3[i, j] M1[i, j] +M2[i, j] Exemple 2 F. Mguis 76

Ecrire un algorithme qui effectue la transposition t A d'une matrice A de dimensions N et M en une matrice de dimensions M et N. La matrice A sera transposée par permutation des éléments. Résoudre ce problème en utilisant la notion de procédures/fonctions. Rappel / \ / \ a b c d a e i ta = t e f g h = A b f j i j k l c g k \ / d h l \ / Algorithme CHANGEMENT CONST Nmax = 50 TYPE MAT : Tableau [1.. Nmax, 1.. Nmax] d entier A : MAT N, M : entier Fonction SAISIE_TAILLE() : entier nb : entier Répéter Ecrire("Donner la taille de T :") Lire(nb) Jusqu à (nb>1 et nb<=nmax) SAISIE_TAILLE nb Procédure CHARGEMEMENT ( A : MAT ; N, M : entier) i, j: entier Pour i de 1 à N Faire Pour j de 1 à M Faire Ecrire ("A [", i, ", ", j, "] :") Lire (A [i, j]) Procédure AFFICHE (A : MAT ; N, M :entier) i, j : entier Pour i de 1 à N Faire Pour j de 1 à M Faire Ecrire (A [i, j]) Procédure TRANSPOSEE ( A : MAT ; N, M : entier) F. Mguis 77

i, j, Dmax, aux : entier Si ( N > M ) alors Dmax N Si non Dmax M Fin si Pour i de 1 à Dmax Faire Pour j de 1 à i Faire aux A[i, j] A[i, j] A[j, i] A[j, i] aux ( P.P) Ecrire (" Saisie des tailles ") N SAISIE_TAILLE () M SAISIE_TAILLE() Ecrire (" Chargement de A ") CHARGEMEMENT (A, N, M) Ecrire (" Affichage de A avant transposition ") AFFICHE (A, N, M) TRANSPOSEE (A, N, M) Ecrire (" Affichage de A après transposition ") AFFICHE (A, M, N) F. Mguis 78