Accueil > > > COURBES TENDANCE , RÉGRESSION LINÉAIRE
COURBES TENDANCE , RÉGRESSION LINÉAIRE
Information sur la source
Description
But: Fournir un objet assez complet permettant d'opérer facilement une régression linéaire, plus connu sur le nom de courbe de tendance sous Excel. Bases: Wikipédia et son cours de régression linéaire Usage: 0- Dans votre fichier PHP insérer include ("CrbTendance.php"); 1- Déclarer l'objet RegLin ex: $oReg= new RegLin($tDonnees) ou $oReg= new RegLin($tY, $tX) Les deux syntaxe sont disponible, si une seul tableau est fourni alors le second est initialisé du même nombre d'occurence commençant à 0 avec un pas de 1 2- Lancer le calcul, avec méthodes fournie de 0 à 4, par défaut 0 sera pris. Pour tout élément supérieur à 4, la cinquième sera prise. Cette méthode retourne un tableau à Trois positions, -avec dans la case "A" le coef directeur de la droite, -dans la case "B" le positionnement vertical -dans la case "Cor" le coef de corrélation -et dans la case "Meth" le numéro de la méthode utlisée Ex: print_r($oReg0->OptMV(0)); ==>Array ( [A] => -649.029426204 [B] => 3037796.68186 [Cor] => -0.143065138366 [Meth] => 0 ) 3- De manière optionnel vous pouvez lancer la méthode GetOpt();, qui vous fournira le point de votre droite en fonction de votre tableau d'abscisses, si ce dernier n'est pas fourni vous aurez un tableau de 0 à nb-1 d'occurence du premier tableau Ex: print_r($oReg1->GetOpt()); ==>Array ( [1] => 3037147.65243 [7] => 3033253.47587 [20] => 3024816.09333 [21] => 3024167.06391 [22] => 3023518.03448)
Source
- <?php
- // CrbTendance.php
- class RegLin{
- /*
- Auteur: MILCENT Abel
- Date: 09/21/06
- But: Fournir un objet assez complet permettant d'opérer facilement une régression
- linéaire, plus connu sur le nom de courbe de tendance sous Excel.
- Bases: Wikipédia et son cours de régression linéaire
- Usage: 0- Dans votre fichier PHP insérer include ("CrbTendance.php");
- 1- Déclarer l'objet RegLin
- ex: $oReg= new RegLin($tDonnees) ou $oReg= new RegLin($tY, $tX)
- Les deux syntaxe sont disponible, si une seul tableau est fourni
- alors le second est initialisé du même nombre d'occurence commençant à 0
- avec un pas de 1
- 2- Lancer le calcul, avec méthodes fournie de 0 à 4, par défaut 0 sera pris. Pour
- tout élément supérieur à 4, la cinquième sera prise.
- Cette méthode retourne un tableau à Trois positions,
- -avec dans la case "A" le coef directeur de la droite,
- -dans la case "B" le positionnement vertical
- -dans la case "Cor" le coef de corrélation
- -et dans la case "Meth" le numéro de la méthode utlisée
-
- Ex: print_r($oReg0->OptMV(0));
- ==>Array ( [A] => -649.029426204
- [B] => 3037796.68186
- [Cor] => -0.143065138366
- [Meth] => 0 )
- 3- De manière optionnel vous pouvez lancer la méthode GetOpt();,
- qui vous fournira le point de votre droite en fonction de votre
- tableau d'abscisses, si ce dernier n'est pas fourni
- vous aurez un tableau de 0 à nb-1 d'occurence du premier tableau
-
- Ex: print_r($oReg1->GetOpt());
- ==>Array ( [1] => 3037147.65243
- [7] => 3033253.47587
- [20] => 3024816.09333
- [21] => 3024167.06391
- [22] => 3023518.03448)
-
-
- */
-
- //champ de l'objet
- private $tDonnees;
- private $tAbscisse;
- private $vNbElt; //Nombre déléments des tableaux
-
- private $vMoyX; //Moyenne des X
- private $vMoyY; //Moyenne des Y
- private $vSumXY;
- private $vSumX;
- private $vSumY;
- private $vSumX2;
- private $tPtG; //Le point moyen G est un tableau tPtG(X,Y)=(vMoyX,vMoyY)
- //La variance, c'est la moyenne des carrés soustrait du carré de la moyenne
- Private $vVarianceX;
- Private $vVarianceY;
- //L'écart Type, c'est la racine carrée de la variance
- Private $vEcartTX;
- Private $vEcartTY;
- //La covariance, la moyenne des produits moins le produit des moyennes
- Private $vCovariance;
-
-
- Private $vA; //Coef directeur de la droite liée à la régression
- Private $vB; //Coef B de la droite liée à la régression
- Private $vCoefCorLin;//Coef de corrélation linéaire
-
-
- // constructeur
- function __construct($tDataY,$tDataX="") {
- $this->tDonnees = $tDataY;
- $this->tAbscisse = $tDataX;
- $p=0;
- if($tDataX=="")
- {$p=1;}
-
- $this->init($p);
- }
-
-
- //Méthodes privée de l'objet
- Private function init($x=0)
- {
- //initialise les Variables pour les calculs
- $this->vNbElt= $n= count($this->tDonnees); // Nombres d'éléments
-
- //Mise en place des abscisses
- if($x==1)
- {
- for($i=0;$i<$n;$i++){
- $this->tAbscisse[$i]=$i;
- }
- }
-
- //parcours des donnees pour récupération formule nécessaire au calcul des éléments
- $sumX=0; //somme des X
- $sumY=0; //somme des Y
- $sumX2=0; //somme des X²
- $sumY2=0; //somme des y²
- $sumXY=0; //somme des x*y
-
- for($i=0;$i<$n;$i++)
- {
- $xVal=$this->tAbscisse[$i];
- $yVal=$this->tDonnees[$i];
-
- $sumX+=$xVal;
- $sumY+=$yVal;
- $sumX2+=$xVal*$xVal;
- //correction du 20080903 remplace $sumY2+=$yVal=$yVal; par $sumY2+=$yVal*$yVal;
- $sumY2+=$yVal*$yVal;
- $sumXY+=$xVal*$yVal;
-
- }
-
-
-
-
-
- $this->vMoyX=$sumX/$n; //moyenne X
- $this->vMoyY=$sumY/$n; //moyenne Y
-
- $this->vSumXY=$sumXY;
- $this->vSumX=$sumX;
- $this->vSumY=$sumY;
- $this->vSumX2=$sumX2;
-
- $this->tPtG=array("X"=>$this->vMoyX,"Y"=>$this->vMoyY); //point moyen G
- //La variance, c'est la moyenne des carrés soustrait du carré de la moyenne: Rappel
-
- $this->vVarianceX=($sumX2/$n)-($this->vMoyX*$this->vMoyX);
- $this->vVarianceY=($sumY2/$n)-($this->vMoyY*$this->vMoyY);
-
-
-
- //L'écart Type, c'est la racine carrée de la variance: Rappel
- $this->vEcartTX=sqrt(abs($this->vVarianceX));
- $this->vEcartTY=sqrt(abs($this->vVarianceY));
- //La covariance, la moyenne des produits moins le produit des moyennes
- $this->vCovariance=($sumXY/$n)-($this->vMoyX*$this->vMoyY);
-
- $tTest=array(
- $this->vMoyX,
- $this->vMoyY,
- $this->tPtG,
- $this->vVarianceX,
- $this->vVarianceY,
- $this->vEcartTX,
- $this->vEcartTY,
- $this->vCovariance);
- }
- //Calcul de la droite
- Private function CoefsDroite($met=0)
- {
- //Calcul de coef directeur de la régression
- //par théorie de la régression linéaire le coef a est obtenu des manières suivantes avec
- // 5 variantes disponibles
- switch ($i) {
- case 0:
- $this->vA=$this->vCovariance/$this->vVarianceX;
- break;
- case 1:
- $this->vA=$this->vVarianceY/$this->vCovariance;
- break;
- case 2:
- $this->vA=($this->vCovariance*$this->vEcartTY)/(abs($this->vCovariance)*$this->vEcartTX);
- break;
-
- case 3:
- $this->vA=($this->vVarianceY-$this->vVarianceX+SQRT(pow(($this->vVarianceY-$this->vVarianceX),2)+pow((2*$this->vCovariance)),2))/(2*$this->vCovariance);
- break;
- case 4:
- $this->vA=($this->vSumXY-(($this->vSumX*$this->vSumY)/$this->vNbElt)/($this->vSumX2-(pow($this->vSumX,2)/$this->vNbElt)));
- break;
- }
- $this->vB=$this->vMoyY-($this->vA*$this->vMoyX);
- }
-
- Private function CoefCorLin()
- {
- //Calcul de coef de coorélation linéaire
- //ce coef a est obtenu de la manière suivante
- //Covariance que divise l'écart Type X multiplié par l'écart Type de Y
- $this->vCoefCorLin=$this->vCovariance/($this->vEcartTX*$this->vEcartTY);
- }
-
-
- //Méthodes publiques de l'objet
- function OptMV($meth=0){
- //Effectue la régression Linéaire
- $this->CoefsDroite($meth);
- $this->CoefCorLin();
- return array("A"=>$this->vA,"B"=>$this->vB,"Cor"=>$this->vCoefCorLin,"Meth"=>$meth);
- }
- function GetOpt(){
- //renvoi le tableau des points optimisés
- $tOpt="";
- // for($i=0;$i<$this->vNbElt;$i++)
- foreach($this->tAbscisse as $i)
- {
- $tOpt[$i]=$this->vA*$i+$this->vB;
- }
- return $tOpt;
- }
-
-
-
- }
-
-
- //zone Test et exemple d'utilisation
- /*
- $y=array(50,75,76,80,50,180,17,72,200,56,22,85,100,90,80,110,70,110,105,89);
- $x=array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);
- $y2=array(1,4,9,16,25,36,49,64,81,100);
- $y3=array(150,2,1000,60,1000000,3,8,557,45623125,455,987,1564231,12,56,78963,52,6,8956321,8956,5);
- $x3=array(1,7,20,21,22,40,100,101,180,181,182,185,186,189,200,201,202,203,204,3000);
-
- $oReg0= new RegLin($y3,$x3);
- print("<hr>Meth 0: <br>");
- print_r($oReg0->OptMV(0));
-
- $oReg1= new RegLin($y3,$x3);
- print("<hr>Meth 1: <br>");
- print_r($oReg1->OptMV(1));
-
- $oReg2= new RegLin($y3,$x3);
- print("<hr>Meth 2: <br>");
- print_r($oReg2->OptMV(2));
-
- $oReg3= new RegLin($y3,$x3);
- print("<hr>Meth 3: <br>");
- print_r($oReg3->OptMV(3));
-
- $oReg4= new RegLin($y3,$x3);
- print("<hr>Meth 4: <br>");
- print_r($oReg4->OptMV(4));
-
- print_r($oReg1->GetOpt());
- */
- ?>
<?php
// CrbTendance.php
class RegLin{
/*
Auteur: MILCENT Abel
Date: 09/21/06
But: Fournir un objet assez complet permettant d'opérer facilement une régression
linéaire, plus connu sur le nom de courbe de tendance sous Excel.
Bases: Wikipédia et son cours de régression linéaire
Usage: 0- Dans votre fichier PHP insérer include ("CrbTendance.php");
1- Déclarer l'objet RegLin
ex: $oReg= new RegLin($tDonnees) ou $oReg= new RegLin($tY, $tX)
Les deux syntaxe sont disponible, si une seul tableau est fourni
alors le second est initialisé du même nombre d'occurence commençant à 0
avec un pas de 1
2- Lancer le calcul, avec méthodes fournie de 0 à 4, par défaut 0 sera pris. Pour
tout élément supérieur à 4, la cinquième sera prise.
Cette méthode retourne un tableau à Trois positions,
-avec dans la case "A" le coef directeur de la droite,
-dans la case "B" le positionnement vertical
-dans la case "Cor" le coef de corrélation
-et dans la case "Meth" le numéro de la méthode utlisée
Ex: print_r($oReg0->OptMV(0));
==>Array ( [A] => -649.029426204
[B] => 3037796.68186
[Cor] => -0.143065138366
[Meth] => 0 )
3- De manière optionnel vous pouvez lancer la méthode GetOpt();,
qui vous fournira le point de votre droite en fonction de votre
tableau d'abscisses, si ce dernier n'est pas fourni
vous aurez un tableau de 0 à nb-1 d'occurence du premier tableau
Ex: print_r($oReg1->GetOpt());
==>Array ( [1] => 3037147.65243
[7] => 3033253.47587
[20] => 3024816.09333
[21] => 3024167.06391
[22] => 3023518.03448)
*/
//champ de l'objet
private $tDonnees;
private $tAbscisse;
private $vNbElt; //Nombre déléments des tableaux
private $vMoyX; //Moyenne des X
private $vMoyY; //Moyenne des Y
private $vSumXY;
private $vSumX;
private $vSumY;
private $vSumX2;
private $tPtG; //Le point moyen G est un tableau tPtG(X,Y)=(vMoyX,vMoyY)
//La variance, c'est la moyenne des carrés soustrait du carré de la moyenne
Private $vVarianceX;
Private $vVarianceY;
//L'écart Type, c'est la racine carrée de la variance
Private $vEcartTX;
Private $vEcartTY;
//La covariance, la moyenne des produits moins le produit des moyennes
Private $vCovariance;
Private $vA; //Coef directeur de la droite liée à la régression
Private $vB; //Coef B de la droite liée à la régression
Private $vCoefCorLin;//Coef de corrélation linéaire
// constructeur
function __construct($tDataY,$tDataX="") {
$this->tDonnees = $tDataY;
$this->tAbscisse = $tDataX;
$p=0;
if($tDataX=="")
{$p=1;}
$this->init($p);
}
//Méthodes privée de l'objet
Private function init($x=0)
{
//initialise les Variables pour les calculs
$this->vNbElt= $n= count($this->tDonnees); // Nombres d'éléments
//Mise en place des abscisses
if($x==1)
{
for($i=0;$i<$n;$i++){
$this->tAbscisse[$i]=$i;
}
}
//parcours des donnees pour récupération formule nécessaire au calcul des éléments
$sumX=0; //somme des X
$sumY=0; //somme des Y
$sumX2=0; //somme des X²
$sumY2=0; //somme des y²
$sumXY=0; //somme des x*y
for($i=0;$i<$n;$i++)
{
$xVal=$this->tAbscisse[$i];
$yVal=$this->tDonnees[$i];
$sumX+=$xVal;
$sumY+=$yVal;
$sumX2+=$xVal*$xVal;
//correction du 20080903 remplace $sumY2+=$yVal=$yVal; par $sumY2+=$yVal*$yVal;
$sumY2+=$yVal*$yVal;
$sumXY+=$xVal*$yVal;
}
$this->vMoyX=$sumX/$n; //moyenne X
$this->vMoyY=$sumY/$n; //moyenne Y
$this->vSumXY=$sumXY;
$this->vSumX=$sumX;
$this->vSumY=$sumY;
$this->vSumX2=$sumX2;
$this->tPtG=array("X"=>$this->vMoyX,"Y"=>$this->vMoyY); //point moyen G
//La variance, c'est la moyenne des carrés soustrait du carré de la moyenne: Rappel
$this->vVarianceX=($sumX2/$n)-($this->vMoyX*$this->vMoyX);
$this->vVarianceY=($sumY2/$n)-($this->vMoyY*$this->vMoyY);
//L'écart Type, c'est la racine carrée de la variance: Rappel
$this->vEcartTX=sqrt(abs($this->vVarianceX));
$this->vEcartTY=sqrt(abs($this->vVarianceY));
//La covariance, la moyenne des produits moins le produit des moyennes
$this->vCovariance=($sumXY/$n)-($this->vMoyX*$this->vMoyY);
$tTest=array(
$this->vMoyX,
$this->vMoyY,
$this->tPtG,
$this->vVarianceX,
$this->vVarianceY,
$this->vEcartTX,
$this->vEcartTY,
$this->vCovariance);
}
//Calcul de la droite
Private function CoefsDroite($met=0)
{
//Calcul de coef directeur de la régression
//par théorie de la régression linéaire le coef a est obtenu des manières suivantes avec
// 5 variantes disponibles
switch ($i) {
case 0:
$this->vA=$this->vCovariance/$this->vVarianceX;
break;
case 1:
$this->vA=$this->vVarianceY/$this->vCovariance;
break;
case 2:
$this->vA=($this->vCovariance*$this->vEcartTY)/(abs($this->vCovariance)*$this->vEcartTX);
break;
case 3:
$this->vA=($this->vVarianceY-$this->vVarianceX+SQRT(pow(($this->vVarianceY-$this->vVarianceX),2)+pow((2*$this->vCovariance)),2))/(2*$this->vCovariance);
break;
case 4:
$this->vA=($this->vSumXY-(($this->vSumX*$this->vSumY)/$this->vNbElt)/($this->vSumX2-(pow($this->vSumX,2)/$this->vNbElt)));
break;
}
$this->vB=$this->vMoyY-($this->vA*$this->vMoyX);
}
Private function CoefCorLin()
{
//Calcul de coef de coorélation linéaire
//ce coef a est obtenu de la manière suivante
//Covariance que divise l'écart Type X multiplié par l'écart Type de Y
$this->vCoefCorLin=$this->vCovariance/($this->vEcartTX*$this->vEcartTY);
}
//Méthodes publiques de l'objet
function OptMV($meth=0){
//Effectue la régression Linéaire
$this->CoefsDroite($meth);
$this->CoefCorLin();
return array("A"=>$this->vA,"B"=>$this->vB,"Cor"=>$this->vCoefCorLin,"Meth"=>$meth);
}
function GetOpt(){
//renvoi le tableau des points optimisés
$tOpt="";
// for($i=0;$i<$this->vNbElt;$i++)
foreach($this->tAbscisse as $i)
{
$tOpt[$i]=$this->vA*$i+$this->vB;
}
return $tOpt;
}
}
//zone Test et exemple d'utilisation
/*
$y=array(50,75,76,80,50,180,17,72,200,56,22,85,100,90,80,110,70,110,105,89);
$x=array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);
$y2=array(1,4,9,16,25,36,49,64,81,100);
$y3=array(150,2,1000,60,1000000,3,8,557,45623125,455,987,1564231,12,56,78963,52,6,8956321,8956,5);
$x3=array(1,7,20,21,22,40,100,101,180,181,182,185,186,189,200,201,202,203,204,3000);
$oReg0= new RegLin($y3,$x3);
print("<hr>Meth 0: <br>");
print_r($oReg0->OptMV(0));
$oReg1= new RegLin($y3,$x3);
print("<hr>Meth 1: <br>");
print_r($oReg1->OptMV(1));
$oReg2= new RegLin($y3,$x3);
print("<hr>Meth 2: <br>");
print_r($oReg2->OptMV(2));
$oReg3= new RegLin($y3,$x3);
print("<hr>Meth 3: <br>");
print_r($oReg3->OptMV(3));
$oReg4= new RegLin($y3,$x3);
print("<hr>Meth 4: <br>");
print_r($oReg4->OptMV(4));
print_r($oReg1->GetOpt());
*/
?>
Conclusion
Il doit y avoir quelques petits bugs que vous vous ferez un plaisir de corriger.
Historique
- 03 septembre 2008 09:58:20 :
- correction du 20080903 remplace $sumY2+=$yVal=$yVal; par $sumY2+=$yVal*$yVal;
- 03 septembre 2008 10:01:59 :
- Upload du nouveau ZIP
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Excel to Mysql [ par TuXAveRy ]
Salut tt le mondeVoila chuis confronté a un petit probleme...j'ai une base de donnée ki est dans un fichié excel, et je voudrai le mettre dans une bas
modif classeur excel sur site web par internautes [ par jmrolland ]
J'ai inséré un classeur excel sur mon site web et j'aimerais connaître la manière la plus simple pour que : les modifs effectuées par les internautes
class,PDF,XLS et boucles..... [ par booth ]
bonjour!j'ai un méga problème...je dois générer un PDF et une grillle excel toutes deux issues d'un moteur de recherche...pour le moteur de recherche
Php et excel ???? [ par Adagyo ]
Salut @ tous,Je cherche un moyen de faire communiquer le contenu d'une base MySQL avec un tableau Excel.J'ai pensé à passer par du XML (je fait une re
Lire un fichier excel [ par nikos283 ]
salut a tous!Je suis a la recherche d'une classe ou de fonctions simples me permettant à un utilisateur d'envoyer sur mon site un fichier au format xl
Couleur sous Excel [ par Alexnancy ]
Bonjour,J'extrait un fichier excel depuis une page php mais ce fichier est brut.J'aimerai savoir comment mettre une police dans tel case ou sur toute
Lire un fichier excel [ par NeOkizis ]
Salut,Je suis totalement débutant dans le php, et j'ai un petit problème...Je dois créer une page sur un site intranet qui affiche un annuaire telepho
Tuer un Processus Excel (objet COM) [ par nerikT ]
Bonjour à tous !J'ai un grros problème.J'utilise un objet COM pour crere un fichier Excel, et à la fin du script, le processu est toujours en mémoire
PHP et Word (ou Excel) [ par kowak ]
Bonjour,Existe-t-il un moyen de récupérer les propriétés (fichiers/propriétés) d'un document word (notament le résumé ou le titre, etc...) ?Merci,Kowa
Publipostage word excel différent [ par teez ]
Les instructions de ce que je voudrais faire sont dans le id.docDites-moi si vous avez une idée de comment faire !C'est ici le fichier à télécharger.h
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|