C_facile : Introduction au langage C
Cours

Calcul de la surface d'un cercle

On se propose d'écrire un algorithme permettant de calculer la surface d'un cercle, de rayon 12 et d'afficher le résultat de ce calcul. Après avoir analysé le problème, nous proposons plusieurs solutions dont nous examinons les inconvénients.

Analyse du problème

il faut disposer de la valeur du rayon R

calculer la surface : pi x R²

afficher le résultat.

Premier algorithme

afficher (3.14159 x carré(12))

AttentionInconvénients

manque de souplesse. Cette solution est très mauvaise. En effet, pour calculer la surface d'un cercle ayant un rayon autre que 12, il faudra modifier le texte de l'algorithme pour remplacer la valeur 12 par la nouvelle valeur du rayon. Cette solution est beaucoup trop rigide. Le résultat est figé. Il est préférable de demander à l'utilisateur la valeur du rayon, puis d'effectuer le calcul. En outre, l'algorithme n'est pas explicite, carré(12) semble réaliser le calcul RxR si l'on se réfère à l'analyse, mais ce n'est pas explicitement dit.

Deuxième solution

lire (Y)

afficher (3.14159 x carré(Y))

AttentionInconvénients

En fait, Y n'est pas clairement définie. Le nom Y désigne une variable mais l'algorithme ne l'énonce pas. De plus, le nom de la variable est mal choisi, car peu explicite. L'opérateur binaire x correspond à la multiplication de deux opérandes (ex: a x b) ce n'est pas explicite non plus (même si cela semble évident pour vous). Il risque d'être confondu avec la lettre 'x'.

Troisième solution

pi=3.14159

demander ( entrez le rayon du cercle : )

lire (rayon)

afficher ( La surface est pi * carré(rayon) pour un cercle de valeur rayon )

AttentionInconvénients

l'algorithme commence à être plus clair mais il y a encore beaucoup d'éléments implicites.

La variable dont le nom est rayon n'est pas clairement définie, pi semble être une constante mais l'algorithme ne l'explicite nullement. Nous avons remplacé le signe 'x' de la multiplication par le signe '*', ce qui lève la confusion possible.

Calcul du salaire net (page suivante)Exemples (page Précédente)
AccueilImprimer creativecommons : by-nc-ndRéalisé avec SCENARI