Nous considérons le programme suivant :
PROGRAMME ClassementATP
VARIABLES
nbJoueurs : entier
tabJoueurs : pointeur de joueur
DEBUT
ECRIRE("Combien de joueur voulez vous créer ?")
LIRE (nbJoueurs);
POUR i allant de 0 à nbJoueurs FAIRE
ECRIRE ("nom :")
LIRE (tabJoueur[i].nom)
ECRIRE ("prenom :")
ALLOUER(prenom,MAX_TAILLE);
LIRE (tabJoueur[i].prenom)
ECRIRE ("Annee de naissance :")
LIRE (tabJoueur[i].anneeNaissance)
ECRIRE ("PointsATP :")
LIRE (tabJoueur[i].ptsATP)
FIN POUR
FINNous considérons le fichier mesArtistes.csv suivant :
nom;prenom;nbDisques;anneeNEN ALGO : ECRIRE("Mon nom : "+nom+" c'est moi ")
EN C : printf("Mon nom : %s c'est moi",nom);DU COUP :
EN ALGO : ECRIREFICHIER(lefichier,"Mon nom : "+nom+" c'est moi ")
EN C : fprintf(lefichier,"Mon nom : %s c'est moi",nom);
EN ALGO : lefichier <- ouvertureFichier("nomDuFichier.csv",a)
EN C : lefichier = fopen("mesArtistes.csv", "a");
EN ALGO : SI (a <> 0)
EN C : if (a != 0)PROGRAMME GestionArtiste
VARIABLES
a : Artiste
DEBUT
SI (argc <> 5) ALORS
ECRIRE("Il n'y a pas le bon nombres d'arguments")
SINON
ALLOUER(a.nom,MAX_TAILLE)
a.nom <- argv[1]
ALLOUER(a.prenom,MAX_TAILLE)
a.prenom <- argv[2]
a.nbDisques <- CONVERT(argv[3])
a.anneeN <- CONVERT(argv[4])
ajouterArtiste(a)
FIN SI
FINEN ALGO : ECRIRE("Mon nom : "+nom+" c'est moi ")
EN C : printf("Mon nom : %s c'est moi",nom);DU COUP :
EN ALGO : ECRIREFICHIER(lefichier,"Mon nom : "+nom+" c'est moi ")
EN C : fprintf(lefichier,"Mon nom : %s c'est moi",nom);
EN ALGO : lefichier <- ouvertureFichier("nomDuFichier.csv",a)
EN C : lefichier = fopen("mesArtistes.csv", "a");
EN ALGO : SI (a <> 0)
EN C : if (a != 0)PROCEDURE ajouterArtiste(a : Artiste)
VARIABLES
fichier : pointeur de fichier
DEBUT
fichier <- NULL
fichier <- ouvertureFichier("mesArtistes.csv", "a")
SI (fichier <> NULL) ALORS
ECRIREFICHIER(fichier,a.nom,a.prenom,a.nbDisques,a.anneeN)
ECRIREFICHIER(fichier, "\n")
FERMETUREFICHIER(fichier);
FIN SI
FINNous considérons le code ci-dessous :
#include <stdio.h>
#include <stdlib.h>
/* Auteur : ????? */
/* Date : ????? */
/* Résumé : ????? */
/* Entrée(s) : ????? */
/* Sortie(s) : ????? */
int F1(int nb);
/* Auteur : ????? */
/* Date : ????? */
/* Résumé : ????? */
/* Entrée(s) : ????? */
/* Sortie(s) : ????? */
int F2(int nb, int acc);
int main(int argc, char* argv[]){
printf("%d \n",F1(1));
printf("%d \n",F2(1,0));
printf("%d \n",F1(3));
printf("%d \n",F2(3,0));
printf("%d \n",F1(5));
printf("%d \n",F2(5,0));
printf("%d \n",F1(17));
printf("%d \n",F2(17,0));
return 0;
}
int F1(int nb){
int res=0;
int tmp=0;
while(nb!=0){
tmp = nb % 2;
res = res * 10 + tmp;
nb = nb / 2;
}
return res;
}
int F2(int nb, int acc){
if (nb == 0) {
return acc;
} else {
return F2(nb/2, acc*10 +(nb%2));
}
}F1(1)=1
F1(25)=11001
F1(0)=0
F1(10)=1010
F2(1)=1
F2(0)=0
F2(25)=11001
F2(10)=1010Lorsque l’on a accès au code, on parle de tests en boîte blanche. Il existe alors des méthodes mathématiques pour déterminer quels tests et le nombre de tests à réaliser. Cela sera l’objet d’un cours prochainement dans votre scolarité…. Nous allons alors considérer que l’on ne ”connaı̂t pas” le code à exécuter (utilisation d’une librairie compilée par exemple ; on parle alors de tests en boîte noire), nous connaissons ”seulement” les données en entrée et la réponse attendue. Par défaut nous testerons donc les cas limites sur ces paramètres et quelques cas classiques. Nous allons donc effectuer des tests en boîte noire, uniquement axés sur les fonctionnalités attendues, selon les données en entrée.
Vous trouverez ici une librairie compilée et le .h correspondant, fournissant en commentaire une description de données, ainsi que le résultat donné.