Posté par
kimented kimented
Pour résoudre ce problème, j'ai utilisé un programme php :
//***********************************
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Poids</title>
</head>
<body>
<h4>Poids d'un mot</h4>
<!-- <form>
<input type=text name=mot size=6>
<input type=submit value="ok">
</form> -->
<?php
//initialiser le compteur mini à une valeur quelconque suffisament grande
$pmini=100;
//mettre le contenu du dico téléchargé dans une variable
$contenu=file_get_contents("dico.txt");
//dico dans un tableau
$tableau=explode("\n",$contenu);
//initialisation des compteurs
$i=0;
$j=0;
//tri des mots ayant 6 lettres, remplacement des accents
$rep1="é";
$rep2="è";
$rep3="ê";
$rep4="à";
$rep5="â";
$rep6="î";
$rep7="ï";
$rep8="ô";
$rep9="ù";
$rep10="û";
$repa="a";
$repe="e";
$repi="i";
$repo="o";
$repu="u";
while($tableau[$i]){
if(strlen(trim($tableau[$i]))==6){
$j++;
//oter les accents
$tableau[$i]=str_replace($rep1,$repe,$tableau[$i]);
$tableau[$i]=str_replace($rep2,$repe,$tableau[$i]);
$tableau[$i]=str_replace($rep3,$repe,$tableau[$i]);
$tableau[$i]=str_replace($rep4,$repa,$tableau[$i]);
$tableau[$i]=str_replace($rep5,$repa,$tableau[$i]);
$tableau[$i]=str_replace($rep6,$repi,$tableau[$i]);
$tableau[$i]=str_replace($rep7,$repi,$tableau[$i]);
$tableau[$i]=str_replace($rep8,$repo,$tableau[$i]);
$tableau[$i]=str_replace($rep9,$repu,$tableau[$i]);
$tableau[$i]=str_replace($rep10,$repu,$tableau[$i]);
$mot[].="$tableau[$i]"; //nouveau tableau, uniquement les mots de 6 lettres
}
$i++;
}
$k=0; //initialisation
while($mot[$k]){//parcours de la liste de mots de 6 lettres
$mot[$k]=strtolower($mot[$k]);
$lettre[1]=substr($mot[$k],0,1); //separer les lettres
$lettre[2]=substr($mot[$k],1,1);
$lettre[3]=substr($mot[$k],2,1);
$lettre[4]=substr($mot[$k],3,1);
$lettre[5]=substr($mot[$k],4,1);
$lettre[6]=substr($mot[$k],5,1);
$i=1; //initialisations ...
$ltr="a";
$valeur=1;
while($i<=6){
while($ltr){
if($lettre[$i]==$ltr){ //si la lettre numero $i est $ltr
$val_lettre[$i]=$valeur; //attribution d'une valeur à la lettre
$ltr="z"; // $tr="z" pour terminer la boucle
}
if($ltr=="z"){ $ltr="";} // terminer la boucle en arrivant à z
else{ $ltr++; $valeur++;} // sinon passage à la lettre suivante
}
$ltr="a"; // réinitialisations
$valeur=1;
$i++;
}
//calcul du poids par addition
$poids=$val_lettre[1]+$val_lettre[2]+$val_lettre[3]+$val_lettre[4]+$val_lettre[5]+$val_lettre[6];
//suite du calcul, avec divisions par le nombre de répétitions
$poids2=array_count_values($lettre);
$i=0;
while($i<=6){
if($lettre[$i]!=$rappel[1] && $lettre[$i]!=$rappel[2] && $lettre[$i]!=$rappel[3] && $lettre[$i]!=$rappel[4] && $lettre[$i]!=$rappel[5] && $lettre[$i]!=$rappel[6]){
$poids=$poids/$poids2[$lettre[$i]];
}
$rappel[$i]=$lettre[$i];
$i++;
}
//recherche maxi et mini
if($poids>$pmaxi){
$pmaxi=$poids;
$mmaxi=$mot[$k];
}
if($poids<$pmini){
$pmini=$poids;
$mmini=$mot[$k];
}
//reinitialisations avant la fin de la boucle
unset($poids);
unset($poids2);
unset($rappel);
$k++;
}
//affichage du resultat
echo"<br><br>Mot le plus lourd: <b>$mmaxi - $pmaxi</b>";
echo"<br>Mot le plus léger: <b>$mmini - $pmini</b>";
?>
</body>
</html>
//**************************************
voilà, j'espère ne pas avoir fait d'erreur.
à bientot.
