metodologia para la solucion de problemas(1)

Post on 12-Dec-2015

55 Views

Category:

Documents

10 Downloads

Preview:

Click to see full reader

DESCRIPTION

Bases de programacion

TRANSCRIPT

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

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

La computadora como herramienta

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

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

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.

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

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.

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.

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

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.

Símbolos de los diagramas de flujo

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:

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.

La programación estructurada es el conjunto de técnicas que incorporan:

• Recursos abstractos.

• Diseño descendente (top – Down).

• Estructuras básicas de control.

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.

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?.

Diseño descendente

• Si se considera un nivel n de refinamiento, las estructuras se consideran de la siguiente manera:

Diseño descendente

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.

Actividad en clase

• Ir al cine a ver LEGO.

Puedes utilizar:

si

si_no

mientras … hacer

repetir… hasta

Actividad en clase

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

top related