Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
No results found
Show changes
Commits on Source (18)
## Etendue et qualité de l'étude
- Nombre de structures
- [ ] Tableau et liste chainées (implantations maison + implantations standard) + une autre structure sandard sont traités.
- [ ] Tableau et liste chainées (implantations maison + implantations standard)
- [x] Tableau et liste chainées ne sont pas traités
- Nombre d'opérations
- [ ] Au moins trois opérations sont traitées.
- [ ] Deux opérations sont traitées.
- [x] Deux opérations ne sont pas traitées.
- Aspects
- [ ] Consommation mémoire et CPU sont traitées.
- [ ] Consommation mémoire ou CPU sont traitées.
- [x] Consommation mémoire et CPU ne sont pas traitées.
- Qualité
- [ ] Les principes de la programmation objet sont pleinement exploités, notamment l'héritage et l'abstraction.
- [ ] Les principes de la programmation objet sont exploités, notamment l'héritage.
- [x] Les principes de la programmation objet ne sont pas exploités.
## Rédaction et analyses
- Description du problème
- [ ] La section est pertinente, succincte et précise.
- [ ] La section est pertinente.
- [x] La section n'est pas pertinente.
- Application
- [ ] La section est pertinente, succincte et précise.
- [ ] La section est pertinente.
- [x] La section n'est pas pertinente.
- Environnement de test
- [ ] La section est pertinente, succincte et précise.
- [ ] La section est pertinente.
- [x] La section n'est pas pertinente.
- Description de la démarche systématique
- [ ] La section est pertinente, succincte et précise.
- [ ] La section est pertinente.
- [x] La section n'est pas pertinente.
- Analyse des résultats préalables
- [ ] La section est pertinente, succincte et précise.
- [ ] La section est pertinente.
- [x] La section n'est pas pertinente.
- Discussion des résultats préalables
- [ ] La section est pertinente, succincte et précise.
- [ ] La section est pertinente.
- [x] La section n'est pas pertinente.
- Hypothèse
- [ ] La section est pertinente, succincte et précise.
- [ ] La section est pertinente.
- [x] La section n'est pas pertinente.
- Protocole expérimental de vérification de l'hypothèse
- [ ] La section est pertinente, succincte et précise.
- [ ] La section est pertinente.
- [x] La section n'est pas pertinente.
- Analyse des résultats expérimentaux
- [ ] La section est pertinente, succincte et précise.
- [ ] La section est pertinente.
- [x] La section n'est pas pertinente.
- Discussion des résultats expérimentaux
- [ ] La section est pertinente, succincte et précise.
- [ ] La section est pertinente.
- [x] La section n'est pas pertinente.
- Conclusion et travaux futurs
- [ ] La section est pertinente, succincte et précise.
- [ ] La section est pertinente.
- [x] La section n'est pas pertinente.
## Résultats
- Nombre
- [ ] Les tests sont suffisament nombreux pour observer des épiphénomènes
- [ ] Les tests sont suffisament nombreux pour observer des phénomènes
- [x] Les tests ne sont pas suffisament nombreux pour observer des phénomènes
- Echantillon
- [ ] L'échantillon choisi a un bon équilbre entre temps d'exécution et observations
- [ ] L'échantillon choisi néglige les temps d'exécution
- [x] L'échantillon choisi néglige les observations
- Artefacts
- [ ] Les observations excluent tout artefacts
- [ ] Certains artefacts, comme des pas d'horloge, sont visibles
- [x] Seuls des artefacts sont observables
- Décoration
- [ ] Les plots contiennent légende et titre
- [ ] Les plots contiennent légende ou titre
- [x] Les plots ne contiennent ni légende ni titre
- Lisibilité
- [ ] Les plots permettent de lire clairement toutes les séries
- [ ] Les plots permettent de lire clairement la plupart des séries
- [x] Les plots permettent pas de lire clairement la plupart des séries
- Echelles
- [ ] Les échelles sont respectées pour permettre la visualisation et la comparaison des séries entre plots
- [ ] Les échelles sont respectées pour permettre la visualisation des séries entre plots
- [x] Les échelles ne sont pas respectées pour permettre la visualisation des séries entre plots
## Hypothèse
- Originalité
- [ ] L'hypothèse émise est orginale et trouvée intégralement par l'étudiant.
- [ ] L'hypthèse émise est orginale.
- [x] L'hypthèse émise n'est pas originale.
- Difficulté
- [ ] L'hypothèse émise est très difficile à prouver.
- [ ] L'hypothèse émise est difficile à prouver.
- [x] L'hypothèse émise est facile à prouver.
- Théorie
- [ ] L'analyse de l'hypothèse se confronte à la théorie avec pertinence.
- [ ] L'analyse de l'hypothèse se confronte à la théorie.
- [x] L'analyse de l'hypothèse ne se confronte pas à la théorie.
# Total
- Total d'item « Excellent » (1 point) :
- Total d'item « Satisfaisant » (0,5 point) :
- Total d'item « Insatisfaisant » (0 point) :
- Note sur 24 :
# P4a : Analyse de performances de différentes structures
[Grille d'évaluation P4a](https://docs.google.com/spreadsheets/d/1x72glVEQHPx56Wr8G0RNQgfQXGX6xCsjms_6b7J6si0/edit?usp=sharing
)
[Grille d'évaluation P4a](Evaluation.md)
## Problème
......@@ -12,6 +10,10 @@ Description de tous les paramètres exploratoires du problème
## Dispositif expérimental
### Organisation objet
Description de l'organisation des classes et interfaces, ou diagramme de classes.
### Application
[code source de l'application](chemin)
......
#!/bin/R
library(ggplot2)
df <- read.table("perf.dat", header=TRUE)
png("prealable.png")
ggplot(df,aes(x=taille,y=exectime,colour=version)) +
geom_point() + geom_smooth() +
ggtitle("Mesures préalables des 4 versions")
dev.off()
test taille version exectime mem
1 21800000 v4 0.45 86668
1 21800000 v2 0.56 86676
1 21800000 v1 2.30 86768
1 21800000 v3 2.14 86768
2 14057000 v4 0.31 56508
2 14057000 v2 0.36 56432
2 14057000 v3 1.45 56452
2 14057000 v1 1.54 56420
3 5089000 v4 0.10 21484
3 5089000 v2 0.13 21476
3 5089000 v3 0.52 21388
3 5089000 v1 0.53 21460
4 9411000 v4 0.20 38300
4 9411000 v2 0.22 38304
4 9411000 v3 0.94 38372
4 9411000 v1 0.98 38272
5 32386000 v4 0.71 128116
5 32386000 v2 0.80 128116
5 32386000 v3 3.28 128040
5 32386000 v1 3.46 128088
6 15352000 v4 0.34 61484
6 15352000 v2 0.39 61516
6 15352000 v3 1.62 61480
6 15352000 v1 1.64 61504
7 17015000 v4 0.37 68004
7 17015000 v2 0.42 68008
7 17015000 v3 1.72 67988
7 17015000 v1 1.79 68012
8 14627000 v4 0.31 58720
8 14627000 v2 0.37 58804
8 14627000 v3 1.57 58748
8 14627000 v1 1.62 58660
9 23156000 v4 0.49 91976
9 23156000 v2 0.59 92036
9 23156000 v3 2.44 92064
9 23156000 v1 2.45 92064
10 31361000 v2 0.77 124112
10 31361000 v4 0.68 124112
10 31361000 v3 3.19 124052
10 31361000 v1 3.32 124036
#!/bin/bash
echo -e "test\ttaille\tversion\texectime\tmem"
for test in `seq 1 10`
do
taille=${RANDOM}000
for version in 1 2 3 4
do
(
res=`(/usr/bin/time -f "%U\t%M" ./recherche $taille $version > /dev/null) 2>&1`
echo -e "$test\t$taille\tv$version\t$res"
) &
done
wait
done
prealable-mem.png

18.6 KiB

prealable.png

28.1 KiB

......@@ -6,7 +6,7 @@
#include <stdlib.h>
#include <time.h>
#define MAX_VALEUR 150000
#define MAX_VALEUR 15
int *generer_tableau(long long unsigned int n)
{
......@@ -30,53 +30,37 @@ void afficher_tableau(int *tableau, long long unsigned int n)
}
char rechercherV1(int *tableau, long long unsigned int n, int valeur)
long long unsigned int rechercher(int *tableau, long long unsigned int n, int valeur)
{
long long unsigned int i;
char trouve = 0;
long long unsigned int trouve = -1;
for (i=0; i<n; i++) {
if (tableau[i] == valeur) {
trouve=1;
trouve=i;
}
}
return trouve;
}
char rechercherV2(int *tableau, long long unsigned int n, int valeur)
{
long long unsigned int i;
char trouve = 0;
for (i=0; i<n; i++) {
if (tableau[i] == valeur) {
return 1;
}
}
return 0;
}
int main(int argc, char *argv[])
{
int *tableau;
int taille, valeur;
char trouve;
int version;
if (argc<2) {
printf("%s: opérande manquant\n",argv[0]);
printf("Recherche une valeur aléatoire dans un tableau d'entier aléatoire de taille n\n");
printf("Affiche le tableau et renvoie 1 si la valeur est trouvée, 0 sinon\n");
exit(1);
printf("Usage: %s taille version [graine]\n",argv[0]);
printf("Usage: %s taille [graine]\n",argv[0]);
}
unsigned int graine;
if (argc>3) {
graine = atoi(argv[3]);
if (argc>2) {
graine = atoi(argv[2]);
} else {
graine = time(NULL);
}
......@@ -84,26 +68,11 @@ int main(int argc, char *argv[])
srand(graine);
taille = strtoull(argv[1], (char **) NULL, 10);
version = strtoull(argv[2], (char **) NULL, 10);
valeur = rand()%MAX_VALEUR;
tableau = generer_tableau(taille);
switch(version) {
case 1:
afficher_tableau(tableau,taille);
trouve = rechercherV1(tableau, taille, valeur);
break;
case 2:
trouve = rechercherV1(tableau, taille, valeur);
break;
case 3:
afficher_tableau(tableau,taille);
trouve = rechercherV2(tableau, taille, valeur);
break;
case 4:
trouve = rechercherV2(tableau, taille, valeur);
break;
}
afficher_tableau(tableau,taille);
trouve = rechercher(tableau, taille, valeur);
printf("Valeur %d trouve: %d\n",valeur, trouve);
printf("Valeur %d trouvée: %u\n",valeur, trouve);
}