Bonjour,
J'ai un problème avec mon programme, je dois afficher une médiane de notes et d'abord je dois donc trier mon tableau de notes.
Je précise que mon programme fonctionne sans la partie tri de tableau et médiane.
Je vois pas où sont les problèmes, à part la fonction ceil qui est une fonction en C que je connais, je l'ai déjà vu en perl, mais je suis plus sur.
I need help!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79 use strict; use warnings; my ($somme_note, $somme_note_carre, $noteMin, $noteMax, $note,$mediane,$mediane_1) = (0, 0, 20, 0); my @tab; print "Programme de calcul de la moyenne et ecart type de notes .\n"; print "\nEntrez le nombre de cours : "; my $nombre_cours = <STDIN>; for (my $i=1; $i<=$nombre_cours; $i++) { print "\nEntrez les notes : "; $note = <STDIN>; while($note < 0 || $note > 20 ) { print "\nErreur!\nEntrez la note : "; $note = <STDIN>; } $somme_note = $somme_note + $note; $somme_note_carre = $somme_note_carre + $note* $note; if ($note > $noteMax) { $noteMax = $note; } else { $noteMax = $noteMax; } if ( $note < $noteMin) { $noteMin = $note; } else { $noteMin = $noteMin; } $tab[$i] = ($note); } my $moyenne = $somme_note / $nombre_cours; my $variance = $somme_note_carre/ $nombre_cours - $moyenne * $moyenne; my $ecart_type = sqrt ( $variance); print "\nLa moyenne est : $moyenne \nL'ecart type est : $ecart_type\nNote maximale: $noteMax\nNote minimale: $noteMin\n"; if ( $moyenne < 10) { print "Vous etes ajourne.\n"; } else { print "Vous etes admis.\n"; } if ( $moyenne >= 15) { print "Avec mention tres bien.\n"; } if ( $moyenne <= 15 && $moyenne >= 12 ) { print "Avec mention bien.\n"; } print"\nRecapitulatif:\nVoici vos notes dans l'ordre croissant, votre moyenne et votre mediane!\n"; #######TRI TABLEAU ORDRE CROISSANT my @tab_trie = sort{ $a <=> $b ) @tab; #####MEDIANE if ($nombre_cours % 2 == 0) #pair { $mediane = ($tab[$nombre_cours / 2]+$tab[($nombre_cours / 2) - 1]) / 2; } else if($nombre_cours % 2 == 1) #impair { $mediane = $nombre_cours/2; $mediane_1 = ceil($mediane); $mediane = $tab[$mediane_1]; } for ( my $j = 1; $j <= $nombre_cours; $j++) { print"Votre note numero $j est : $tab[$j] \n"; } print "Moyenne :$moyenne\n"; <>; <>;
Partager