Está en la página 1de 31

Lenguajes

Algorítmicos
Algoritmo

Es el conjunto de instrucciones
que especifican la secuencia de
operaciones a realizar, en orden,
para resolver un problema.
Algoritmo

Para realizar un proceso se le debe


suministrar al procesador un
algoritmo adecuado.

Por ejemplo al cocinero, debe dársele


una receta; al pianista la partitura, y
así sucesivamente, considerando al
cocinero y al pianista como
procesadores.
Algoritmo

Cuando el procesador es una


computadora, el algoritmo se
expresa en forma de programa.

Un programa se escribe en un
lenguaje de programación.
Representación de los algoritmos
 Para representar un algoritmo se
debe utilizar algún método que
permita independizar dicho algoritmo
del lenguaje de programación
elegido. Ello permitirá que un
algoritmo pueda ser codificado
indistintamente en cualquier lenguaje.
Representación de los algoritmos
 Para conseguir este objetivo es preciso
que el algoritmo sea representado gráfica
o descriptivamente, de modo que las
acciones sucesivas no dependan de la
sintaxis de ningún lenguaje de
programación, sino que la descripción
pueda servir fácilmente para su
transformación en un programa, es decir,
su codificación.
Representación de los algoritmos
Los métodos usuales para representar un
algoritmo son:

 1. Diagrama de flujo.
 2. Diagrama N-S (Nassi-Schneiderman).
 3. Lenguaje de especificación de
algoritmos: pseudocódigo.
Diagrama de Flujo
 Undiagrama de flujo (flowchart) es
una de las técnicas de
representación de algoritmos más
antigua y a la vez más utilizada,
aunque su empleo ha disminuido
considerablemente, sobre todo
desde la aparición de lenguajes de
programación estructurados.
Diagrama de Flujo

 Un diagrama de flujo es un diagrama


que utiliza los símbolos (cajas)
estándar mostrados a continuación y
que tiene los pasos del algoritmo
escritos en esas cajas unidas por
flechas, denominadas líneas de flujo,
que indican la secuencia en que se
deben ejecutar.
Diagrama de Flujo
Símbolos
 Terminal (Representa el comienzo
"inicio" y el final. "fin", de un programa.
Puede representar también una parada o
interrupción programada que sea
necesario realizar en un programa).

 Entrada/Salida (Cualquier tipo de


introducción de datos en la memoria
desde los periféricos, "entrada", o
registro de la información procesada
en un periférico, "salida").
Diagrama de Flujo
Símbolos
 Proceso.- Cualquier tipo de
operación que pueda originar
cambio de valor, formato o
posición de la información
almacenada en memoria,
operaciones aritméticas, de
transferencia, etc.
Diagrama de Flujo
Símbolos

 Decisión.- Indica operaciones


lógicas o de comparación entre
datos y de acuerdo al resultado
No
determina cuál de los distintos
caminos alternativos del
Si
programa se debe seguir;
normalmente tiene dos salidas -
respuestas Si o No, pero puede
tener tres o más según los
casos).
Diagrama de Flujo
Símbolos
 Conector (Sirve para enlazar
dos partes cualesquiera de un
ordinograma a través de un
conector en la salida y otro
conector en la entrada. Se
refiere a la conexión en la
misma página del diagrama).
En un diagrama de flujo…
a) Existe un símbolo etiquetado "inicio", que es de
tipo elíptico.
b) Existe otro símbolo etiquetado "fin" de igual
forma que en a.
c) Si existen otros símbolos, normalmente son
rectangulares, tipo rombo o paralelogramo (el
resto de las figuras se utilizan sólo en diagramas
de flujo generales o de detalle y no siempre son
imprescindibles).
Símbolos de diagramas de flujo

Cada símbolo visto anteriormente indica el


tipo de operación a ejecutar y el diagrama
de flujo ilustra gráficamente la secuencia
en la que se ejecutan las operaciones.

Las líneas de flujo representan el flujo


secuencial de la lógica del programa.
Un rectángulo significa algún tipo de proceso en la computadora, es
decir, acciones a realizar (sumar 2 números, calcular la raíz
cuadrada de un número, etcétera).

El paralelogramo es un símbolo de entrada/salida que representa


cualquier tipo de entrada o salida desde el programa o sistema; por
ejemplo, entrada de teclado, salida en impresora o pantalla, etc.

El símbolo rombo es una caja de decisión que representa respuestas


sí/no o bien diferentes alternativas 1, 2, 3, 4,..., etc.
Cada diagrama de flujo comienza y termina
con un símbolo terminal

Un pequeño círculo es un conector y se


utiliza para conectar caminos, tras roturas
previas del flujo del algoritmo.
Por ejemplo… Inicio

nombre,
El siguiente diagrama precio,
representa la resolución de horas

un programa que deduce el


salario neto de un trabajador bruto= horas
a partir de la lectura del *precio

nombre, horas trabajadas,


precio de la hora, y sabiendo
que los impuestos aplicados Neto= bruto –
0.10 * bruto
son el 10 por 100 sobre el
salario bruto.
Los símbolos estándar nombre,
normalizados por ANSI horas,

(abreviatura de American bruto, neto

National Standards Institute)


son muy variados.
Fin
DIAGRAMA NASSI-SCHNEIDERMAN
(N-S)
 El diagrama N-S de Nassi-Schneiderman también
conocido como diagrama de Chapin, es como un
diagrama de flujo en el que se omiten las flechas de
unión y las cajas son contiguas. Las acciones sucesivas
se escriben en cajas sucesivas, y, como en los diagrama
s de flujo, se pueden escribir diferentes acciones en
una caja. Un algoritmo se representa de la forma
siguiente: Nombre del algoritmo
Acción 1
Acción 2
SI Condición NO

<acciones> <acciones>
Fin
Comparando
Inicio

Leer a, b y c Nombre del Algoritmo

Si Leer a, b y c
a+b=c

No Si a+b=c No
Si
a+c=b Escribir Si a+c=b No
“iguales”
No
Escribir Si b+c=a No
Si “iguales”
b+c=a Escribir Escribir
“iguales” “distintas”
No

Escribir Escribir
“distintas” “iguales”

Fin
Mezcla de lenguaje de programación que se emplea, dentro de la
programación estructurada, para realizar el diseño de un programa.

Se considera un primer borrador, dado que el pseudocódigo tiene que


traducirse posteriormente a un lenguaje de programación. Cabe
señalar que el pseudocódigo no puede ser ejecutado por una
computadora.

En esencial, el pseudocodigo se puede definir como un lenguaje de


especificaciones de algoritmos.

Es la representación narrativa de los pasos que debe seguir un


algoritmo para dar solución a un problema determinado.

El pseudocodigo utiliza palabras que indican el proceso a realizar.


Ventajas de utilizar un Pseudocodigo a un
Diagrama de Flujo

 Ocupa menos espacio en una hoja de papel


 Permite representar en forma fácil operaciones repetitivas complejas
 Es muy fácil pasar de pseudocodigo a un programa en algún
lenguaje de programación.
 Si se siguen las reglas se puede observar claramente los niveles que
tiene cada operación.

El pseudocódigo utiliza para representar las acciones sucesivas palabras


reservadas en inglés (similares a sus homónimos en los lenguajes de
programación), tales como star,begin, end, stop, if-then-else, while,
repeat-until….etc
Estos diagramas muestran tanto jerarquía funcional como las
interfaces de los datos entre los componentes.
Los principales componentes son:
 El rectángulo.
 Las flechas.

El rectángulo en un diagrama de estructura no representa una


declaración sino que representa un módulo, por ejemplo un
procedimiento de Pascal. Las flechas que conectan los
módulos no representan declaraciones GOTO sino llamados de
sub- rutinas; la notación implica que una sub- rutina
terminará o regresará a donde se llamó cuando termine de
realizar su función. Además, existen aquí dos tipos adicionales
de flechas con un circulo en uno de sus extremos, que
representan la transferencia de datos y la transferencia de
información de control.
Además, existen aquí dos tipos adicionales de flechas con un
circulo en uno de sus extremos, que representan la
transferencia de datos y la transferencia de información de
control.

Los módulos dan una idea clara y sintética de la función que


realiza. La lectura de los diagramas de estructura se realiza de
izquierda a derecha y de arriba hacia abajo.
Dependiendo de la herramienta que estemos utilizando para el
diseño, se nos permitirán utilizar una u otra simbología.

Cada Diagrama de Estructura , representa una burbuja del


DFD. Por lo tanto es necesario que antes de pasar a
confeccionar el diagrama tengamos en cuenta las siguientes
consideraciones.
La confección del diagrama de estructura debe confeccionarse
luego de haber realizado el modelamiento explicado en la parte
introductoria de este capitulo, lo que implica revisión, análisis y
confección de los diagramas ya terminados en la etapa de
análisis.
La confección del diagrama de estructura debe confeccionarse
luego de haber realizado el modelamiento explicado en la parte
introductoria de este capitulo, lo que implica revisión, análisis y
confección de los diagramas ya terminados en la etapa de
análisis.
Algoritmos Secuenciales
Un algoritmo puede adoptar distintas estructuras o
combinaciones de ellas: lineal o secuencial, alternativa o
selectiva y repetitiva o cíclica.

La más sencilla es la lineal, también llamada secuencial que


se caracteriza porque todos los pasos del algoritmo se
realizan en secuencia, es decir, se suceden uso a otros.
Algoritmos Secuenciales
Un ejemplo de esta estructura
es el algoritmo para calcular
la densidad de un cuerpo a
partir de los datos de masa
y volumen, mostrada a
continuación a través de un
diagrama de flujo:
Algoritmos Secuenciales
 Se basan en estrategias de selección paso a paso en las
que:

 a) las variables retenidas (algoritmos incrementales) no


pueden descartarse posteriormente, o

 b) las variables descartadas (algoritmos decrementales)


no pueden incluirse posteriormente.
Algoritmos Secuenciales
 Esta característica define lo que se entiende como
diseño descendente o diseño modular.

 Cada problema se resuelve mediante un modulo


(subprograma) y tiene un solo punto de entrada y un
solo punto de salida.

 Un programa bien diseñado consta de un programa


principal (modulo de nivel mas alto) que llama a
subprogramas (módulos de nivel mas bajo), que a su
vez pueden llamar otros sub-programas.
Algoritmos Secuenciales
El problema fundamental de los algoritmos secuenciales es
el anidamiento entre los conjuntos solución que generan.

Los algoritmos no secuenciales evitan el anidamiento entre


los conjuntos, a costa de incrementar el número de
combinaciones de variables que se evalúan, lo que
supone un alto coste computacional.

También podría gustarte