Creative Commons License

Année: 2021-2022

Travaux pratiques 2

Objectifs

Exercice 2.1

Écrivez le code 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 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. (1 point)

Exercice 2.3

Sans utiliser les bibliothèques standards ou externes (par exemple string.h), écrivez le code qui

  1. copie une chaine de caractères dans une autre chaine de caractère
  2. concatène deux chaines de caractères
  3. calcule le nombre de caractères dans une autre chaine de caractères

Exercice 2.4

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 qui affiche les n termes de la suite de Fibonacci U0, U1, U2,...Un.

Exercice 2.5 ★★

Imaginez que vous gérez les notes de cinq étudiants. En utilisant seulement des tableaux, écrivez un programme etudiant.c qui déclare, initialise et affiche les détails de ces cinq étudiants. Pour chaque étudiant, 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 ★★

Ecrivez un programme etudiant2.c pour la gestion de données étudiantes (5 étudiants) en utilisant struct. Les détails pour chaque étudiant restent les mêmes comme pour l'exercise 2.5 (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éez et initialisez un tableau de 10 couleurs. Pensez à initialiser les coleurs en notation hexadécimale (r : 0xef, g : 0x78 etc.).

Exercice 2.8 ★★

Réutilisez 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 à 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 (vous pouvez utiliser la fonction random() de la bibliothèque stdlib.h). 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 (e.g, i [3], i [5] etc.). Utilisez les pointeurs.

Astuce

Fichiers

bits.c, chaine.c, couleurs.c, etudiant2.c, etudiant.c, fibonacci.c, ptrvariables.c, puissance.c, tableauptr.c

Instructions