Bonjour,
Je voudrais calculer la médiane de plusieurs nombres stockés sous la forme de string dans un tableau Excel dans la colonne 4 à partir de la ligne 4.
Ces nombres sont stockés au fur et à mesure par un programme.
Le numéro de ligne est incrémenté pour stocker ces nombres les uns en dessous des autres.
J' incrémente un integer (k) à chaque fois qu'il est possible de lire le nombre dans une ligne Excel (cela voudra dire qu'une valeur y est placée). K contient donc le nombre de valeurs placées dans la colonne 4.
Je lis Excel par l’intermédiare d’une de mes fonctions.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 while excel.Lire(k,4) <> '' do try excel.Lire (k,4); except inc(k) ;
J'ajoute 1 à k puis je le divise par 2 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 excel.Lire (k,4) ; // avec k le numéro de ligne.
mediane := (k + 1)/2;
Suivant si le nombre de mes valeurs placées dans Excel sont paires ou impaires le calcul de la médiane est différent :
Médiane = (k + 1) ÷ 2 avec k le nombre de chiffres stockés dans Excel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if (k mod 2)=0 then // si le reste de la division (k div 2) est égal a zero alors nombre pair else
Par exemple, dans mon tableau il y a ces chiffres:
25, 26, 27, 28 et 29.
Médiane = (k + 1) ÷ 2
= (5 + 1) ÷ 2
= 3
La troisième valeur dans l'ensemble de données sera la médiane. Comme la troisième valeur est 27 secondes, elle constituera le temps médian.
Autre exemple avec un nombre pair de mes nombres stockés dans Excel.
25, 26, 27, 28, 29, 30. On utilise ensuite la même formule pour calculer le temps médian.
Médiane = la valeur (k + 1) ÷ 2
= (6 + 1) ÷ 2
= 7 ÷ 2
= 3,5
Il n'y a aucune valeur intermédiaire distincte. La médiane tombe entre les 3e et 4e valeurs, c'est-à-dire la 3,5e observation dans l'ensemble de données. On calcule donc la médiane en établissant la moyenne des deux valeurs intermédiaires, 27 et 28.
Moyenne = (valeur au-dessous de la médiane + valeur au-dessus de la médiane) ÷ 2
= (troisième valeur + quatrième valeur) ÷ 2
= (27 + 28) ÷ 2
= 55 ÷ 2
= 27,5 = médiane
Ensuite il faut donc que je lise le contenu de la ligne médiane si le nombre de valeurs est impair, et/ou calculer la moyenne des valeurs en dessous et au dessus si le nombre est pair.
Aprés avoir fait ces calculs, le résultat est stocké dans une variable de type integer appelée mediane.
Ensuite je veux mettre mediane, aprés l'avoir mis en string, dans une case Excel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 IntToStr(mediane); excel.Ecrire(3,3,mediane);
Je vois comment faire, mais je ne sais pas le transcrire en Delphi (je débute).
Si quelqu'un pouvait me donner quelques méthodes pour arriver à mes fins...
Merci d'avance.
Partager