Está en la página 1de 29

INTRODUCCIÓN A LA

PROGRAMACIÓN
SEMANA 06
Ejercicios Avanzados
• Introducción
• Mediante la herramienta PSeInt podemos resolver cualquier problema
que requiere realizar un conjunto de acciones relacionadas lógicamente
y estructuradas, de manera que cumplan un objetivo en particular.
• El desarrollar un conjunto de pasos que se ejecutan en un determinado
orden y están relacionados entre si, se construye un “algoritmo”.
• PSeInt nos entrega herramientas para escribir “pseudocódigo” que es un
lenguaje no computacional ni de programación, pero que nos permite
estructurar lógicamente pasos para solucionar un problema
determinado.
• Los algoritmos pueden ser del tipo descriptivos, donde se detallan un
conjunto de pasos para realizar una determinada tarea, o realizar algún
cálculo en función de datos de entrada para producir un resultado como
salida.
Ejercicios Avanzados

• Metodología
• Antes de utilizar la herramienta PSeInt para construir un
algoritmo, es necesario tener claridad del problema que
se va a resolver.
• Además de comprender el problema a solucionar es
necesario definir cuales son los datos de entrada del
problema (si los hay), cuales son los cálculos,
operaciones o transformaciones que afectarán a los
datos al interior del algoritmo, y finalmente cuáles son
los resultados o respuestas que debe entregar el
algoritmo para solucionar el problema planteado.

Entrada Proceso Salida


Ejercicios Avanzados

• Ejemplo
• Calcular el resultado de la multiplicación de 2 números
enteros
• Análisis previo
• Primero debemos tener claridad del problema planteado, es
decir, entender a cabalidad lo que se requiere.
• Segundo, identificamos datos de entrada (si los hay).
• Tercero, definimos acciones, operaciones, transformaciones a
realizar con los datos de entrada.
• Finalmente entregamos el resultado obtenido al procesar los
datos de entrada en el algoritmo.

𝑋= 𝐴 ∗ 𝐵
Ejercicios Avanzados
• Ejemplo
• Calcular el resultado de la multiplicación de 2 números enteros
• Desarrollo
• Se identifican 2 datos de entrada que corresponden a los 2 números enteros.
Estos datos los proporciona un usuario a través del teclado. Por lo tanto
podríamos pensar en las siguientes acciones:
• Leer numero_uno
• Leer numero_dos
• El procesamiento consiste en realizar la multiplicación entre los 2 números
que sirven como entrada. Acá nos enfrentamos a que el resultado debemos
almacenarlo para guardarlo y mostrarlo posteriormente como salida o
resultado del proceso. Esto significa que debemos reservar un espacio para
guardar ese valor, lo que nos lleva a tener que utilizar una “variable”.
• Resultado = numero_uno * numero_dos
• Finalmente mostramos el valor calculado
• Escribir “Resultado: “, resultado
Ejercicios Avanzados
• Ejemplo
• Calcular el resultado de la multiplicación de 2 números
enteros
• Desarrollo
• Escribiendo el algoritmo podemos obtener algo así:
• // Inicio
• Definir resultado, numero_uno, numero_dos como entero
• Escribir “Ingrese primer número: “
• Leer numero_uno
• Escribir “Ingrese segundo número: “
• Leer numero_dos
• Resultado = numero_uno * numero_dos
• Escribir “Resultado: “, resultado
• // Fin
Ejercicios Avanzados
• Ejemplo
• Calcular el resultado de la multiplicación de 2 números enteros
• Desarrollo
• Escribiendo el algoritmo podemos obtener algo así:
• // Inicio
• Definir resultado, numero_uno, numero_dos como entero
• Escribir “Ingrese primer número: “
• Leer numero_uno
• Escribir “Ingrese segundo número: “
• Leer numero_dos
• Resultado = numero_uno * numero_dos
• Escribir “Resultado: “, resultado
• // Fin
• En términos generales el algoritmo cumple el objetivo. Sin embargo podemos
incorporar algunos pasos que permitan asegurar el resultado del cálculo, o en su
defecto, asegurar la calidad de los datos ingresados para obtener un resultado
correcto y válido.
Ejercicios Avanzados
• Ejemplo
• Calcular el resultado de la división de 2 números enteros
• Análisis
• A diferencia de la multiplicación de 2 número del ejemplo anterior, ahora
tenemos que realizar la división de ambos.
• Esto supone un algoritmo similar al anterior, sin embargo, la operación de
división nos genera un problema particular.
• 4/2=2
• -10 / 2 = -5
• -2 / -2 = 1
• 5 / 0 = oo
• Este último caso en término matemáticos no existe, es un error o tiene un
resultado infinito lo que no es representable por medio de un algoritmo o
programa.
• Lo anterior nos obliga a realizar acciones que permitan prever esta situación
para que el algoritmo pueda terminar correctamente.
𝑋= 𝐴/ 𝐵
Ejercicios Avanzados

• Ejemplo
• Calcular el resultado de la división de 2 números enteros
• Análisis
• Una división por 0 (cero), nos obliga a controlar que el segundo
valor (divisor), sea distinto de 0. Debemos entonces incorporar esta
validación:
• Leer numero_dos
• Si numero_dos = 0 entonces
• Escribir “El divisor no puede ser 0. Vuelva a ingresar”
• Si no
• Resultado = numero_uno / numero_dos
• Fin Si
• Lo anterior nos permite advertir del error y podemos evitar realizar
la operación.
Ejercicios Avanzados
• Ejemplo
• Calcular el resultado de la división de 2 números enteros
• Desarrollo
• // Inicio
• Definir resultado, numero_uno, numero_dos como entero
• Escribir “Ingrese primer número: “
• Leer numero_uno
• Escribir “Ingrese segundo número: “
• Leer numero_dos
• Si numero_dos = 0 entonces
• Escribir “El divisor no puede ser 0. Vuelva a ingresar”
• Si no
• Resultado = numero_uno / numero_dos
• Escribir “Resultado: “, resultado
• Fin Si
• // Fin
• La única consideración a esta solución, es que cada vez que exista un error en el divisor, el
algoritmo termina, y se debe volver a ejecutar para realizar una nueva división o la misma
división pero con el divisor correcto.
Ejercicios Avanzados

• Ejemplo
• Describir los pasos necesarios para encender la televisión.
• Análisis
• En este ejercicio podemos determinar que no hay datos de
entrada propiamente tal, y tampoco datos de salida, por lo que
el proceso en particular debe solamente describir las acciones a
realizar para lograr el objetivo.
• Sin embargo se pueden identificar algunos pasos que requieren
alguna acción de verificación o acciones alternativas.
• Además los pasos deben tener algún grado de relación lógica
entre si, y estar estructurados de modo que se ejecuten en una
secuencia específica, que asegure lograr el objetivo que es,
encender la Televisión.
Ejercicios Avanzados
• Ejemplo
• Describir los pasos necesarios para encender la televisión.
• Desarrollo
• Podríamos intentar controlar algunas situaciones o condiciones
• Inicio
• Obtener el control remoto
• ¿Se pudo obtener el control remoto?
• Presionar el botón que corresponde al dispositivo TV
• Presionar el botón Encendido del Control Remoto
• ¿Se pudo encender el televisor?
• Fin
• Lo anterior permitiría lograr el objetivo, siempre y cuando cada uno
de los pasos se ejecuta correctamente y se obtenga el resultado
esperado. ¿Y si esto no sucede, se cumplirá el objetivo?
Ejercicios Avanzados
• Ejemplo
• Describir los pasos necesarios para encender la televisión.
• Desarrollo
• Los pasos para lograr el objetivo podrían ser los siguientes:
• Inicio
• Obtener el control remoto
• ¿Se logró obtener el control remoto?
• No. Entonces
• Se debe buscar el botón de Encendido en el televisor
• Presionar el botón Encendido del televisor
• ¿Se encendió el televisor?
• No. Entonces
• Verificar si está enchufado
• Volver a Encendido del televisor
• Fin
• Como se puede visualizar, algunas condiciones se pueden verificar por medio de preguntas
• Las preguntas permiten realizar acciones en función de la respuesta
Ejercicios Avanzados
• Ejemplo
• Describir los pasos necesarios para encender la televisión.
• Desarrollo
• Las condiciones para lograr el objetivo podrían ser los siguientes:
• ...
• ¿Se logró obtener el control remoto?
• No. Entonces
• Se debe buscar el botón de Encendido en el televisor
• Se encontró el botón de Encendido
• No, entonces se debe conseguir el manual
• ...
• Presionar el botón Encendido del televisor
• ¿Se encendió el televisor?
• No. Entonces
• ¿Está enchufado el televisor?
• No, entonces enchufar
• Volver a Encendido del televisor
• ...
• Como se puede visualizar, en cada acción se puede indicar como seguir en función de cada pregunta.
Ejercicios Avanzados
• Ejemplo
• Describir los pasos necesarios para encender la televisión.
• Desarrollo
• Las condiciones pueden agruparse según lo que se requiera resolver
• Ejemplo
• Obtener el control remoto
• ¿Tiene pilas y están cargadas?
• Esta última pregunta permite chequear inmediatamente 2 condiciones, que si se
resolvieran por separado sólo contribuirían a hacer más extenso el conjunto de
pasos
• Las preguntas y su resultado podrían ser:
• ¿Tiene pilas? Verdadero
• ¿Están cargadas? Verdadero
• El resultado según las tablas de verdad, sería el siguiente:
• Verdadero y Verdadero resulta Verdadero
• El resultado depende de la combinación del resultado de las condiciones
Ejercicios Avanzados
• Ejemplo
• Describir los pasos necesarios para encender la televisión.
• Desarrollo
• Los resultados de las condiciones podrían ser:

¿Tiene pilas? ¿Están cargadas? Resultado

VERDADERO VERDADERO VERDADERO

VERDADERO FALSO FALSO

FALSO VERDADERO FALSO

FALSO FALSO FALSO

• Según el resultado de la tabla de verdad la condición se cumple sólo cuando ambas


respuestas son verdaderas
Ejercicios Avanzados
• Ejemplo
• Determinar si un conjunto de alumnos cumple con los requisitos para
eximirse del examen final
• Condiciones
• Promedio superior a 5.5
• Asistencia superior a 75%
• Todas las notas deben ser superiores a 4
• Análisis
• El objetivo es determinar si un alumno se exime
• Debe cumplir 3 condiciones para eximirse
• Los datos de entrada son
• Promedio
• Asistencia
• Notas parciales
• El dato de salida es indicar si se exime o no, es decir, EXIMIDO o NO EXIMIDO.
Ejercicios Avanzados

• Ejemplo
• Determinar si un conjunto de alumnos cumple con los
requisitos para eximirse del examen final
• Desarrollo
• El conjunto de pasos podría ser el siguiente:
• Escribir “Ingrese promedio”
• Leer promedio
• Escribir “% de asistencia”
• Leer porcentaje
• Escribir “Notas parciales superiores a 4 (Si/No)”
• Leer parciales
• Con los pasos anteriores ya tenemos la información de entrada
Ejercicios Avanzados
• Ejemplo
• Determinar si un conjunto de alumnos cumple con los requisitos para
eximirse del examen final
• Desarrollo
• Las condiciones que deben cumplirse son
• Promedio > 5.5
• Porcentaje > 75
• Parciales = Si
• En términos de pregunta en pseudocódigo lo anterior se puede representar de la
siguiente forma
• Si promedio > 5.5 y porcentaje > 75 y parciales = “SI” entonces
• Escribir “Eximido”
• Si no
• Escribir “No eximido”
• Fin Si
• Las condiciones se pueden evaluar simultáneamente para obtener un solo resultado
en forma más rápida
Ejercicios Avanzados
• Ejemplo
• Determinar si un conjunto de alumnos cumple con los requisitos para
eximirse del examen final
• Desarrollo
• Las condiciones que deben cumplirse son
• Promedio > 5.5
• Porcentaje > 75
• Parciales = Si
• En términos de pregunta en pseudocódigo lo anterior se puede representar de la
siguiente forma
• Si promedio > 5.5 y porcentaje > 75 y parciales = “SI” entonces
• Escribir “Eximido”
• Si no
• Escribir “No eximido”
• Fin Si
• Las condiciones se pueden evaluar simultáneamente para obtener un solo resultado
en forma más rápida
Ejercicios Avanzados
• Ejemplo
• Determinar si un conjunto de alumnos cumple con los requisitos
para eximirse del examen final
• Desarrollo
• Las condiciones se pueden combinar con operadores lógicos como AND
(Y), OR (O), y su negación NOT (NO)
• Si promedio > 5.5 y asistencia > 75 y parciales = “SI” entrega como
resultado Verdadero, es decir, toda las condiciones deben ser verdaderas
• Si promedio > 5.5 o asistencia > 75 o parciales = “SI” entrega como
resultado Verdadero, sólo si una de las condiciones es verdadera
• Se pueden utilizar paréntesis para agrupar las condiciones
• El resultado de un paréntesis se interpreta como una sola condición
• Si promedio > 5.5 o (asistencia > 75 y parciales = “SI”)
• La evaluación de las condiciones se priorizan según los paréntesis
Ejercicios Avanzados
• Ejemplo
• Describir el conjunto de pasos para preparar un café
• Análisis
• Primero se deben determinar los insumos para cumplir con el objetivo, ¿qué
necesito?
• Agua caliente de
• Dispensador o
• Hervidor o
• Termo
• Platillo, taza y cuchara
• Café
• Soluble
• Grano
• Entero
• Molido
• Azúcar o endulzante
Ejercicios Avanzados
• Ejemplo
• Describir el conjunto de pasos para preparar un café
• Análisis
• El insumo Agua caliente puede provenir de distintas fuentes
• Dispensador o
• Hervidor o
• Termo
• Se debe tener platillo, taza y cuchara o jarro tipo Mug
• El Café puede ser
• Soluble
• Grano
• Si es en Grano puede estar en 2 estados
• Entero
• Molido
• Azúcar o endulzante
• El análisis anterior nos empieza a indicar cuáles son las posibles condiciones y las
preguntas que debemos realizar
Ejercicios Avanzados

• Ejemplo
• Describir el conjunto de pasos para preparar un café
• Desarrollo
• Si hay agua caliente en Dispensador o Hervidor o Termo …
• Se debe tener (platillo y taza y cuchara) o jarro tipo Mug
• Si el café es Soluble incorporar agua directamente
• Si el café es de Grano entonces
• ¿Está Entero, Si, No?
• Si no está Entero se asume que está Molido
• Incorpora ¿Azúcar o endulzante?
• El conjunto de pasos e instrucciones ya empieza a tomar forma
estructurada y se puede observar cierta lógica que relaciona los
pasos
Ejercicios Avanzados
• Ejemplo
• Describir el conjunto de pasos para preparar un café
• Desarrollo
• Si se sirve en taza entonces
• Poner la taza sobre el platillo
• Incorporar la cuchara en el platillo
• Si no
• Incorporar cuchara al Mug
• Fin Si
• Si el café es soluble entonces
• Incorporar 2 cucharadas de café al recipiente
• Si no
• Si el café está molido entonces
• Incorporar 2 cucharadas de café al recipiente
• Si no
• Moler los granos de café
• Incorporar 2 cucharadas de café al recipiente
• Fin Si
• Fin Si
• ...
Ejercicios Avanzados
• Ejemplo
• Describir el conjunto de pasos para preparar un café
• Desarrollo
• ...
• Si hay agua caliente en Dispensador o Hervidor o Termo entonces
• Incorporar agua caliente al recipiente
• Si no
• Calentar agua
• Una vez caliente, incorporar agua caliente al recipiente
• Fin Si
• Si requiere azúcar entonces
• Incorporar azúcar
• Si no
• Incorpora endulzante
• Si no
• // No requiere endulzar
• Fin Si
Ejercicios Avanzados

• Algoritmo en pseudocódigo

1 2
Ejercicios Avanzados

• Algoritmo en pseudocódigo
PUEDES SER MUCHO +
DE LO QUE IMAGINAS

Resumen
La descripción de cualquier actividad por medio de pasos
estructurados y lógicamente relacionados corresponde a un
algoritmo en pseudocódigo.
Mediante preguntas realizadas luego de cierta acción se puede
verificar el resultado de ejecutar un paso o acción
determinada.
Las preguntas pueden verificar uno o varios resultados de la
acción ejecutada. En función del resultado lógico se pueden
determinar nuevas acciones o pasos a realizar.
Lo anterior permite que el algoritmo en pseudocódigo tenga
incorporadas acciones a seguir en caso de cumplirse ciertas
condiciones.

También podría gustarte