Metodologia Para La Solucion de Problemas(1)

21
Programación Metodología para la solución de problemas MC. Claudia M. Rangel López

description

Bases de programacion

Transcript of Metodologia Para La Solucion de Problemas(1)

Page 1: Metodologia Para La Solucion de Problemas(1)

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)

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)

La computadora como herramienta

• Ahora bien, ¿cómo hacemos un programa?

Page 4: Metodologia Para La Solucion de Problemas(1)

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)

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)

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)

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)

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)

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)

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)

Símbolos de los diagramas de flujo

Page 12: Metodologia Para La Solucion de Problemas(1)

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)

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)

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)

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)

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)

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)

Diseño descendente

Page 19: Metodologia Para La Solucion de Problemas(1)

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)

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)

Actividad en clase

• Hacer el diagrama de flujo del algoritmo que suma los pares del 2 al 1000.