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


TD n°3 – Fonctions

Exercice 1 Compréhension de programmes.
1.1. Que fait l'algorithme précisé suivant ?
Fonction CONVERSION
Entrée : trois entiers N1, N2 et N3.
Sortie : un entier K.
K← N1*3600+N2*60+N3;
Retourner K.

1.2. Ecrire un algorithme qui saisit trois valeurs a, b, et c, appelle la fonction précédente avec ces trois valeurs, puis affiche le résultat donné par la fonction.
1.3.Traduire cet algorithme en langage C, en utilisant un prototype pour la fonction de conversion.

Exercice 2 Conversion de minuscules en majuscules.
2.1. Ecrire un algorithme d'une fonction nommée MAJ qui convertit en majuscule un caractère passé en paramètre. La fonction renvoie le caractère majuscule associé à un caractère minuscule du code ASCII, ou laisse le caractère inchangé sinon.
N.B. On pourra utiliser les fonctions algorithmiques prédéfinies Code(c) qui donne le code ASCII d'un caractère et Caractere(n) qui donne le caractère de code n.
2.2. Compléter la fonction MAJ afin que les chiffres soient remplacés par des tirets et que les symboles (autres que lettres et chiffres) soient ignorées.
2.3. Ecrire un algorithme qui utilise cette fonction MAJ sur des caractères entrés au clavier l'un après l'autre. Le programme se terminera lors de la saisie d'un espace.
2.4. Traduire cet algorithme en langage C.
N.B. La touche Entrée correspond aussi à un caractère.
2.5. Comment devrait-on modifier ce qui précède pour, d'une part que ce soit un caractère de code inférieur à 32 et différent du retour à la ligne qui termine la saisie, et d'autre part que les espaces soient remplacés dans la sortie par des retours à la ligne.

Exercice 3 Affichage en binaire.
3.1. Ecrire un algorithme d'une fonction appelée Binaire qui prend en paramètre une valeur entière N (comprise entre 0 et 255) et affiche son codage en binaire.
On propose pour cela le principe suivant : on teste la soustraction de 128 à la valeur N, si on obtient un résultat positif on affiche 1 et on fait la soustraction, sinon on affiche juste 0, puis on fait de même avec 128/2=64 , puis avec 64/2=32 et ainsi de suite jusqu'à 1.
Exemple. avec N=140 :
  140−128 = 12 donc on affiche 1 et on continue avec 12,
  12−64<0 donc on affiche 0,
  12−32<0 donc on affiche 0,
  12−16<0 donc on affiche 0,
  12−8 = 4 donc on affiche 1 et on continue avec 4,
  4−4 = 0 on affiche 1 et on continue avec 0,
  0−2<0 on affiche 0,
  0−1<0 on affiche 0.
Le codage en binaire de 140 est alors 10001100.

3.2. Ecrire un algorithme qui utilise la fonction précédente pour afficher la conversion binaire d'une suite d'entiers entrés au clavier au fur et à mesure par l'utilisateur.
N.B. Comment l'utilisateur pourra-t-il mettre fin au programme ?
3.3. Traduire ces algorithmes en langage C et tester le programme.