Bonjour,
Je dois faire un devoir permettant de calculer les quartiles
Voila ce que j'ai fait
serie = []
nb_notes = int(input("entrer le nombre de notes:"))
for i in range (nb_notes):
serie.append(float(input("entrer une note :")))
sorted(serie)
Calcul du premier quartile
if nb_notes % 4 != 0 :
q1=w serie[((nb_notes + 1) // 4) - 1]
else :
q1= (serie[(nb_notes // 4)- 1])
Calcul du troisième quartile
if nb_notes *3%4 != 0 :
q3= serie[((nb_notes + 1)*3//4) - 1]
else :
q3= (serie[(nb_notes*3//4)- 1])
print (q1)
print(q3)
Merci d'avance
salut,
fais le tourner avec un exemple
A titre de comparaison le programme sous Xcas:
// Calcul des quartiles Q1 et Q3 de A
Quartiles(A):={// Quartiles avec une majuscule
local B,n,q,r,Q1,Q3 ;
B:=sort(A);
n:=size(A);
r:=irem(n,4);// reste de la division euclidienne de n par 4
q:=iquo(n,4);// quotient de la division euclidienne de n par 4
if(r==0){// n=4*q
Q1:=B[q-1];
Q3:=B[3*q-1];
};
if(r==1){// n=4*q+1
Q1:=B[q];
Q3:=B[3*q];
};
if(r==2){// n=4*q+2
Q1:=B[q];
Q3:=B[3*q+1];
};
if(r==3){// n=4*q+3
Q1:=B[q];
Q3:=B[3*q+2];
};
return Q1,Q3;
};
Merci de m'avoir répondu,
Donc ,en gros, il faut que je calcule le quotient et la division euclidienne et le reste .. mais après je ne comprends plus car je travaille uniquement sur Python donc je ne connais pas xcas :'(
je ne dis pas que ton programme est incorrect
il faut le tester avec des listes de longueur 16, 17, 18, 19
Je viens de tester et étrangement le problème a marché pour 16 et 19 nombres de notes, est-ce que vous savez pourquoi ?
s'il ne marche pas pour 17 et 18 il faut le reprendre
tu peux t'inspirer du pgm Xcas qui distingue les 4 cas
papier et crayon indispensables !
Je crois avoir trouvé pour le premier quartile
serie=[]
nb_notes = 0
nb_notes = int(input("entrer le nombre de notes : "))
for i in range (nb_notes) :
serie.append(float(input("entrer une note : ")))
sorted(serie)
if nb_notes%4==0:
q1=(serie[(nb_notes // 4)- 1])
if nb_notes%4==1:
q1=(serie[(nb_notes+3)//4-1])
if nb_notes%4==2:
q1=(serie[(nb_notes+2)//4-1])
if nb_notes%4==3:
q1=(serie[(nb_notes+1)//4-1])
print(q1)
Je pense avoir trouvé pour le troisième quartile également
serie=[]
nb_notes = 0
nb_notes = int(input("entrer le nombre de notes : "))
for i in range (nb_notes) :
serie.append(float(input("entrer une note : ")))
sorted(serie)
if nb_notes*3//4==0:
q3=(serie[(nb_notes*3//4)-1])
if nb_notes*3//4==1:
q3=(serie[((nb_notes+1)*3//4)-1])
if nb_notes*3//4==2:
q3=(serie[((nb_notes+2)*3//4)-1])
if nb_notes*3//4==3:
q3=(serie[((nb_notes+1)*3//4)-1])
print("Le troisieme quartile est",q3)
Vous pouvez vérifier pour voir si ce que j'ai mis est bon ?
J'ai enfin réussi
Voilà le programme
#Calcul du premier quartile
if nb_notes%4==0:
q1=(serie[(nb_notes//4)- 1])
if nb_notes%4==1:
q1=(serie[(nb_notes+3)//4-1])
if nb_notes%4==2:
q1=(serie[(nb_notes+2)//4-1])
if nb_notes%4==3:
q1=(serie[(nb_notes+1)//4-1])
#Calcul du troisieme quartile
if nb_notes%4==0:
q3=serie[(nb_notes*3//4)-1]
if nb_notes%4==1:
q3=serie[((nb_notes+3)*3//4-2)-1]
if nb_notes%4==2:
q3=serie[(nb_notes+2)*3//4-2]
if nb_notes%4==3:
q3=serie[(nb_notes+1)*3//4-1]
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :