Está en la página 1de 8

FACULTAD DE INGENIERÍA

CARRERA: INGENIERÍA ELÉCTRICA.

INFORMÁTICA

TEMA:
Programación y Diseño de Algoritmos: Clasificación - Técnicas-
Herramientas – Estructuras.

ESTUDIANTE: Jiménez Cumbicus Diego Armando


CORREO ELECTRÓNICO: diegoajc@hotmail.com

SEMESTRE: Primero “A”

DOCENTE: Ing. Washington García.

PERIODO LECTIVO: 2016-2017(2)

MANTA – ECUADOR
Programación y Diseño de Algoritmos

Clasificación

Se ha clasificado a los algoritmos de diversas formas, de acuerdo con algunos de sus

atributos:

A) Según el sistema de signos con el que describen los pasos a seguir, se reconocen:

 Algoritmos cualitativos: cuando se hace a través de palabras, es decir, las

instrucciones son verbales. Sucede, por ejemplo, con recetas de cocina.

 Algoritmos cuantitativos: cuando se hace a través de cálculos numéricos. Se puede

hacer un algoritmo, por ejemplo, para obtener la raíz cuadrada de un número.

B) Según su función, los algoritmos pueden ser:

 Algoritmos de ordenamiento: secuencian los elementos que ingresan a partir de un

cierto orden, en general, según un orden numérico o léxico.

 Algoritmos de búsqueda: al contrario de realizar operaciones o secuenciar

elementos, se dedica a encontrar dentro de una lista que ingresa, uno o varios

elementos en particular que cumplan con el conjunto de condiciones dadas.

 Algoritmos de encaminamiento: deciden de qué modo se deberá transmitir algo

que llega, y cómo seguirá un conjunto de pasos encadenados. Se dividen

fundamentalmente entre adaptativos y estáticos, los primeros con cierta capacidad

de aprendizaje y ajuste a la circunstancia, mientras que los segundos funcionan

mecánicamente, siempre del mismo modo. C) Según la estrategia que se utiliza

para llegar al resultado.


 Algoritmos probabilísticos: no se puede estar seguro de la exactitud de la respuesta

que darán. Se agrupan en distintos subtipos, pero con esa premisa: o bien presentan

soluciones aproximadas del problema, o bien presentan soluciones que pueden ser

correctas pero también erróneas.

 Algoritmo cotidiano: es el que se da en la vida común de las personas, no se aplica

en sistemas informáticos ni en nada ajeno al día a día.

 Algoritmo heurístico: abandona alguno de los objetivos como recurso para

terminar llegando a la solución. En general, son utilizados cuando no existe una

solución mediante las vías tradicionales.

 Algoritmo de escalada: se comienza con una solución insatisfactoria (que no

cumple la entrada y la salida), y se la va modificando aproximándose a lo que se

busca.

 Algoritmo voraz: Con la idea de llegar a una solución óptima definitiva, elige

analizar cada paso como único y elegir la solución óptima para ese paso.

 Algoritmo determinista: es completamente lineal (cada paso tiene un paso sucesor

y un paso predecesor) y por lo tanto predictivo, si se conocen sus entradas y su

forma de proceder. El algoritmo de Euclides, que permite averiguar el máximo

común divisor entre dos números, responde a este tipo. Se distinguen de los no

deterministas, donde el algoritmo tiene un comportamiento en forma de árbol.

Las Técnicas De Diseño De Algoritmos

El diseño de la mayoría de los algoritmos requiere creatividad y conocimientos de la

metodología de programación, esto significa que debe desarrollar una lógica computacional

a través de la resolución de programas.


 Divide y vencerás

Consiste en descomponer un problema en subproblemas, resolver independientemente los

subproblemas para luego combinar sus soluciones y obtener una solución del problema

original. Esta técnica puede ser utilizada con éxito en problemas como multiplicación de

matrices, ordenación de vectores, etc.

 Método voraz

Este método trata de producir algún tipo de mejor resultado a partir de un conjunto de

opciones candidatas. Par ello se va procediendo paso a paso realizándose la mejor elección

de entre las posibles. Puede emplearse en problemas de optimización, como el conocido de

la mochila, en la búsqueda de caminos mínimos sobre grafos, la planificación en la

ejecución de programas en un computador, etc.

 Top Down

También conocida como de arriba-abajo (diseño descendente) y consiste en establecer una

serie de niveles de mayor a menor complejidad (arriba-abajo) que den solución al

problema. Consiste en efectuar una relación entre las etapas de la estructuración de forma

que una etapa jerárquica y su inmediato inferior se relacionen mediante entradas y salidas

de información.

 Bottom Up

El diseño ascendente se refiere a la identificación de aquellos procesos que necesitan

computarizarse conforme vayan apareciendo, su análisis como sistema y su codificación, o

bien, la adquisición de paquetes de software para satisfacer el problema inmediato.


Herramientas

Las herramientas utilizadas comúnmente para diseñar algoritmos son:

 Pseudocódigo

 Diagrama de Flujo.

 Diagramas Nassi/Shneiderman-S (Chapin)

Pseudocódigo

Es una descripción de un algoritmo informático de programación de alto nivel compacto e

informal que utiliza las convenciones estructurales de un lenguaje de programación

verdadero, pero que está diseñado para la lectura humana en lugar de la lectura en máquina,

y con independencia de cualquier otro lenguaje de programación. Normalmente, el

pseudocódigo omite detalles que no son esenciales para la comprensión humana del

algoritmo, tales como declaraciones de variables, código específico del sistema y algunas

subrutinas. (Andrés Martínez 2016)

Ejemplo 1. Determinar si el promedio de dos calificaciones de un estudiante y si es o no

aprobado. Variables a utilizar: promedio, calif1, calif2

INICIO
Leer calif1, calilf2
Calcular promedio
Si promedio es menor a 7 entonces
mostrar «NO APROBADO»
imprimir promedio
si No Mostrar «APROBADO»
imprimir promedio
FIN

Ejemplo 2. Determinar el volumen de una caja de dimensiones A, B y C se puede


establecer de la siguiente forma:

INICIO.

Leer las medidas A, B y C.

Realizar el producto de A * B * C y guardarlo en V

(V = A * B * C).

Escribir el resultado V.

FIN.

Diagrama de flujo

También conocido como flowchart es una técnica de programación de representación de

algoritmos antigua y muy utilizada.

Joyanes Aguilar, lo define como:

“Un diagrama que utiliza los símbolos (cajas) que tiene los pasos de un algoritmo

escritos en esas cajas unidas por flechas, denominadas líneas de flujo, que indican la

secuencia en que se debe ejecutar”.

Para Osvaldo Cairó “Un diagrama de flujo representa la esquematización gráfica de un

algoritmo.”
En realidad muestra gráficamente los pasos

o procesos a seguir para alcanzar la solución de

un problema.

Un diagrama de flujo debe reflejar:

 El comienzo del programa

 Las operaciones que el programa

realiza

 El orden en que se realizan

 El final del programa

Diagrama de Nassi – Shneiderman

El diagrama N-S o también conocido como

diagrama de Chapin es una técnica de

especificación de algoritmos que combina la

descripción textual, propia del

pseudocódigo, con la representación gráfica

del diagrama de flujo. (Anívar Chaves Torres 2008)

El diagrama N-S cuenta con un conjunto limitado de símbolos para representar los pasos

del algoritmo, por ello se apoya en expresiones del lenguaje natural; sin embargo, dado que

el lenguaje natural es muy extenso y se presta para la ambigüedad, solo se utiliza un

conjunto de palabras, a las que se denomina palabras reservadas. Las palabras reservadas

más utilizadas son:

 Inicio Fin Leer Escribir


 Mientras Repita Hasta Para

 Incrementar Decrementar Hacer Función

 Entero Real Carácter Cadena

 Lógico Retornar

Bibliografía

 Enciclopedia de Clasificaciones. (2016). Tipos de algoritmos. Recuperado

de: http://www.tiposde.org/ciencias-exactas/843-tipos-de-algoritmos/

 Cairó B. O. (2006). Fundamentos de programación. Pienso en C. Recuperado de

http://librosysolucionarios.net

 Martínez A. (2016). Tecnología de la información y comunicación. Recuperado de

https://andresmtzg.wordpress.com/2012/09/27/concepto-de-algoritmo-diagrama-de-

flujo-y-pseudocodigo/

 Chaves T. A. (2008). Diseño de algoritmos mediante diagramas de Nassi

Shneiderman. Recuperado de

http://www.monografias.com/trabajos19/algoritmos/algoritmos.shtml

También podría gustarte