Précédent Remonter Suivant

3.3  Conversions




Exercice 3.12 --- Saisie d'entier avec getchar.


Construire un programme dont la fonction principale permette de saisir un entier stocké dans l'entrée standard (sous forme d'une chaîne de caractères terminée par un retour chariot) et qui le retourne. Stocker votre chaîne de caractères en utilisant une commande interne du shell. Puis, en utilisant une variable pré-définie du shell, vérifiez que votre programme marche correctement (attention, la variable $? est codée non signée sur un octet ).







Exercice 3.13 --- Affichage d'entier avec putchar.


Construire un programme dont la fonction principale permette d'afficher un entier machine stocké dans une variable.




Remarque.
Vous utiliserez systématiquement ces codes chaque fois que vous aurez à saisir ou à afficher des entiers.




Exercice 3.14 --- Conversion Francs -- Euro.


Un euro est équivalent à 6,55957 francs.

Construire un programme qui permet la conversion d'une somme de francs en euros.

Remarque. Le taux de conversion n'est pas destiné a être modifié. Ainsi, on peut le définir comme une constante. En C, cette possibilité peut reposer sur le préprocesseur et correspond à l'instruction #define nom valeur. On ne précise pas de type car le préprocesseur n'effectue que des transformations textuelles sur le fichier source.

Modifier votre programme afin de demander à l'utilisateur s'il désire effectuer une autre conversion et le lui permettre le cas échéant.







Exercice 3.15 --- Conversion de température.


La température se quantifie d'après différentes échelles : Établir les règles de conversion entre ces échelles (par exemple, K=°C +273).

Construire un programme qui permet la conversion entre ces différentes échelles. Après avoir permit la saisie de la température, ce programme devra tout d'abord demander à l'utilisateur de saisir l'échelle dans laquelle cette température est exprimée puis s'enquérir de l'échelle dans laquelle on veut faire la conversion.

Enfin, ce programme devra permettre grâce à une boucle de recommencer cette opération autant de fois que l'utilisateur le désirera.







Exercice 3.16 --- Détermination du jour correspondant à une date.


On désire obtenir, à partir d'une date, le jour de la semaine à laquelle elle correspond. Pour cela on utilise la formule de Zeller :
æ
ç
ç
è
13*mm-1
5
+j+aa+
aa
4
+
ss
4
-2*ss ö
÷
÷
ø
 % 7
avec les notations :
a/b
représente la division entière de a par b ;
a % b
donne le reste de la division entière de a par b ;
j
est le numéro du jour dans le mois ;
mm
est le numéro du mois dans l'année, diminué de 2 pour tous les mois sauf janvier et février, numérotés respectivement 11 et 12, et qui sont considérés comme appartenant à l'année précédente ;
aa
est le nombre composé des 2 derniers chiffres de l'année ;
ss
est le nombre composé des chiffres de l'année sauf les 2 derniers1.
On obtient ainsi un nombre de 0 à 6. Le nombre 0 correspond à dimanche, le nombre 1 à lundi, etc. le nombre 6 à samedi.

La formule précédente n'est valable qu'après le 15 octobre 1582 du fait du changement de calendrier le jeudi 4 octobre 1582 : le lendemain de ce jour a été le vendredi 15 octobre 1582.
Questions :
  1. Transformer par une conditionnelle la formule pour la rendre valable pour toute date (en tenant compte du changement de calendrier). Donner le domaine de validité des données j,m,a (date donnée) en respectant les contraintes du calendrier (y compris les années bissextiles et conséquences du changement de calendrier).
  2. Écrire un programme qui prend en entrée une date au format jjmmssaa et qui affiche le jour correspondant.






Exercice 3.17 --- Convertion alphabet latin -- alphabet OTAN.


L'alphabet OTAN associe un mot à chaque lettre de l'alphabet latin. On considère l'ensemble de mots :
alpha bravo charlie delta echo foxtrot
golf hotel india juliet kilo lima
mike november oscar papa quebec romeo
sierra tango uniform victor whiskey xray
yankee zulu

et à chaque mot, on fait correspondre sa première lettre. Cet alphabet permet d'épeler des mots afin d'éviter les erreurs dues à une mauvaise transmission.


Écrivez un programme qui prend en entrée un mot et qui affiche la convertion de ce mot en alphabet OTAN ; les constituants de l'alphabet OTAN devront être séparés par des espaces. Cette fonction renvoie 1 en cas de succès et 0 si elle rencontre un caractère ascii intraduisible.
Remarque.
Cet exercice nécessite la notion de tableau afin de stocker les chaînes de caractères.






Pour tout commentaire : Alexandre Sedoglavic.
Précédent Remonter Suivant