Ejercicios de creación
EJEMPLO 1
ENUNCIADO
A partir de los ejercicios vistos anteriormente realiza un programa que simule ser una pequeñpequeña calculadora con las cuatro operaciones bábásicas (sumar, restar, multiplicar y dividir):
- Que muestre un
menúmenú inicial donde se elija laoperacióoperación que se va a realizar. - Si alguien escoge una
opcióopción no contemplada debe volver a mostrar las opciones iniciales. - Que solicite los
núnúmeros implicados en cadaoperacióoperación y muestre el resultado. - Que de
opcióopción a reiniciar el programa una vez realizada unaoperacióoperación.
SOLUCIÓSOLUCIÓN
Seguimos los mismos pasos vistos en el capícapítulo anterior en la creaciócreación de un programa.
Pasos 1 y 2: AnáAnálisis y diagrama de flujo del programa Calculadora.
Los elementos implicados son
- Salidas: Mostrar
menúmenú inicial, preguntar pornúnúmeros implicados, mostrar resultado. - Entradas:
OperacióOperación a realizar (operac),núnúmeros implicados (sumando1, sumando2....), reinicio. - Almacenamiento de datos: operacion a realizar (operac),
núnúmeros implicados, resultado, reinicio (S/N) - Operaciones: bucle y condicional (SEGUN, SI-ENTONCES, REPETIR hasta que), operaciones
lólógicas (comparaciones, Y, O), operacionesaritméaritméticas.
En cuanto a la estructura del programa se propone realizar funciones parciales para cada una de las operaciones.
Para mostrar el menúmenú se propone la estructura SEGUN ya que las opciones son discretas (4 operaciones) dentro de una estructura REPETIR hasta que la opcióopción seleccionada sea la correcta.
El reinicio se realiza al finalizar cada operacióoperación, preguntando y si la respuesta es afirmativa, modificar la condiciócondición que volvívolvía a mostrar el menúmenú inicial (operac).
Diagrama de flujo:
Las dimensiones del diagrama no permiten distinguirlo bien, pero sísí notar que hay una estructura REPETIR HASTA QUE la variable operac tenga un valor comprendido entre 1 y 4, que muestra el mensaje inicial con las operaciones a elegir.
Dentro de ella una estructura SEGÚSEGÚN que abre 5 opciones posibles, la úúltima la de que se haya elegido un núnúmero distinto del 1 al 4 que vuelve a iterar el proceso, y las otras 4 una por cada operacióoperación.
TambiéTambién que cada una de las 4 operaciones termina con un bloque condicional para preguntar por el reinicio, y en caso de querer reiniciar, le da a la variable operac un valor diferente de 1,2, 3 y 4 lo que reactiva el bucle repetir hasta que.
Pasos 3, 4 y 5: CodificacióCodificación, compilaciócompilación y verificacióverificación del programa Calculadora con PSeInt.
Empezamos por definir las funciones. La suma la haremos directamente dentro del algoritmo principal para ver la diferencia.
El algoritmo principal quedaríquedaría de la siguiente forma:
EJEMPLO2
ENUNCIADO
Crea un programa en Scratch para aprender las tablas de multiplicar. Las condiciones del programa son:
- Al inicio un personaje pregunta si quieres participar o no. Tiene que seguir preguntando hasta que se le diga que
sísí. DespuéDespuéspreguntarápreguntará del 1 al 10quéqué tabla de multiplicar quiere practicar.- A
continuaciócontinuaciónmostrarámostrará en pantalla las operaciones de la tabla de multiplicar delnúnúmero introducido. - Al terminar se
despedirádespedirá.
SOLUCIÓSOLUCIÓN
Seguimos los mismos pasos vistos en el capícapítulo anterior en la creaciócreación de un programa.
Pasos 1 y 2: AnáAnálisis y diagrama de flujo del programa Tabla de multiplicar
Los elementos implicados son
- Salidas: Saludar, preguntar si se participa, preguntar la tabla a recitar, recitar la tabla, saludar al final.
- Entradas: Respuesta
SíSí/No a participar,núnúmero de la tabla. - Almacenamiento de datos: almacenamos las respuestas obtenidas, y una variable contador para recorrer la tabla del 0 al 10
- Operaciones: bucle condicional (repetir mientras la respuesta sea no), bucle con
núnúmero prefijado (multiplicar del 0 al 10), multiplicaciones, comparaciones, concatenaciones.
Diagrama de flujo:
Pasos 3, 4 y 5: CodificacióCodificación, compilaciócompilación y verificacióverificación del programa Tabla de multiplicar con Scratch
Como siempre empezamos por definir las variables. Definimos una variable contador y le asignamos el valor 0 al inicio del programa. La otra variable no seráserá necesario crearla puesto que al ser respuesta de una pregunta, la crea el programa por defecto.
Saludamos y realizamos la pregunta con los bloques correspondientes de Apariencia y Sensores ya que son Salidas.
AhíAhí comienza el primer bucle, en este caso condicional puesto que depende de la respuesta obtenida. En scratch el bloque que realiza esta operacióoperación es Repetir hasta que
Cuando realizamos comparaciones con textos, hay que tener en cuenta las variaciones de mayúmayúsculas, minúminúsculas, tildes, etc...Lo mejor en ese caso serísería usar el operador "O" que nos admite como váválidas cualquiera de las posibilidades (SíSí, Si, SI, si)
Una vez obtenida la respuesta afirmativa (ENTRADA), pasamos a preguntar de nuevo por el núnúmero del 1 al 10 del que se quiere usar la tabla (SALIDA).
Con la respuesta obtenida (ENTRADA) realizamos otro bucle en este caso del 0 al 10 por lo que son 11 veces, donde se va a mostrar en pantalla al personaje diciendo el numero de la tabla x contador = resultado y el valor del contador se va incrementando de uno en uno en cada iteracióiteración.
Tras una úúltima salida con la despedida, el programa quedaríquedaría asíasí.
Por úúltimo vendrívendría el momento de verificacióverificación del funcionamiento.
Consideraciones finales:
- Este programita se
podípodía haber hecho de muchas otras formas, como casi todos los programas. Se pueden utilizar estructuras condicionales anidadas, por ejemplo. Te invitamos a que explores algunas de ellas. - Se ha escogido esta forma porque es una de las que menos bloques de
cócódigo requiere. Es una buenaprápráctica para nuestro alumnado exponerle a crear un programa de distintas formas y hacer unanáanálisiscrícrítico de cada una de ellas. - Es bueno tener presente siempre en
programacióprogramación las siglas DRY (Don't Repeat Yourself) Si se repiten muchaslílíneas decócódigo o muchos bloques iguales, probablemente hay una formamámás eficiente de hacerlo.
{{@5685}}