2802 - Clasa: Diferență între versiuni

De la Universitas MediaWiki
(Pagină nouă: = Cerința = Se citește de la tastatură numărul <code>n</code> și un număr <code>p</code> cu valoarea <code>1</code> sau <code>2</code> și apoi <code>n</code> șiruri de tip <code>nume prenume media1 media2 media3</code> separate prin spații. Pentru <code>p=1</code>, se va afișa numărul elevilor care au media generală mai mare sau egală decât media clasei. Pentru <code>p=2</code>, se va afișa pe primul rând media clasei și pe următoarele <code>n</code> rân...)
 
Fără descriere a modificării
 
Linia 38: Linia 38:


=== Lipește codul aici ===
=== Lipește codul aici ===
1
<syntaxhighlight lang="python" line="1">
​function comp(i, j) {
​function comp(i, j) {
 
    if (i.medieg > j.medieg)
    if (i.medieg > j.medieg)
        return 1;
 
    if (i.medieg === j.medieg && i.nume < j.nume)
        return 1;
        return 1;
 
    if (i.medieg === j.medieg && i.nume === j.nume && i.prenume < j.prenume)
    if (i.medieg === j.medieg && i.nume < j.nume)
        return 1;
 
    return 0;
        return 1;
}
 
var w = new Array(101);
    if (i.medieg === j.medieg && i.nume === j.nume && i.prenume < j.prenume)
var s;
 
var n, p;
        return 1;
var g = 0;
 
n = parseInt(prompt());
    return 0;
p = parseInt(prompt());
 
prompt();
}
for (var i = 0; i < n; i++) {
 
    var v = [];
var w = new Array(101);
    s = prompt();
 
    var buffer = s.split(" ");
var s;
    for (var j = 0; j < buffer.length; j++) {
 
        v.push(buffer[j]);
var n, p;
    }
 
    switch (j) {
var g = 0;
        case 0:
 
            w[i].nume = v[j];
n = parseInt(prompt());
            break;
 
        case 1:
p = parseInt(prompt());
            w[i].prenume = v[j];
 
            break;
prompt();
        case 2:
 
            w[i].medie1 = parseInt(v[j]);
for (var i = 0; i < n; i++) {
            break;
 
        case 3:
    var v = [];
            w[i].medie2 = parseInt(v[j]);
 
            break;
    s = prompt();
        case 4:
 
            w[i].medie3 = parseInt(v[j]);
    var buffer = s.split(" ");
            break;
 
    }
    for (var j = 0; j < buffer.length; j++) {
    w[i].medieg = (w[i].medie1 + w[i].medie2 + w[i].medie3) / 3;
 
    g += w[i].medieg;
        v.push(buffer[j]);
}
 
g /= n;
    }
if (p === 1) {
 
    var ap = 0;
    switch (j) {
    for (var i = 0; i < n; i++) {
 
        if (w[i].medieg >= g)
        case 0:
            ap++;
 
    }
            w[i].nume = v[j];
    console.log(ap);
 
} else if (p === 2) {
            break;
    console.log(g.toFixed(2));
 
    w.sort(comp);
        case 1:
    for (var i = 0; i < n; i++) {
 
        console.log(w[i].nume + " " + w[i].prenume + " " + w[i].medieg.toFixed(2));
            w[i].prenume = v[j];
    }
 
}
            break;
</syntaxhighlight>
 
        case 2:
 
            w[i].medie1 = parseInt(v[j]);
 
            break;
 
        case 3:
 
            w[i].medie2 = parseInt(v[j]);
 
            break;
 
        case 4:
 
            w[i].medie3 = parseInt(v[j]);
 
            break;
 
    }
 
    w[i].medieg = (w[i].medie1 + w[i].medie2 + w[i].medie3) / 3;
 
    g += w[i].medieg;
 
}
 
g /= n;
 
if (p === 1) {
 
    var ap = 0;
 
    for (var i = 0; i < n; i++) {
 
        if (w[i].medieg >= g)
 
            ap++;
 
    }
 
    console.log(ap);
 
} else if (p === 2) {
 
    console.log(g.toFixed(2));
 
    w.sort(comp);
 
    for (var i = 0; i < n; i++) {
 
        console.log(w[i].nume + " " + w[i].prenume + " " + w[i].medieg.toFixed(2));
 
    }
 
}

Versiunea curentă din 14 decembrie 2023 13:56

Cerința

Se citește de la tastatură numărul n și un număr p cu valoarea 1 sau 2 și apoi n șiruri de tip nume prenume media1 media2 media3 separate prin spații.

Pentru p=1, se va afișa numărul elevilor care au media generală mai mare sau egală decât media clasei.

Pentru p=2, se va afișa pe primul rând media clasei și pe următoarele n rânduri, numele, prenumele și media generală a fiecărui elev, separate printr-un singur spațiu, sortat descrescător după medie; la medii egale se sortează crescător după nume, iar la nume egale crescător după prenume.

Date de intrare

Programul citește de la tastatură numerele n p, iar apoi de pe câte o linie cele n structuri de forma specificată în enunț.

Date de ieșire

Dacă p=1 programul va afișa pe ecran numărul elevilor care au media generală mai mare au egală decât media clasei.

Dacă p=2 programul va afișa pe primul rând media clasei și pe următoarele n rânduri, numele, prenumele și media generală ale elevilor, separate printr-un singur spațiu, sortate conform cerinței.

Restricții și precizări

  • 1 ≤ n ≤ 100
  • numele și prenumele au cel mult 100 de caractere
  • toate mediile clasei se vor afișa cu două zecimale, rezultatul afișat este considerat valid dacă diferența în valoare absolută dintre acesta și cel corect este cel mult 0.01.
  • media generală a unui elev este media aritmetică celor trei medii date.
  • media clasei este media aritmetică a mediilor generale ale elevilor.
  • pentru datele reale se recomandă folosirea tipurilor de date în dublă precizie (tipul C/C++ double)

Exemplul 1:

Intrare

5 1
Juro Muro 2 3 5
San Hill 7 5 9
Barbarigo San 9 2 4
Ezio Marbo 2 6 3
Gorbo Borbo 2 4 6

Ieșire

2

Încărcare soluție

Lipește codul aici

function comp(i, j) {
    if (i.medieg > j.medieg)
        return 1;
    if (i.medieg === j.medieg && i.nume < j.nume)
        return 1;
    if (i.medieg === j.medieg && i.nume === j.nume && i.prenume < j.prenume)
        return 1;
    return 0;
}
var w = new Array(101);
var s;
var n, p;
var g = 0;
n = parseInt(prompt());
p = parseInt(prompt());
prompt();
for (var i = 0; i < n; i++) {
    var v = [];
    s = prompt();
    var buffer = s.split(" ");
    for (var j = 0; j < buffer.length; j++) {
        v.push(buffer[j]);
    }
    switch (j) {
        case 0:
            w[i].nume = v[j];
            break;
        case 1:
            w[i].prenume = v[j];
            break;
        case 2:
            w[i].medie1 = parseInt(v[j]);
            break;
        case 3:
            w[i].medie2 = parseInt(v[j]);
            break;
        case 4:
            w[i].medie3 = parseInt(v[j]);
            break;
    }
    w[i].medieg = (w[i].medie1 + w[i].medie2 + w[i].medie3) / 3;
    g += w[i].medieg;
}
g /= n;
if (p === 1) {
    var ap = 0;
    for (var i = 0; i < n; i++) {
        if (w[i].medieg >= g)
            ap++;
    }
    console.log(ap);
} else if (p === 2) {
    console.log(g.toFixed(2));
    w.sort(comp);
    for (var i = 0; i < n; i++) {
        console.log(w[i].nume + " " + w[i].prenume + " " + w[i].medieg.toFixed(2));
    }
}