Ostateczna ocena wyliczona została na podstawie oceny z kolokwium pierwszego (o1) i kolokwium drugiego (o2) według następujących zasad:
- kolokwium drugie jest ważniejsze,
- korekty wykonywane są jedynie dla osób, które pisały oba kolkokwia,
- kolokwium pierwsze jdynie poprawia ocenę końcową,
- poprawa jest (niestety) ograniczona w przypadku gdy druga ocena jest niedostateczna.
Algorytm wyliczania oceny końcowej jest (w przybliżeniu) następujący:
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
|
#include <math.h> #include <stdio.h> double z(double x) { return floor( ( x * 2. ) + 0.5 ) / 2.; } int main() { double o1; // ocena z pierwszego kolokwium double o2; // ocena z drugiego kolokwium double o; // ocena na koniec int i; while ( ( i = scanf("%lf%lf", &o1, &o2) ) == 2 ) { o = o2 == 2. ? z( ( o1 + o2 ) / 2. ) < o2 ? o2 : \ z( ( o1 + o2 ) / 2. ) > 3. ? 3 : \ z( ( o1 + o2 ) / 2. ) < o2 ? o2 : \ z( ( o1 + o2 ) / 2. ) : \ z( ( o1 + o2 ) / 2. ) < o2 ? o2 : \ z( ( o1 + o2 ) / 2. ); printf("o1=%.1f o2=%.1f o=%.1f\n", o1, o2, o); } return 0; } |