metodologia para la solucion de problemas(1)

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

Upload: blanca-alejandra-cibrian

Post on 12-Dec-2015

53 views

Category:

Documents


10 download

DESCRIPTION

Bases de programacion

TRANSCRIPT

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.