metodología para obtener algoritmosgalvez.milibreta.com.mx/uas/algoritmia/4.- capitulo 4...
TRANSCRIPT
12/12/2018
1
Facultad de Informática Culiacán
Metodología para obtener Algoritmos
Instructores: MC. Gerardo Gálvez Gámez
Septiembre de 2018
UNIVERSIDAD AUTÓNOMA DE SINALOA
1
Metodología • FIUAS
Objetivo del Tema
• Enseñar la lógica de la programación paracomputadoras, con ayuda de unametodología para la solución deproblemas, que incluye técnicas paradesarrollar la habilidad de programar confacilidad en cualquier lenguaje deprogramación.
2
12/12/2018
2
Metodología • FIUAS
Competencias del Tema
El alumno:
• Conocerá la importancia de aplicar unametodología adecuada (mejores prácticas) en elproceso de aprendizaje para la construcción deAlgoritmos susceptibles de ser computarizados.
• Aplicará la metodología propuesta junto contécnicas y herramientas adecuadas, para alcanzarhabilidades lógicas computacionales, en laconstrucción de algoritmos como solución deproblemas.
3
Metodología • FIUAS
Contenido del Tema
• Importancia de la aplicación de técnicas y herramientas metodológicas.
• Etapas de la solución de un problema.
▫ Definición del Problema.
▫ Análisis del problema.
▫ Construcción del Algoritmo.
▫ Verificación (Prueba y Depuración).
√
4
12/12/2018
3
Metodología • FIUAS
Importancia de la aplicación de técnicas y
herramientas metodológicas.
• ¿Podemos enseñar a resolver un problema?
• ¿Podemos enseñar a analizar el mismo?
• ¿Podemos enseñar a pensar?
¿Como enseñar a programar computadoras?
¿Cómo enseñar a desarrollar la lógica necesaria paradesarrollar problemas independiente de algún lenguaje deprogramación?
5
Metodología • FIUAS
Importancia de la aplicación de técnicas y
herramientas metodológicas.
Se desarrollan ejercitando la mente en forma apropiada.
Enseña a programar computadoras utilizandoun tipo de algoritmo, es decir, sin emplear lacomputadora.
Permite desarrollar las capacidades mentalesque una persona debe tener para programarcomputadoras y sienta las bases de disciplina ybuena estructura.
Programar es una actividad intelectual querequiere:
Mucha creatividad,
Capacidad de abstracción,
Capacidad de análisis y síntesis
6
12/12/2018
4
Metodología • FIUAS
Contenido del Tema
• Importancia de la aplicación de técnicas y herramientas metodológicas.
• Etapas de la solución de un problema.▫ Definición del Problema.
▫ Análisis del problema.
▫ Construcción del Algoritmo.
▫ Verificación (Prueba y Depuración).
√
√
7
Metodología • FIUAS
Etapas de la solución de un problema
Osvaldo Cairo, Metodología de la programación
Leonardo López Román, Metodología de la programación orientada a objetos
L. Joyanes Aguilar, Algoritmos, Estructuras de Datos y Objetos
Rosario Bores/Román Rosales, Computación Metodología, Lógica Computacional y Programación
Problema
AnálisisConstrucción del algoritmo
Verificación (prueba y
depuración)Documentación
8
12/12/2018
5
Metodología • FIUAS
Contenido del Tema
• Importancia de la aplicación de técnicas y herramientas metodológicas.
• Etapas de la solución de un problema.▫ Definición del Problema.
▫ Análisis del problema.
▫ Construcción del Algoritmo.
▫ Verificación (Prueba y Depuración).
√
√
√
9
Metodología • FIUAS
Definición del Problema
Etimológicamente, la palabra problema deriva del griegoproballein y significa “algo lanzado hacia delante”.
Un problema es un asunto o un conjunto de cuestionesque se plantean para ser resueltas.
La naturaleza de los problemas varía con el ámbito o con elcontexto donde están planteados; así, existen problemas:
Matemáticos,
Químicos,
Filosóficos,
etc.
10
12/12/2018
6
Metodología • FIUAS
Definición del Problema (continuación)
Se consideran aquellos problemas cuya solución se puede calcular utilizando una serie de reglas introducidas en una computadora.
Esta fase está dada por el enunciado del problema, el cual requiere una definición clara y precisa.
Es importante que se conozca lo que se desea que realice la computadora; mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa.
11
Metodología • FIUAS
Estrategias generales para resolver problemas
• Ensayo y error.- Actúa hasta que algo funcione.
• Heurística.-Basada en la utilización de reglas empíricas para llegar a una solución.▫ Arte y ciencia del descubrimiento y de la invención para resolver problemas
mediante la creatividad y el pensamiento lateral.
• Algoritmos.- Aplica adecuadamente una serie de pasos detallados que aseguran una solución correcta.
• Lluvia de Ideas.-Formula soluciones viables (todas las posibles) a un problema y al finalizar se formulan criterios para seleccionar la mejor.
• Pensamiento Lateral.- (pensamiento creativo), Requiere que se exploren y consideren la mayor cantidad posible de alternativas.
12
12/12/2018
7
Metodología • FIUAS
Maneras en que el pensamiento puede ser
obstruido
Puede faltar algo de información,
Puede existir un bloqueo mental o
Lo obvio obstruye la visión de una mejor opción (en este caso se tendría una solución con la lógica lateral).
13
Metodología • FIUAS
Ejemplo
14
12/12/2018
8
Metodología • FIUAS
Actividad (Pensamiento lateral)
Un hombre vive en un edificio en el décimopiso. Todos los días toma el ascensor hastala planta baja para ir a su trabajo. Cuandovuelve, sin embargo, toma el ascensorhasta el séptimo piso y hace el resto delrecorrido hasta el piso donde vive (décimo)por las escaleras. Si bien el hombre detestacaminar ¿por que lo hace?
15
Metodología • FIUAS
Ejemplo: Metodología Paso 1
• Definición del Problema:
▫ La Huerta La Capilla, cuenta conun sembrado de N árboles deMangos, de los cuales la mitadson mangos Finos y el restomangos Corrientes. Cadaplanta fina produce 8,500frutas.
▫ Elabore un Algoritmo quedetermine el total de mangosfinos producidos por la huerta.
16
12/12/2018
9
Metodología • FIUAS
Contenido del Tema
• Importancia de la aplicación de técnicas y herramientas metodológicas.
• Etapas de la solución de un problema.▫ Definición del Problema.
▫ Análisis del problema.
▫ Construcción del Algoritmo.
▫ Verificación (Prueba y Depuración).
√
√
√√
17
Metodología • FIUAS
Análisis del Problema
Se inicia una vez que se ha comprendido la tareaque se desea que la computadora haga(Algoritmo), definiéndose lo siguiente:
Proceso (Se refiere a los métodos y fórmulas que se necesitan para procesar los datos(Conocidos y no conocidos), para encontrar la información de salida)
Restricciones Establecidas (¿Qué es lo que esta prohibido o permitido hacer?)
Los Datos de Entrada (¿Cuáles son los datos no conocidos y requeridos?)
Los Datos Conocidos (¿Cuáles son los datos disponibles y útiles?)
Información de Salida (¿Cuál es la información que se desea producir?)
18
12/12/2018
10
Metodología • FIUAS
Análisis del Problema (continuación)
• Una recomendaciónmuy práctica es:
▫ El que nos pongamos enel lugar de lacomputadora yanalicemos que es lo quenecesitamos que nosordenen y en quesecuencia para producirlos resultados esperados.
19
Metodología • FIUAS
Análisis:
1. Información de Salida▫ TotalProduccion
2. Datos Conocidos▫ ProduccionPlantaFina=8500
3. Datos de Entrada (los no Conocidos)▫ NumeroArboles
4. Restricciones▫ No se debe solicitar el número de plantas de cada tipo de árbol
▫ No existen arboles que producen los dos tipos de frutas
▫ No existen fracciones de arboles
5. Proceso
//Paso 1. Determinar cuantos arboles finos se tienen, empleando la siguiente formula:
NumeroPlantasFinas = (NumeroArboles - NumeroArboles MOD 2 ) / 2
//Paso 2. Calcular la producción total de mangos finos, mediante la aplicación de la siguiente formula:
Total Producción = NumeroPlantasFinas* ProduccionPlantaFina
Ejemplo: Metodología Paso 2
20
12/12/2018
11
Metodología • FIUAS
Proceso alternativo
Opción 2:
//Paso 1: Determinar el total de producción de mangos finos, mediante la aplicación de la siguiente formula general:
TotalProduccion=(NumeroArboles-NumeroArboles MOD 2) / 2 * ProduccionPlantaFina
21
Metodología • FIUAS
Contenido del Tema
• Importancia de la aplicación de técnicas y herramientas metodológicas.
• Etapas de la solución de un problema.▫ Definición del Problema.
▫ Análisis del problema.
▫ Construcción del Algoritmo.
▫ Verificación (Prueba y Depuración).
√
√
√√
√
22
12/12/2018
12
Metodología • FIUAS
Construcción del Algoritmo
Serie de pasos organizados que describe el procesoque se debe seguir, para dar solución a unproblema especifico.
Las características de un buen algoritmo son:
Debe tener un punto particular de INICIO.
Debe ser definido, no debe permitir doblesinterpretaciones.
Debe ser general, es decir, soportar la mayoría de lasvariantes que se puedan presentar en la definición delproblema.
Debe ser FINITO en tamaño y tiempo de ejecución.
23
Metodología • FIUAS
Construcción del Algoritmo (continuación)
El pseudocódigo un lenguaje formal, varían de unprogramador a otro, es decir, no hay unaestructura semántica ni arquitecturaestándar.
//Objetivo: Descripción breve, clara y precisa del problema
//Programador: Nombre completo del programador
//Fecha: Fecha de elaboración del algoritmo
INICIO
Definición de Constantes y Variables
Lecturas de Datos no Conocidos (Entradas)
Procesamiento de los Datos (pasos y formulas)
Impresión de Resultados (Salidas)
FIN
Instrucciones
24
12/12/2018
13
Metodología • FIUAS
//Objetivo: Determinar el Total de Producción de Mangos Finos
//Programador: MC. Gerardo Gálvez G.
//Fecha:__ /Septiembre/2015
INICIO
//Definición de Constantes y Variables
CONST ENTERO ProduccionPlantaFina=8500
ENTERO NumeroArboles,TotalProduccion,NumeroPlantasFinas
//Lecturas de Datos de Entrada
IMPRIMIR “Teclee el Número de Árboles en la Huerta:”
LEER NumeroArboles
//Procesamiento de los Datos
NumeroPlantasFinas = (NumeroArboles - NumeroArboles MOD 2 ) / 2
TotalProduccion = NumeroPlantasFinas* ProduccionPlantaFina
//Impresión de Resultados
IMPRIMIR “Total de Mangos Finos Producidos: ”, TotalProduccion
FIN
Ejemplo: Paso 3 - El Algoritmo
25
Metodología • FIUAS
//Objetivo: Determinar el Total de Producción de Mangos Finos
//Programador: MC. Gerardo Gálvez G.
//Fecha:__ /Septiembre/2015
INICIO
//Definición de Constantes y Variables
CONST ENTERO ProduccionPlantaFina=8500
ENTERO NumeroArboles,TotalProduccion
//Lecturas de Datos de no Conocidos (Entrada)
IMPRIMIR “Teclee el Número de Árboles en la Huerta:”
LEER NumeroArboles
//Procesamiento de los Datos
// (calcular el total de producción de mangos finos
TotalProduccion=(NumeroArboles - NumeroArboles MOD 2) / 2 * ProduccionPlantaFina
//Impresión de Resultados
IMPRIMIR “Total de Mangos Finos Producidos: ”, TotalProduccion
FIN
Ejemplo: Metodología Paso 3 - El Algoritmo
Utilizando el proceso alternativo
26
12/12/2018
14
Metodología • FIUAS
Contenido del Tema
• Importancia de la aplicación de técnicas y herramientas metodológicas.
• Etapas de la solución de un problema.▫ Definición del Problema.
▫ Análisis del problema.
▫ Construcción del Algoritmo.
▫ Verificación (Prueba y Depuración). √
√
√√√
√
27
Metodología • FIUAS
Verificación (Prueba y Depuración)
• Proceso de identificar y eliminar errores,para dar paso a una solución sin errores.
• Los errores humanos dentro de laprogramación de computadoras son muchosy aumentan considerablemente con lacomplejidad del problema.
• Resulta una tarea tan creativa como elmismo desarrollo de la solución, por ello sedebe considerar con el mismo interés yentusiasmo.
28
12/12/2018
15
Metodología • FIUAS
Plan de Prueba o verificación del algoritmo
Valores de Entrada Salidas Esperadas Resultado
NumeroArboles =10 TotalProduccion= _42,500 Correcto
Algoritmo Algoritmo
Metodología • FIUAS
Pantalla de la PC
Ejemplo: Metodología Paso 4 Verificación
8500
Teclee el Número de Árboles en la Huerta: 10Total de Mangos Finos Producidos: 42500
3F5000AC ProduccionPlantaFina
NumeroArboles 5F5000AC
TotalProduccion7F5000AC
Estructura de 32 bits
10
42500
FIN
30
12/12/2018
16
Metodología • FIUAS
Preguntas
31
Metodología • FIUAS
Etapas de la solución de un problema
Osvaldo Cairo, Metodología de la programación
Leonardo López Román, Metodología de la programación orientada a objetos
L. Joyanes Aguilar, Algoritmos, Estructuras de Datos y Objetos
Rosario Bores/Román Rosales, Computación Metodología, Lógica Computacional y Programación
Problema
AnálisisConstrucción del
algoritmo
Verificación (prueba y
depuración)Codificación Documentación Mantenimiento
32
12/12/2018
17
Metodología • FIUAS
Codificación
• Es la operación de escribir la solucióndel problema (de acuerdo a la lógica delAlgoritmo), en una serie deinstrucciones detalladas, en un códigoreconocible por la computadora.
• La serie de instrucciones detalladas se leconoce como código fuente, el cual seescribe en un lenguaje de programación(lenguaje de alto nivel como: C#, Java,Visual Basic, entre otros).
33
Metodología • FIUAS
Documentación
• Es la guía o comunicación escrita es susvariadas formas, ya sea en enunciados,procedimientos, dibujos o diagramas.
• A menudo un programa escrito por unapersona, es usado por otra. Por ello ladocumentación sirve para ayudar acomprender o usar un programa o parafacilitar futuras modificaciones(mantenimiento).
34
12/12/2018
18
Metodología • FIUAS
Documentación (continuación …)
• Documentación Interna• Documentación Externa• Manual del Usuario
Documentación Interna: Son los comentarios o mensaje que se añaden al código fuente para hacer mas claro el entendimiento de un proceso.
Documentación Externa: Se define en un documento escrito los siguientes puntos:
Descripción del ProblemaNombre del AutorAlgoritmo (diagrama de flujo o pseudocodigo)Diccionario de DatosCódigo Fuente (programa)
Manual del Usuario: Describe paso a paso la manera como funciona el programa, con el fin de que el usuario obtenga el resultado deseado.
35
Metodología • FIUAS
Mantenimiento
• Se lleva acabo después de terminado elprograma, cuando se detecta que esnecesario hacer algún cambio,ajuste o complementación alprograma para que siga trabajando demanera correcta.
• Para poder realizar este trabajo serequiere que el programa estecorrectamente documentado.
36
12/12/2018
19
Metodología • FIUAS
ExtraClases
Descripción de la tarea en el Material de Apoyo Educativo
ANEXO 05 – TAREA Elaboración de Algoritmos enpseudocódigo
ObjetivoEl alumno demostrara la habilidad alcanzada en clases, paraanalizar, construir y probar pseudocódigos de diversos problemas,utilizando procedimientos de solución secuenciales.
37
Metodología • FIUAS
Preguntas
F I N
38