Floor e ceil

Floor e ceil

by Andre Manoel -
Number of replies: 3
Olá,

Gostaria de saber se posso usar as funções floor e ceil (da math.h) no algoritmo3? Acredito que sem usá-las tem de se fazer um tratamento um pouco chato p/ os números ímpares...

Obrigado,
André
In reply to Andre Manoel

Re: Floor e ceil

by Francisco Reverbel -
Nada específico contra foor e ceil ou outras funções da <math.h>, mas todas as funções dessa biblioteca são para números reais (doubles). E no EP2 não deve aparecer nenhuma variável float ou double...

Para partir um número inteiro em duas "metades" inteiras quase iguais, use as operações / e %.
In reply to Francisco Reverbel

Re: Floor e ceil

by Andre Manoel -
O que fiz foi usar floor e ceil na forma floor(m/2.) e ceil(m/2.), onde m é um int. Assim ele considera (m/2.) como float/double, ainda que m seja int.

Posso fazer isso, ou é melhor usar / e % mesmo?
In reply to Andre Manoel

Re: Floor e ceil

by Francisco Reverbel -
Nesse caso até pode, mas é deselegante. É melhor usar / e %.

Em geral é não é uma boa idéia usar aritmética real (floats ou doubles) quando se pode usar apenas aritmética inteira. O uso de números reais em ponto flutuante no lugar de números inteiros é considerado uma má prática de programação, por duas razões:
  1. As operações aritméticas com números inteiros são mais rápidas que as operações aritméticas com números reais em ponto flutuante.
  2. A aritmética inteira é exata, a aritmética em ponto flutuante não é.