TD04 Structures Pointeurs
Télécharger le TD04 Structures Pointeurs en pdf
Page 1 : Pré-ING1Semestre 2 - 2024/2025Informatique IITD 4 : Structures pointeurs et tableauxNe pas oublier de créer un répertoire pour placer les codes de ce TD !Toutes les fonctions écrites doivent être testées dans le programme principal !Pour ce TD et les suivants : les inclusions de bibliothèques, la déclaration des constantes ainsi que la déclaration destypes structurés si besoin, doivent être écrits dans un fichier .h qui doit être inclus dans votre fichier .cExercice 1 Résolution d’équation partie 21. Définir une structure Complex permettant de représenter des nombres complexes.2. Écrire une fonction int resoudrefloat a, float b, float c, Complex res1, Complex res2 qui donne lessolutions de l’équation ax2 + bx + c = 0.Cette fonction retourne le nombre de solutions de l’équation, sachant que les solutions obtenues peuvent être complexes.Exercice 2 Nombres rationnels1. Déclarer une structure NmbRationnel qui representera les nombres rationels. Cette structure sera composée de deuxentiers representant respectivement le numérateur num et le dénominateur den.2. Écrire une procédure afficheNum... qui affichera sous forme "numérateur/dénominateur" un nombre rationnelpassé en paramètre.3. Écrire une procédure void addMultNmbRationnel num1, NmbRationnel num2 qui prend en paramètre deux poin-teurs sur nmbRationnel. Cette fonction modifie les nombres rationnels pointés de la manière suivante :— Le nombre rationnel pointé par num1 devient le produit des nombres pointés par num1 et num2. note : On necherchera pas à simplifier le nombre rationnel obtenu— Le nombre rationnel pointé par num2 devient la somme des nombres pointés par num1 et num2. note : On necherchera pas à simplifier le nombre rationnel obtenu— tout nombre rationnel avec un denominateur à 0, génèrera un nombre avec un dénominateur à 0, même dans le casde la somme.4. Créer une fonction NmbRationnel creerRationnel qui va demander à l’utilisateur de saisir un numérateur etdénominateur en faisant attention à limiter la valeur du dénominateur à une valeur strictement positive. Le signe dunombre rationnel sera donc stocké dans le numérateur.5. Écrire un programme principal qui— demande à l’utilisateur de saisir deux NmbRationnel— affiche sous forme "numérateur/dénominateur" leur somme et leur produit.Exercice 3 gestion d’une classe1. Définir une structure Etudiant qui comportera les champs suivants :— Le nom de famille de l’étudiant.— Son prénom.— Son numero de groupe.— Un tableau de 6 notes les 6 notes d’Informatique de l’année.2. Écrire une fonction constructeur de la structure Etudiant. Cette fonction demande à l’utilisateur le nom/ prénom del’étudiant, son numéro de groupe et rempli aléatoirement le tableau de notes.3. Écrire une procédure permettant d’afficher les différents champs d’un Etudiant passé en paramètre.4. Tester les deux fonctions précédentes en créant un Etudiant dans la fonction principale et en remplissant puis affichantses champs.5. On désire gérer une petite promo d’étudiants. Demander à l’utilisateur l’effectif de la promotion et créer un tableaud’Etudiant dont la taille correspond à la valeur saisie. Remplir les champs de tous les étudiants puis afficher lesinformations de chacun d’entre eux.6. Écrire une fonction float moyGroupeEtudiant tab, int groupe qui retourne la moyenne des étudiants appar-tenant au groupe passée en paramètre.1
Page 2 : 7. Écrire une procédure void verifMajEtudiant tab, int groupe qui vérifie que le nom de famille des étudiantsdu tableau passé en paramètre commence bien par une majuscule. Si ce n’est pas le cas on remplace par une majusculela première lettre.Exercice 4 Graphique pyramidalNous souhaitons afficher les statistiques de fréquentation d’un site internet en fonction de l’heure de la journée, et ce,pour des utilisateurs avec mobiles ou avec ordinateurs.1. Créer une structure de type Stats contenant 1 entier heure entre 0 et 23, ainsi que 2 entiers : mobile et ordinateur,contenant une valeur entre 0 et 100 inclus les pourcentages affichés2. Créer une fonction qui va créer une liste de structures Stats pour chaque heure de la journée donc 24 et remplir leschamps mobile et ordinateur avec des valeurs aléatoires.3. Créer une fonction qui prend une liste de Stats en paramètre et affiche le graphique pyramidal à la manière de l’exempleci-dessous-------------------------------------------------------------------- 100MOBILES0 0ORDINATEURS100 -------------------------------------------------------------------- 23 22 21 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 --------------------------------------------------------------------2