Transcodage de l’algorithme en langage C
//Tableau
void Exo2(int T[], int N)
{
char i ;
for(i=0; i<N; i++)
{
T[i]=i;
printf(« La case %d du tableau contient %d\n»,i, T[i]);
}
}
void Main(void)
{
char size = 10;
char Tableau[size];
Exo2(Tableau,size);
}
Tests
Dans cet exercice, laisser les élèves se tremper sur le type des variables (unsigned char ou char) avant de faire
un commentaire.
Résultat (Ok/Ko), commentaire
Dépassement de valeur par le type
Conclusion
Nous avons utilisé pour les variables d’entrée a et b le type entier positif (unsigned char)
sur un octet pour respecter l’énoncé du cahier des charges. Les valeurs permises pour ces
variables sont entre 0 et 255. Le résultat véhiculé par la variable S est également de type
entier positif (unsigned char) sur un octet. Ceci ne nous permet pas de dépasser une
somme de 255 de a et b ensemble.
Les tests numéros 2 et 4 ne sont pac concluant car la saisie des valeurs de types ne
correspondants pas au type de données (unsigned char) n’est as contrôlé.
Le test numéro 3 n’est pas concluant car il y a dépassement de la valeur permise pour la
variable S qui est de 0 à 255.
Nous suggérons, pour résoudre ce problème de choisir un type entier positif sur 2 octets
(unsigned short).
Comme perspectives pour améliorer le future programme, nous suggérons de faire un contrôle
de la saisie au clavier sur le type des données avant de calculer la somme et contrôler les
limites des valeurs.