Definición y análisis de un problema
-
Upload
english-center-for-training-solutions -
Category
Education
-
view
5.999 -
download
2
Transcript of Definición y análisis de un problema
![Page 1: Definición y análisis de un problema](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/1.jpg)
Definición y análisis de un problema.
Joaquin Lara Sierra
![Page 2: Definición y análisis de un problema](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/2.jpg)
@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](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/3.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/4.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/5.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/6.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/7.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/8.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/9.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/10.jpg)
Bifurcación
![Page 11: Definición y análisis de un problema](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/11.jpg)
Bifurcación incondicional
![Page 12: Definición y análisis de un problema](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/12.jpg)
Bifurcación condicional
![Page 13: Definición y análisis de un problema](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/13.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/14.jpg)
● 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](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/15.jpg)
Otros elementos
● Bucles● Contadores● Acumuladores● Interruptores● Estructuras
– Secuenciales
– Selectivas
– Repetitivas
![Page 16: Definición y análisis de un problema](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/16.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/17.jpg)
Ejemplo: Números caprichosos
![Page 18: Definición y análisis de un problema](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/18.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/19.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/20.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/21.jpg)
![Page 22: Definición y análisis de un problema](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/22.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/23.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/24.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/25.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/26.jpg)
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](https://reader034.fdocuments.ec/reader034/viewer/2022042514/55b1cc0abb61eb66698b485c/html5/thumbnails/27.jpg)
GraciasAhora te toca a tí