Re: [LA-discussions] cases à cocher : transmission des choix en une seule valeur

[ Thread Index | Date Index | More linuxarverne.org/discussions Archives ]


Le mercredi 17 avril 2013 20:16:40 jmtrivial a écrit :
> Bref, j'espère ne pas avoir répondu à côté de la plaque.

oui et non.

C'est à mon avis plus de l'écriture en base 10 de nombres dont la logique 
est en base 2. Comme la numérotation sazo-stradonitz en généalogie. Et des 
tas de casses-tête mathématiques tous plus amusants que les autres.

Mais la théorie est la bonne, seule la façon de la percevoir et donc de 
l'exprimer diverge.

Autre endroit où on diverge, c'est au niveau de l'algorithme, et c'est le 
truc qui me branche le plus en informatique, là où l'arithmétique pure 
rejoint la programmation...

Ton algo est celui d'une décomposition d'un nombre en base 2, et donc si on 
part de mon 22 tu trouveras 1101 (ou peut-être 1011 selon l'ordre des 
puissances par rapport aux cases à cocher). Ok mais ça implique de nouveau 
de traiter de résultat pour l'utiliser.

Mon algo à moi il fait ça, pour une valeur $valeur correspondant à un nombre 
de cases $nbcases :

$nbcases = 6;	//on peut mettre ce qu'on veut ça marchera
for ($i=$nbcases; $i>=1; $i--) {
	if ($valeur >= pow(2, $i)) {
		"commande.$i";
		$valeur = $valeur - pow(2, $i);
	}
	else { "non-commande.$i": }
}

Pas de division ni de restes, juste des soustraction de valeurs à la 
puissance n, c'est la mm chose mais plus direct. Pour une conversion de base 
la "commande.$i" serait echo 1 ou echo 0, chuis certain que ça marcherait.

Sachant que je veux récupérer la valeur des cases à cocher d'un formulaire 
pour le traiter, il me reste à écrire la "commande.$i" subtilement pour que 
ça marche (dans mon cas il s'agit de générer du css qui affiche ou non le 
contenu correspondant à la case cochée, et là c'est nickel).

Ce qui serait amusant serait de ne pas devoir préciser $nbcases, ça se 
déduit forcément de $valeur, mais j'ai fait ça vite en attendant de voir si 
ça existait ailleurs. Je ne donne pas la soluce tout de suite (je la 
pressent déjà, je laisse jouer ceux que ça amuse, s'il y en a...).

PS pour ceux que l'algorythmie amuse, j'ai écrit un article sur la 
mathématique de l'accordéon diatonique, où il y a de quoi faire à ce 
sujet...

Bon ben sur ce bonne nuit et à demain...

-- 
Cordialement, Daniel Cartron
« Il n'y a pas cinquante manières de faire la guerre, il n'y en a qu'une : 
la sale. »
François Cavanna - Le saviez-vous ?


--
Liste de discussions de LinuxArverne
http://wiki.linuxarverne.org/listes_de_diffusion


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/