2 Respostas e comentários para problemas selecionados
Para este problema são apresentadas duas soluções. A primeira em um nível de abstração mais alto e a segunda usando um nível mais próximo a uma linguagem de programação.
Primeira versão: representação dos meses usando conjuntos.
Segunda versão: especificação dos meses usando comparações individuais.
É importante notar que, para este problema, a ordem das verificações pode variar de solução para solução.
A solução apresentada considera \(q_1 = \frac{n_1}{d_1}\) e \(q_2 = \frac{n_2}{d_2}\). Eles serão iguais se \(n_1 d_2 = n_2 d_1\).
Sendo \(q_1\) e \(q_2\) dois racionais válidos, necessariamente \(d_1\) e \(d_2\) são diferentes de zero. Porém, \(n_1\) e \(n_2\) podem ser nulos sem violar as pré-condições do problema. Assim, é importante notar que no se do algoritmos, \(n_1 d_2 = n_2 d_1\) não pode ser substituído por \(\frac{n_1 d_2}{n_2 d_1} = 1\), pois se \(n_2 = 0\), essa expressão é inválida.
Outras comparações válidas seriam \(\frac{n_1}{d_1} = \frac{n_2}{d_2}\), \(\frac{n_1}{d_1} - \frac{n_2}{d_2} = 0\) ou \(n_1 d_2 - n_2 d_1 = 0\). Nenhuma dessas versões introduzem inconsistência na expressão.
A atenção aos detalhes é sempre relevante.