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


TP n°6

A la fin du TP, envoyer sur l'ENT un compte-rendu contenant les solutions des exercices marqués d'une étoile.
(compte-rendu au format texte, en modifiant modeleTP1.txt)

EXERCICE 1*

On donne l'algorithme :
Algorithme NombreDeMots
Donnée : Une phrase constituée d'une suite de mots, chaque mot étant saisi au clavier. La fin de la saisie est indiquée par le mot "."
Résultat : le nombre N de mots dans la phrase.
N←0;
Répéter
Saisir un mot M;
Si M≠"." alors N←N+1;
Jusqu'à M=".".


1.1. Ecrire un algorithme MAJ1 qui convertit en majuscule la première lettre d'une chaine de caractères.

1.2. Ecrire en C sous la forme d'un menu le programme principal qui proposera ces deux fonctionnalités.
N.B. La fonction scanf effectue un découpage automatique de la saisie : les caractères espace y sont naturellement des séparateurs de saisie au même titre que le retour à la ligne. Le retour à la ligne est cependant nécessaire pour valider la/les saisie(s).

1.3. Tester le programme sur des divers exemples.

EXERCICE 2*

2.1. Ecrire un algorithme pour le problème suivant :
Fonction CalculMoyenne
Entrée : un tableau T de réels, sa taille n, deux réels Binf et Bsup.
Sortie : la moyenne des éléments du tableau dont la valeur est comprise dans l'intervalle [Binf;Bsup].

2.2. Ecrire un programme permettant de tester cette fonction. Les bornes seront saisis par l'utilisateur.
N.B. Pour éviter la saisie fastidieuse des éléments d'un tableau, on peut créer un tableau avec une fonction, par exemple T[k]=1.1k2−3.9k−1 pour k entre 0 et 10.

EXERCICE 3*

3.1. Ecrire un algorithme qui insère à la bonne position un entier naturel dans un tableau d'entiers classés par ordre croissant.

Exemple. L'insertion de n=9 dans un tableau T=[-4, -1, 4, 12, 25, 94,  ,  ] donne [-4, -1, 4, 9, 12, 25, 94,  ]. Il faut donc placer la valeur 9 à l'ancienne position de la valeur 12 qui est décalée d'un cran vers la droite, de même que les valeurs suivantes 25, puis 94. L'insertion a été possible parce que le tableau n'était pas rempli (6 cases utilisées sur 8).

3.2. Ecrire en C une fonction qui réalise cet algorithme en retournant 0 ou −1 selon que l'insertion a été possible ou non (taille max du tableau atteinte).

3.3. Compléter le programme C afin de tester la fonction avec différents tableaux et valeurs à insérer.

3.4. Comment l'algorithme placerait-il une valeur à insérer si le tableau n'est pas trié dans l'ordre croissant ?



EXERCICE 4 (pour aller plus loin)

4.1. Ecrire un algorithme qui trie les valeurs d'un tableau par ordre croissant.

4.2. Traduire cet algorithme en C pour des tableaux de réels et le tester sur différents exemples.