boucle while sans sortie ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : boucle while sans sortie ?

Re: boucle while sans sortie ?

par xTG » 20 nov. 2010, 23:28

Je pense d'après ta réponse que tu n'as pas saisi comment fonctionne le langage PHP.

Ce n'est pas comme le C avec un scanf dans une boucle en fait. Loin de là !
Le PHP est interprété coté serveur, lorsque tu as l'affichage le script a déjà fini de s'exécuter.
Donc on ne fait pas une boucle while attendant une entrée clavier, c'est tout simplement une boucle infinie que de faire cela en PHP !

Pourquoi ne pas rentrer le chiffre binaire en une seule fois ? J'ai déjà appliquer un algo de ce type pour une calculette afin de simplifier les vérifications lors de contrôle.

Bref en tout simple :
<form action="#" method="POST">
  chiffre binaire : <input type="text" name="chiffre" />
  <input type="submit" value="convertir" />
</form>
<?php
if( !empty($_POST['chiffre']) ) // formulaire posté
{
  $longueur = strlen($_POST['chiffre']); // longueur du chiffre
  $resultat = 0;
  $i = 0;
  // parcours des exposants
  for( $exposant = $longueur - 1; $exposant >= 0; $exposant-- )
  {
    $resultat = $resultat + ( $_POST['chiffre'][$i] * pow(2, $exposant) ); // calcul
    $i++; // on avance sur le caractère suivant
  }
  echo "Résultat : $resultat";
}
?>

Re: boucle while sans sortie ?

par valcou » 20 nov. 2010, 14:52

Je me doute qu'il existe une fonction pour convertir, mais c'est un exercice que je me donne, je devais réaliser l'algorithme en cours, alors je me suis dis pour m’entraîner je vais essaye de le faire en php.
en faite à chaque boucle je veux rentrer un nouveau caractère imaginons que je veux convertir le nombre binaire 110, le premier caractère sera 1 puis on rentre dans la boucle, première boucle on me demande le caractère suivant donc je saisirai 1, hop deuxième boucle, je saisirai 0, puis 3ème boucle pour dire que j'ai fini, je rentrerai le caractère *.

Je sais que la variable n'est pas défini puisque je dois la définir avec la saisie de texte. au passage si tu as une autre méthode pour saisir un texte peux-tu me le dire, car je débute en PHP, et je prends juste des cours d'algorithmique qui m'aident pas mal.

Merci à toi!

Re: boucle while sans sortie ?

par xTG » 20 nov. 2010, 13:44

J'ai pas vraiment compris le tout mais je vais tâcher de t'aiguiller pour réparer les erreurs.

D'une pourquoi une boucle avec un affichage dedans ? Tu vas avoir plusieurs fois le même formulaire.
De deux, les notices viennent des lignes 43 et 44 où tu récupères des variables qui n'ont pas étés testées, en gros elles n'existent pas dans ton exécution, de là proviennent les notices. => isSet() ou empty() pour palier au problème

Enfin au cas où le problème pourrait être simplifié à l'extrême, connais-tu la fonction bindec() ?

boucle while sans sortie ?

par valcou » 20 nov. 2010, 02:27

bonjour à tous,
voila j'ai un problème avec un programme: je souhaite faire un programme qui convertit un nombre binaire en décimale:

Image
Image

Donc, à chaque boucle je souhait saisir un nouveau caractère (donc 1 ou 0) et donc faire un calcul qui est dans la boucle. La condition de sortie est qu'il faut entrer ' * ' pour dire qu'on n'a plus de chiffre à mettre.
Et en faite lorsque j'exécute le programme, je saisis le premier caractère et dès que je clique sur valider, il me fait une boucle indeterminée (cf photo)
Image

Qu'est-ce qui ne va pas? (surement beaucoup de choses)
Merci à ceux qui prendront le temps de me répondre (et de m'expliquer ?) :D !