• Aucun résultat trouvé

TP n°4 de langage C : structures, tableaux 2D

N/A
N/A
Protected

Academic year: 2022

Partager "TP n°4 de langage C : structures, tableaux 2D"

Copied!
1
0
0

Texte intégral

(1)

TP n°4 de langage C : structures, tableaux 2D

Exercice 1 (acquisition)

Réalisez une fonction void incDate(date*

d) qui incrémente la date pointée par d, où la structure date est celle définie ci-contre. Cette fonction devra utiliser une fonction int nbJours(int mois) qui retourne le nombre de jours dans un mois donné (1 pour janvier, 2 pour février…) d'une année non bissextile, ainsi qu'une fonction int bissextile(int annee) qui retourne un Booléen indiquant si l'année passée en paramètre est bissextile. Vous devez implanter également ces deux fonc- tions annexes.

Réalisez une variante date incDate( date d) qui retourne la date du jour suivant la date passée en paramètre, sans modifier cette dernière.

Donner un exemple d'utilisation de chacune des variantes qui affiche toutes les dates comprises entre deux dates saisies au clavier.

En cas de difficulté, demandez un indice ou une explication à l'enseignant. Chaque exercice doit faire l’objet d’une validation expérimentale poussée.

Exercice 2 (acquisition)

Réalisez une fonction int compDates(

date* d1, date* d2) qui compare les deux dates pointées par d1 et d2 et retourne une valeur négative si la première est antérieure à la seconde, 0 si les deux dates sont identiques, et une valeur positive sinon.

Exercice 4 (consolidation)

Réalisez une fonction void tri(date t[], int n) qui trie un tableau de n dates en utilisant la méthode du tri fusion vue en TD.

Pour des raisons d'efficacité, le tri complet devra s'exécuter en trois phases : 1.Une phase de création d'un tableau

temporaire contenant des pointeurs sur les dates du tableau t.

2.Le tri du tableau temporaire à l'aide d'une fonction de tri appropriée prenant en paramètre un tableau de pointeurs sur des dates.

3.La réorganisation des dates du tableau t.

Exercice 3 (acquisition)

Définissez une structure matrice permet- tant la représentation d'une matrice de valeurs de type double. Cette structure doit contenir le nombre de ligne de la matrice, son nombre de colonnes, et tous ses éléments.

Réalisez une fonction matrice creeMatri- ce( int n, int m) qui crée une nouvelle matrice de n lignes et m colonnes avec tous ses éléments initialisés à 0.0.

Réalisez une fonction void getVal(

matrice* m, int i, int j, int x) qui assigne la valeur x à l'élément de la matrice situé en ligne i et colonne j.

Réalisez une fonction void printMatrice(

matrice* m) qui affiche à l'écran la matrice pointée par m.

Réalisez une fonction matrice produit(

matrice a, matrice b) qui crée une nouvelle matrice représentant le produit des deux matrices a et b.

Testez les fonctions réalisées en créant deux matrices, en les remplissant de valeur, en en calculant le produit et en affichant les valeurs des matrices et de leur produit.

typedef struct {

int jour;

int mois;

int annee;

}date;

Références

Documents relatifs

Exercice 9 Écrire une fonction trouve_noeud() qui renvoie l'adresse d'un n÷ud de l'ABR donné en paramètre contenant une certaine valeur (ou NULL si cette valeur ne gure pas

On veut écrire une fonction qui prend pour argument un tableau T[] d’entiers, sa taille n et on veut qu’elle retourne le plus grand élément du tableau ainsi que sa position.. Comme

Utiliser cette fonction dans une fonction « main » appropriée pour afficher la table des valeurs de f pour les entiers compris entre 1 et 9, avec 5 chiffres significatifs, sous

Object elementAt(int) qui retourne l’objet de rang donné (il faudra utiliser la coercition pour rétablir cet objet dans sa classe d’origine).. Object firstElement() qui retourne

Ecrire ensuite une fonction de prototype int taille(char *nom) qui retourne la taille de ce fichier et la mettre en œuvre dans le programme principal.. Le fichier doit être ouvert

Comme les fonctions sont alors séparées, si l’on veut utiliser une fonction provenant d’un autre module, il faut alors inclure un fichier de définition pour le module désiré

Sans utiliser la méthode sort, écrire une fonction qui prend comme argument une liste L de nombres entiers ou flottants et qui retourne la liste des éléments

Une variable qui peut accepter n'importe quel type (int, float, char...) Une variable déclarée dans la fonction main. 32 Dans quel ordre s'effectue