Introducción a la Programación · Algoritmos EspecificandoalgoritmosenPseudocódigo(complejo)...
Transcript of Introducción a la Programación · Algoritmos EspecificandoalgoritmosenPseudocódigo(complejo)...
![Page 1: Introducción a la Programación · Algoritmos EspecificandoalgoritmosenPseudocódigo(complejo) fuente_con_mantequilla = falso temperatura_horno = 0 taza_de_agua = ¼*200 taza_de_aceite](https://reader034.fdocument.pub/reader034/viewer/2022052015/602c5b6581f22e214171ebc9/html5/thumbnails/1.jpg)
Introducción a la Programación
Programación y Tratamiento de datos para la Gestión
http://progra.usm.cl
UTFSM
INF-130 (UTFSM) Programación y TDG 1/18
![Page 2: Introducción a la Programación · Algoritmos EspecificandoalgoritmosenPseudocódigo(complejo) fuente_con_mantequilla = falso temperatura_horno = 0 taza_de_agua = ¼*200 taza_de_aceite](https://reader034.fdocument.pub/reader034/viewer/2022052015/602c5b6581f22e214171ebc9/html5/thumbnails/2.jpg)
Página web del ramo
INF-130 (UTFSM) Programación y TDG 2/18
http://progra.usm.clinformación del ramo,materia,ejercicios.
http://twitter.com/progra_usm
http://facebook.com/ → Programación USM noticias,anuncios,consultas.
http://aula.usm.clInformación completa,medio principal de comunicación
![Page 3: Introducción a la Programación · Algoritmos EspecificandoalgoritmosenPseudocódigo(complejo) fuente_con_mantequilla = falso temperatura_horno = 0 taza_de_agua = ¼*200 taza_de_aceite](https://reader034.fdocument.pub/reader034/viewer/2022052015/602c5b6581f22e214171ebc9/html5/thumbnails/3.jpg)
Conducta de evaluaciones
INF-130 (UTFSM) Programación y TDG 3/18
Considerando el perfil de los profesionales que como Departamento deInformática declaramos formar, donde se establece que éstos debenmanifestar conductas y actitudes de responsabilidad, respetando principioséticos y normativos, se precisa que:
Ante cualquier conducta de falta de honestidad de un estudiante en eldesarrollo de una evaluación se aplicará el Reglamento de Derechos yDeberes de los alumnos de Casa Central y Campus Santiago (ver reglamentoen SIGA), lo que implica una nota cero en la evaluación o bien que losantecedentes sean enviados a la Comisión Universitaria (CU), la queprocederá a investigar y juzgar (las sanciones que aplica la CU van desde unaamonestación verbal hasta la expulsión de la Universidad).
![Page 4: Introducción a la Programación · Algoritmos EspecificandoalgoritmosenPseudocódigo(complejo) fuente_con_mantequilla = falso temperatura_horno = 0 taza_de_agua = ¼*200 taza_de_aceite](https://reader034.fdocument.pub/reader034/viewer/2022052015/602c5b6581f22e214171ebc9/html5/thumbnails/4.jpg)
Algoritmo y Problema
¿Qué es un Algoritmo?
Un algoritmo es una secuencia finita y precisa de pasos para resolver un problema
INF-130 (UTFSM) Programación y TDG 4/18
¿Qué es un Problema?
Un problema es la necesidad de transformar un estado inicial --que por alguna razón no
nos gusta-- en un estado final --que es el deseado-- respetando ciertas restricciones.
![Page 5: Introducción a la Programación · Algoritmos EspecificandoalgoritmosenPseudocódigo(complejo) fuente_con_mantequilla = falso temperatura_horno = 0 taza_de_agua = ¼*200 taza_de_aceite](https://reader034.fdocument.pub/reader034/viewer/2022052015/602c5b6581f22e214171ebc9/html5/thumbnails/5.jpg)
Problema
¿Qué es un Problema?
Los problemas involucran datos de entrada en el estado inicial y la solución contiene
datos de salida en el estado final. Además, probablemente involucre otros datos
intermedios que son relevantes.
Estado Inicial
Entradas
Estado Final
Salidas
INF-130 (UTFSM) Programación y TDG 5/18
![Page 6: Introducción a la Programación · Algoritmos EspecificandoalgoritmosenPseudocódigo(complejo) fuente_con_mantequilla = falso temperatura_horno = 0 taza_de_agua = ¼*200 taza_de_aceite](https://reader034.fdocument.pub/reader034/viewer/2022052015/602c5b6581f22e214171ebc9/html5/thumbnails/6.jpg)
Problema: Ejemplos
Algunos ejemplos
• Dado un conjunto de números, determinar los números ordenados de menor a
mayor.
• Dado un conjunto de ciudades, encontrar el camino más corto que recorre las
ciudades.
• Dado un mensaje email, encontrar la probabilidad de que sea spam.
• ...
INF-130 (UTFSM) Programación y TDG 6/18
![Page 7: Introducción a la Programación · Algoritmos EspecificandoalgoritmosenPseudocódigo(complejo) fuente_con_mantequilla = falso temperatura_horno = 0 taza_de_agua = ¼*200 taza_de_aceite](https://reader034.fdocument.pub/reader034/viewer/2022052015/602c5b6581f22e214171ebc9/html5/thumbnails/7.jpg)
Problema
Comprensión del Problema - Ambigüedad
Para poder resolver un problema debemos comprenderlo bien, y ser capaces de
formalizarlo de alguna manera. De lo contrario, corremos el riesgo de terminar
resolviendo el problema equivocado.
INF-130 (UTFSM) Programación y TDG 7/18
![Page 8: Introducción a la Programación · Algoritmos EspecificandoalgoritmosenPseudocódigo(complejo) fuente_con_mantequilla = falso temperatura_horno = 0 taza_de_agua = ¼*200 taza_de_aceite](https://reader034.fdocument.pub/reader034/viewer/2022052015/602c5b6581f22e214171ebc9/html5/thumbnails/8.jpg)
Problema
Formalización del Problema
En el proceso de formalización del problema debemos definir el estado final al que queremos llegar. Esto se logra pensando cómo se vería una solución.
En esta etapa es importante concentrarnos en el qué y no en el cómo
INF-130 (UTFSM) Programación y TDG 8/18
![Page 9: Introducción a la Programación · Algoritmos EspecificandoalgoritmosenPseudocódigo(complejo) fuente_con_mantequilla = falso temperatura_horno = 0 taza_de_agua = ¼*200 taza_de_aceite](https://reader034.fdocument.pub/reader034/viewer/2022052015/602c5b6581f22e214171ebc9/html5/thumbnails/9.jpg)
Algoritmos
Problemas de ambigüedad Mi madre dice:
“Cariño, anda al súper y me traes
una botella de leche, y si tienen
huevos, compra seis”
Cuando vuelvo, ¿Cuál es el resultado?
Plantee las indicaciones y discuta con su
grupo que es lo que debí haber comprado
finalmente.
INF-130 (UTFSM) Programación y TDG 9/18
![Page 10: Introducción a la Programación · Algoritmos EspecificandoalgoritmosenPseudocódigo(complejo) fuente_con_mantequilla = falso temperatura_horno = 0 taza_de_agua = ¼*200 taza_de_aceite](https://reader034.fdocument.pub/reader034/viewer/2022052015/602c5b6581f22e214171ebc9/html5/thumbnails/10.jpg)
Algoritmo
Volviendo a los algoritmos…
Una vez especificado el problema ahora tenemos que tratar de resolverlo pero, ¿De qué manera podemos expresar la secuencia de instrucciones?
• Lenguaje natural: Lenguaje coloquial para explicar una secuencia de pasos
• Diagramas de Flujo: figuras que se unen para especificar una secuencia de pasos.
• Lenguajes de Bloques (trinket): próximamente …
INF-130 (UTFSM) Programación y TDG 10/18
![Page 11: Introducción a la Programación · Algoritmos EspecificandoalgoritmosenPseudocódigo(complejo) fuente_con_mantequilla = falso temperatura_horno = 0 taza_de_agua = ¼*200 taza_de_aceite](https://reader034.fdocument.pub/reader034/viewer/2022052015/602c5b6581f22e214171ebc9/html5/thumbnails/11.jpg)
Algoritmos
Especificando algoritmos en lenguaje natural
Ayúdale al profesor a recuperar el celular y
guardarlo en su mochila
INF-130 (UTFSM) Programación y TDG 11/18
![Page 12: Introducción a la Programación · Algoritmos EspecificandoalgoritmosenPseudocódigo(complejo) fuente_con_mantequilla = falso temperatura_horno = 0 taza_de_agua = ¼*200 taza_de_aceite](https://reader034.fdocument.pub/reader034/viewer/2022052015/602c5b6581f22e214171ebc9/html5/thumbnails/12.jpg)
Algoritmo
Volviendo a los algoritmos…
• Pseudocódigo: Intermedio entre un código y un Lenguaje Natural.
Ejemplo: Identificar si un número es negativo o positivo.
INF-130 (UTFSM) Programación y TDG 12/18
![Page 13: Introducción a la Programación · Algoritmos EspecificandoalgoritmosenPseudocódigo(complejo) fuente_con_mantequilla = falso temperatura_horno = 0 taza_de_agua = ¼*200 taza_de_aceite](https://reader034.fdocument.pub/reader034/viewer/2022052015/602c5b6581f22e214171ebc9/html5/thumbnails/13.jpg)
AlgoritmosEspecificando algoritmos en Pseudocódigo (complejo)
fuente_con_mantequilla = falsotemperatura_horno = 0taza_de_agua = ¼*200taza_de_aceite = ½*200huevo = 2paquete_mezcla_brownie = 1brownie = falso
temperatura_horno = 200fuente_con_mantequilla = verdaderomezcla = taza_de_agua + taza_de_aceite + huevo + paquete_mezcla_browniemezcla_en_fuente = falso
si fuente_con_mantequilla es verdadero: mezcla_en_fuente = verdadero
tiempo = 0mientras tiempo sea menor o igual a 35:
hora_reloj = leer_minutos_transcurridos_reloj()tiempo = tiempo + hora_reloj
brownie = verdadero
INF-130 (UTFSM) Programación y TDG 13/18
![Page 14: Introducción a la Programación · Algoritmos EspecificandoalgoritmosenPseudocódigo(complejo) fuente_con_mantequilla = falso temperatura_horno = 0 taza_de_agua = ¼*200 taza_de_aceite](https://reader034.fdocument.pub/reader034/viewer/2022052015/602c5b6581f22e214171ebc9/html5/thumbnails/14.jpg)
Algoritmo
Estructura de un algoritmo
Los pasos que componen un algoritmo se pueden estructurar de varias maneras:
• Secuencialmente, como en la receta
• Tomando decisiones
• En repeticiones o ciclos
INF-130 (UTFSM) Programación y TDG 14/18
![Page 15: Introducción a la Programación · Algoritmos EspecificandoalgoritmosenPseudocódigo(complejo) fuente_con_mantequilla = falso temperatura_horno = 0 taza_de_agua = ¼*200 taza_de_aceite](https://reader034.fdocument.pub/reader034/viewer/2022052015/602c5b6581f22e214171ebc9/html5/thumbnails/15.jpg)
Algoritmos
Problema
Determine si un número es primo o compuesto. Realizarlo en lenguaje Natural y Pseudocódigo.
Definición: un número natural n es primo si tiene solamente como divisores a 1 y a si mismo. En caso contrario es un número compuesto.
INF-130 (UTFSM) Programación y TDG 15/18
![Page 16: Introducción a la Programación · Algoritmos EspecificandoalgoritmosenPseudocódigo(complejo) fuente_con_mantequilla = falso temperatura_horno = 0 taza_de_agua = ¼*200 taza_de_aceite](https://reader034.fdocument.pub/reader034/viewer/2022052015/602c5b6581f22e214171ebc9/html5/thumbnails/16.jpg)
Algoritmo
Usando lenguaje de bloques
Trinket:
• https://trinket.io/ à Crear una cuenta!
• Posee un entorno de diseño de algoritmos por medio de bloques
Dos bloques de Trinket:
• move (mover)• turn (girar)
INF-130 (UTFSM) Programación y TDG 16/18
![Page 17: Introducción a la Programación · Algoritmos EspecificandoalgoritmosenPseudocódigo(complejo) fuente_con_mantequilla = falso temperatura_horno = 0 taza_de_agua = ¼*200 taza_de_aceite](https://reader034.fdocument.pub/reader034/viewer/2022052015/602c5b6581f22e214171ebc9/html5/thumbnails/17.jpg)
Algoritmo
Bloque move (mover)
• move forward (mover hacia adelante)
• move backward (mover hacia atrás)
INF-130 (UTFSM) Programación y TDG 17/18
Bloque turn (girar)
• turn right by (girar hacia la derecha)
• turn left by (girar hacia la izquierda)
![Page 18: Introducción a la Programación · Algoritmos EspecificandoalgoritmosenPseudocódigo(complejo) fuente_con_mantequilla = falso temperatura_horno = 0 taza_de_agua = ¼*200 taza_de_aceite](https://reader034.fdocument.pub/reader034/viewer/2022052015/602c5b6581f22e214171ebc9/html5/thumbnails/18.jpg)
Bloques
Ejercicios
1. Diseñar un algoritmo que dibuje un cuadrado.
2. Diseñar un algoritmo que dibuje otra figura geométrica distinta al cuadrado.
INF-130 (UTFSM) Programación y TDG 18/18