PC Tema 4

De la WikiLabs
Versiunea din 5 ianuarie 2016 22:20, autor: Rhobincu (discuție | contribuții) (→‎Observații)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)
Jump to navigationJump to search

Unii din cei mai simpli algoritmi din informatică sunt cei care găsesc minimul sau maximul dintr-un șir de numere.

Cerință

Dându-se un număr n întreg, fără semn, oricât de mare, și o secvență de n perechi de nume și notă, reprezentând mediile studențiilor de la Politehnică, să se scrie o funcție care să întoarcă nota și numele studentului cu nota cea mai mare. Dacă sunt mai mulți studenți cu aceeași notă maximă, se va afișa primul din listă.

Date de intrare

Numărul n, valoare întreagă fără semn, urmat de n perechi de nume și notă. Nota este un număr fracționar, în intervalul [0:10]. Numele unui student are maxim 31 de caractere.

Exemplu

10
Andrei Vasile
9.87
Ghita Gheorghe
7.84
Ion Ion
4.99
Vasile Ion
7.31
Vasile Vasile
8.43
Margareta Maria
8.56
Nitu Mitu
9.93
Oana Ioana
7.32
Ana Oana
9.93
Mia Maria
6.32

Date de ieșire

O pereche "nume - medie", pe aceeași linie, separate prin cratimă și spații, media fiind scrisă cu două zecimale:

Exemplu (pentru intrarea de mai sus)

Nitu Mitu - 9.93

Restricții

  1. Nu se vor folosi variabile globale.
  2. Citirea datelor se va face într-o funcție separată.
  3. Căutarea studentului cu nota maximă se va face într-o funcție separată.
  4. Nu se va folosi funcția gets - aceasta este deprecated.

Observații

  1. Pentru date, necunoscând valoarea maximă a lui n, singura soluție pentru stocarea acestor date este alocarea dinamică de memorie după citirea lui n.
  2. Utilizarea structurilor vă poate ușura foarte mult munca.
  3. Atenție la utilizarea funcției fgets:
    • aceasta va pune pe ultima poziție din string și caracterul newline (\n), care trebuie suprascris cu 0 de către voi;
    • dacă înainte de apelul lui fgets s-a apelat un scanf, atunci în buffer-ul streamului standard de intrare a rămas un caracter newline pe care îl puteți elimina apelând funcția getchar.

Livrabile și modalitate de predare

Predarea se face pe platforma Web-Cat și constă în upload-ul unui singur fișier sursă C care să implementeze funcționalitatea cerută.

Notare

Pentru această temă se pot acorda 10 puncte:

  • 7 puncte pentru comportamentul aplicației, care se acordă automat de către platforma de testare, imediat după predare, în funcție de calitatea temei;
  • 3 puncte pentru stilul de scriere a programului, alinierea codului, nume lizibile de variabile, etc., care se acordă ulterior de către un cadru didactic.

Atenție: Pentru această temă se pot SCĂDEA 11 puncte, dacă aceasta se dovedește că este copiată.

Termen limită

Termenul limită strict pentru depunerea temei este 20 ianuarie, ora 23:55.