metodologia para la solucion de problemas(1)
DESCRIPTION
Bases de programacionTRANSCRIPT
![Page 1: Metodologia Para La Solucion de Problemas(1)](https://reader031.vdocuments.mx/reader031/viewer/2022012321/563dba86550346aa9aa65fbf/html5/thumbnails/1.jpg)
Programación Metodología para la solución de problemas MC. Claudia M. Rangel López
![Page 2: Metodologia Para La Solucion de Problemas(1)](https://reader031.vdocuments.mx/reader031/viewer/2022012321/563dba86550346aa9aa65fbf/html5/thumbnails/2.jpg)
Introducción
Los seres humanos nos movemos por un motivo o una necesidad
Y para satisfacer la necesidad, realizamos una serie de acciones que en su conjunto nos llevarán a un fin.
• Herramientas
![Page 3: Metodologia Para La Solucion de Problemas(1)](https://reader031.vdocuments.mx/reader031/viewer/2022012321/563dba86550346aa9aa65fbf/html5/thumbnails/3.jpg)
La computadora como herramienta
• Ahora bien, ¿cómo hacemos un programa?
![Page 4: Metodologia Para La Solucion de Problemas(1)](https://reader031.vdocuments.mx/reader031/viewer/2022012321/563dba86550346aa9aa65fbf/html5/thumbnails/4.jpg)
Fases para la solución de problemas 1. Análisis. Se analiza el problema considerándose las especificaciones.
2. Diseño. Se diseña la solución: Algoritmo
3. Codificación. Se implementa en un lenguaje de programación: Programa fuente.
4. Compilación y ejecución. Se compila el programa fuente en un compilador: programa objeto. Si hay errores se arreglan. Una vez hecho esto, se ejecuta ( enlazando librerías necesarias) :programa ejecutable.
5. Verificación y depuración. Cuando se ejecuta un programa se pueden producir: Errores de compilación. No entiende la instrucción. Ej: Errores de sintaxis.
Errores de ejecución. La computadora entiende la instrucción pero no puede ejecutarla. Ej: División entre cero, raíces cuadradas negativas, …
Errores lógicos. Si se ejecutan, pero por lo regular son problemas del algoritmo. Son más difíciles de encontrar.
6. Documentación y mantenimiento Interna. En el programa como comentarios.
Externa. Diagramas de flujo, pseudocódigos, etc.
• Fases para la solución Problema
Programa Solución
![Page 5: Metodologia Para La Solucion de Problemas(1)](https://reader031.vdocuments.mx/reader031/viewer/2022012321/563dba86550346aa9aa65fbf/html5/thumbnails/5.jpg)
Algoritmo
• El programador es antes que nada, una persona que resuelve problemas.
• Un algoritmo es un método o conjunto de reglas para resolver un problema.
• Los pasos para la resolución de un problema son:
1. Diseño del algoritmo, que describe la secuencia ordenada de pasos ( sin ambigüedades) que conducen a la solución de un problema dado.
2. Expresar el algoritmo como un programa de lenguaje de programación adecuado.
3. Ejecución y validación del programa por la computadora.
![Page 6: Metodologia Para La Solucion de Problemas(1)](https://reader031.vdocuments.mx/reader031/viewer/2022012321/563dba86550346aa9aa65fbf/html5/thumbnails/6.jpg)
Características de los algoritmos
• Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
• Un algoritmo debe estar definido. Si se sigue el algoritmo dos veces, se debe obtener el mismo resultado cada vez.
• Un algoritmo debe ser finito. Debe tener un núm. Finito de pasos
![Page 7: Metodologia Para La Solucion de Problemas(1)](https://reader031.vdocuments.mx/reader031/viewer/2022012321/563dba86550346aa9aa65fbf/html5/thumbnails/7.jpg)
Partes de un algoritmo
• Entrada
• Proceso
• Salida
Ejemplo: Cocinar pozole
• Entrada: ingredientes y utensilios empleados.
• Proceso: Elaboración de la receta en la cocina.
• Salida: Terminación del platillo.
![Page 8: Metodologia Para La Solucion de Problemas(1)](https://reader031.vdocuments.mx/reader031/viewer/2022012321/563dba86550346aa9aa65fbf/html5/thumbnails/8.jpg)
Actividad en clase
• Diseñar un algoritmo para saber si un número es primo o no.
• Un número es primo si sólo puede dividirse por sí mismo y por la unidad.
![Page 9: Metodologia Para La Solucion de Problemas(1)](https://reader031.vdocuments.mx/reader031/viewer/2022012321/563dba86550346aa9aa65fbf/html5/thumbnails/9.jpg)
Diseño de un algoritmo • Una computadora no tiene capacidad de solucionar
problemas. Sólo lo hace cuando se le proporcionan los pasos sucesivos a realizar: el algoritmo.
• Los problemas complejos se pueden resolver más eficazmente cuando se subdividen en subproblemas que sean más fáciles de resolver.
• Éste método se conoce como divide y vencerás. • Ej: Obtener la circunferencia y el área de un círculo.
Obtener circunferencia y área de un circulo
Entrada de datos
Cálculo de la circunferencia
(c )
Cálculo del área (a)
Salida de resultados
Entrada radio (r)
c= 2* pi * r a= pi * r ^2 Salida c Salida a
RAIZ MÓDULOS
![Page 10: Metodologia Para La Solucion de Problemas(1)](https://reader031.vdocuments.mx/reader031/viewer/2022012321/563dba86550346aa9aa65fbf/html5/thumbnails/10.jpg)
Herramientas de programación
• Las dos herramientas más comunes para diseñar algoritmos son: diagramas de flujo y pseudocódigos.
• Un diagrama de flujo (flowchart) es una representación gráfica de un algoritmo o de una parte del mismo.
• La ventaja de utilizar un diagrama de flujo es que se le puede construir independientemente del lenguaje de programación, pues al momento de llevarlo a código se puede hacer en cualquier lenguaje.
• Se construyen utilizando ciertos símbolos de uso especial como son rectángulos, óvalos, pequeños círculos, etc.; estos símbolos están conectados entre sí por flechas conocidas como líneas de flujo.
![Page 11: Metodologia Para La Solucion de Problemas(1)](https://reader031.vdocuments.mx/reader031/viewer/2022012321/563dba86550346aa9aa65fbf/html5/thumbnails/11.jpg)
Símbolos de los diagramas de flujo
![Page 12: Metodologia Para La Solucion de Problemas(1)](https://reader031.vdocuments.mx/reader031/viewer/2022012321/563dba86550346aa9aa65fbf/html5/thumbnails/12.jpg)
Pseudocódigo
• Es una herramienta de programación en la que las instrucciones se escriben en palabras similares al ingles o español, facilitando la escritura como lectura de programas.
• En esencia, el pseudocódigo es como un lenguaje de especificaciones de algoritmos.
Ejemplo: de palabras reservadas:
![Page 13: Metodologia Para La Solucion de Problemas(1)](https://reader031.vdocuments.mx/reader031/viewer/2022012321/563dba86550346aa9aa65fbf/html5/thumbnails/13.jpg)
Programación estructurada
La programación estructurada significa escribir un programa de acuerdo a las siguientes reglas:
• El programa tiene un diseño modular.
• Los módulos son diseñados de modo descendente.
• Cada modulo se codifica utilizando las tres estructuras de control básicas:
• Secuencial,
• alternativa y,
• repetitiva.
• La programación estructurada utiliza un número limitado de estructuras de control que minimizan la complejidad de los programas y por consiguiente reducen los errores.
![Page 14: Metodologia Para La Solucion de Problemas(1)](https://reader031.vdocuments.mx/reader031/viewer/2022012321/563dba86550346aa9aa65fbf/html5/thumbnails/14.jpg)
La programación estructurada es el conjunto de técnicas que incorporan:
• Recursos abstractos.
• Diseño descendente (top – Down).
• Estructuras básicas de control.
![Page 15: Metodologia Para La Solucion de Problemas(1)](https://reader031.vdocuments.mx/reader031/viewer/2022012321/563dba86550346aa9aa65fbf/html5/thumbnails/15.jpg)
Recursos abstractos
• Descomponer un programa en términos de recursos abstractos – según Dijkstra – consiste en descomponer una determinada acción compleja en términos de un número de acciones más simples.
![Page 16: Metodologia Para La Solucion de Problemas(1)](https://reader031.vdocuments.mx/reader031/viewer/2022012321/563dba86550346aa9aa65fbf/html5/thumbnails/16.jpg)
Diseño descendente
• El diseño descendente es el proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento.
• La metodología descendente consiste en efectuar una relación entre las sucesivas etapas de estructuración, de modo que se relacionen unas con otras mediante entradas y salidas de información. Es decir, se descompone el problema en etapas o estructuras jerárquicas de forma que se puede considerar cada estructura desde dos puntos de vista: ¿Qué hace? Y ¿Cómo lo hace?.
![Page 17: Metodologia Para La Solucion de Problemas(1)](https://reader031.vdocuments.mx/reader031/viewer/2022012321/563dba86550346aa9aa65fbf/html5/thumbnails/17.jpg)
Diseño descendente
• Si se considera un nivel n de refinamiento, las estructuras se consideran de la siguiente manera:
![Page 18: Metodologia Para La Solucion de Problemas(1)](https://reader031.vdocuments.mx/reader031/viewer/2022012321/563dba86550346aa9aa65fbf/html5/thumbnails/18.jpg)
Diseño descendente
![Page 19: Metodologia Para La Solucion de Problemas(1)](https://reader031.vdocuments.mx/reader031/viewer/2022012321/563dba86550346aa9aa65fbf/html5/thumbnails/19.jpg)
Estructuras básicas
• Cualquier programa con un solo punto de entrada y un solo punto de salida puede resolverse con tres tipos de estructuras básicas de control: Secuencial, alternativa y repetitiva.
![Page 20: Metodologia Para La Solucion de Problemas(1)](https://reader031.vdocuments.mx/reader031/viewer/2022012321/563dba86550346aa9aa65fbf/html5/thumbnails/20.jpg)
Actividad en clase
• Ir al cine a ver LEGO.
Puedes utilizar:
si
si_no
mientras … hacer
repetir… hasta
![Page 21: Metodologia Para La Solucion de Problemas(1)](https://reader031.vdocuments.mx/reader031/viewer/2022012321/563dba86550346aa9aa65fbf/html5/thumbnails/21.jpg)
Actividad en clase
• Hacer el diagrama de flujo del algoritmo que suma los pares del 2 al 1000.