Algorithmique & Programmation Orientée Objet
Semestre 2 ST

Structuration des programmes en sous-algorithmes
Cours Exercices PDL - Corrections Exercices Java

Exercice n°1: Sous-algorithmes "simples"

a) Ecrire un sous-algorithme de calcul du sinus d'un angle donné en degrés.

La fonction sinus prenant en paramètre un angle en radians, il convient de convertir l'angle donné en degrés en un angle en radians (multiplier par p et diviser par 180.0).

Exemple d'exécution

b) Ecrire un sous-algorithme de test si un caractère est alphabétique (minuscule ou majuscule).

On pourra comparer le caractère à tester par rapport aux caractères 'a', 'z', 'A' et 'Z' en utilisant les opérateurs <= et >=.

Exemple d'exécution

c) Ecrire un sous-algorithme de lecture au clavier d'un nombre entier positif.
L'utilisateur devra être sollicité autant de fois qu'il le faut pour qu'il saisisse une valeur admissible.

Exemple d'exécution

d) Ecrire un sous-algorithme de lecture au clavier d'un nombre réel compris dans un intervalle [min, max].
Si l'utilisateur frappe une valeur en dehors de l'intervalle, il devra être sollicité de nouveau jusqu'à ce qu'il tape une valeur admissible.

Exemple d'exécution

e) Ecrire un sous-algorithme d'affichage en hexadécimal d'un nombre entier.
On considérera que le nombre à afficher est compris dans l'intervalle [0,255].

Un nombre entier compris entre 0 et 255 en base 10, se convertit en un nombre codé sur 2 chiffres en base 16. Les 16 chiffres possibles sont 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E et F.
Exemples: 0 -> 00, 1 -> 01, 10 -> 0A, 15 -> 0F, 16 -> 10, 17 -> 11, 32 -> 20, 100 -> 64, 128 -> 80, 254 -> FE, 255 -> FF.
On pourra déterminer les valeurs décimales correspondant aux deux chiffres en hexadécimal et s'en servir pour déterminer le caractère à utiliser pour afficher le chiffre hexadécimal correspondant.

Exemple d'exécution

f) Ecrire un sous-algorithme de calcul de la valeur de sin(a) par développement limité.
La formule de calcul est sin(a) = a - a3/3! + a5/5! - a7/7! + a9/9! - ... +/- an/n!       (a en radians)

Exemple d'exécution

Exercice n°2: Sous-algorithmes avec données agrégées

a) Ecrire un sous-algorithme de calcul du sinus et du cosinus d'un angle donné en degrés.

Exemple d'exécution

b) Ecrire un sous-algorithme de test de l'inclusion d'un point de coordonnées (x,y) à l'intérieur d'un cercle de rayon r et de centre (cx,cy).

Le point est situé dans le cercle si sa distance au centre du cercle est inférieure ou égale au rayon du cercle.

Exemple d'exécution

c) Ecrire un sous-algorithme de calcul de la surface d'un rectangle du plan à cotés parallèles aux axes.

Exemple d'exécution

Exercice n°1fbis: Sous-algorithme à plusieurs niveaux

Reprendre l'exercice 1f en programmant le calcul du développement limité avec utilisation de fonctions pour les calculs de puissance et de factoriel.

Exemple d'exécution

Exercice n°3: Sous-algorithmes à plusieurs niveaux et données agrégées

a) Ecrire un sous-algorithme de test si une année est bissextile.

Exemple d'exécution

b) Ecrire un sous-algorithme de calcul du nombre de jours d'un mois codé sous la forme d'un nombre.

Exemple d'exécution

c) Ecrire un sous-algorithme de calcul de la date du jour suivant immédiatement une date codée sous la forme jour-mois-année en nombres.

Exemple d'exécution

d) Ecrire un sous-algorithme de modification d'une date codée sous la forme jour-mois-année en nombres pour l'incrémenter de un jour.

Exemple d'exécution