
Нужно сложить две оценки для каждого ученика из файла (которые размещены через пробел), посчитать общее количество(учеников) и общее количество баллов, разделить второе на первое и получить средний балл.
Файл grades, ученики тут в виде ??????:
Код: Выделить всё
???1130 23 16
???1180 19 16
???1454 19 13
???1477 0 0
???1988 25 22
???2195 19 13
???3010 19 13
???3269 0 0
???3362 19 18
???3609 0 0
???3624 23 17
???3878 22 13
???4277 19 13
???4490 30 19
???4594 19 18
Код: Выделить всё
#!/usr/bin/perl
open(GRADES,"grades") or die "Error: $!\n";
while ($line=<GRADES>){
($student, $grade1, $grade2) = split(" ", $line);
$grade=$grade1+$grade2;
$grades{$student} .=$grade . " ";
}
foreach $student (sort keys %grades){
$scores=0;
$total=0;
@grades=split(" ", $grades{$student});
foreach $grade (@grades) {
$total+=$grade;
$scores++;
}
$average=$total/$scores;
print "$student: $grades{$student}\tRESULTS: $averege\n";
}
Код: Выделить всё
???1130: 39 RESULTS: 39
???1180: 35 RESULTS: 35
???1454: 32 RESULTS: 32
???1477: 0 RESULTS: 0
???1988: 47 RESULTS: 47
???2195: 32 RESULTS: 32
???3010: 32 RESULTS: 32
???3269: 0 RESULTS: 0
???3362: 37 RESULTS: 37
???3609: 0 RESULTS: 0
???3624: 40 RESULTS: 40
???3878: 35 RESULTS: 35
???4277: 32 RESULTS: 32
???4490: 49 RESULTS: 49
???4594: 37 RESULTS: 37


буду благодарен если кто поможет
