21

Análisis de problemas - UTMjahdezp/archivos algo/ApuntesAlgo.pdf · Las instrucciones secuenciales son la base de todo ... DbDebe exiiistir un controll cuid didadoso con este tiipo

  • Upload
    doque

  • View
    224

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Análisis de problemas - UTMjahdezp/archivos algo/ApuntesAlgo.pdf · Las instrucciones secuenciales son la base de todo ... DbDebe exiiistir un controll cuid didadoso con este tiipo
Page 2: Análisis de problemas - UTMjahdezp/archivos algo/ApuntesAlgo.pdf · Las instrucciones secuenciales son la base de todo ... DbDebe exiiistir un controll cuid didadoso con este tiipo

Análisis de problemas La resolución de problemas implica el desarrollo de habilidades del pensamiento.N   id d d   f   bl     Nuestra capacidad de enfrentar problemas aumenta con la práctica.

Existen algunos textos con problemas que se  Existen algunos textos con problemas que se consideran clásicos.

Uno de estos textos de fácil lectura es “El hombre que Uno de estos textos de fácil lectura es  El hombre que calculaba” de Malba Tahan.

Page 3: Análisis de problemas - UTMjahdezp/archivos algo/ApuntesAlgo.pdf · Las instrucciones secuenciales son la base de todo ... DbDebe exiiistir un controll cuid didadoso con este tiipo

Introducción Una computadora que al igual que una calculadora sirve para hacer operaciones con números.L   b j       i  d  i f ió   l  Logra trabajar con otro tipo de información al asignarle un código numérico a los datos.

Históricamente las máquinas para realizar cálculos son  Históricamente las máquinas para realizar cálculos son antiguas como el uso del ábaco.

La gran utilidad de las computadoras consiste en que La gran utilidad de las computadoras consiste en que estas realizan cálculos repetitivos con precisión y rapidez.

Page 4: Análisis de problemas - UTMjahdezp/archivos algo/ApuntesAlgo.pdf · Las instrucciones secuenciales son la base de todo ... DbDebe exiiistir un controll cuid didadoso con este tiipo

Algoritmo Las computadoras necesitan algoritmos para procesar la información.U   l i       j   d d  d   Un algoritmo es un conjunto ordenado de instrucciones que sirven para transformar los datos en información que nos resulte útilinformación que nos resulte útil.

Las instrucciones de un algoritmo deben ser precisas para ofrecer resultados consistentes.p

Además para que un algoritmo sea útil se pide que el conjunto de instrucciones sea finito para obtener 

    i   blrespuestas en tiempos razonables.

Page 5: Análisis de problemas - UTMjahdezp/archivos algo/ApuntesAlgo.pdf · Las instrucciones secuenciales son la base de todo ... DbDebe exiiistir un controll cuid didadoso con este tiipo

Teorema de Bohm Jacopini Todo programa propio puede ser expresado utilizando únicamente tres estructuras de control básicas.

Secuenciales Secuenciales Selectivas RepetitivasRepet t vas Un programa propio es aquel que tiene al menos un camino de ejecución para cada instrucción en el imismo.

Un programa propio no contiene bucles infinitos y tiene solo un punto de inicio y de finalización.p y

Page 6: Análisis de problemas - UTMjahdezp/archivos algo/ApuntesAlgo.pdf · Las instrucciones secuenciales son la base de todo ... DbDebe exiiistir un controll cuid didadoso con este tiipo

Estructura secuencial La estructura secuencial es la más simple de todos e implica seguir el orden de izquierda‐derecha‐arriba‐abajoabajo.

Este orden puede verse alterado por la precedencia de los operadores involucrados en algunas instruccioneslos operadores involucrados en algunas instrucciones.

Típicamente entre los operadores aritméticos, la multiplicación/división tienen prioridad sobre la p psuma/resta.

Page 7: Análisis de problemas - UTMjahdezp/archivos algo/ApuntesAlgo.pdf · Las instrucciones secuenciales son la base de todo ... DbDebe exiiistir un controll cuid didadoso con este tiipo

Estructura secuencial(cont). Asignación se refiere a la asignación de un valor a una variable, por medio de una constante o como resultado de una operaciónde una operación.

Entrada/salida estas operaciones sirven para ingresar datos y mostrar los resultadosdatos y mostrar los resultados.

Las instrucciones secuenciales son la base de todo algoritmo y de la combinación de estas se pueden g y pmuchas veces encontrar soluciones distintas.

Page 8: Análisis de problemas - UTMjahdezp/archivos algo/ApuntesAlgo.pdf · Las instrucciones secuenciales son la base de todo ... DbDebe exiiistir un controll cuid didadoso con este tiipo

Estructura selectiva La estructura selectiva  permite romper el orden estrictamente secuencial de un algoritmo y condicionar la ejecución de alguna o algunas de sus condicionar la ejecución de alguna o algunas de sus instrucciones.

Por lo general implican una instrucción de salto para el Por lo general implican una instrucción de salto para el caso en que el resultado de la condición sea negativo.

La más simple es “si condición entonces”p Implica que la siguiente instrucción deberá

ejecutarse si la condición se cumple, en caso i d b l lcontrario deberemos saltarla.

Page 9: Análisis de problemas - UTMjahdezp/archivos algo/ApuntesAlgo.pdf · Las instrucciones secuenciales son la base de todo ... DbDebe exiiistir un controll cuid didadoso con este tiipo

Estructura selectiva(cont). Una variación permite elegir entre dos opciones que se realizarán dependiendo de si el resultado de la condición es falso o verdaderocondición es falso o verdadero.

Si condición entonces instrucción1 en caso contrario instrucción2instrucción2.

En la estructura anterior el algoritmo ejecutará o bien la instrucción 1 o 2 pero no ambas, dado que la p qcondición es verdadera o bien falsa.

Existe la posibilidad de que la estructura elija entre j t d fi id d l d i blun conjunto definido de valores de una variable.

Page 10: Análisis de problemas - UTMjahdezp/archivos algo/ApuntesAlgo.pdf · Las instrucciones secuenciales son la base de todo ... DbDebe exiiistir un controll cuid didadoso con este tiipo

Estructura selectiva(cont). La estructura de selección múltiple ejecuta la instrucción que hace que la variable de control coincida con algún valor particularcoincida con algún valor particular.

En caso de que x seaValor1: instrucción1Valor1: instrucción1Valor2: instrucción2ValorN: instrucciónNValorN: instrucciónN En algunos casos puede admitirse que el control sea un rango de valores.g

Page 11: Análisis de problemas - UTMjahdezp/archivos algo/ApuntesAlgo.pdf · Las instrucciones secuenciales son la base de todo ... DbDebe exiiistir un controll cuid didadoso con este tiipo

Estructura de repetición La idea de repetir significa romper el orden secuencial para regresar a una instrucción previamente ejecutada.D b   i i     l  id d       i  d   Debe existir un control cuidadoso con este tipo de estructuras para evitar que el algoritmo entre en un ciclo infinito de repeticiones al no cumplirse nunca la ciclo infinito de repeticiones al no cumplirse nunca la condición de paro.

Existen dos variantes para este tipo de estructuras: las p pde condición previa y las de condición posterior.

Una variante que puede implementarse a partir de las i     ll   l d       danteriores es aquella controlada por un contador.

Page 12: Análisis de problemas - UTMjahdezp/archivos algo/ApuntesAlgo.pdf · Las instrucciones secuenciales son la base de todo ... DbDebe exiiistir un controll cuid didadoso con este tiipo

Estructura de repetición(cont). La estructura de condición previa es de la forma mientras condición repetir instrucciónL    d   di ió   i    d  l  f   La estructura de condición posterior es de la forma repetir  instrucción hasta condición

Si se permite en el lenguaje elegido la estructura  Si se permite en el lenguaje elegido la estructura controlada por contador es de la forma para contador desde valor inicial hasta valor final con incrementos de valor.

Por defecto los incrementos son de uno en uno en id   isentido creciente.

Page 13: Análisis de problemas - UTMjahdezp/archivos algo/ApuntesAlgo.pdf · Las instrucciones secuenciales son la base de todo ... DbDebe exiiistir un controll cuid didadoso con este tiipo

Ejemplo1cont = 0Suma = 0Mientras cont < 11 hacer

suma = suma + x(cont)cont = cont + 1

Fin mientrasPromedio = suma / 10Mostrar promedio

Page 14: Análisis de problemas - UTMjahdezp/archivos algo/ApuntesAlgo.pdf · Las instrucciones secuenciales son la base de todo ... DbDebe exiiistir un controll cuid didadoso con este tiipo

Ejemplo2Grupo1 = 0Grupo2 = 0Para i desde 1 hasta 100 hacer

si x(i) >= 5 y x(i) < 10 entoncesgrupo1 = grupo1 + 1

fin sisi x(i) >= 10 y x(i) < 20 entonces

grupo2 = grupo2 + 1fin si

Fin paraMostrar grupo1Mostrar grupo2ost a g upo

Page 15: Análisis de problemas - UTMjahdezp/archivos algo/ApuntesAlgo.pdf · Las instrucciones secuenciales son la base de todo ... DbDebe exiiistir un controll cuid didadoso con este tiipo

Ejemplo3Factorial = 1N = 5Repetir

Factorial = factorial *nn = n – 1

Mientras n > 0Mostrar factorial

Page 16: Análisis de problemas - UTMjahdezp/archivos algo/ApuntesAlgo.pdf · Las instrucciones secuenciales son la base de todo ... DbDebe exiiistir un controll cuid didadoso con este tiipo

Herramientas para programar Existen una enorme cantidad de lenguajes de programación por lo que elegir el más apropiado no es una tarea fácil ni trivial.una tarea fácil ni trivial.

Muchas veces depende de la preferencia y la experiencia, sin embargo de la elección adecuada de la h i  d d   l  f      herramienta depende el esfuerzo para programar alguna tarea determinada.

En el caso de los algoritmos, estos pueden escribirse en En el caso de los algoritmos, estos pueden escribirse en un seudocódigo usando el Rockefer Basic.

También pueden probarse con dfd usando diagramas d  fl jde flujo.

Page 17: Análisis de problemas - UTMjahdezp/archivos algo/ApuntesAlgo.pdf · Las instrucciones secuenciales son la base de todo ... DbDebe exiiistir un controll cuid didadoso con este tiipo

Conceptos generales Variable es un nombre que se le asigna a un lugar en la memoria.E     i bl     ibl   l  d  d  l   En una variable es posible almacenar datos de los siguientes tipos básicos: enteros, números de punto flotante y cadenas de caracteresflotante y cadenas de caracteres.

Un entero puede tener o no signo como 8 o -5. Un numero de punto flotante puede ser 1.5 e-3.Un numero de punto flotante puede ser 1.5 e 3. Una cadena puede ser “hola mundo”

Page 18: Análisis de problemas - UTMjahdezp/archivos algo/ApuntesAlgo.pdf · Las instrucciones secuenciales son la base de todo ... DbDebe exiiistir un controll cuid didadoso con este tiipo

Operadores Además de las variables los algoritmos contienen operadores que trabajan sobre esos datos.L   á   id    l   d   i é i  l   Los más conocidos son los operadores aritméticos, los relacionales y los lógicos.

Los aritméticos son +    *  / y en algunos casos ^ Los aritméticos son +, ‐,  , / y en algunos casos ^. Los relacionales son =, >, <, >=, <=, !=. Los lógicos son y  o y no Los lógicos son y, o y no. Con operadores, variables y constantes se pueden construir expresiones aritméticas o lógicas.p g

Page 19: Análisis de problemas - UTMjahdezp/archivos algo/ApuntesAlgo.pdf · Las instrucciones secuenciales son la base de todo ... DbDebe exiiistir un controll cuid didadoso con este tiipo

Expresiones Una expresión aritmética da como resultado una constante de tipo numérico ya sea entero o de punto flotanteflotante.

Ej. x = 2*y + 5 Una expresión relacional o lógica da como resultado  Una expresión relacional o lógica da como resultado los  valores de falso o verdadero.

Ej. x < 5 y x > 0Ej. x 5 y x 0

Page 20: Análisis de problemas - UTMjahdezp/archivos algo/ApuntesAlgo.pdf · Las instrucciones secuenciales son la base de todo ... DbDebe exiiistir un controll cuid didadoso con este tiipo

Pruebas de escritorio Estas consisten en corridas de prueba hechas a mano para el algoritmo con el fin de comprobar que este sea correctocorrecto.

Por lo regular se construye una tabla con todos los elementos importantes del algoritmo como la elementos importantes del algoritmo como la evaluación de las expresiones lógicas y de las variables.

Lo anterior se hace con el fin de seguir con mayor g yfacilidad la ejecución del algoritmo.

Page 21: Análisis de problemas - UTMjahdezp/archivos algo/ApuntesAlgo.pdf · Las instrucciones secuenciales son la base de todo ... DbDebe exiiistir un controll cuid didadoso con este tiipo

Conclusión En estos apuntes se han resumido los principales puntos, temas y conceptos relacionados con la escritura de algoritmos para computadoraescritura de algoritmos para computadora.

En las siguientes lecciones se irán introduciendo cada uno de estos elementos por medio de ejemplos y uno de estos elementos por medio de ejemplos y ejercicios.