pdf - e-book - archive - github.com

2.2  Opérateurs

2.2.1  Conversions

Exercice 1 Successeur

Ecrivez un programme qui saisit un caractère et qui affiche son successeur dans la table des codes UNICODE.

Corrigé

Exercice 2 Codes UNICODE

Quels sont les codes UNICODE des caractères '0', '1', …, '9'

Corrigé

Exercice 3 Moyennes arithmétique et géométrique

Demander à l’utilisateur de saisir deux valeurs a et b et type float. Afficher ensuite la différence entre la moyenne arithmétique (a + b)/2 et la moyenne géométrique √ab. Vous utiliserez l’instruction Math.Sqrt(f) qui donne la racine carrée du double f.

Corrigé

Exercice 4 Cartons et camions

Nous souhaitons ranger des cartons pesant chacun k kilos dans un camion pouvant transporter M kilos de marchandises. Ecrire un programme demandant à l’utilisateur de saisir M et k, que vous représenterez avec des nombres flottants, et affichant le nombre (entier) de cartons qu’il est possible de placer dans le camion.

Corrigé

2.2.2  Opérations sur les bits (difficiles)

Exercice 5 Codage d’adresses IP

Une adresse IP est constituée de 4 valeurs de 0 à 255 séparées par des points, par exemple 192.168.0.1, chacun de ces nombres peut se coder sur 1 octet. Comme certaines variables de type numérique occupent 4 octets en mémoire, il est possible de s’en servir pour stocker une adresse IP entière. Ecrivez un programme qui saisit dans 4 variables chaque valeur constituant une adresse IP. Vous créerez ensuite une variable numérique de octets dans laquelle vous juxtaposerez ces quatre valeurs. Ensuite vous mettrez en oeuvre le processus inverse : vous extrairez de cet entier les 4 nombres de l’adresse IP et les afficherez en les séparant par des points. Vous devriez ainsi retrouver les quatre nombres saisis par l’utilisateur...

Corrigé

Exercice 6 Permutation circulaire des bits

Effectuez une permutation circulaire vers la droite des bits d’une variable numérique entière, faites de même vers la gauche.

Corrigé

Exercice 7 Permutation de 2 octets

Permutez les deux octets d’une variable numérique à 2 octets saisie par l’utilisateur.

Corrigé

Exercice 8 Inversion de l’ordre de 4 octets

Inversez l’ordre des octets d’une variable numérique de 4 octets saisie par l’utilisateur. Utilisez le code du programme sur les adresses IP pour tester votre programme.

Corrigé

2.2.3  Morceaux choisis (difficiles)

Exercice 9 Pièces de monnaie

Nous disposons d’un nombre illimité de pièces de 0.5, 0.2, 0.1, 0.05, 0.02 et 0.01 euros. Nous souhaitons, étant donné une somme S, savoir avec quelles pièces la payer de sorte que le nombre de pièces utilisée soit minimal. Par exemple, la somme de 0.96 euros se paie avec une pièce de 0.5 euros, deux pièces de 0.2 euros, une pièce de 0.05 euros et une pièce de 0.01 euros.

  1. Le fait que la solution donnée pour l’exemple est minimal est justifié par une idée plutôt intuitive. Expliquez ce principe sans excès de formalisme.
  2. Ecrire un programme demandant à l’utilisateur de saisir une valeur comprise entre 0 et 0.99. Ensuite, affichez le détail des pièces à utiliser pour constituer la somme saisie avec un nombre minimal de pièces.

Corrigé

Exercice 10 Modification du dernier bit

Modifiez le dernier bit d’une variable numérique a saisie par l’utilisateur.

Corrigé

Exercice 11 Associativité de l’addition flottante

L’ensemble des flottants n’est pas associatif, cela signifie qu’il existe trois flottants a, b et c, tels que (a + b) + ca + (b + c). Trouvez de tels flottants et vérifiez-le dans un programme.

Corrigé

Exercice 12 Permutation sans variable temporaire

Permutez deux variables a et b sans utiliser de variable temporaire.

Corrigé