TD3 Tableaux dynamique
Télécharger le TD3 Tableaux dynamique en pdf
Page 1 : Pré-ING1Semestre 2 - 2022/2023Informatique IITD 5 : Tableaux dynamiquesNe pas oublier de créer un répertoire pour placer les codes de ce TP !Toutes les fonctions écrites doivent être testées dans le programme principal !Exercice 1 lecture de code : double pointeurQu’affiche le code suivant ?includestdio.hint mainint a,b,c;int pa,pb;int ppa;pa=&a;pb=&b;ppa=&pa;pa=10;pb=-2;c=b2;ppa=pb+5;ppa=&c;pa=pb+a;printf"d, d, d \n",a,b,c;return 0;Exercice 2 Tableaux dynamiques 1D— Écrire une fonction randTab qui prend trois arguments entiers n, x, y et qui renvoie l’adresse d’un tableau ayant ncases, et contenant des entiers aléatoires entre x et y.— Tester la fonction dans le programme principal. Les valeur x, n et y seront saisies par l’utilisateur. Afficher le tableauobtenu.— Écrire une fonction tabPair qui prend un tableau en paramètre, et qui renvoie l’adresse d’un tableau contenantuniquement les valeurs paires du tableau passé en paramètre.— Écrire une fonction noDouble qui prend un tableau en paramètre, et qui renvoie un tableau ayant supprimé toutes lesvaleurs identiques contiguës.Exemple : 1,1, 1, 8, 2, 7, 7, 8, 9, 2 devient 1, 8, 2, 7, 8, 9, 2.Exercice 3 Tableau de Prénom Dans cet exercice, nous allons stocker une liste de prénom dans un tableau. Puisqu’unechaîne de caractère est un tableau, il s’agira donc d’un tableau de tableau.1. Déclarer un double pointeur de type char tabPrenom pointant sur NULL. Ce pointeur servira comme pointeur sur untableau contenant les adresses des chaîne de caractères à stocker.2. Demander à l’utilisateur combient de prénoms il souhaite stocker. Allouer l’espace necessaire sur lequel devra pointertabPrenom.3. Remplir ce tableau de chaîne de caractères. Pour chaque prénom à saisir :— Demander d’abord à l’utilisateur le nombre de lettres du prénom.— Allouer un tableau de caractère en fonction du nombre de lettres saisi précédement attention, il faut penser aucaractère de fin ajouté automatiquement en fin des chaînes de caractères, il faut donc ajouter une case supplémentairepar rapport au nombre de lettres.— Saisir le prénom à stocker.1
Page 2 : 4. Écrire une procédure affichePrenom prenant un tableau de caractère en paramètre et qui affiche la liste des prénomsstockés.5. Modifier le tableau de prénom pour que les premières lettres de chaque prénom soit des majuscules si ce n’est pas lecas regarder la table ASCII.Exercice 4 CalculatriceOn rappelle que pour la fonction main peut prendre des arguments et que sa version complète est int mainint argc,char argv avec— argc le nombre de paramètres passés à l’execution +1— argv un tableau contenant les chaînes de caractères correspondant aux différents paramètre le premier paramètre estargv1.1. Écrire un programme qui affiche le résultat de l’addition de deux nombres passé en paramètre lors de l’execution.2. Modifier ce programme pour qu’il affiche le résultat d’une opération + - ou / entre deux nombres entiers passésen paramètres. la fonctionatoi appartenant à la bibliothèque stdlib permet de transformer une chaîne de caractèreen entier.3. Modifier le programme précédent pour gerer des opération sur les nomnbres réel.la fonction atof appartenant à labibliothèque stdlib permet de transformer une chaîne de caractère en réel.Exercice 5 Triangle de PascalLes coefficients binomiauxnksont des coefficients entiers très utiles en mathématiques, notament en statistique.Le triangle de Pascal est une méthode graphique qui permet de trouver facilement le résultat de coefficients binomiauxsans avoir besoin de calculer des factorielles. Il s’agit d’un tableau dont chaque "case" représente le résultat d’un coefficientbinomial avec n representant les lignes, et k les colonnes. Puisque k n, ce tableau est en réalité un triangle voir le schéma.Le calcul des coefficients se base sur la relation récursive suivante :nk=n 1k 1+n 1ket se construit comme indiqué sur l’exemple suivant :Une "case" d’un triangle de Pascal se calcul donc en additionnant la case du dessus et la case au dessus à gauche sachantque00= 1.Dans cet exercice nous representerons le triangle de Pascal par un ensemble de tableaux donc chacun represente uneligne du triangle. Nous allons donc utiliser un tableau de tableaux.1. Coder une fonction/procédure choixNMax...à vous de choisir les arguments qui va demander à l’utilisateur desaisir un nombre nmax représentant l’argument n maximum du coefficient binomial qu’il souhaite calculer sachantque nmax doit être un entier strictement positif.2. Combien de lignes doit faire le triangle de Pascal souhaité ?2
Page 3 : 3. Coder une fonction/procédure créerTriangle... à vous de choisir les arguments qui va retourner une variablecontenant les adresses de chacun des tableaux répresentant les lignes. Cette fonction va construire le triangle de Pascalcontenant le bon nombre de lignes souhaitées et les bonnes valeurs dans chaque case. Toutes les cases du triangledoivent pouvoir être accessibles via la variable retournée.4. Écrire une procédure void affichePascalint tab, int nmax permettant d’afficher le triangle de Pascal re-presenté par tab avec le coefficient n allant jusqu’à nmax. L’affichage doit être conforme avec l’exemple qui suitnmax = 7 :5. Dans le programme principal, en utilisant, entre autres, les fonctions codées précédemment, demander à l’utilisateurde saisir un nmax puis des coefficients n et k en respectant toutes les règles que doivent respecter ces coefficients,créer et afficher le triangle de pascal correspondant, et afficher la valeur du résultat denkgrace au triangle créé.3