Buts de la séance
Indenter un fichier source, c'est introduire, par l'intermédiaire de blancs, de tabulations et de sauts de page, des éléments qui vont faciliter l'écriture, la lecture et la correction de programme.
Par exemple, le code :
Exercice 1
Appliquer les normes au code suivant.
Un langage de programmation définit une syntaxe. Cette syntaxe, qu'on peut définir à l'aide d'une grammaire, spécifie les mots reconnu par le langage, ainsi que les compositions de mots qui sont valides dans ce langage. La validité de cette syntaxe est vérifié par le compilateur du langage.
Exemple : sous-ensemble de la grammaire du langage C
<affectation>
::= <identificateur> '='
<expression> ';'
<boucle>
::= while '(' <expression> ')'
<bloc_d_instructions>
<bloc_d_instructions> ::=
<instruction>
| '{ ' <liste_d_instructions>
'} '
<liste_d_instructions> ::= Æ
| <instruction>
<liste_d_instructions>
<condition>
::= if '(' <expression> ')'
<bloc_d_instructions>
<clause_else>
<clause_else>
::= Æ
| else <bloc_d_instructions>
<appel_de_fonction>
::= <identificateur> '('
<liste_de_parametres>
')'
<liste_de_parametres> ::=
Æ
| <expression> <suite_liste>
<suite_liste>
::= Æ
| ',' <expression>
<suite_liste>
<expression>
::= <expression> <operateur>
<expression>
| '(' <expression> ')'
| <appel_de_fonction>
| <identificateur>
| <constante>
<operateur>
::= '+' | '-' | '*' | '/' | '%'
| '==' | '!='
while (y = 3)
{
if (h(y) % 2 !=
0)
{
printf("Resultat non divisible par 2");
}
else
printf("Resultat divisible par 2");
3 Travail pratique complétant la séance
A partir du programme donné ci-dessous, il faut :
int NoteNonCorrecte(float note)
{
return((note < 0) || (note > 20));
}
float LireNote(int note_num)
{
float note_lue;
int valeur_correcte = 0;
do
{
printf("Entrer la note numero %d ? ", note_num);
fflush(stdin);
if (scanf("%f", ¬e_lue) != 1)
printf("Probleme lors de la lecture de la note
(format incorrecte) : nouvel essai.");
else if (NoteNonCorrecte(note_lue))
printf("Note incorrecte (valeur entre 0 et 20)
: nouvel essai.");
else valeur_correcte = 1;
}
while (!valeur_correcte);
return(note_lue);
}
int main()
{
int note_num;
float n1, n2, n3, n4, n5;
float moyenne;
for (note_num = 1; note_num <= NB_NOTES; note_num
= note_num + 1)
{
switch (note_num)
{
case 1 : n1 = LireNote(1); break;
case 2 : n2 = LireNote(2); break;
case 3 : n3 = LireNote(3); break;
case 4 : n4 = LireNote(4); break;
case 5 : n5 = LireNote(5); break;
}
}
moyenne = (n1 + n2 + n3 + n4 + n5) / NB_NOTES;
printf("Calcul de la moyenne des %d notes suivantes
: %5.2f %5.2f %5.2f %5.2f %5.2f.", NB_NOTES, n1, n2, n3, n4, n5);
printf("La moyenne est %5.2f !", moyenne);
}