Escriviu un programa que sumi una seqüència de parells de fraccions. Per practicar el disseny descendent (top-down design), el programa ha de ser el resultat de completar les línies de codi esbossades a continuació.
....
struct Rational {
int num; // numerador
int den; // denominador
};
//pre: ....
//post: ....
int gcd_euclides(...)
//pre:---
//post: retorna r en forma simplificada
Rational simplify(Rational r)
//....
void write_rational(Rational r) {
if (r.num == 0) cout << "0";
else if (r.den == 1) cout << r.num;
else cout << r.num << "/" << r.den;
}
....
....
....
int main() {
Rational rat1, rat2, total={0,1};
while (read_pair_rationals(....)) {
Rational sum = sum_and_simp(....);
write_sum(....);
...
}
write_result(total);
}
L’entrada consisteix en una seqüència de línies. Cada línia conté quatre nombres enters que representen les fraccions i . Es compleix que i
La suma de cada parell de fraccions (una per línia) i, al final, la suma total de totes elles. Les fraccions resultants han d’estar simplificades: el numerador i el denominador no tenen cap factor comú, i el denominador és positiu. Si una fracció és , només cal escriure . Si la fracció és , només cal escriure . Seguiu el format dels exemples de sota.
Input
1 3 2 3 -1 5 2 10 34 45 12 12
Output
1/3 + 2/3 = 1 -1/5 + 2/10 = 0 34/45 + 12/12 = 79/45 Total = 124/45
Input
1 2 1 -2 1 3 2 -3 3 1 -10 -2
Output
1/2 + 1/-2 = 0 1/3 + 2/-3 = -1/3 3 + -10/-2 = 8 Total = 23/3
Input
-5 -5
Output
Total = 0