Introducción a la Programación · Algoritmos EspecificandoalgoritmosenPseudocódigo(complejo)...
Transcript of Introducción a la Programación · Algoritmos EspecificandoalgoritmosenPseudocódigo(complejo)...
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
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
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).
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.
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
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
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
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
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
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
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
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
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
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
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
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
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)
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