Introducción a la Programación · Algoritmos EspecificandoalgoritmosenPseudocódigo(complejo)...

18
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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