Xavier Delahaye
unread,Dec 2, 2012, 12:47:51 PM12/2/12Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to java...@googlegroups.com
Bonjour,
J'utilise JavaScool en spécialité ISN avec des élèves de TS.
Je profite de l'occasion pour vous remercier de cet outil bien conçu et facile à utiliser en
classe.
A titre d'exercice je veux faire travailler les élèves sur la recherche de nombres premiers (de
taille modeste) et je voulais en profiter pour comparer les temps d'exécution de différents
programmes.
Or j'ai été surpris de constater sur mon ordinateur une grande différence d'exécution entre
un programme fait avec une boucle for (résultat obtenu en moins d'une seconde) et le même
fait avec une boucle while (une minute et 33 secondes). Je vous joins, à toutes fins utiles, les
deux versions du programme.
N'étant qu'un amateur dans le domaine de la programmation j'aurais aimé savoir s'il y avait
une explication à cela ? Est-ce une différence dûe à Javascool, à Java, à tous les langages
de programmation ? Ou est-ce moi qui commet une erreur ?
Merci si vous avez le temps de me répondre.
Cordialement
Xavier Delahaye
Lycée F Daguin
33700 Mérignac
--------------------------------
version for :
void main(){
int max=1000;
int nbpremiers[]=new int[max];
nbpremiers[0]=2;
int index=1;
int j;
boolean premier;
for (int i = 3 ; i <= max ; i++) {
premier=true;
for (j =0 ; j < index ; j++ ) {
// j=0;
// while (j < index) {
if (i%nbpremiers[j]==0) {
premier=false;
}
// j++;
}
if (premier==true) {
nbpremiers[index]=i;
index=index+1;
}
}
println(index);
}
version while
void main(){
int max=1000;
int nbpremiers[]=new int[max];
nbpremiers[0]=2;
int index=1;
int j;
boolean premier;
for (int i = 3 ; i <= max ; i++) {
premier=true;
// for (j =0 ; j < index ; j++ ) {
j=0;
while (j < index) {
if (i%nbpremiers[j]==0) {
premier=false;
}
j++;
}
if (premier==true) {
nbpremiers[index]=i;
index=index+1;
}
}
println(index);
}