educatica!

educación, informática y demás

Ejercicios 20.01

Ejercicio 04

Se pide modificar el script opAritmeticas del ejercicio anterior de forma que, si el usuario no pasa uno de los parámetros, se lo solicitamos para que lo inserte por teclado.

Si una vez solicitado el número el usuario no lo ha insertado, entonces mostramos un mensaje de error y salimos.

Ayuda: Deberás utilizar el comando set.

Solución

La idea sería comprobar que, SI no nos han pasado parámetro pedir al usuario que inserte el número, SI NO obtenemos o usamos el número pasado por parámetro.

Nos han indicado que usermos el comando SET, como no sabemos muy bien como, tendremos que consultar la ayuda con el comando help.

Si nos fijamos, el modificador /P tiene pinta de hacer lo que buscamos. No obstante, tendremos que seguir leyendo para salir de dudas.

Más o menos, podemos entender de la ayuda y de la sintaxis, que con el modificador /P set obtendrá el valor que se asignará a la variable de la parte izquierda de la asignación por teclado. Es decir, lo que escriba el usuario. Además, si queremos podemos escribir un texto que se mostrará al usuario delante del cursor, como si fuera un prompt o información.

Una posible solución sería la siguiente.

Aunque este script está bastante bien, tiene un pequeño error en la comprobación de valores. Estamos comprobando valores que se guardan en variables de entorno. La primera vez que se ejecute el script, estas variables no estarán asignadas. Sin embargo, después de que el script se ejecute correctamente, estas variables num1 y num2 tendrán asignados valores.

Para que todo funcione como debería, tendremos que inicializar (borrar) las variables antes de realizar ninguna acción.

Podríamos haber pensado en aprovechar los paréntesis para hacer un script con un formato más parecido a lo que haríamos en un lenguaje de programación de alto nivel. Sin embargo, no es recomendable, porque podemos encontrarnos con efectos secundarios inesperados, por ejemplo la asignación de variables no se realiza hasta salir del paréntesis.

Tema creado por Anders Norén