definición y análisis de un problema

27
Definición y análisis de un problema. Joaquin Lara Sierra

Upload: english-center-for-training-solutions

Post on 24-Jul-2015

5.996 views

Category:

Education


2 download

TRANSCRIPT

Page 1: Definición y análisis de un problema

Definición y análisis de un problema.

Joaquin Lara Sierra

Page 2: Definición y análisis de un problema

@joaquinls

Definición y análisis de un problema. by Joaquin Lara Sierra is licensed under a Creative Commons Reconocimiento-NoComercial 2.5 Colombia License.

Page 3: Definición y análisis de un problema

Diseño del algoritmo.

La solución de un problema a veces puede ser complejo es decir puede requerir muchos pasos, en este caso dividimos el problema en subproblemas y de esta forma es mas fácil de resolver.

Por ejemplo: Recordemos el problema del calculo del área de un rectángulo Teniendo en cuenta que el área es base por altura del rectángulo

Subdividimos el problema en tres partes:

Page 4: Definición y análisis de un problema

Planteamiento

Problema Principal Cálculo del área del rectángulo

Subproblema Refinamiento (Solución del problema).

Entrada de Datos:Altura y Base del

rectángulo

Salida de Datos:Salida de la base,

Altura y área

Proceso de Datos

Calcular el área

Page 5: Definición y análisis de un problema

Este método es el denominado diseño descendente (Top-down-design). Identifica las tareas mas importantes a ser ejecutada para resolver el problema y disponerlas en el orden que serán ejecutadas.

Esta descripción paso a paso sirve como una primera descripción al algoritmo y proporciona una primera lista secuencial de actividades a ejecutar.

Page 6: Definición y análisis de un problema

Por consiguiente todo algoritmo debe cumplir las características de ser preciso, definido y finito. En este caso los pasos del algoritmo seria:

● 1. Leer altura, base● 2. Calcular área= base * altura● 3. Mostrar el área del rectángulo

Page 7: Definición y análisis de un problema

Codificación del programa

Ya sabemos que las partes constitutiva de un programa son entradas, salidas y el algoritmo de resolución.

Entradas de datos son operaciones de lectura/ escritura.

Las salidas operación de impresión.

El proceso de diseño del algoritmo o posteriormente codificación del programa consiste en definir las acciones o instrucciones que debe resolver el problema.

Page 8: Definición y análisis de un problema

Tipos de Instrucciones

TIPO PSEUDOCÓDIGO

Instrucciones de inicio/fin Inicio/Fin

Instrucciones de asignación a<- 7

Instrucciones de lectura leer

Instrucciones de escritura escribir o imprimir

Instrucciones de bifurcación. ¿?

Page 9: Definición y análisis de un problema

Programación lineal o no lineal

Lineal. Es un programa donde las instrucciones se ejecutaran secuencialmente sin bifurcaciones, sin decisiones, ni comparaciones.

No lineal. La secuencia del programa se interrumpe mediante instrucciones de bifurcación.

Las bifurcaciones pueden ser hacia delante o hacia atrás en un programa. Es decir:

Page 10: Definición y análisis de un problema

Bifurcación

Page 11: Definición y análisis de un problema

Bifurcación incondicional

Page 12: Definición y análisis de un problema

Bifurcación condicional

Page 13: Definición y análisis de un problema

Elementos básicos de un programa

En programación siempre se debe separar la diferencia entre el diseño del algoritmo y su implementación en un lenguaje especifico.

Por ello se debe distinguir claramente los conceptos de programación y como utilizarlos.

Los elementos básicos constructivos de un programa o algoritmo son:

Page 14: Definición y análisis de un problema

● Palabras reservadas. (inicio, fin, si-entonces).● Indentificadores.(nombre del algoritmo, de las

variables, procedimientos etc.)● Caracteres especiales. (coma, punto y coma)● Constantes● Variables● Expresiones● Instrucciones

Page 15: Definición y análisis de un problema

Otros elementos

● Bucles● Contadores● Acumuladores● Interruptores● Estructuras

– Secuenciales

– Selectivas

– Repetitivas

Page 16: Definición y análisis de un problema

Bucles e interaciones

Un bucle o lazo (ciclo) es un segmento de un algoritmo o programa, cuyas instrucciones se repiten un número determinado de veces mientras se cumple una determinada condición (existe o es verdadera la condición).

Se debe establecer un mecanismo para terminar las tareas repetitivas. Este mecanismo es una condición que puede ser verdadera o falsa y que se comprueba una vez cada paso o iteración del bucle.

Page 17: Definición y análisis de un problema

Ejemplo: Números caprichosos

Page 18: Definición y análisis de un problema

Bucles anidados

En un algoritmo pueden existir varios bucles. Los bucles pueden ser anidados o independientes.

Los bucles anidados cuando existen están de tal modo que unos son interiores a otros. Los bucles no pueden cruzar ya que en este caso se producirá un funcionamiento anómalo y los resultados de su ejecución serán impredecibles.

Page 19: Definición y análisis de un problema

Contadores

Los procesos repetitivos son la base del uso de las computadoras. En estos procesos se necesitan normalmente contar los sucesos o acciones internas del bucle como pueden ser los elemento de un fichero, el número de interacciones a realizar por bucles etc.

Una forma de controlar un bucle es mediante un contador.

Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad fija en cada iteración.

Ejemplo: contador = contador + 1

Page 20: Definición y análisis de un problema

EjercicioSe quiere diseñar el algoritmo de un programa que muestre por pantalla los primeros diez números naturales:algoritmo Numeros_del_1_al_10

Variables: entero contador

inicio

contador ← 1 /* Inicialización del contador */

mientras ( contador <= 10 ) /* Condición */

escribir( contador ) /* Salida */

contador ← contador + 1 /* Incremento */

fin_mientras

fin

Page 21: Definición y análisis de un problema
Page 22: Definición y análisis de un problema

Acumulador

Un acumulador o totalizadores una variable cuya misión es almacenar cantidades variables resultantes de sumas sucesivas.

Realiza la misma función que un contador con la diferencia de que el incremento o decremento de cada suma es variable en un lugar constante como en el caso del contador.

Se representa por la instrucción S<-S+N donde N es una variable y no una constante

Page 23: Definición y análisis de un problema

Ejemplo

Ejemplo 1. El encargado de una obra recibe un suministro de camiones con hormigón. El control del volumen recibido lo lleva a través de una tabla donde apunta hora de llegada, volumen servido por el camión que llega y volumen acumulado a lo largo del día.

Page 24: Definición y análisis de un problema

Solución

Hora Volumen servido m3 Acumulado m3

10:15 7 7

10:45 5 12

11:08 6 18

11:37 5 23

11:59 7 30

La fórmula que utiliza es: 

Acumulado = Volumen servido actual + Acumulado anterior.

A las 11:45 le llaman y le preguntan: ¿Cuánto hormigón hemos recibido hasta el momento? La respuesta es 23 metros cúbicos.

Page 25: Definición y análisis de un problema

Estructura de decisión o selección

Cuando el programador desea especificar dos o mas caminos alternativos en un algoritmo (o programa) se deben utilizar estructuras de decisión o selección.

Una instrucción de decisión o selección evaluá una condición y en función del resultado de esta condición se bifurcara a un determinado punto.

Page 26: Definición y análisis de un problema

Interruptores

Un interruptor o conmutador (switch). A veces se les denomina centinela, bandera o flag. es un campo de memoria que puede tomar dos valores a lo largo de la ejecución del programa y que permite comunicar información de una parte a otra del mismo.

los interruptores suelen tomar dos valores diferentes: 1 y 0, verdadero y falso, si o no.

Page 27: Definición y análisis de un problema

GraciasAhora te toca a tí