PHP fonction MAX
maxime89
-
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je doit réaliser un petit programme PHP qui demande a l'utilisateur de rentrer 10 nombres et le programme doit afficher le plus grand. Pour la fonction MAX j'ai lu qu'il fallais saisir les valeurs sauf que dans mon cas c'est l'utilisateur du programme qui doit rentrer les valeurs.
Pour le moment j'ai réussi a faire une boucle mais impossible d'afficher la valeur maximale:
Je doit réaliser un petit programme PHP qui demande a l'utilisateur de rentrer 10 nombres et le programme doit afficher le plus grand. Pour la fonction MAX j'ai lu qu'il fallais saisir les valeurs sauf que dans mon cas c'est l'utilisateur du programme qui doit rentrer les valeurs.
Pour le moment j'ai réussi a faire une boucle mais impossible d'afficher la valeur maximale:
<?php include ("lireClavier.php"); $nombre_de_lignes = 1; $nb=1; while ($nombre_de_lignes <= 10){ $nombre=readline("entrez un nombre $nb: "); $nombre_de_lignes++; // $nombre_de_lignes = $nombre_de_lignes + 1 $nb++; } echo max ($nombre); ?>
EDIT : Ajout des balises de code
A voir également:
- PHP fonction MAX
- Fonction si et - Guide
- Driver max - Télécharger - Pilotes & Matériel
- I14 pro max - Accueil - Guide téléphones
- Easy php - Télécharger - Divers Web & Internet
- Max ou netflix - Accueil - Streaming
2 réponses
Bonjour,
La fonction php MAX s'applique sur un ARRAY
https://www.php.net/manual/fr/function.max.php
Il faut donc que tu stockes les valeurs saisies par ton utilisateur dans un array.
Tu peux aussi, par précaution, forcer leur type en nombre (via FLOAT ou intval )
Un truc du genre :
La fonction php MAX s'applique sur un ARRAY
https://www.php.net/manual/fr/function.max.php
Il faut donc que tu stockes les valeurs saisies par ton utilisateur dans un array.
Tu peux aussi, par précaution, forcer leur type en nombre (via FLOAT ou intval )
Un truc du genre :
//Affichage des erreurs PHP error_reporting(E_ALL); require_once "lireClavier.php"; // Tableau de sorti $arrNombres = array(); // Lit les commandes de l'utilisateur for ($i=0; $i < 10; $i++) { $line = readline("entrez un nombre : "); $arrNombres[] = intval($line); } echo "<br><br>la valeur max est :"; echo MAX($arrNombres);
Bonjour,
Pour compléter ce que dit Jordane (toujours pertinente), je voudrais quand même pointer du doigt une erreur de conception de ton code, indépendamment de l'utilisation de max() : à chaque itération de la boucle, tu écrases $nombre en y mettant la nouvelle valeur. Tu perds donc toute information passée.
Une autre solution serait d'effectuer la comparaison à chaque itération, et de garder la plus grande valeur en mémoire, en faisant, dans la boucle :
En termes de temps de calcul ce sera relativement équivalent (en O(n)), par contre la consommation mémoire sera moindre pour un grand nombre d'itérations. Inconvénient, si tu veux faire d'autres calculs sur l'ensemble des nombres, tu ne les as plus.
Xavier
Pour compléter ce que dit Jordane (toujours pertinente), je voudrais quand même pointer du doigt une erreur de conception de ton code, indépendamment de l'utilisation de max() : à chaque itération de la boucle, tu écrases $nombre en y mettant la nouvelle valeur. Tu perds donc toute information passée.
Une autre solution serait d'effectuer la comparaison à chaque itération, et de garder la plus grande valeur en mémoire, en faisant, dans la boucle :
$valeurMax = max($valeurMax, $nombre);
En termes de temps de calcul ce sera relativement équivalent (en O(n)), par contre la consommation mémoire sera moindre pour un grand nombre d'itérations. Inconvénient, si tu veux faire d'autres calculs sur l'ensemble des nombres, tu ne les as plus.
Xavier