Année: 2019-2020
Travaux pratiques 2
Objectifs
- Comprendre les opérateurs, les tableaux, les pointeurs et les structures.
Exercice 2.1 ★
Écrivez le code puissance.c qui prend deux entiers a et b et qui affiche la valeur du nombre a élevé à une puissance b. Par exemple, puissance(2,3) affiche la valeur 8. N’utilisez pas la fonction pow() (math.h).
Exercice 2.2 ★
Considérez un entier d (int d ;). Écrivez le code bits.c qui vérifie si les 4eme et 20eme bits de gauche sont 1 (en binaire). Si les deux bits sont 1, il affiche 1 sinon 0.
Exercice 2.3 ★
La suite de Fibonacci est une suite d’entiers définie comme suit :
- U0=1
- U1=1
- Un= Un-1 + Un-2
Écrivez le code fibonacci.c qui affiche les n termes de la suite de Fibonacci U0, U1, U2,...Un.
Exercice 2.4 ★★
Sans utiliser les bibliothèques standards ou externes (par exemple string.h), écrivez le code chaine.c qui
- calcule le nombre de caractères dans une chaine de caractères
- copie une chaine de caractères dans une autre chaine de caractère
- concatène deux chaines de caractères
Exercice 2.5 ★★
Imaginez que vous gérez les notes de cinq étudiant.e.es. En utilisant seulement des tableaux, écrivez un programme etudiant.c qui déclare, initialise et affiche les détails de ces cinq étudiant.e.es. Pour chaque étudiant.e, on est intéressé par son nom, son prénom, son adresse, et ses notes dans 2 modules (Programmation en C, Système d’exploitation).
Exercice 2.6 ★★
Écrivez un programme etudiant2.c pour la gestion de données étudiant.e.es (5 étudiant.e.es) en utilisant struct. Les détails pour chaque étudiant.e restent les mêmes comme pour l'exercice précédente (nom, prénom etc.). Vous pouvez utiliser strcpy pour initialiser les noms, prénoms etc.
Exercice 2.7 ★★
Une couleur en format RGBA contient 4 valeurs : rouge (R), vert (G), bleu (B) et alpha (A). Chaque valeur est un octet. Créez un programme couleurs.c en utilisant struct. Ensuite, créer et initialiser un tableau de 10 couleurs. Pensez à initialiser les coleurs en notation hexadécimale (r : 0xef, g : 0x78 etc.).
Exercice 2.8 ★★
Réutiliser le programme variables.c et créez un programme ptrvariables.c qui affecte et affiche les valeurs des variables de différents types de base (char, short, int, long int, long long int, float, double, long double) en utilisant leurs adresses. N’oubliez pas d'afficher l’adresse et la valeur de ces variables avant ou après la manipulation par leurs adresses (en utilisant les pointeurs).
Exercice 2.9 ★★★
Créez un programme tableauptr.c et écrivez le code pour créer deux tableaux différents : int et float. Remplissez les valeurs aléatoires. Pour les deux tableaux, si l’indice est divisible par 2, multipliez la valeur à cette position par 3. N’utilisez pas la notation indicielle pour parcourir les tableaux (par exemple, i [3], i [5] etc.). Utilisez les pointeurs.
Astuce
- Pour l'exercice 2.5, pensez à utiliser *(s+i) etc (e.g, si s est un pointeur de type int *).
Fichiers
puissance.c, bits.c, fibonacci.c, chaine.c, etudiant.c, etudiant2.c, couleurs.c, ptrariables.c, tableauptr.c
Instructions
- Ne pas oublier les commentaires (nom de fichier, objectif, auteurs, , les lignes importantes de code etc.). Les commentaires sont notés.
- N’oublier pas de mettre à jour le fichier README et ajouter les détails concernant votre deuxième exercice.
- Compte rendu en format .zip en un seul fichier.