Você está na página 1de 5

Estructuras de Datos y Algoritmos Nocin de algoritmo. Definicin Cmo hacer una paella?

Receta: Paella valenciana Ingredientes para 6 personas Nocin de algoritmo. Definicin - 425 gramos de arroz - 1,5 litros de agua - 5 cucharadas de aceite - 50 gramos de alcachofas - 50 gramos de judas verdes - 3 cucharadas de tomate Instrucciones de elaboracin 1. Se calienta el aceite en la paella, y cuando empieza a humear, se echa el pollo troceado, dorndolos a fuego medio. 2. A continuacin, se aade la verdura troceada y se sofre durante un par de minutos. 3. Seguidamente, haciendo un hueco en medio de la paellera, se sofre el tomate y cuando empieza a oscurecer, se echa el pimentn, con cuidado de que no se queme. 4. Se mueve bien y se aade agua hasta el borde de la paellera. - 150 gramos de pollo - 0,5 cucharitas de pimentn - 1 pizca de azafrn 5. Se deja cocer la paella durante treinta minutos, rectificando de sal. 6. Se aade el arroz y las hebras de azafrn, teniendo cuidado de repartir bien todo el arroz por la paella, y se deja hervir a fuego vivo hasta que el arroz est en su punto y el caldo se evapore por completo.

7. Se deja reposar cinco minutos, tapada por un pao.

Un algoritmo es una secuencia bien definida, ordenada y finita de operaciones que permiten hallar la solucin a Nocin de algoritmo. Definicin un problema Bien definida: las operaciones se enuncian en un lenguaje formal, atendiendo a una sintaxis arbitraria (acordada) Ordenada: las operaciones se ejecutan de manera secuencial, siguiendo un orden establecido Finita: el nmero de operaciones a ejecutar para resolver el Estructura de Datos y Algoritmos Elementos de un algoritmo Una definicin de la entrada del algoritmo - En la receta de la paella: ingredientes, utensilios de cocina necesarios Un lenguaje formal en el que definir el algoritmo - En la receta de la paella: el castellano Una lista ordenada de sentencias con las que resolver el problema asociado al algoritmo - En la receta de la paella: las instrucciones de preparacin del plato Una definicin de la salida del algoritmo - En la receta de la paella: el plato en s si se hubiesen ejecutado satisfactoriamente todas las instrucciones de preparacin, o nada en caso de que alguna instruccin no se pudiera haber ejecutado con xito. Elementos de un algoritmo Resolucin de un problema en la vida rea

Pseudocodigo = pseudo(supuesto) + cdigo(instruccin)


Describe un algoritmo utilizando una mezcla de frases en lenguaje natural, instrucciones de programacin y palabras clave Su objetivo es permitir a una persona (al programador) centrarse en los aspectos lgicos de la solucin a un problema, evitando entrar en aspectos concretos de la sintaxis del lenguaje de programacin a usar Vara de un programador a otro pues no hay una estructura estndar Supone un mecanismo gil para el estudio y diseo de programas de ordenador

Ejemplo: calcular la suma de los elementos de una lista de nmeros


Opcin 1
entrada: lista de nmeros enteros LISTA salida: nmero entero SUMA instrucciones: inicializar SUMA a 0 recorrer los elementos de LISTA para cada ELEMENTO recorrido: sumar ELEMENTO a SUMA devolver SUMA

Pseudocodigo = pseudo(supuesto) + cdigo(instruccin)


Es una expresin o representacin genrica de un algoritmo Captura el funcionamiento bsico de un algoritmo sin ceirse a

las restricciones de un lenguaje Es cercano a la programacin: tiene ms o menos las mismas convenciones de legibilidad, concrecin (ordenacin y claridad de ideas) y comprensin

Pseudocdigo - programacin estructurada


Secuencias: bloque de instrucciones elementales de ejecucin consecutiva. De por s slo se ejecutan una vez. Selecciones o bifurcaciones: bloques secuenciales de ejecucin condicional Repeticiones: bloque secuencial que se ejecuta repetidamente mientras se cumple alguna condicin

Pseudocdigo - convenios
Sangrado/tabulado de bloques Definicin de entradas y salidas de procedimientos/funciones Delimitacin de secuencias (;) Delimitacin de selecciones y repeticiones (:) Comentarios

Ejemplo: algoritmo de Euclides


// mcd: encuentra el mximo comn divisor de dos nmeros entero mcd(entero A, entero B) si B > A: // seleccin intercambiar A y B; // sentencia R = A % B; mientras R != 0: // repeticin A = B; B = R; R = A % B; devolver B;

Eficiencia de algoritmo
Dados dos algoritmos distintos que solucionan un mismo problema, sus propiedades son probablemente distintas
Tardan tiempos distintos en solucionar el problema (eficiencia temporal) Precisan de tamaos de almacenamiento distintos (eficiencia espacial)

Una pregunta obvia que surge a la hora de considerar ambos

Eficiencia de algoritmo. Nocion de eficiencia


algoritmos es: cul de ambos es mejor?
Lgicamente, el que menos tiempo emplee y menos espacio de almacenamiento necesite Habitualmente, nuestro objetivo principal ser mejorar la eficiencia temporal

.Como analizar el tiempo de ejecucion? Considerando el rendimiento: relacionar velocidad y tamano de entrada

Existen dos formas de valorar la eficiencia de los algoritmos


Empricamente Analticamente (de forma terica)

Você também pode gostar