You are on page 1of 41

Algoritmos y lenguajes

de programación
Ing. Anuar Gpe. Olivares Rubalcava

1
Unidad 2
Técnicas para la
formulación de Algoritmos

2
2.1-Representación grafica de algoritmos
Para la representación gráfica del algoritmo debe emplearse un método que sea
independiente del lenguaje de programación elegido.
Joyanes Aguilar señala que para conseguir este objetivo se precisa que el algoritmo sea
representado gráfica o numéricamente, de modo que las sucesivas acciones no
dependan de la sintaxis de ningún lenguaje de programación, sino que la descripción se
emplee para su transportación en un programa.

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.
4.- Lenguaje español, inglés.
5.- Fórmulas.

El método 4 y 5 no son fáciles de programar. Un algoritmo no puede ser representado


por una simple fórmula
3
2.2-Diagramas de flujo

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


representación de algoritmos antigua y muy utilizada.

Un diagrama de flujo, Jayanes Aguilar, lo define como: “un diagrama


que utiliza los símbolos (cajas) estándar mostrados en la tabla 1 y 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”

4
2.2-Diagramas de flujo
Tabla 1. Símbolos de diagramas de flujo.

5
2.2-Diagramas de flujo
Tabla 1. Símbolos de diagramas de flujo.

6
2.2-Diagramas de flujo
Tabla 1. Símbolos de diagramas de flujo.

7
2.2-Diagramas de flujo
Tabla 1. Símbolos de diagramas de flujo.

8
2.2-Diagramas de flujo

Tabla 1. Símbolos de diagramas de flujo.

9
2.2-Diagramas de flujo

Tabla 1. Símbolos de diagramas de flujo.

10
2.2-Diagramas de flujo

Ejemplo.

11
2.3-Pseudocodigo

El pseudocódigo (o falso lenguaje) es comúnmente utilizado por los


programadores para omitir secciones de código o para dar una explicación
del paradigma que tomó el mismo programador para hacer sus códigos,
esto quiere decir que el pseudocódigo no es programable sino facilita la
programación.

El principal objetivo del pseudocódigo es el de representar la solución a un


algoritmo de la forma más detallada posible, y a su vez lo más parecida
posible al lenguaje que posteriormente se utilizará para la codificación del
mismo.

12
2.3-Pseudocodigo

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
Es un lenguaje de especificación de algoritmos. El uso de tal lenguaje hace
el paso de codificación final (esto es, la traducción a un lenguaje de
programación) relativamente fácil.

El pseudocódigo nació como un lenguaje similar al inglés y era un medio


representar básicamente las estructuras de control de programación
estructurada. 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.

13
2.3-Pseudocodigo

Según Analía Lanzillotta: "Considerado como un lenguaje falso, el


pseudocódigo es un lenguaje intermedio entre nuestro lenguaje y el de
programación, debido a que quien lo utiliza se guía por una serie de
normas pero sin llegar a usar una estructura tan rígida como la del
lenguaje de programación.

El objetivo al que apunta es que quien lo pone en práctica se centre más


en la solución del algoritmo o el diseño de un software que en el programa
que utiliza para crearlo. Y esto es posible porque es más fácil de manipular
ya que no tiene que tener en mente el lenguaje en sí y además, más fácil
de codificar.

14
2.3-Pseudocodigo

REGLAS DE CONSTRUCCIÓN
CARACTERÍSTICAS Y PARTES:

Las principales características de este lenguaje son:

• Se puede ejecutar en un ordenador


• Es una forma de representación sencilla de utilizar y de manipular.
• Facilita el paso del programa al lenguaje de programación.
• Es independiente del lenguaje de programación que se vaya a utilizar.
• Es un método que facilita la programación y solución al algoritmo del
programa.

15
2.3-Pseudocodigo

REGLAS DE CONSTRUCCIÓN
CARACTERÍSTICAS Y PARTES:

Todo documento en pseudocódigo debe permitir la descripción de:

Instrucciones primitivas.
Instrucciones de proceso.
Instrucciones de control.
Instrucciones compuestas.
Instrucciones de descripción.

16
2.3-Pseudocodigo

REGLAS DE CONSTRUCCIÓN
CARACTERÍSTICAS Y PARTES:

Estructura a seguir en su realización:

Cabecera.
Programa.
Modulo.
Tipos de datos: Constantes, Variables.
Cuerpo.
Inicio.
Instrucciones.
Fin.

17
2.3-Pseudocodigo
LISTA DE PALABRAS RESERVADAS Y SU SIGNIFICADO:
Instrucción Significado
algoritmo
Marca el comienzo de un algoritmo y le adjudica un nombre
nombre
Inicio Marca el comienzo de un bloque de instrucciones
fin Marca el final de un bloque de instrucciones

variables

nombre_var es Declaración de variables. Indica el identificador y el tipo de las


tipo_de_datos variables que se van a usar en el algoritmo

constantes

Declaración de constantes. La expresión se evalúa y su resultado


nombre_const =
se asigna a la constante. Este valor no puede modificarse a lo
expresión
largo del programa.
Entrada de datos. El programa lee un dato desde un dispositivo de
leer (variable) entrada (si no se indica otra cosa, el teclado), asignando ese dato
a la variable 18
2.3-Pseudocodigo
LISTA DE PALABRAS RESERVADAS Y SU SIGNIFICADO:
Instrucción Significado
Salida de datos. Sirve para que el programa escriba un dato
escribir (variable) en un dispositivo de salida (si no se indica otra cosa, la
pantalla).
Asignación. La expresión se evalúa y su resultado es
variable = expresión
asignado a la variable
Instrucción condicional doble. El ordenador evaluará la
condición, que debe ser una expresión lógica. Si es
si (condición) verdadera, realiza las acciones-1, y, si es falsa, las acciones-
entonces 2.Instrucción condicional simple. Es igual pero carece de la
rama “si_no”, de modo que, si la expresión de falsa, no se
realiza ninguna acción y la ejecución continúa por la siguiente
instrucción
inicio
acciones-1
fin
si_no
inicio
acciones-2
fin
19
2.3-Pseudocodigo
LISTA DE PALABRAS RESERVADAS Y SU SIGNIFICADO:

Instrucción Significado

Instrucción condicional múltiple. Se utiliza cuando hay más de


dos condiciones posibles (verdadero o falso) . Se evalúa la
según (expresión) expresión, que suele ser de tipo entero, y se busca un valor en
hacer la lista valor1, valor2,… valorN que coincida con ella,
realizándose las acciones asociadas al valor coincidente.Si
ningún valor de la lista coincide con la expresión del “según”, se
realizan las acciones de la parte “si_no”.
inicio
valor1: acciones-1
valor2: acciones-2

valor3: acciones-N
si_no: acciones-si_no
fin

20
2.3-Pseudocodigo
LISTA DE PALABRAS RESERVADAS Y SU SIGNIFICADO:

Instrucción Significado
Bucle mientras. Las acciones se repiten en tanto la condición,
mientras (condición) que debe ser una expresión lógica, sea verdadera. La condición
hacer se evalúa antes de entrar al bloque de acciones, de modo que
pueden no ejecutarse ninguna vez.
inicio
acciones
fin
Bucle repetir. Las acciones se repiten en tanto que la condición,
que debe ser una expresión lógica, sea verdadera. Se parece
repetir
mucho al anterior, pero la condición se evalúa al final del bucle,
por lo que éste se ejecuta, como mínimo, una vez
inicio
acciones
fin
mientras que
(condición)

21
2.3-Pseudocodigo
LISTA DE PALABRAS RESERVADAS Y SU SIGNIFICADO:

Instrucción Significado

Bucle para. Se evalúa la expresión expr-ini, que debe ser de tipo


para variable desde
entero, y se asigna ese valor a la variable. Dicha variable se
expr-ini hasta expr-fin
incrementa en una unidad en cada repetición de las acciones. Las
hacer
acciones se repiten hasta que la variable alcanza el valor expr-fin.

inicio
acciones
fin

22
23
2.4-Diagramas Estructurados (Nassi- Schneider)

El diagrama N-S de Nassi-Schneiderman (conocido también como


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 diagramas de flujo se pueden escribir
diferentes acciones en una caja.

24
2.4-Diagramas Estructurados (Nassi- Schneider)

Ejemplo de diagrama de Nassi-Schneiderman (N-S)

25
2.4-Diagramas Estructurados (Nassi- Schneider)
La representación en este diagrama se realiza a través de los siguientes
componentes:

•Declaración de variables, constantes e inicialización.


•Ingreso de valores
•Proceso de valores con el objetivo de obtener resultados en el que se
puede combinar diferentes componentes (Estructuras de Asignación,
Estructuras Secuenciales, Selectivas o de Decisión, Repetitivas)
• Salida de resultados obtenidos

La primer componente consiste en una caja en la cual se van a declarar


todas las variables y/o constantes que se utilizarán en el resto del
algoritmo a las cuales se le asigna un valor inicial.

26
2.4-Diagramas Estructurados (Nassi- Schneider)
El ingreso de valores se representa escribiendo dentro del bloque la
palabra leer y entre paréntesis el valor que se ingresa.

Dentro del proceso tenemos las siguientes componentes:

Estructura de Asignación
Las operaciones de asignación son el modo de darles valores a una variable. La
operación de asignación se representa con el símbolo u operador ←.
El formato general de una operación de asignación es:

Nombre de la variable ← expresión

27
2.4-Diagramas Estructurados (Nassi- Schneider)
Ejemplos:
A←5
total←3+6
N←0
N←N+1
M←8<5
Y←’CALLE’

Los tipos de asignación pueden ser:


• Asignación simple.- cuando a una variable le corresponde nada más
que un dato
• Asignación aritmética- cuando a una variable le corresponde el
resultado de una expresión aritmética.
• Asignación lógica.- cuando a una variable le corresponde el resultado
de una expresión lógica

28
2.4-Diagramas Estructurados (Nassi- Schneider)
Estructura Secuencial

Se caracterizan porque una acción se ejecuta detrás de otra. El flujo del


programa coincide con el orden físico en el que se ha ido poniendo las
instrucciones.

29
2.4-Diagramas Estructurados (Nassi- Schneider)
Ejemplos.

1- Declarar dos constantes e 2- Idem anterior pero con los


inicializarlas con los valores 10 valores a sumar dinámicos.
y 20 respectivamente, sumarlas
y mostrar el resultado.

30
2.4-Diagramas Estructurados (Nassi- Schneider)
Estructuras Selectivas o de Decisión

Para la aplicación se debe tener en cuenta las expresiones lógicas cuyo valor es
verdadero o falso, se denomina también expresiones booleanas.
En conclusión, la estructuras selectivas o decisión o comparación o pregunta, se
ejecutan unas acciones u otras según se cumpla o no una determinada condición;
pueden ser: simples, dobles, o múltiples.

Simples.- Se evalúa la condición y si esta da como resultado verdad se ejecuta una


determinada acción o grupo de acciones, en caso contrario se salta dicho grupo de
acciones.

31
2.4-Diagramas Estructurados (Nassi- Schneider)
Estructuras Selectivas o de Decisión

Dobles.- Cuando el resultado de evaluar la condición es verdad se ejecuta una


determinada acción o grupo de acciones y si el resultado es falso otra acción o
grupo de acciones diferentes.

32
2.4-Diagramas Estructurados (Nassi- Schneider)
Estructuras Selectivas o de Decisión

Dobles.- Cuando el resultado de evaluar la condición es verdad se ejecuta una


determinada acción o grupo de acciones y si el resultado es falso otra acción o
grupo de acciones diferentes.

33
2.5-Estructuras algorítmicas
Son un grupo de formas de trabajo que permiten mediante la manipulación de
variables, realizar ciertos procesos específicos que nos lleven a la solución de problemas

34
2.6-Estructuras secuenciales
Son aquellos en que una acción sigue a otra en
secuencia.

Sus componentes son:

❑ Asignación: es el paso de valores o resultados


a una zona de la memoria, esta zona será
reconocida con el nombre de la variable que
recibe el valor.

❑ Entrada: consiste en recibir un valor o un dato,


por medio de algún dispositivo de entrada.

❑ Salida: se manda el resultado o mensaje, por


medio de algún dispositivo de salida del
computador.
35
2.7-Estructuras condicionales
Son aquellos que permiten comparar una variable contra otro valor, se utilizan para
tomar decisiones lógicas, existen tres tipos :

Simples: Se ejecuta una determinada acción cuando se cumple determinanda


condición.

Ejemplo :

si (condición ) entonces
(acción )
fin si

36
2.8-Estructuras condicionales

Dobles: Son aquellos que permiten elegir entre dos opciones o alternativas posibles.

Ejemplo:

Si < condición > entonces


< acción uno >
si_no
<acción dos>
fin_si

37
2.8-Estructuras condicionales
Múltiples: son aquellos que permiten elegir cuando hay mas de dos elecciones o
alternativas posibles.
Ejemplo:
si < condición > entonces
< instrucción >
sino
si < condición 2>entonces
< instrucción >
sino
.
.
fin si

38
2.8-Estructuras cíclicas
Son aquellos tipos de estructura que repiten una secuencia de instrucciones un
número determinado de veces, para encontrar la solución a un problema, estas son
denominados como bucles, entre los cuales encontramos:

Para: en esta se conoce el numero de


iteraciones o veces que se repite la acción,
antes de iniciar la ejecución del ciclo.

39
2.8-Estructuras cíclicas
Mientras que: este se repite un numero determinado de veces, para esto
la instrucción se acompaña de una condición, la cual debe cumplirse para
seguir la ejecución del ciclo, de lo contrario este se termina.

40
2.8-Estructuras cíclicas
Repita- hasta: este repite un proceso una cantidad de veces, determinada
por un condicional, que lo ejecuta hasta que la condicional se cumpla.
una característica importante de esta estructura es que permite realizar el
proceso cuando menos una vez, ya que la condición se evalúa al final del
proceso.

41

You might also like