Fiche algorithme : les
séquences exercice n°10.
PLAN.
Phase
0 : Énoncé (spécifications).
Phase
1 : Étape de réflexion (conception abstraite).
Phase
2 : L'algorithme associé à son lexique (conception concrète).
Phase
3 : Programmation (codification).
Langage
C en mode console avec DevC++.
Langage
C++ en mode console avec DevC++.
Phase
4 : jeux d’essai (tests)
On veut calculer la surface et le périmètre d’un carré.
A partir de l'énoncé on doit définir les flux entrants (les données du problème), les flux sortants (les résultats du problème), et le moyen de passer des uns aux autres.
On détermine aisément les résultats ils font parties de l’énoncé (la surface et le périmètre d’un carré), ce qui n’est pas le cas des données.
On va donc mettre en place un calcul permettant de déterminer le résultat (de façon simple) ce qui fera apparaître par décomposition fonctionnelle les données indispensables.
Résultat
Le périmètre du carré PERI
La surface du carré SURF
Traitement
PERI = 4 * COTE
SURF = COTE²
Données
Avec
La longueur du coté du carré COTE
Lexique
Variables
COTE (réel) La longueur du coté du carré
PERI (réel) Le périmètre du carré
SURF (réel) La surface du carré
Fonction intrinsèque
Fonction CARRE (donnée X (réel)) résultat (réel)
Ä retourne la valeur du carré de X
Début
Lire(COTE)
PERI ç 4 * COTE
SURF ç Carré(COTE)
Ecrire(PERI,SURF)
Fin
On peut désormais choisir un langage de programmation cible, et traduire le précédent algorithme pour en obtenir le programme correspondant …
#include <stdio.h>
#include <math.h>
/* déclaration des variables */
float
COTE,PERI,SURF;
char
BIDON;
int main()
{ /* acquisition des données*/
printf("Entrer la
longueur du coté du carré (en mètres)\n") ;
scanf("%f",&COTE)
;
/* traitement*/
PERI
= 4 * COTE;
SURF
= pow(COTE,2); /* pow est une fonction de la
bibliothèque math.h */
/* restitution des résultats*/
printf("\nLe
périmètre est\n%10.2f mètres\n", PERI) ;
printf("\nLa surface est\n%10.2f mètres carrés\n", SURF) ;
/* pause et
terminaison de programme */
printf("\n\n\n");
printf("fermer la fenetre pour quiter le programme") ;
scanf(" %c",&BIDON);
return 0;
}
#include <iostream.h>
#include <stdlib.h>
#include <math.h>
/* déclaration des variables */
float COTE,PERI,SURF;
int main()
{ /* acquisition des données*/
cout
<< "Entrer la longueur du coté du carré (en mètres)\n" ;
cin
>> COTE ;
/* traitement*/
PERI
= 4 * COTE;
SURF
= pow(COTE,2); /* pow est une fonction de la
bibliothèque math.h */
/* restitution des résultats*/
cout
<< '\n'
<<
"Le
périmètre est \n"
<<
PERI
<< " mètres\n";
cout
<< "\n"
<<
"La
surface est\n"
<<
SURF
<< " mètres carrés\n";
/* pause et
terminaison de programme */
cout
<< "\n\n\n";
system("PAUSE");
return 0;
}
Rappel : Une application n'est définitivement valide qu'après avoir subi une phase de tests par l'intermédiaire d'un choix judicieux de jeux d’essai (échantillon de données correspondants à la réalité du problème à traiter).