class Student {
constructor(surname, name, day, month, year, entryYear, course, group, marks) {
this.surname = surname;
this.name = name;
this.day = day;
this.month = month;
this.year = year;
this.entryYear = entryYear;
this.course = course;
this.group = group;
this.marks = marks;
this.avg = 0;
}
}
let students = [
new Student("Іваненко", "Іван", 12, 5, 2002, 2020, 3, "А-1", [[4,5,5,4,5],[5,4,4,5,5]]),
new Student("Петренко", "Олена", 3, 8, 2001, 2019, 4, "А-1", [[5,5,5,5,5],[5,5,4,5,5]]),
new Student("Сидоренко", "Микола", 21, 1, 2003, 2021, 2, "А-1", [[3,4,4,3,3],[4,3,3,4,4]]),
new Student("Коваль", "Анна", 7, 9, 2002, 2020, 3, "А-1", [[4,4,5,4,4],[5,4,4,5,4]])
];
let n = 2; // семестри
let m = 5; // оцінки
let groupAvg = 0;
// Обчислення середнього балу студента та групи
for(let student of students) {
let sum = 0;
let count = 0;
for(let s = 0; s < n; s++) {
for(let p = 0; p < m; p++) {
sum += student.marks[s][p];
count++;
}
}
student.avg = sum / count;
groupAvg += student.avg;
}
groupAvg = groupAvg / students.length;
console.log(`Середній бал групи: ${groupAvg.toFixed(2)}\n`);
// Виведення студентів з середнім балом вище групи
console.log("Студенти з середнім балом вище середнього балу групи:\n");
students.forEach((student, index) => {
if(student.avg > groupAvg) {
console.log(`${index+1}. ${student.surname} \t ${student.name} \t ${student.day}.${student.month}.${student.year} \t ${student.entryYear} \t ${student.course} \t ${student.group}`);
student.marks.forEach(sem => {
console.log(sem.join(' '));
});
console.log(`avg = ${student.avg.toFixed(2)}\n`);
}
});
Y2xhc3MgU3R1ZGVudCB7CiAgICBjb25zdHJ1Y3RvcihzdXJuYW1lLCBuYW1lLCBkYXksIG1vbnRoLCB5ZWFyLCBlbnRyeVllYXIsIGNvdXJzZSwgZ3JvdXAsIG1hcmtzKSB7CiAgICAgICAgdGhpcy5zdXJuYW1lID0gc3VybmFtZTsKICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOwogICAgICAgIHRoaXMuZGF5ID0gZGF5OwogICAgICAgIHRoaXMubW9udGggPSBtb250aDsKICAgICAgICB0aGlzLnllYXIgPSB5ZWFyOwogICAgICAgIHRoaXMuZW50cnlZZWFyID0gZW50cnlZZWFyOwogICAgICAgIHRoaXMuY291cnNlID0gY291cnNlOwogICAgICAgIHRoaXMuZ3JvdXAgPSBncm91cDsKICAgICAgICB0aGlzLm1hcmtzID0gbWFya3M7IAogICAgICAgIHRoaXMuYXZnID0gMDsgICAgICAgCiAgICB9Cn0KCmxldCBzdHVkZW50cyA9IFsKICAgIG5ldyBTdHVkZW50KCLQhtCy0LDQvdC10L3QutC+IiwgItCG0LLQsNC9IiwgMTIsIDUsIDIwMDIsIDIwMjAsIDMsICLQkC0xIiwgW1s0LDUsNSw0LDVdLFs1LDQsNCw1LDVdXSksCiAgICBuZXcgU3R1ZGVudCgi0J/QtdGC0YDQtdC90LrQviIsICLQntC70LXQvdCwIiwgMywgOCwgMjAwMSwgMjAxOSwgNCwgItCQLTEiLCBbWzUsNSw1LDUsNV0sWzUsNSw0LDUsNV1dKSwKICAgIG5ldyBTdHVkZW50KCLQodC40LTQvtGA0LXQvdC60L4iLCAi0JzQuNC60L7Qu9CwIiwgMjEsIDEsIDIwMDMsIDIwMjEsIDIsICLQkC0xIiwgW1szLDQsNCwzLDNdLFs0LDMsMyw0LDRdXSksCiAgICBuZXcgU3R1ZGVudCgi0JrQvtCy0LDQu9GMIiwgItCQ0L3QvdCwIiwgNywgOSwgMjAwMiwgMjAyMCwgMywgItCQLTEiLCBbWzQsNCw1LDQsNF0sWzUsNCw0LDUsNF1dKQpdOwoKbGV0IG4gPSAyOyAvLyDRgdC10LzQtdGB0YLRgNC4CmxldCBtID0gNTsgLy8g0L7RhtGW0L3QutC4CmxldCBncm91cEF2ZyA9IDA7CgovLyDQntCx0YfQuNGB0LvQtdC90L3RjyDRgdC10YDQtdC00L3RjNC+0LPQviDQsdCw0LvRgyDRgdGC0YPQtNC10L3RgtCwINGC0LAg0LPRgNGD0L/QuApmb3IobGV0IHN0dWRlbnQgb2Ygc3R1ZGVudHMpIHsKICAgIGxldCBzdW0gPSAwOwogICAgbGV0IGNvdW50ID0gMDsKICAgIGZvcihsZXQgcyA9IDA7IHMgPCBuOyBzKyspIHsKICAgICAgICBmb3IobGV0IHAgPSAwOyBwIDwgbTsgcCsrKSB7CiAgICAgICAgICAgIHN1bSArPSBzdHVkZW50Lm1hcmtzW3NdW3BdOwogICAgICAgICAgICBjb3VudCsrOwogICAgICAgIH0KICAgIH0KICAgIHN0dWRlbnQuYXZnID0gc3VtIC8gY291bnQ7CiAgICBncm91cEF2ZyArPSBzdHVkZW50LmF2ZzsKfQoKZ3JvdXBBdmcgPSBncm91cEF2ZyAvIHN0dWRlbnRzLmxlbmd0aDsKY29uc29sZS5sb2coYNCh0LXRgNC10LTQvdGW0Lkg0LHQsNC7INCz0YDRg9C/0Lg6ICR7Z3JvdXBBdmcudG9GaXhlZCgyKX1cbmApOwoKLy8g0JLQuNCy0LXQtNC10L3QvdGPINGB0YLRg9C00LXQvdGC0ZbQsiDQtyDRgdC10YDQtdC00L3RltC8INCx0LDQu9C+0Lwg0LLQuNGJ0LUg0LPRgNGD0L/QuApjb25zb2xlLmxvZygi0KHRgtGD0LTQtdC90YLQuCDQtyDRgdC10YDQtdC00L3RltC8INCx0LDQu9C+0Lwg0LLQuNGJ0LUg0YHQtdGA0LXQtNC90YzQvtCz0L4g0LHQsNC70YMg0LPRgNGD0L/QuDpcbiIpOwpzdHVkZW50cy5mb3JFYWNoKChzdHVkZW50LCBpbmRleCkgPT4gewogICAgaWYoc3R1ZGVudC5hdmcgPiBncm91cEF2ZykgewogICAgICAgIGNvbnNvbGUubG9nKGAke2luZGV4KzF9LiAke3N0dWRlbnQuc3VybmFtZX0gXHQgJHtzdHVkZW50Lm5hbWV9IFx0ICR7c3R1ZGVudC5kYXl9LiR7c3R1ZGVudC5tb250aH0uJHtzdHVkZW50LnllYXJ9IFx0ICR7c3R1ZGVudC5lbnRyeVllYXJ9IFx0ICR7c3R1ZGVudC5jb3Vyc2V9IFx0ICR7c3R1ZGVudC5ncm91cH1gKTsKICAgICAgICBzdHVkZW50Lm1hcmtzLmZvckVhY2goc2VtID0+IHsKICAgICAgICAgICAgY29uc29sZS5sb2coc2VtLmpvaW4oJyAnKSk7CiAgICAgICAgfSk7CiAgICAgICAgY29uc29sZS5sb2coYGF2ZyA9ICR7c3R1ZGVudC5hdmcudG9GaXhlZCgyKX1cbmApOwogICAgfQp9KTsK