Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

  • View
    227

  • Download
    0

Embed Size (px)

Transcript

  • AlgoritmoNociones fundamentales

  • AlgoritmoNocin de algoritmoObjetos y acciones elementalesEsquemas condicionalesIteracionesNocin de algoritmoObjetos y acciones elementalesEsquemas condicionalesIteracionesEsta presentacin

  • AlgoritmoNocin de algoritmo:Procesador, entorno, accionesAcciones primitivasAnlisis descendente Objetivo de la programacinNocin de algoritmo:Procesador, entorno, accionesAcciones primitivasAnlisis descendente Objetivo de la programacin

  • Algoritmo Procesador, entorno, accionesPreparacin de un omelette de 6 huevos

    a: romper seis huevos en un plato;b: batir las claras y las yemas con un tenedor;c: calentar aceite en una sartn al fuego;d: cuando el aceite est caliente, verter el contenido del plato;e: quitar la sartn del fuego cuando la preparacin est hecha.Clculo de la media de tres nmeros con una calculadora

    a: pulsar la tecla C;b: ingresar el primer nmero;c: pulsar la tecla + ;d: ingresar el segundo nmero;e: pulsar la tecla +;f: ingresar el tercer nmero;g: pulsar la tecla / ;h: pulsar la tecla 3;i: pulsar la tecla = .Enunciado 1Enunciado 2

  • Algoritmo Procesador, entorno, accionesLos enunciados 1 y 2 describen cada uno un cierto trabajoToda entidad capaz de entender un enunciado y de ejecutar el trabajo indicadoProcesadorEn el caso de los enunciados 1 y 2, una persona que sepaleer y disponga de los utensilios necesarios, puede ser un procesador adecuado

  • Algoritmo Procesador, entorno, accionesEl conjunto de utensilios necesarios para la ejecucin del trabajo.EntornoDado un procesador, el entorno es especfico del trabajoa ejecutar. Sin embargo, la forma de realizar el trabajo, depende a menudo de los utensilios puestos a disposicin del procesador

  • Algoritmo Procesador, entorno, accionesabEntornoNO1Ejemplo:bcncTarea: Dar vuelto.

  • Algoritmo Procesador, entorno, accionesLa ejecucin de un trabajo no elemental, supone ciertaprogresin hacia el fin deseado.

    En los Enunciados 1 y 2 se distinguen las etapas a, b, c,...Un suceso que modifica el entornoAccinDada la accin a del Enunciado 1: romper seis huevos en un plato. Antes de ejecutar la accin, el plato est vaco. Despus de ejecutar la accin, el plato contiene 6 yemas y 6 claras.

  • Algoritmo Procesador, entorno, accionesLa ejecucin de una accin puede necesitar una observacin del entorno (Ej.:Accin d, Enunc.1)El procesador, en general, respeta la secuencia de las acciones. (Se ver cmo es posible romper esa secuencia)Ciertas acciones podran ejecutarse al mismo tiempo (en paralelo). Ventaja: ganancia de tiempo. Requerira varios procesadores.El enunciado de una accin puede aparecer varias veces en la descripcin de un trabajo. (Acciones c y e, Enunciado 2) Sin embargo, el nmero de apariciones de una accin, no corresponde forzosamente a la cantidad de ejecuciones de la misma.

  • Algoritmo Procesador, entorno, accionesSin embargo, el nmero de apariciones de una accin, no corresponde forzosamente a la cantidad de ejecuciones de la misma.Enunciado 3xyrepetir x 5 vecesyz22Ejecucin:x6y2

  • AlgoritmoNocin de algoritmo:Procesador, entorno, accionesAcciones primitivasAnlisis descendente Objetivo de la programacinNocin de algoritmo:Procesador, entorno, accionesAcciones primitivasAnlisis descendente Objetivo de la programacin

  • Algoritmo Acciones primitivasEn los Enunciados 1 y 2 se ha supuesto que el procesador saba ejecutar las acciones enumeradas.Para ese procesador, stas son acciones primitivas.Aquella cuyo enunciado es suficiente para que el procesador pueda ejecutarla sin informacin adicional. Accinprimitiva

  • Algoritmo Acciones primitivasEn el Enunciado 3, el procesador no sabr ejecutar la accin repetir 5 veces, si sta no es una primitiva.En caso de que sea una primitiva, ejecutar la secuencia: x, x, x, x, x.Si no lo fuera, habr que reemplazarla por la secuencia x, x, x, x, x.Toda accin no primitiva, habr de descomponerse en acciones primitivas.

  • Algoritmo Acciones primitivasEn el Enunciado 1, si el procesador es un nio, la accin a, romper seis huevos en un plato, puede no ser suficientemente explcita. Ser necesario descomponerla:a: romper seis huevos en un platoEjemplo:a1 : poner seis huevos sobre la mesadarepetir a2: tomar un huevo de la mesada a3: romperlo y verter su contenido en el plato a4: tirar las cscaras a la basurahasta que no queden huevos sobre la mesada. En el Enunciado 1, si el procesador es un nio, la accin a, romper seis huevos en un plato, puede no ser suficientemente explcita. Ser necesario descomponerla:

  • Algoritmo Acciones primitivasLa descomposicin efectuada utiliza un esquema repetitivo, que permite simplificar la representacin de la repeticin de una secuencia de acciones.Observacin:repetiraccioneshasta quecondicinejecutaraccionesevaluarcondicincondicin no realizadacondicin realizada

  • AlgoritmoNocin de algoritmo:Procesador, entorno, accionesAcciones primitivasAnlisis descendente Objetivo de la programacinNocin de algoritmo:Procesador, entorno, accionesAcciones primitivasAnlisis descendente Objetivo de la programacin

  • Algoritmo Anlisis descendenteUno de los mtodos para obtener la descomposi-cin de una accin en acciones primitivas es el Anlisis descendente.Metodologa:Dado un trabajo T descripto por un enunciado no primitivo, el anlisis descendente de T consiste en encontrar una descomposicin formada por una secuencia de enunciados, cuya ejecucin realiza el trabajo T.Anlisis descendente

  • Algoritmo Anlisis descendenteRepresentacin:(Ei) T(Ef)(Ef k-1) = (Ei k)(Ef k) = (Ei k+1)Cada trabajo t k, pasa el entornode un estado (Ei k) a un estado (Ef k)

    Para cada enunciado t k, hay dos posibilidades:o bien t k es una accin primitiva, y se detiene el anlisis descendente para t k ; o bien t k no es una accin primitiva, y se descompone nuevamente t k.

  • Algoritmo Anlisis descendenteEjemplo:Tarea: Realizar la agrupacin de cierto nmero de ejemplares de un documento de diez pginas que ha sido enviado a un servicio de fotocopiado. Para cada una de las pginas se ha reproducido aproxi-madamente una centena de ejemplares.Entorno:. Diez paquetes de hojas numeradas, apilados sobre un escritorio.. Una grapadora. Diez mesas numeradas de 1 a 10.

  • Algoritmo Anlisis descendente

  • Algoritmo Anlisis descendenteCompetencias del procesador:. Tomar y poner. Ir de una mesa a otra (pasar de la mesa i a la mesa i + 1). Ir a una mesa de un nmero dado (reconocer igualdad de valores numricos) . Reconocer la presencia o ausencia de hojas sobre una mesa. Grapar

  • Algoritmo Anlisis descendenteEnunciado:A partir de la pila que se encuen-tra en el escritorio, agrupar las fotocopias.AABCRepartir los paquetes a razn de un paquete por mesa, tal que el paquete de hojas i quede en la mesa i.Reunir y grapar los ejemplares y ponerlos sobre el escritorio.ABC

  • Algoritmo Anlisis descendente

  • Algoritmo Anlisis descendenteAC1C11: colocarse en la mesa N 1 C12: tomar una hoja de esa mesa Repetir C13: ir a la mesa siguiente C14: tomar una hoja de esa mesa hasta que la mesa sea la N 10BC1CA

  • Algoritmo Anlisis descendenteInicio Repetir tomar el paquete situado encima de la pila sobre el escritorio ir a la mesa cuyo nmero es igual al de las hojas del paquete poner el paquete sobre la mesa hasta que se acabe la pila que hay sobre el escritorio. Repetir colocarse en la mesa N 1 tomar una hoja de esa mesa Repetir ir a la mesa siguiente tomar una hoja de esa mesa hasta que la mesa sea la N 10 grapar el ejemplar ponerlo sobre el escritorio hasta que una de las mesas quede sin hojas Fin

  • Nocin de AlgoritmoPrimera definicin:Dado un procesador bien definido y un tratamiento a ejecutar por ese procesador, un algoritmo de tratamiento es el enunciado de una secuencia de acciones primitivas que realizan ese tratamiento.Algoritmo

  • AlgoritmoNocin de algoritmo:Procesador, entorno, accionesAcciones primitivasAnlisis descendente Objetivo de la programacinNocin de algoritmo:Procesador, entorno, accionesAcciones primitivasAnlisis descendente Objetivo de la programacin

  • Objetivo de la programacinDado un trabajo que se desea efectuar con la ayuda de un procesador determinado:Establecer una secuencia de acciones que puedan ser ejecutadas por el procesador y que realicen dicho trabajo.ObjetivoFase 1Fase 2Resolucin del problema: determinacin de un algo-ritmo que realice el tratamiento.Adaptacin del algoritmo al procesador: codificacin.

  • Objetivo de la programacinFase 1Fase 2Resolucin del problema: determinacin de un algo-ritmo que realice el tratamiento.Adaptacin del algoritmo al procesador: codificacin.Etapa ms difcilHerramientasSoluciones elegantes y eficientesLenguaje de programacinNo presenta mayores dificultadesMecanismos de traduccin

  • AlgoritmoNocin de algoritmoObjetos y acciones elementalesEsquemas condicionalesIteracionesNocin de algoritmoObjetos y acciones elementalesEsquemas condicionalesIteraciones

  • AlgoritmoObjetos y acciones elementales:FormalizacinObjetos en un entornoUtilizacin de objetosAcciones y algoritmosConstantes y variablesTipos de objetosContexto y herramientasAccin leer, accin escribir, accin de asignacin, expresiones aritmticasObjetos y acciones elementales:FormalizacinObjetos en un entornoUtilizacin de objetosAcciones y algoritmosConstantes y variablesTipos de objetosContexto y herramientasAccin leer, accin escribir, accin de asignacin, expresiones aritmticas

  • Formalizacin Objetos en un entornoACCIONES: * colocarse en la mesa N 1 * tomar el paquete situado encima de la pila * ir a la mesa siguiente * ingre