fournier anthony
Messages postés2Date d'inscriptiondimanche 22 mai 2005StatutMembreDernière intervention 4 août 2009
-
4 août 2009 à 22:27
fournier anthony
Messages postés2Date d'inscriptiondimanche 22 mai 2005StatutMembreDernière intervention 4 août 2009
-
4 août 2009 à 22:28
Bonjour à tous,
Voila, après une bonne douzaine d'heure d'acharnement et de triturage intellectuel, je n'arrive pas à écrire un algorithme qui trouve le mot le plus long (cf http://www.capeutservir.com/mots/pluslong.php)
Me voila assez désespéré, je vous demande donc un peu d'aide pour finaliser le script.
Le voici :
// on met le mot saisie dans un tableau de carracteres
$motEnTableauSaisie = str_split($mot, 1);
//on ouvre le fichier dico et on met chaque mot dans un tableau
$tab = file('dico.txt');
if(is_array($tab))
{
$i = 0;
foreach($tab as $ligne)
{
$tableauDico[$i] = $ligne;
$i++;
}
}
//pour chaque mot du dico, on fait comme avec le mot saisi, c'est à dire qu'on le met dans un tableau de carractére
for($a = 0; $a < sizeof($tableauDico); $a++)
{
$motEntableauDico = str_split($tableauDico[$a], 1);
$i = 0;
$j = 0;
while($i < sizeof($motEnTableauSaisie))
{
//parcours de chaque lettres du mot saisie
$letreTrouve = FALSE;
while($j < sizeof($motEntableauDico) && !$letreTrouve)
//parcours de chaque lettre du mot du dico
{
if($motEnTableauSaisie[$i] == $motEntableauDico[$j])
//si les 2 lettres sont égales alors ...
{
echo $motEnTableauSaisie[$i].'--->'.$motEntableauDico[$j];
echo '
';
//test d'apercu à l'écran
$motEntableauDico2 = $motEntableauDico;
//alors, on crée un tableau temporaire
unset($motEntableauDico);
//on supprime le tableau de base
$motEntableauDico = retireDansTab($motEntableauDico2, $j);
//cette fonction est à la fin du code
//elle permet de retirer la clé et la valeur du tableau tout en gardant la possibilité de parcourir avec un compteur (0...1...2...3)
echo count($motEntableauDico);
//on verifie à l'écran la fonctionnalité de la fonction
if(count($motEntableauDico)==0)
//si le tableau est vide c'est que le mot a été retrouvé
{
echo $tableauDico[$a];
exit;
}
$j = 0;
$letreTrouve = TRUE;
}
else
//les 2 lettres sont différentes alors on passe a la lettre suivante du dico
{
echo $motEnTableauSaisie[$i].'--->'.$motEntableauDico[$j];
echo '
';
$j++;
}
}
$i++;
$j = 0;
}
}
}
J'espere que je ne vous fait pas trop peur avec ce code, il fonctionne quelques fois en faite. voyez vous ou le problème peut-il venir?
merci beaucoup