Nous considérons le programme suivant :
PROGRAMME ClassementATP
VARIABLES: entier
nbJoueurs : pointeur de joueur
tabJoueurs
DEBUT("Combien de joueur voulez vous créer ?")
ECRIRE(nbJoueurs);
LIRE 0 à nbJoueurs FAIRE
POUR i allant de ("nom :")
ECRIRE (tabJoueur[i].nom)
LIRE ("prenom :")
ECRIRE (prenom,MAX_TAILLE);
ALLOUER(tabJoueur[i].prenom)
LIRE ("Annee de naissance :")
ECRIRE (tabJoueur[i].anneeNaissance)
LIRE ("PointsATP :")
ECRIRE (tabJoueur[i].ptsATP)
LIRE
FIN POUR FIN
Nous considérons le fichier mesArtistes.csv suivant :
;prenom;nbDisques;anneeN nom
: ECRIRE("Mon nom : "+nom+" c'est moi ")
EN ALGO : printf("Mon nom : %s c'est moi",nom); EN C
DU COUP :
: ECRIREFICHIER(lefichier,"Mon nom : "+nom+" c'est moi ")
EN ALGO : fprintf(lefichier,"Mon nom : %s c'est moi",nom);
EN C
: lefichier <- ouvertureFichier("nomDuFichier.csv",a)
EN ALGO : lefichier = fopen("mesArtistes.csv", "a");
EN C
: SI (a <> 0)
EN ALGO : if (a != 0) EN C
PROGRAMME GestionArtiste
VARIABLES: Artiste
a
DEBUT(argc <> 5) ALORS
SI ("Il n'y a pas le bon nombres d'arguments")
ECRIRE
SINON(a.nom,MAX_TAILLE)
ALLOUER.nom <- argv[1]
a(a.prenom,MAX_TAILLE)
ALLOUER.prenom <- argv[2]
a.nbDisques <- CONVERT(argv[3])
a.anneeN <- CONVERT(argv[4])
a(a)
ajouterArtiste
FIN SI FIN
: ECRIRE("Mon nom : "+nom+" c'est moi ")
EN ALGO : printf("Mon nom : %s c'est moi",nom); EN C
DU COUP :
: ECRIREFICHIER(lefichier,"Mon nom : "+nom+" c'est moi ")
EN ALGO : fprintf(lefichier,"Mon nom : %s c'est moi",nom);
EN C
: lefichier <- ouvertureFichier("nomDuFichier.csv",a)
EN ALGO : lefichier = fopen("mesArtistes.csv", "a");
EN C
: SI (a <> 0)
EN ALGO : if (a != 0) EN C
(a : Artiste)
PROCEDURE ajouterArtiste
VARIABLES: pointeur de fichier
fichier
DEBUT<- NULL
fichier <- ouvertureFichier("mesArtistes.csv", "a")
fichier (fichier <> NULL) ALORS
SI (fichier,a.nom,a.prenom,a.nbDisques,a.anneeN)
ECRIREFICHIER(fichier, "\n")
ECRIREFICHIER(fichier);
FERMETUREFICHIER
FIN SI FIN
Nous 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[]){
("%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));
printfreturn 0;
}
int F1(int nb){
int res=0;
int tmp=0;
while(nb!=0){
= nb % 2;
tmp = res * 10 + tmp;
res = nb / 2;
nb }
return res;
}
int F2(int nb, int acc){
if (nb == 0) {
return acc;
} else {
return F2(nb/2, acc*10 +(nb%2));
}
}
(1)=1
F1(25)=11001
F1(0)=0
F1(10)=1010
F1(1)=1
F2(0)=0
F2(25)=11001
F2(10)=1010 F2
Lorsque 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é.