Fonction pour calculer le rang des élèves

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 : Fonction pour calculer le rang des élèves

Re: Fonction pour calculer le rang des élèves

par CamillePHP » 21 déc. 2014, 14:38

Je ne connaissais pas cette fonction !
Merci pour votre aide

Re: Fonction pour calculer le rang des élèves

par ecumastor » 18 déc. 2014, 18:43

Bonjour,

As-tu pensé à la fonction asort(), qui trie les tableaux ?
Exemple :

Code : Tout sélectionner

$n[1]=15; $n[2]=10; $n[3]=8; $n[4]=18; $n[5]=4; asort($n); foreach($n as $item => $valeur)echo "Eleve $item a pour moyenne ".$valeur."<br>";
Ceci classe les élèves par moyenne selon le tableau.

Re: Fonction pour calculer le rang des élèves

par CamillePHP » 18 déc. 2014, 18:15

Je pense que je me suis mal expliquée.
Je rentre disons la moyenne de 10 élèves.
Eleve 1 = 10
Eleve 2 = 15
Eleve 3 = 18
Eleve 4 = 9
Eleve 5 = 11
Eleve 6 = 20
Eleve 7 = 8
Eleve 8 = 17
Eleve 9 = 14
Eleve 10 = 13

Et j'ai besoin d'écrire une fonction qui va alors me permettre de classer les élève de 1 à 10. D'afficher leur position.
Donc
Eleve 1 = 10 Rang : 8
Eleve 2 = 15 Rang : 4
Eleve 3 = 18 Rang : 2
Eleve 4 = 9 Rang : 9
Eleve 5 = 11 Rang : 7
Eleve 6 = 20 Rang : 1
Eleve 7 = 8 Rang : 10
Eleve 8 = 17 Rang : 3
Eleve 9 = 14 Rang : 5
Eleve 10 = 13 Rang : 6.

J'ai pensé à :
function Rangeleve($case, $tab, $Nbr){
$rang = 1;
        for($i=0;$i<$Nbr;$i++){
                if ($tab[$i]>$tab[$case]){
                        $rang = $rang + 1;
                }
        }
        return $rang;
}
 

Je ne sais pas si c'est une bonne solution.

Re: Fonction pour calculer le rang des élèves

par sirakawa » 18 déc. 2014, 09:58

Il suffit de trier le ableau avec rsort et d'employer array_search (qui rend 0 pour le premier....)
Mais il est probable que le prof veut une boucle

Re: Fonction pour calculer le rang des élèves

par Nestecha » 18 déc. 2014, 02:14

Pas bien compris ce que tu dois afficher.

Quelque chose comme : 4 étudiants ont une note strictement supérieure à 14 par exemple ? Ou bien un classement des moyennes avec donc 1. 19,9 - 2. 18,2 etc ?

Quoi qu'il en soit, tu devras boucler à travers un tableau contenant chaque valeur. Appelons le $aStudentsNotes.

Tu peux donc utiliser un foreach, c'est le plus simple.
foreach ($aStudentsNotes as $iNote) {
 // ton code ici
}
Maintenant en gros tu veux 'marquer' les notes, pour dire 'telle note est au dessus de X > je la garde, telle note est en dessous de X > je l'ignore'.

Pour ca tu vas utiliser une condition donc, un if.
foreach ($aStudentsNotes as $iNote) {
$iNoteToExceed = 14; // disons que la note qu'on veut depasser est 14 
if ($iNote > $iNoteToExceed) {
// code pour marquer
}
}
Donc là pour marquer t'as plein de façons, tu peux mettre ces notes dans un tableau, tu peux utiliser une variable que tu définies a zéro pour l'incrementer ensuite. Tu n'auras plus ensuite qu'à afficher le résultat !

Fonction pour calculer le rang des élèves

par CamillePHP » 17 déc. 2014, 23:17

Bonjour,

Je débute en PHP, et je doit écrire un script PHP qui demande à l'utilisateur de saisir la moyenne de 10 étudiants (notes stockés dans un tableau) ce que j'ai fait mais je dois ajouter une fonction qui permettrait d'afficher le rang de chaque étudiant (le nombre de cases qui contiennent un nombre strictement supérieur).
Comment puis-je écrire cette fonction ? Avec un foreach, un if ?
J'ai du mal à trouver une solution.

Merci d'avance à ceux qui pourront m'éclairer !