IUT R&T - 1ère année - Informatique
Programmation et algorithmique 1


TP n°1

A la fin du TP, envoyer sur l'ENT un compte-rendu contenant les solutions des exercices marqués d'une étoile.
Ce compte-rendu complètera le document  modeleTP1.txt  à prendre sur l'ENT pour ce TP.
Approfondir et si besoin compléter ce TP après la séance (sans rien envoyer).

EXERCICE 1
Pour chacun des programmes ci-dessous :
/* programme 1 */
char* s="bonjour";
int main() {printf("%s\n",s); return 0;}
  // programme 2
long n;
int main() {n=atoi("128"); return 0;}

N.B. La fonction atoi transforme une chaine de caractères en entier.

1.1. Compiler le programme.

1.2. Ajouter ce qu'il faut au programme pour qu'il compile et s'exécute normalement.

EXERCICE 2
Ecrire un programme qui :

2.1. Définit cinq chaines de caractères : eut="EUT", anesses="ANESSES", ors="ORS", neant="NEANT", i="I", et un entier n correspondant à la longueur de la chaine anesses.

2.2. Utilise ces variables, et les capacités de formatages de la fonction printf, pour afficher la grille de Scrabble suivante.
Longueur de la grille : 7

   EUT
ANESSES
 ORS
 NEANT
   I

N.B. La bibliothèque string.h fournit la fonction strlen, qui donne la taille d'une chaine de caractères non vide, ce qui permet de placer la taille de la chaine anesses dans n pour l'afficher ensuite.

EXERCICE 3*

3.1. Donner un algorithme Maximum permettant de déterminer, à partir d'une suite d'entiers non nuls entrés au clavier, la plus grande valeur. La valeur maximale trouvée sera affichée au fur et à mesure de la saisie des valeurs. L'algorithme se terminera avec la saisie de la valeur 0.
N.B. On peut réinvestir l'algorithme CALCUL de l'exercice 2 du TD 2.

3.2. Traduire cet algorithme en langage C.
N.B. La bibliothèque limits.h fournit la constante INT_MIN qui est la valeur minimale possible pour un entier de type int.

3.3. Tester le programme.
N.B. Quel problème cela pose-t-il si tous les entiers saisis sont strictement négatifs ?

EXERCICE 4
On donne l'algorithme suivant :
Algorithme DoubleBoucle
Donnée : un entier n.
Résultat : affichage de ...
Saisir n;
Pour i de 1 à n faire
Pour j de 1 à n faire
Afficher (i*j) sur quatre colonnes.


4.1. Préciser le résultat de cet algorithme.

4.2. Implémenter (=traduire) cet algorithme en C et le tester.
N.B. Que se passe-t-il notamment pour n=0 ? pour n=−5 ?

EXERCICE 5*

5.1. Donner un algorithme Multiplication permettant d'afficher la table de multiplication des nombres de 1 à 9 sous la forme suivante.
    |   1   2   3   4   5   6   7   8   9 |
-------------------------------------------
  1 |   1   2   3   4   5   6   7   8   9 |
  2 |   2   4   6   8  10  12  14  16  18 |
  3 | ...                                 |
... | ...                                 |
  9 |   9  18  27  36  45  54  63  72  81 |
-------------------------------------------

N.B. On peut réinvestir l'algorithme de l'exercice précédent et utiliser les instructions : Afficher('-'), Afficher('|'), et Afficher(RetourLigne).

5.2. Implémenter cet algorithme en langage C, en utilisant les possibilités d'affichage formaté. Compiler ce programme.

5.3. Tester ce programme.

5.4. Que faudrait-il changer dans l'algorithme pour afficher la table d'addition au lieu de la table de multiplication ?