# Ejercicios de análisis y evaluación ### EJEMPLO 1 ##### ENUNCIADO: Compara los siguientes procedimientos para realizar la misma acción [![image-1654451674408.png](https://libros.catedu.es/uploads/images/gallery/2022-06/scaled-1680-/image-1654451674408.png)](https://libros.catedu.es/uploads/images/gallery/2022-06/image-1654451674408.png) Escribe en cada caso como los utilizarías en un programa que a partir de dos números nos devolviera su cociente. ##### SOLUCIÓN - Opción 1: Es una función que devuelve un valor, por lo que dentro del programa no se puede invocar por separado sino siempre dentro de una expresión. [![image-1654452224529.png](https://libros.catedu.es/uploads/images/gallery/2022-06/scaled-1680-/image-1654452224529.png)](https://libros.catedu.es/uploads/images/gallery/2022-06/image-1654452224529.png) Opción 2: Es una función que no devuelve un valor (procedimiento) por lo tanto puede ser invocada por separado, si bien necesita que se le pasen dos parámetros para realizarse, que el programa habrá tenido que proporcionar antes. [![image-1654452417008.png](https://libros.catedu.es/uploads/images/gallery/2022-06/scaled-1680-/image-1654452417008.png)](https://libros.catedu.es/uploads/images/gallery/2022-06/image-1654452417008.png) - Opción 3: Es un procedimiento que no tiene parámetros, por lo que los datos habrán de ser recabados por el propio procedimiento. [![image-1654452522328.png](https://libros.catedu.es/uploads/images/gallery/2022-06/scaled-1680-/image-1654452522328.png)](https://libros.catedu.es/uploads/images/gallery/2022-06/image-1654452522328.png) La elección entre unas u otras vendrá determinada por lo que sea más conveniente en el programa. La opción 3 es la que resulta más conveniente cuando una misma expresión se va a utilizar repetidas veces a lo largo del código, mientras que la opción 1 puede resultar conveniente si ese resultado quisiéramos introducirlo en posteriores instrucciones para tomar decisiones o realizar otras operaciones. ### EJEMPLO2 ##### ENUNCIADO Compara los siguientes programas. **Programa 1** [![image-1663095545071.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/image-1663095545071.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/image-1663095545071.png) **Programa 2** **[![image-1663092570898.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/image-1663092570898.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/image-1663092570898.png)** a) ¿Hacen lo mismo? b) Justifica sus diferencias y explica cuál utilizarías tú y por qué. ##### SOLUCIÓN a) Efectivamente hacen lo mismo. Es un programa que al introducir una calificación numérica evalúa que esté en el rango correcto y si no, devuelve un mensaje de error, y si está en el rango correcto evalúa si corresponde a un APROBADO o un SUSPENSO. Es el programa descrito en el último ejemplo del [capítulo anterior.](https://libros.catedu.es/books/fundamentos-de-programacion-estructurada-con-pseint-y-scratch/page/operaciones-con-datos) b) La diferencia es: - El programa 1 **primero evalúa si la nota introducida está en el intervalo correcto** mediante un operador Y, (ha de ser mayor O igual que cero Y menor O igual que 10) y en ese caso devuelve el mensaje de SUSPENSO si es menor que 5 y aprobado en el otro caso. Si no está en el intervalo devuelve un mensaje de error. Como en Scratch no existe el operador <= hay que ir concatenando operadores Y y O y acaba resultando un código complejo. - El programa 2 **primero evalúa si la nota introducida está fuera del intervalo correcto** (cosa que sucede para valores estrictamente menores que 0 o mayores que 10) y en ese caso devuelve el mensaje de error, y en el contrario anida otro condicional donde devuelve el mensaje de SUSPENSO si es menor que 5 y aprobado en el otro caso. En el **programa 2** el código es más sencillo y por lo tanto es la opción más recomendable. {{@5685}}