educatica!

educación, informática y demás

Ejercicios 20.01

Ejercicio 03

Nos gustaría que el resultado de la resta no sea negativo. Es decir, si el primer número es menor que el segundo, habrá que hacer algo para que el resultado sea positivo.

Solución

Si el primer número es menor que el segundo entonces, al segundo número le restamos el primero. Si no, al primer número le restamos el segundo.

Esta claro que debemos utilizar una sentencia condicional. En el caso de scripts de windows deberíamos utilizar el comando IF. Sin embargo, puede que no tengamos claro como utilizarlo. Así que, la mejor manera de aprender que opciones tenemos con este comando será consultar su ayuda: help if.

Fragmento de la ayuda del comando IF

Según la ayuda, deberíamos utilizar algunas de las operaciones de comparación entre números. En concreto, en nuestro caso, LSS (menor que) sería la adecuada.

A priori, el código de arriba debería funcionar, sin embargo dará problemas. Esto es debido a la sintaxis del comando IF. No olvidemos que un script ejecuta comandos, comandos que tratan de hacer lo mismo con sentencias de un lenguaje de programación, pero al fin de cuentas son comandos que tienen una sintaxis concreta y además deben ser ejecutados por el interprete de comandos como cualquier otro comando.

El problema esta en que el comando IF requiere el ELSE, en caso de existir, esté en la misma línea que el comando que se ejecutará si se cumple la condición (THEN).

Si no se pone entre paréntesis el comando del IF en interprete de comandos no puede saber hasta donde llega el comando y sus parámetros. De esta forma, si lo rodeamos con paréntesis, ahora el interprete de comandos si sabe donde termina el comando o comandos a ejecutar cuando se cumpla la condición del IF.

Otro detalle a tener en cuenta, según nos dice la ayuda, es que el ELSE debe aparecer en la misma línea del comando que se ejecuta con el IF.

Otra opción, más estética sería haber utilizado los paréntesis para separar los comandos.

Con esta segunda opción, hay que tener mucho cuidado con los paréntesis, tanto que no se nos olviden como que estén donde tienen que estar.

Tema creado por Anders Norén