6.4. Comparaciones entre números.

Ya que podemos leer y escribir números grandes, ahora nos interesa poder hacer comparaciones entre números, ya que es algo que ocuparemos en algoritmos posteriores. Las funciones que vamos a implementar son: revisar si un número es igual a cero, y revisar si número es menor o igual (≤) a otro. Otras comparaciones entre números no son necesarias en este capítulo, pero se pueden realizar de manera similar a la de menor o igual.

Para saber si un número es igual a cero, lo que se hacemos es revisar que cada uno de los bloques que lo conforman sean iguales a cero.

Para determinar si un número es menor o igual a otro, revisamos cada bloque, del mayor al menor, hasta que sean distintos o hasta que lleguemos al primer bloque. Cuando se cumpla cualquiera de las dos condiciones anteriores, hacemos la comparación con los bloques en los que nos encontremos. Por ejemplo: supongamos que el tamaño de los bloques es unitario (un dígito por bloque) y que los números a comparar son 9873 y 9894. Lo que haríamos es primero comparar los dos nueves y como son iguales continuamos, lo mismo pasa con los ochos. Cuando realizamos la comparación con el tercer bloque vemos que los bloques son distintos por lo que nos detenemos. Como el primer número es menor, el resultado de la función es true.


En el código anterior incluimos las funciones de comparación. De las líneas 1 a 9 está la función igual_cero, la cual revisa si el argumento es igual a cero. Para efectuar esto, es necesario revisar que todos los bloques entre 0 y tam –1 sean iguales a cero. La otra función de comparación es menor_igual (líneas 10 a 18) que comprueba que el primer argumento sea menor que el segundo. Lo que se realiza es comparar todos los bloques desde el más significativo en ambos números, y revisar si el primero es menor en el primer bloque que sea diferente. En ambas funciones, en caso de que se cumplan las condiciones regresan true, y false en caso contrario.


Código en C






© Pier Paolo Guillen Hernandez
World of πer