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