TP2 - Manipulation des types composés et tableaux
Manipulation des structs et passage par pointeur
- Définissez un "struct" permettant de stocker les informations suivantes pour une ville donnée: nom de la ville, nombre d'habitants, temperature moyenne de chaque mois. Faites-en un type personnalisé.
- Ecrivez une fonction qui initialise les temperatures moyennes de telle sorte que en janvier, la moyenne soit 0, en février 5, en mars 10, etc.
- Ecrivez une fonction qui affiche les informations de votre "struct"
Manipulation d'un union, à partir de cette définition
typedef union {
int entier;
float reel;
} nombre_t;
typedef enum {
un_entier,
un_reel
} represente_t;
typedef struct {
represente_t represente;
nombre_t vaut;
} generique_t;
- Ecrire une fonction de test de parité acceptant un entier ou une chaine (void affiche_parite(generique_t* g)...)
- Vérifier que l'usage des membres est exclusif (c.a.d qu'on ne peut stocker ou transmettre qu'un réel ou un entier simultanément)
Matrices, entrée, boucles
A partir du type de matrice suivant: typedef float matrice3[3][3];
- Ecrire une fonction permettant de remplir tous les élémens de la matrice avec la même valeur
- Ecrire une fonction pour afficher une matrice de manière lisible
- Ecrire une fonction pour lire une matrice à partir de stdin sous le format (utiliser fscanf):
4.5 3 6.83 8 0 23.4 9 3.2 6
- Ecrire une fonction qui calcule le produit de 2 matrices, la tester en lui fournissant deux matrices via stdin
Chaînes de caractères
A l'aide de switch et atof, programmez une calculatrice qui accepte ces opérations en paramètres:
calcul 5.4 + 6 calcul 99 - 5.0 calcul 3 * 6.9 calcul 2.1 / 7
Ecrivez une variante qui accepte également une variante "doublée" pour chaque opérateur (ex: ++) et dans ce cas effectue l'opération deux fois, la deuxième en rajoutant 1 à chaque membre de l'opération. Exemple:
calcul 3 ** 5.5 16.5 26