Sei sulla pagina 1di 12

Pseudocódigo

Ir a la navegaciónIr a la búsqueda
Commons-emblem-question book yellow.svg
Este artículo tiene referencias, pero necesita más para complementar su
verificabilidad.
Puedes colaborar agregando referencias a fuentes fiables como se indica aquí. El
material sin fuentes fiables podría ser cuestionado y eliminado.
Este aviso fue puesto el 7 de mayo de 2017.
En ciencias de la computación, y análisis numérico, el pseudocódigo (o lenguaje de
descripción algorítmico) es una descripción de alto nivel compacta e informal1 del
principio operativo de un programa informático u otro algoritmo.

Utiliza las convenciones estructurales de lenguaje de programación real,2 pero está


diseñado para la lectura humana en lugar de la lectura mediante 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. El lenguaje de programación se complementa, donde sea
conveniente, con descripciones detalladas en lenguaje natural, o con notación
matemática compacta. Se utiliza pseudocódigo pues este es más fácil de entender
para las personas que el código del lenguaje de programación convencional, ya que
es una descripción eficiente y con un entorno independiente de los principios
fundamentales de un algoritmo. Se utiliza comúnmente en los libros de texto y
publicaciones científicas que se documentan varios algoritmos, y también en la
planificación del desarrollo de programas informáticos, para esbozar la estructura
del programa antes de realizar la efectiva codificación.

No existe una sintaxis estándar para el pseudocódigo, aunque los ocho IDE's que
manejan pseudocódigo tengan su sintaxis propia. Aunque sea parecido, el
pseudocódigo no debe confundirse con los programas esqueleto que incluyen código
ficticio, que pueden ser compilados sin errores. Los diagramas de flujo y UML
pueden ser considerados como una alternativa gráfica al pseudocódigo, aunque sean
más amplios en papel.

Índice
1 Aplicaciones
2 Sintaxis
3 Definición de datos en pseudocódigo
3.1 Funciones y operaciones
3.2 Estructuras de control
3.2.1 Estructuras secuenciales
3.2.2 Estructuras selectivas
3.2.2.1 Selectiva doble (alternativa)
3.2.2.2 SELECCION MULTIPLE
3.2.2.3 Selectiva múltiple-Casos
3.2.3 Estructuras iterativas
3.2.3.1 Bucle mientras
3.2.3.2 Bucle repetir
3.2.3.3 Bucle hacer
3.2.3.4 Bucle para
3.2.3.5 Bucle para cada
3.2.4 El anidamiento
3.3 Funciones y procedimientos
4 Desarrollo de algoritmos
4.1 Ventajas del pseudocódigo sobre los diagramas de flujo
5 Véase también
6 Referencias
6.1 Bibliografía
7 Enlaces externos
Aplicaciones
Generalmente se utiliza pseudocódigo en los libros de texto y publicaciones
científicas relacionadas con la informática y la computación numérica, para la
descripción de algoritmos, de manera que todos los programadores puedan entenderlo,
aunque no todos conozcan el mismo lenguaje de programación. Generalmente, en los
libros de texto se adjunta una explicación que acompaña a la introducción y que
explica las convenciones particulares en uso. El nivel de detalle del
seudocientífico puede, en algunos casos, acercarse a la de formalizar los idiomas
de propósito general.

Un programador que tiene que aplicar un algoritmo específico, sobre todo uno
desfamiliarizado, generalmente comienza con una descripción en pseudocódigo, y
luego "traduce" esa descripción en el lenguaje de programación meta y lo modifica
para que interactúe correctamente con el resto del programa. Los programadores
también pueden iniciar un proyecto describiendo la forma del código en pseudocódigo
en el papel antes de escribirlo en su lenguaje de programación, como ocurre en la
estructuración de un enfoque de Top-down y Bottom-up arriba hacia abajo.

Sintaxis
En la actualidad y por lo general, el pseudocódigo, como su nombre lo indica, no
obedece a las reglas de sintaxis de ningún idioma en particular ni es de forma
estándar sistemática, a pesar de que cualquier escritor en particular vaya a pedir
prestado las estructuras de control general, la sintaxis y el estilo, por ejemplo,
de algún lenguaje de programación convencional. Pero en caso de que se quiera
ejecutar, se debe llevar a forma tipo, para que no genere mensajes de error. Las
fuentes populares incluyen la sintaxis de Pascal, BASIC, C, C++, Java, Lisp, y
ALGOL. Por lo general, se omiten las declaraciones de variables. A veces, las
llamadas a funciones, los bloques de código y el código contenido dentro de un loop
se remplazan por una sentencia de una línea en lenguaje natural.

Dependiendo del escritor, el pseudocódigo puede variar mucho en su estilo, yendo


desde en un extremo, una imitación casi exacta de un lenguaje de programación real,
hasta al acercarse a una descripción en prosa de formato de pseudocódigo en el otro
extremo.

Este es un ejemplo de pseudocódigo (para el juego matemático bizz buzz):

Pseudocódigo estilo Fortran:

programa bizzbuzz
hacer i = 1 hasta 100
establecer print_number a verdadero
si i es divisible por 3
escribir "Bizz"
establecer print_number a falso
si i es divisible por 5
escribir "Buzz"
establecer print_number a falso
si print_number, escribir i
escribir una nueva línea
fin del hacer
Pseudocódigo estilo Pascal:

procedimiento bizzbuzz
para i := 1 hasta 100 hacer
establecer print_number a verdadero;
Si i es divisible por 3 entonces
escribir "Bizz";
establecer print_number a falso;
Si i es divisible por 5 entonces
escribir "Buzz";
establecer print_number a falso;
Si print_number, escribir i;
escribir una nueva línea;
fin
Pseudocódigo estilo C:

subproceso funcion bizzbuzz


para (i <- 1; i<=100; i++) {
establecer print_number a verdadero;
Si i es divisible por 3
escribir "Bizz";
establecer print_number a falso;
Si i es divisible por 5
escribir "Buzz";
establecer print_number a falso;
Si print_number, escribir i;
escribir una nueva línea;
}
Definición de datos en pseudocódigo
La definición de datos se da por supuesta, sobre todo en las variables sencillas,
si se emplea formaciones: pilas, colas, vectores o registros, se pueden definir en
la cabecera del algoritmo, y naturalmente cuando empleemos el pseudocódigo para
definir estructuras de datos, esta parte la desarrollaremos adecuadamente.

Funciones y operaciones
Cada autor usa su propio pseudocódigo con sus respectivas convenciones. Por
ejemplo, la instrucción "reemplace el valor de la variable {\displaystyle x} x por
el valor de la variable {\displaystyle y} y" puede ser representado como:

asigne a {\displaystyle x\,} x\, el valor de {\displaystyle y\,} y\,


{\displaystyle {\color {OliveGreen}{\mathit {x}}}\;{\color {BlueViolet}{\mathit
{\gets }}}\;{\color {OliveGreen}{\mathit {y;}}}} {\color {OliveGreen}{\mathit
{x}}}\;{\color {BlueViolet}{\mathit {\gets }}}\;{\color {OliveGreen}{\mathit {y;}}}
{\displaystyle {\color {OliveGreen}{\mathit {x}}}\;{\color {BlueViolet}{\mathit
{:=}}}\;{\color {OliveGreen}{\mathit {y;}}}} {\color {OliveGreen}{\mathit {x}}}\;
{\color {BlueViolet}{\mathit {:=}}}\;{\color {OliveGreen}{\mathit {y;}}}
{\displaystyle {\color {OliveGreen}{\mathit {x}}}\;{\color {BlueViolet}{\mathit
{=}}}\;{\color {OliveGreen}{\mathit {y;}}}} {\color {OliveGreen}{\mathit {x}}}\;
{\color {BlueViolet}{\mathit {=}}}\;{\color {OliveGreen}{\mathit {y;}}}
Las operaciones aritméticas se representan de la forma usual en matemáticas.

{\displaystyle {\color {Gray}{\mathit {\


{Esto\;es\;un\;comentario\;normalmente\;matem{\acute {a}}tico\}}}}} {\color {Gray}
{\mathit {\{Esto\;es\;un\;comentario\;normalmente\;matem{\acute {a}}tico\}}}}
{\displaystyle {\color {OliveGreen}\mathrm {volumen} }\;{\color {BlueViolet}
{\mathit {\gets }}}\;{\color {Red}{\mathit {\pi }}}{\color {OliveGreen}{\mathit
{r}}}{}^{2}{\color {OliveGreen}{\mathit {h}}}} {\displaystyle {\color
{OliveGreen}\mathrm {volumen} }\;{\color {BlueViolet}{\mathit {\gets }}}\;{\color
{Red}{\mathit {\pi }}}{\color {OliveGreen}{\mathit {r}}}{}^{2}{\color {OliveGreen}
{\mathit {h}}}}
{\displaystyle {\color {Gray}{\mathit
{//y\;este\;es\;otro\;comentario\;normalmente\;de\;texto//}}}} {\color {Gray}
{\mathit {//y\;este\;es\;otro\;comentario\;normalmente\;de\;texto//}}}
{\displaystyle {\color {OliveGreen}\mathrm {hipotenusa} }\;{\color
{BlueViolet}\mathrm {\gets } }\;{\sqrt {{\color {OliveGreen}{\mathit {a}}}{}^{2}\;
{\color {BlueViolet}{\mathit {+}}}\;{\color {OliveGreen}{\mathit {b}}}{}^{2}\;}}}
{\displaystyle {\color {OliveGreen}\mathrm {hipotenusa} }\;{\color
{BlueViolet}\mathrm {\gets } }\;{\sqrt {{\color {OliveGreen}{\mathit {a}}}{}^{2}\;
{\color {BlueViolet}{\mathit {+}}}\;{\color {OliveGreen}{\mathit {b}}}{}^{2}\;}}}
{\displaystyle {\color {OliveGreen}\mathrm {resultado} }\;{\color {BlueViolet}
{\mathit {\gets }}}\;{\color {Tan}\mathrm {sin} }({\color {OliveGreen}{\mathit
{a}}})} {\displaystyle {\color {OliveGreen}\mathrm {resultado} }\;{\color
{BlueViolet}{\mathit {\gets }}}\;{\color {Tan}\mathrm {sin} }({\color {OliveGreen}
{\mathit {a}}})}
Estructuras de control
En la redacción de pseudocódigo se utiliza tres tipos de estructuras de control:
las secuenciales, las selectivas y las iterativas.

Estructuras secuenciales
Las instrucciones se siguen en una secuencia fija que normalmente viene dada por el
número de renglón. Es decir que las instrucciones se ejecutan de arriba hacia
abajo.

{\displaystyle {\color {BlueViolet}\mathrm {instrucci{\acute {o}}n_{1};} }}


{\displaystyle {\color {BlueViolet}\mathrm {instrucci{\acute {o}}n_{1};} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucci{\acute {o}}n_{2};} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucci{\acute {o}}n_{2};} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucci{\acute {o}}n_{3};} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucci{\acute {o}}n_{3};} }}
{\displaystyle \cdots } \cdots
{\displaystyle {\color {BlueViolet}\mathrm {instrucci{\acute {o}}n_{\it {n}};} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucci{\acute {o}}n_{\it {n}};} }}
Estructuras selectivas
Las instrucciones selectivas representan instrucciones que pueden o no ejecutarse,
según el cumplimiento de una condición.

Diagrama de flujo que muestra el funcionamiento de la instrucción condicional.

{\displaystyle {\color {Sepia}\mathrm {Si} }\;{\color {OliveGreen}\mathrm


{condici{\acute {o}}n} }\;{\color {Sepia}\mathrm {Entonces} }} {\displaystyle
{\color {Sepia}\mathrm {Si} }\;{\color {OliveGreen}\mathrm {condici{\acute
{o}}n} }\;{\color {Sepia}\mathrm {Entonces} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucciones;} }} {\displaystyle
{\color {BlueViolet}\mathrm {instrucciones;} }}
{\displaystyle {\color {Sepia}\mathrm {Fin\;Si} }} {\displaystyle {\color
{Sepia}\mathrm {Fin\;Si} }}
La condición es una expresión booleana. Instrucciones es ejecutada sólo si la
condición es verdadera.

Selectiva doble (alternativa)


La instrucción alternativa realiza una instrucción de dos posibles, según el
cumplimiento de una condición.

Diagrama de flujo que muestra el funcionamiento de la instrucción condicional.

{\displaystyle {\color {Sepia}\mathrm {Si} }\;{\color {OliveGreen}\mathrm


{condici{\acute {o}}n} }\;{\color {Sepia}\mathrm {Entonces} }} {\displaystyle
{\color {Sepia}\mathrm {Si} }\;{\color {OliveGreen}\mathrm {condici{\acute
{o}}n} }\;{\color {Sepia}\mathrm {Entonces} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucciones_{1};} }} {\displaystyle
{\color {BlueViolet}\mathrm {instrucciones_{1};} }}
{\displaystyle {\color {Sepia}\mathrm {Si\;no\;Entonces} }} {\displaystyle {\color
{Sepia}\mathrm {Si\;no\;Entonces} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucciones_{2};} }} {\displaystyle
{\color {BlueViolet}\mathrm {instrucciones_{2};} }}
{\displaystyle {\color {Sepia}\mathrm {Fin\;Si} }} {\displaystyle {\color
{Sepia}\mathrm {Fin\;Si} }}
La condición es una variable booleana o una función reducible a booleana (lógica,
Verdadero/Falso). Si esta condición es cierta se ejecuta Instrucciones1, si no es
así, entonces se ejecuta Instrucciones2.

SELECCION MULTIPLE
También es común el uso de una selección múltiple que equivaldría a anidar varias
funciones de selección.

{\displaystyle {\color {Sepia}\mathrm {Si} }\;{\color {OliveGreen}\mathrm


{condici{\acute {o}}n_{1}} }\;{\color {Sepia}\mathrm {Entonces} }} {\displaystyle
{\color {Sepia}\mathrm {Si} }\;{\color {OliveGreen}\mathrm {condici{\acute
{o}}n_{1}} }\;{\color {Sepia}\mathrm {Entonces} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucciones_{1};} }} {\displaystyle
{\color {BlueViolet}\mathrm {instrucciones_{1};} }}
{\displaystyle {\color {Sepia}\mathrm {Si\;no\;si} }\;{\color {OliveGreen}\mathrm
{condici{\acute {o}}n_{2}} }\;{\color {Sepia}\mathrm {Entonces} }} {\displaystyle
{\color {Sepia}\mathrm {Si\;no\;si} }\;{\color {OliveGreen}\mathrm {condici{\acute
{o}}n_{2}} }\;{\color {Sepia}\mathrm {Entonces} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucciones_{2};} }} {\displaystyle
{\color {BlueViolet}\mathrm {instrucciones_{2};} }}
{\displaystyle {\color {Sepia}\mathrm {Si\;no\;si} }\;{\color {OliveGreen}\mathrm
{condici{\acute {o}}n_{3}} }\;{\color {Sepia}\mathrm {Entonces} }} {\displaystyle
{\color {Sepia}\mathrm {Si\;no\;si} }\;{\color {OliveGreen}\mathrm {condici{\acute
{o}}n_{3}} }\;{\color {Sepia}\mathrm {Entonces} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucciones_{3};} }} {\displaystyle
{\color {BlueViolet}\mathrm {instrucciones_{3};} }}
{\displaystyle \cdots } \cdots
{\displaystyle {\color {Sepia}\mathrm {Si\;no\;Entonces} }} {\displaystyle {\color
{Sepia}\mathrm {Si\;no\;Entonces} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucciones_{\it {n}};} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucciones_{\it {n}};} }}
{\displaystyle {\color {Sepia}\mathrm {Fin\;Si} }} {\displaystyle {\color
{Sepia}\mathrm {Fin\;Si} }}
En este caso hay una serie de condiciones que tienen que ser mutuamente
excluyentes, si una de ellas se cumple las demás tienen que ser falsas
necesariamente, hay un caso si no que será cierto cuando las demás condiciones sean
falsas.

En esta estructura si Condición1 es cierta, entonces se ejecuta sólo


Instrucciones1. En general, si Condicióni es verdadera, entonces sólo se ejecuta
Instruccionesi

Selectiva múltiple-Casos
Una construcción similar a la anterior (equivalente en algunos casos) es la que se
muestra a continuación.

{\displaystyle {\color {Sepia}\mathrm {Seg{\acute {u}}n} }\;{\color


{OliveGreen}\mathrm {variable} }\;{\color {Sepia}\mathrm {Hacer} }} {\displaystyle
{\color {Sepia}\mathrm {Seg{\acute {u}}n} }\;{\color {OliveGreen}\mathrm {variable}
}\;{\color {Sepia}\mathrm {Hacer} }}
{\displaystyle {\color {Sepia}\mathrm {caso} }\;{\color {OliveGreen}\mathrm
{valor_{1};} }} {\displaystyle {\color {Sepia}\mathrm {caso} }\;{\color
{OliveGreen}\mathrm {valor_{1};} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucciones_{1};} }} {\displaystyle
{\color {BlueViolet}\mathrm {instrucciones_{1};} }}
{\displaystyle {\color {Sepia}\mathrm {caso} }\;{\color {OliveGreen}\mathrm
{valor_{2};} }} {\displaystyle {\color {Sepia}\mathrm {caso} }\;{\color
{OliveGreen}\mathrm {valor_{2};} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucciones_{2};} }} {\displaystyle
{\color {BlueViolet}\mathrm {instrucciones_{2};} }}
{\displaystyle {\color {Sepia}\mathrm {caso} }\;{\color {OliveGreen}\mathrm
{valor_{3};} }} {\displaystyle {\color {Sepia}\mathrm {caso} }\;{\color
{OliveGreen}\mathrm {valor_{3};} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucciones_{3};} }} {\displaystyle
{\color {BlueViolet}\mathrm {instrucciones_{3};} }}
{\displaystyle \cdots } \cdots
{\displaystyle {\color {Sepia}\mathrm {De\;Otro\;Modo} }} {\displaystyle {\color
{Sepia}\mathrm {De\;Otro\;Modo} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucciones_{\it {n}};} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucciones_{\it {n}};} }}
{\displaystyle {\color {Sepia}\mathrm {Fin\;Seg{\acute {u}}n} }} {\displaystyle
{\color {Sepia}\mathrm {Fin\;Seg{\acute {u}}n} }}
En este caso hay un Indicador es una variable o una función cuyo valor es comparado
en cada caso con los valores "Valori", si en algún caso coinciden ambos valores,
entonces se ejecutarán las Instruccionesi correspondientes. La sección en otro caso
es análoga a la sección si no del ejemplo anterior.

Estructuras iterativas
Las instrucciones iterativas representan la ejecución de instrucciones en más de
una vez.

Bucle mientras
Artículo principal: Bucle while
El bucle se repite mientras la condición sea cierta, si al llegar por primera vez
al bucle mientras la condición es falsa, el cuerpo del bucle no se ejecuta alguna
vez.

Diagrama de flujo que muestra el funcionamiento de la instrucción mientras

{\displaystyle {\color {Sepia}\mathrm {Mientras} }\;{\color {OliveGreen}\mathrm


{condici{\acute {o}}n} }\;{\color {Sepia}\mathrm {Hacer} }} {\displaystyle {\color
{Sepia}\mathrm {Mientras} }\;{\color {OliveGreen}\mathrm {condici{\acute {o}}n} }\;
{\color {Sepia}\mathrm {Hacer} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucciones;} }} {\displaystyle
{\color {BlueViolet}\mathrm {instrucciones;} }}
{\displaystyle {\color {Sepia}\mathrm {Fin\;Mientras} }} {\displaystyle {\color
{Sepia}\mathrm {Fin\;Mientras} }}
Bucle repetir
Existen otras variantes que se derivan a partir de la anterior. La estructura de
control repetir se utiliza cuando es necesario que el cuerpo del bucle se ejecuten
al menos una vez y hasta que se cumpla la condición:

{\displaystyle {\color {Sepia}\mathrm {Repetir} }} {\displaystyle {\color


{Sepia}\mathrm {Repetir} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucciones;} }} {\displaystyle
{\color {BlueViolet}\mathrm {instrucciones;} }}
{\displaystyle {\color {Sepia}\mathrm {Hasta\;Que} }\;{\color {OliveGreen}\mathrm
{condici{\acute {o}}n} }} {\displaystyle {\color {Sepia}\mathrm {Hasta\;Que} }\;
{\color {OliveGreen}\mathrm {condici{\acute {o}}n} }}
La estructura anterior equivaldría a escribir:

{\displaystyle {\color {BlueViolet}\mathrm {instrucciones;} }} {\displaystyle


{\color {BlueViolet}\mathrm {instrucciones;} }}
{\displaystyle {\color {Sepia}\mathrm {Mientras} }\;{\color {BlueViolet}\mathrm
{\neg } }({\color {OliveGreen}\mathrm {condici{\acute {o}}n} })\;{\color
{Sepia}\mathrm {Hacer} }} {\displaystyle {\color {Sepia}\mathrm {Mientras} }\;
{\color {BlueViolet}\mathrm {\neg } }({\color {OliveGreen}\mathrm {condici{\acute
{o}}n} })\;{\color {Sepia}\mathrm {Hacer} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucciones;} }} {\displaystyle
{\color {BlueViolet}\mathrm {instrucciones;} }}
{\displaystyle {\color {Sepia}\mathrm {Fin\;Mientras} }} {\displaystyle {\color
{Sepia}\mathrm {Fin\;Mientras} }}
Bucle hacer
El Bucle hacer se utiliza para repetir un bloque de código mientras se cumpla
cierta condición.

{\displaystyle {\color {Sepia}\mathrm {Hacer} }\;} {\displaystyle {\color


{Sepia}\mathrm {Hacer} }\;}
{\displaystyle {\color {BlueViolet}\mathrm {instrucciones;} }\;} {\displaystyle
{\color {BlueViolet}\mathrm {instrucciones;} }\;}
{\displaystyle {\color {Sepia}\mathrm {Mientras} }\;{\color {OliveGreen}\mathrm
{condici{\acute {o}}n} }} {\displaystyle {\color {Sepia}\mathrm {Mientras} }\;
{\color {OliveGreen}\mathrm {condici{\acute {o}}n} }}
Bucle para
Artículo principal: Bucle for
Una estructura de control muy común es el ciclo FOR, la cual se usa cuando se desea
iterar un número conocido de veces, empleando como índice una variable que se
incrementa (o decrementa):

{\displaystyle {\color {Sepia}\mathrm {Para} }\;{\color {OliveGreen}{\mathit


{i}}}\;{\color {BlueViolet}{\mathit {\gets }}}\;{\color {OliveGreen}{\mathit
{x}}}\;{\color {Sepia}\mathrm {Hasta} }\;{\color {OliveGreen}{\mathit {n}}}\;
{\color {Sepia}\mathrm {Con\;Paso} }\;{\color {OliveGreen}{\mathit {z}}}\;{\color
{Sepia}\mathrm {Hacer} }} {\displaystyle {\color {Sepia}\mathrm {Para} }\;{\color
{OliveGreen}{\mathit {i}}}\;{\color {BlueViolet}{\mathit {\gets }}}\;{\color
{OliveGreen}{\mathit {x}}}\;{\color {Sepia}\mathrm {Hasta} }\;{\color {OliveGreen}
{\mathit {n}}}\;{\color {Sepia}\mathrm {Con\;Paso} }\;{\color {OliveGreen}{\mathit
{z}}}\;{\color {Sepia}\mathrm {Hacer} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucciones;} }} {\displaystyle
{\color {BlueViolet}\mathrm {instrucciones;} }}
{\displaystyle {\color {Sepia}\mathrm {Fin\;Para} }} {\displaystyle {\color
{Sepia}\mathrm {Fin\;Para} }}
la cual se define como:

{\displaystyle {\color {OliveGreen}{\mathit {i}}}\;{\color {BlueViolet}\mathrm


{\gets } }\;{\color {OliveGreen}{\mathit {x}}}} {\displaystyle {\color {OliveGreen}
{\mathit {i}}}\;{\color {BlueViolet}\mathrm {\gets } }\;{\color {OliveGreen}
{\mathit {x}}}}
{\displaystyle {\color {Sepia}\mathrm {Mientras} }\;{\color {OliveGreen}{\mathit
{i}}}\;{\color {BlueViolet}{\mathit {\leq }}}\;{\color {OliveGreen}{\mathit {n}}}\;
{\color {Sepia}\mathrm {Hacer} }} {\displaystyle {\color {Sepia}\mathrm
{Mientras} }\;{\color {OliveGreen}{\mathit {i}}}\;{\color {BlueViolet}{\mathit
{\leq }}}\;{\color {OliveGreen}{\mathit {n}}}\;{\color {Sepia}\mathrm {Hacer} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucciones;} }} {\displaystyle
{\color {BlueViolet}\mathrm {instrucciones;} }}
{\displaystyle {\color {OliveGreen}{\mathit {i}}}\;{\color {BlueViolet}\mathrm
{\gets } }\;{\color {OliveGreen}{\mathit {i}}}\;{\color {BlueViolet}\mathrm {+} }\;
{\color {OliveGreen}{\mathit {z;}}}} {\displaystyle {\color {OliveGreen}{\mathit
{i}}}\;{\color {BlueViolet}\mathrm {\gets } }\;{\color {OliveGreen}{\mathit {i}}}\;
{\color {BlueViolet}\mathrm {+} }\;{\color {OliveGreen}{\mathit {z;}}}}
{\displaystyle {\color {Sepia}\mathrm {Fin\;Mientras} }} {\displaystyle {\color
{Sepia}\mathrm {Fin\;Mientras} }}
Bucle para cada
Por último, también es común usar la estructura de control para cada. Esta
sentencia se usa cuando se tiene una lista o un conjunto {\displaystyle L} L y se
quiere iterar por cada uno de sus elementos:

{\displaystyle {\color {Sepia}\mathrm {Para\;Cada} }\;{\color {OliveGreen}{\mathit


{x}}}\;{\color {BlueViolet}{\mathit {\in }}}\;{\color {OliveGreen}{\mathit {L}}}\;
{\color {Sepia}\mathrm {Hacer} }} {\displaystyle {\color {Sepia}\mathrm
{Para\;Cada} }\;{\color {OliveGreen}{\mathit {x}}}\;{\color {BlueViolet}{\mathit
{\in }}}\;{\color {OliveGreen}{\mathit {L}}}\;{\color {Sepia}\mathrm {Hacer} }}
{\displaystyle {\color {BlueViolet}\mathrm {instrucciones;} }} {\displaystyle
{\color {BlueViolet}\mathrm {instrucciones;} }}
{\displaystyle {\color {Sepia}\mathrm {Fin\;Para\;Cada} }} {\displaystyle {\color
{Sepia}\mathrm {Fin\;Para\;Cada} }}
Si asumimos que los elementos de {\displaystyle L} L son {\displaystyle
L_{0},L_{1},\dots ,L_{n}} L_{0},L_{1},\dots ,L_{n}, entonces esta sentencia
equivaldría a:

{\displaystyle {\color {Sepia}\mathrm {Para} }\;{\color {OliveGreen}{\mathit


{i}}}\;{\color {BlueViolet}{\mathit {\gets }}}\;{\color {OliveGreen}\mathrm {0} }\;
{\color {Sepia}\mathrm {Hasta} }\;{\color {OliveGreen}{\mathit {n}}}\;{\color
{Sepia}\mathrm {Con\;Paso} }\;{\color {OliveGreen}\mathrm {1} }\;{\color
{Sepia}\mathrm {Hacer} }} {\displaystyle {\color {Sepia}\mathrm {Para} }\;{\color
{OliveGreen}{\mathit {i}}}\;{\color {BlueViolet}{\mathit {\gets }}}\;{\color
{OliveGreen}\mathrm {0} }\;{\color {Sepia}\mathrm {Hasta} }\;{\color {OliveGreen}
{\mathit {n}}}\;{\color {Sepia}\mathrm {Con\;Paso} }\;{\color {OliveGreen}\mathrm
{1} }\;{\color {Sepia}\mathrm {Hacer} }}
{\displaystyle {\color {OliveGreen}{\mathit {x}}}\;{\color {BlueViolet}{\mathit
{\gets }}}\;{\color {OliveGreen}{\mathit {L_{i}}}}} {\color {OliveGreen}{\mathit
{x}}}\;{\color {BlueViolet}{\mathit {\gets }}}\;{\color {OliveGreen}{\mathit
{L_{i}}}}
{\displaystyle {\color {BlueViolet}\mathrm {instrucciones;} }} {\displaystyle
{\color {BlueViolet}\mathrm {instrucciones;} }}
{\displaystyle {\color {Sepia}\mathrm {Fin\;Para} }} {\displaystyle {\color
{Sepia}\mathrm {Fin\;Para} }}
Que es lo mismo que:

{ \color{Sepia} \mathrm{ Para


\;

{ \color{OliveGreen} \mathit{ i}} \;


{ \color{BlueViolet} \mathit{ \gets }} \;
{ \color{OliveGreen} \mathrm{ 0}} \;
{ \color{Sepia} \mathrm{ Hasta }} \;
{ \color{OliveGreen} \mathit{ n}} \;
{ \color{Sepia} \mathrm{ Hacer }}
</math>

{\displaystyle {\color {OliveGreen}{\mathit {x}}}\;{\color {BlueViolet}{\mathit


{\gets }}}\;{\color {OliveGreen}{\mathit {L_{i}}}}} {\color {OliveGreen}{\mathit
{x}}}\;{\color {BlueViolet}{\mathit {\gets }}}\;{\color {OliveGreen}{\mathit
{L_{i}}}}
{\displaystyle {\color {BlueViolet}\mathrm {instrucciones;} }} {\displaystyle
{\color {BlueViolet}\mathrm {instrucciones;} }}
{\displaystyle {\color {Sepia}\mathrm {Fin\;Para} }} {\displaystyle {\color
{Sepia}\mathrm {Fin\;Para} }}}}
Sin embargo, en la práctica existen mejores formas de implementar esta instrucción
dependiendo del problema.
Es importante recalcar que el pseudocódigo no es un lenguaje estandarizado. Eso
significa que diferentes autores podrían dar otras estructuras de control o bien
usar estas mismas estructuras, pero con una notación diferente. Sin embargo, las
funciones matemáticas y lógicas toman el significado usual que tienen en matemática
y lógica, con las mismas expresiones.

El anidamiento
Cualquier instrucción puede ser sustituida por una estructura de control. El
siguiente ejemplo muestra el pseudocódigo del ordenamiento de burbuja, que tiene
varias estructuras anidadas. Este algoritmo ordena de menor a mayor los elementos
de una lista {\displaystyle L} L.

{\displaystyle {\begin{array}{l}{\color {Sepia}\mathrm {Procedimiento} }\;{\color


{BlueViolet}\mathrm {Ordenar} }\;({\color {OliveGreen}L}\;)\\\left\updownarrow
{\begin{array}{l}{\color {Gray}//Comentario:\;L=(L_{1},L_{2},\dots
,L_{n})\;es\;una\;lista\;con\;n\;elementos//}\\{\color {OliveGreen}k}\;{\color
{BlueViolet}\gets }\;{\color {OliveGreen}0;}\\{\color {Sepia}\mathrm
{Repetir} }\\\left\updownarrow {\begin{array}{l}{\color {OliveGreen}\mathrm
{intercambio} }\;{\color {BlueViolet}\gets }\;{\color {OliveGreen}\mathrm
{Falso} ;}\\{\color {OliveGreen}k}\;{\color {BlueViolet}\gets }\;{\color
{OliveGreen}k+1;}\\{\color {Sepia}\mathrm {Para} }\;{\color {OliveGreen}i}\;{\color
{BlueViolet}\gets }\;{\color {OliveGreen}1}\;{\color {Sepia}\mathrm {Hasta} }\;
{\color {OliveGreen}n-k}\;{\color {Sepia}\mathrm {Con\;Paso} }\;{\color
{OliveGreen}1}\;{\color {Sepia}\mathrm {Hacer} }\\\left\updownarrow {\begin{array}
{l}{\color {Sepia}\mathrm {Si} }\;{\color {OliveGreen}L_{i}}\;{\color
{BlueViolet}>}\;{\color {OliveGreen}L_{i+1}}\;{\color {Sepia}\mathrm
{Entonces} }\;\\\left\updownarrow {\begin{array}{l}{\color {BlueViolet}\mathrm
{intercambiar} }\;({\color {OliveGreen}L_{i},L_{i+1}}\;)\\{\color
{OliveGreen}\mathrm {intercambio} }\;{\color {BlueViolet}\gets }\;{\color
{OliveGreen}\mathrm {Verdadero} ;}\end{array}}\right.\\{\color {Sepia}\mathrm
{Fin\;Si} }\;\\\end{array}}\right.\\{\color {Sepia}\mathrm
{Fin\;Para} }\\\end{array}}\right.\\{\color {Sepia}\mathrm {Hasta\;Que} }\;{\color
{OliveGreen}\mathrm {intercambio} }\;{\color {bluet}=}\;{\color {OliveGreen}\mathrm
{Falso} ;}\end{array}}\right.\\{\color {Sepia}\mathrm
{Fin\;Procedimiento} }\;\\\end{array}}} {\displaystyle {\begin{array}{l}{\color
{Sepia}\mathrm {Procedimiento} }\;{\color {BlueViolet}\mathrm {Ordenar} }\;({\color
{OliveGreen}L}\;)\\\left\updownarrow {\begin{array}{l}{\color
{Gray}//Comentario:\;L=(L_{1},L_{2},\dots
,L_{n})\;es\;una\;lista\;con\;n\;elementos//}\\{\color {OliveGreen}k}\;{\color
{BlueViolet}\gets }\;{\color {OliveGreen}0;}\\{\color {Sepia}\mathrm
{Repetir} }\\\left\updownarrow {\begin{array}{l}{\color {OliveGreen}\mathrm
{intercambio} }\;{\color {BlueViolet}\gets }\;{\color {OliveGreen}\mathrm
{Falso} ;}\\{\color {OliveGreen}k}\;{\color {BlueViolet}\gets }\;{\color
{OliveGreen}k+1;}\\{\color {Sepia}\mathrm {Para} }\;{\color {OliveGreen}i}\;{\color
{BlueViolet}\gets }\;{\color {OliveGreen}1}\;{\color {Sepia}\mathrm {Hasta} }\;
{\color {OliveGreen}n-k}\;{\color {Sepia}\mathrm {Con\;Paso} }\;{\color
{OliveGreen}1}\;{\color {Sepia}\mathrm {Hacer} }\\\left\updownarrow {\begin{array}
{l}{\color {Sepia}\mathrm {Si} }\;{\color {OliveGreen}L_{i}}\;{\color
{BlueViolet}>}\;{\color {OliveGreen}L_{i+1}}\;{\color {Sepia}\mathrm
{Entonces} }\;\\\left\updownarrow {\begin{array}{l}{\color {BlueViolet}\mathrm
{intercambiar} }\;({\color {OliveGreen}L_{i},L_{i+1}}\;)\\{\color
{OliveGreen}\mathrm {intercambio} }\;{\color {BlueViolet}\gets }\;{\color
{OliveGreen}\mathrm {Verdadero} ;}\end{array}}\right.\\{\color {Sepia}\mathrm
{Fin\;Si} }\;\\\end{array}}\right.\\{\color {Sepia}\mathrm
{Fin\;Para} }\\\end{array}}\right.\\{\color {Sepia}\mathrm {Hasta\;Que} }\;{\color
{OliveGreen}\mathrm {intercambio} }\;{\color {bluet}=}\;{\color {OliveGreen}\mathrm
{Falso} ;}\end{array}}\right.\\{\color {Sepia}\mathrm
{Fin\;Procedimiento} }\;\\\end{array}}}
En general, las estructuras anidadas se muestran indentadas, para hacer más
sencilla su identificación a simple vista. En el ejemplo, además de la indentación,
se ha conectado con flechas los pares de delimitadores de cada nivel de
anidamiento.

Funciones y procedimientos
Muchas personas prefieren distinguir entre funciones y procedimientos. Una función,
al igual que una función matemática, recibe uno o varios valores de entrada y
regresa una salida mientras que un procedimiento recibe una entrada y no genera
alguna salida aunque en algún caso podría devolver resultados a través de sus
parámetros de entrada si estos se han declarado por referencia (ver formas de pasar
argumentos a una función o procedimiento).

En ambos casos es necesario dejar en claro cuáles son las entradas para el
algoritmo, esto se hace comúnmente colocando estos valores entre paréntesis al
principio o bien declarándolo explícitamente con un enunciado. En el caso de las
funciones, es necesario colocar una palabra como regresar o devolver para indicar
cuál es la salida generada por el algoritmo. Por ejemplo, el pseudocódigo de una
función que permite calcular {\displaystyle a^{n}} a^{n} (un número {\displaystyle
a} a elevado a potencia {\displaystyle n} n).

{\displaystyle {\color {Sepia}\mathrm {Funci{\acute {o}}n} }\;{\color


{BlueViolet}\mathrm {potencia} }\;({\color {OliveGreen}{\mathit {a,n}}})}
{\displaystyle {\color {Sepia}\mathrm {Funci{\acute {o}}n} }\;{\color
{BlueViolet}\mathrm {potencia} }\;({\color {OliveGreen}{\mathit {a,n}}})}
{\displaystyle {\color {Gray}{\mathit
{//Comentario:\;Este\;algoritmo\;calcula\;a^{n}\;con\;a\;y\;n\;n{\acute
{u}}meros\;naturales//}}}} {\color {Gray}{\mathit
{//Comentario:\;Este\;algoritmo\;calcula\;a^{n}\;con\;a\;y\;n\;n{\acute
{u}}meros\;naturales//}}}
{\displaystyle {\color {OliveGreen}{\mathit {i}}}\;{\color {BlueViolet}{\mathit
{\gets }}}\;{\color {OliveGreen}{\mathit {n;}}}} {\color {OliveGreen}{\mathit
{i}}}\;{\color {BlueViolet}{\mathit {\gets }}}\;{\color {OliveGreen}{\mathit {n;}}}
{\displaystyle {\color {OliveGreen}{\mathit {r}}}\;{\color {BlueViolet}{\mathit
{\gets }}}\;{\color {Plum}\mathrm {1;} }} {\displaystyle {\color {OliveGreen}
{\mathit {r}}}\;{\color {BlueViolet}{\mathit {\gets }}}\;{\color {Plum}\mathrm {1;}
}}
{\displaystyle {\color {OliveGreen}{\mathit {x}}}\;{\color {BlueViolet}{\mathit
{\gets }}}\;{\color {OliveGreen}{\mathit {a;}}}} {\color {OliveGreen}{\mathit
{x}}}\;{\color {BlueViolet}{\mathit {\gets }}}\;{\color {OliveGreen}{\mathit {a;}}}
{\displaystyle {\color {Sepia}\mathrm {Mientras} }\;{\color {OliveGreen}{\mathit
{i}}}\;{\color {BlueViolet}{\mathit {>}}}\;{\color {Plum}\mathrm {0} }\;{\color
{Sepia}\mathrm {Hacer} }} {\displaystyle {\color {Sepia}\mathrm {Mientras} }\;
{\color {OliveGreen}{\mathit {i}}}\;{\color {BlueViolet}{\mathit {>}}}\;{\color
{Plum}\mathrm {0} }\;{\color {Sepia}\mathrm {Hacer} }}
{\displaystyle {\color {Sepia}\mathrm {Si} }\;{\color {OliveGreen}{\mathit {i}}}\;
{\color {BlueViolet}{\mathit {\%}}}\;{\color {Plum}\mathrm {2} }{\color
{BlueViolet}{\mathit {\neq }}}\;{\color {Plum}\mathrm {0} }\;{\color {Sepia}\mathrm
{Entonces} }\;{\color {Gray}{\mathit {//\;Si\;i\;es\;impar\;(\%\;es\;resto)}}}}
{\displaystyle {\color {Sepia}\mathrm {Si} }\;{\color {OliveGreen}{\mathit {i}}}\;
{\color {BlueViolet}{\mathit {\%}}}\;{\color {Plum}\mathrm {2} }{\color
{BlueViolet}{\mathit {\neq }}}\;{\color {Plum}\mathrm {0} }\;{\color {Sepia}\mathrm
{Entonces} }\;{\color {Gray}{\mathit {//\;Si\;i\;es\;impar\;(\%\;es\;resto)}}}}
{\displaystyle {\color {OliveGreen}{\mathit {r}}}\;{\color {BlueViolet}{\mathit
{\gets }}}\;{\color {OliveGreen}{\mathit {r}}}\;{\color {BlueViolet}{\mathit
{*}}}\;{\color {OliveGreen}{\mathit {x;}}}} {\color {OliveGreen}{\mathit {r}}}\;
{\color {BlueViolet}{\mathit {\gets }}}\;{\color {OliveGreen}{\mathit {r}}}\;
{\color {BlueViolet}{\mathit {*}}}\;{\color {OliveGreen}{\mathit {x;}}}
{\displaystyle {\color {Sepia}\mathrm {Fin\;Si} }} {\displaystyle {\color
{Sepia}\mathrm {Fin\;Si} }}
{\displaystyle {\color {OliveGreen}{\mathit {x}}}\;{\color {BlueViolet}{\mathit
{\gets }}}\;{\color {OliveGreen}{\mathit {x}}}\;{\color {BlueViolet}{\mathit
{*}}}\;{\color {OliveGreen}{\mathit {x;}}}} {\color {OliveGreen}{\mathit {x}}}\;
{\color {BlueViolet}{\mathit {\gets }}}\;{\color {OliveGreen}{\mathit {x}}}\;
{\color {BlueViolet}{\mathit {*}}}\;{\color {OliveGreen}{\mathit {x;}}}
{\displaystyle {\color {OliveGreen}{\mathit {i}}}\;{\color {BlueViolet}{\mathit
{\gets }}}\;{\color {OliveGreen}{\mathit {i}}}\;{\color {BlueViolet}{\mathit
{/}}}\;{\color {Plum}\mathrm {2;} }\;} {\displaystyle {\color {OliveGreen}{\mathit
{i}}}\;{\color {BlueViolet}{\mathit {\gets }}}\;{\color {OliveGreen}{\mathit
{i}}}\;{\color {BlueViolet}{\mathit {/}}}\;{\color {Plum}\mathrm {2;} }\;}
{\displaystyle {\color {Sepia}\mathrm {Fin\;Mientras} }} {\displaystyle {\color
{Sepia}\mathrm {Fin\;Mientras} }}
{\displaystyle {\color {Sepia}\mathrm {Escribir} }\;{\color {OliveGreen}{\mathit
{r;}}}} {\displaystyle {\color {Sepia}\mathrm {Escribir} }\;{\color {OliveGreen}
{\mathit {r;}}}}
{\displaystyle {\color {Sepia}\mathrm {Fin\;Funci{\acute {o}}n} }} {\displaystyle
{\color {Sepia}\mathrm {Fin\;Funci{\acute {o}}n} }}
Un ejemplo de procedimiento seria el algoritmo de ordenamiento de burbuja, por el
que partiendo de una lista de valores estos se ordenan, nótese que en un
procedimiento, no se calcula el valor de una función, sino que se realiza una
acción, en este caso ordenar la lista.

{\displaystyle {\color {Sepia}\mathrm {Procedimiento} }\;{\color


{BlueViolet}\mathrm {DeLaBurbuja} }\;({\color {OliveGreen}{\mathit {a}}}{\color
{Plum}\mathrm {{}_{0}} },{\color {OliveGreen}{\mathit {a}}}{\color {Plum}\mathrm
{{}_{1}} },{\color {OliveGreen}{\mathit {a}}}{\color {Plum}\mathrm
{{}_{2}} },\ldots ,{\color {OliveGreen}\mathrm {a} }{}_{(}{\color {OliveGreen}
{\mathit {{}_{n}}}}{\color {BlueViolet}{\mathit {{}_{-}}}}{\color {Plum}\mathrm
{{}_{1}} }{}_{)})} {\displaystyle {\color {Sepia}\mathrm {Procedimiento} }\;{\color
{BlueViolet}\mathrm {DeLaBurbuja} }\;({\color {OliveGreen}{\mathit {a}}}{\color
{Plum}\mathrm {{}_{0}} },{\color {OliveGreen}{\mathit {a}}}{\color {Plum}\mathrm
{{}_{1}} },{\color {OliveGreen}{\mathit {a}}}{\color {Plum}\mathrm
{{}_{2}} },\ldots ,{\color {OliveGreen}\mathrm {a} }{}_{(}{\color {OliveGreen}
{\mathit {{}_{n}}}}{\color {BlueViolet}{\mathit {{}_{-}}}}{\color {Plum}\mathrm
{{}_{1}} }{}_{)})}
{\displaystyle {\color {Sepia}\mathrm {Para} }\;{\color {OliveGreen}{\mathit
{i}}}\;{\color {BlueViolet}{\mathit {\gets }}}\;{\color {Plum}\mathrm {2} }\;
{\color {Sepia}\mathrm {Hasta} }\;{\color {OliveGreen}{\mathit {n}}}\;{\color
{Sepia}\mathrm {Hacer} }} {\displaystyle {\color {Sepia}\mathrm {Para} }\;{\color
{OliveGreen}{\mathit {i}}}\;{\color {BlueViolet}{\mathit {\gets }}}\;{\color
{Plum}\mathrm {2} }\;{\color {Sepia}\mathrm {Hasta} }\;{\color {OliveGreen}{\mathit
{n}}}\;{\color {Sepia}\mathrm {Hacer} }}
{\displaystyle {\color {Sepia}\mathrm {Para} }\;{\color {OliveGreen}{\mathit
{j}}}\;{\color {BlueViolet}{\mathit {\gets }}}\;{\color {Plum}\mathrm {0} }\;
{\color {Sepia}\mathrm {Hasta} }\;{\color {OliveGreen}{\mathit {n}}}\;{\color
{BlueViolet}{\mathit {-}}}\;{\color {OliveGreen}{\mathit {i}}}\;{\color
{Sepia}\mathrm {Hacer} }} {\displaystyle {\color {Sepia}\mathrm {Para} }\;{\color
{OliveGreen}{\mathit {j}}}\;{\color {BlueViolet}{\mathit {\gets }}}\;{\color
{Plum}\mathrm {0} }\;{\color {Sepia}\mathrm {Hasta} }\;{\color {OliveGreen}{\mathit
{n}}}\;{\color {BlueViolet}{\mathit {-}}}\;{\color {OliveGreen}{\mathit {i}}}\;
{\color {Sepia}\mathrm {Hacer} }}
{\displaystyle {\color {Sepia}\mathrm {Si} }\;{\color {OliveGreen}{\mathit {a}}}
{}_{(}{\color {OliveGreen}{\mathit {{}_{j}}}}{}_{)}\;{\color {BlueViolet}{\mathit
{<}}}\;{\color {OliveGreen}{\mathit {a}}}{}_{(}{\color {OliveGreen}{\mathit
{{}_{j}}}}{\color {BlueViolet}{\mathit {{}_{+}}}}{\color {Plum}\mathrm {{}_{1}} }
{}_{)}\;{\color {Sepia}\mathrm {Entonces} }} {\displaystyle {\color {Sepia}\mathrm
{Si} }\;{\color {OliveGreen}{\mathit {a}}}{}_{(}{\color {OliveGreen}{\mathit
{{}_{j}}}}{}_{)}\;{\color {BlueViolet}{\mathit {<}}}\;{\color {OliveGreen}{\mathit
{a}}}{}_{(}{\color {OliveGreen}{\mathit {{}_{j}}}}{\color {BlueViolet}{\mathit
{{}_{+}}}}{\color {Plum}\mathrm {{}_{1}} }{}_{)}\;{\color {Sepia}\mathrm {Entonces}
}}
{\displaystyle {\color {OliveGreen}\mathrm {aux} }\;{\color {BlueViolet}{\mathit
{\gets }}}\;{\color {OliveGreen}{\mathit {a}}}{}_{(}{\color {OliveGreen}{\mathit
{{}_{j}}}}{}_{)}\;} {\displaystyle {\color {OliveGreen}\mathrm {aux} }\;{\color
{BlueViolet}{\mathit {\gets }}}\;{\color {OliveGreen}{\mathit {a}}}{}_{(}{\color
{OliveGreen}{\mathit {{}_{j}}}}{}_{)}\;}
{\displaystyle {\color {OliveGreen}{\mathit {a}}}{}_{(}{\color {OliveGreen}{\mathit
{{}_{j}}}}{}_{)}\;{\color {BlueViolet}{\mathit {\gets }}}\;{\color {OliveGreen}
{\mathit {a}}}{}_{(}{\color {OliveGreen}{\mathit {{}_{j}}}}{\color {BlueViolet}
{\mathit {{}_{+}}}}{\color {Plum}\mathrm {{}_{1}} }{}_{)}} {\displaystyle {\color
{OliveGreen}{\mathit {a}}}{}_{(}{\color {OliveGreen}{\mathit {{}_{j}}}}{}_{)}\;
{\color {BlueViolet}{\mathit {\gets }}}\;{\color {OliveGreen}{\mathit {a}}}{}_{(}
{\color {OliveGreen}{\mathit {{}_{j}}}}{\color {BlueViolet}{\mathit {{}_{+}}}}
{\color {Plum}\mathrm {{}_{1}} }{}_{)}}
{\displaystyle {\color {OliveGreen}{\mathit {a}}}{}_{(}{\color {OliveGreen}{\mathit
{{}_{j}}}}{\color {BlueViolet}{\mathit {{}_{+}}}}{\color {Plum}\mathrm {{}_{1}} }
{}_{)}\;{\color {BlueViolet}{\mathit {\gets }}}\;{\color {OliveGreen}\mathrm
{aux} }} {\displaystyle {\color {OliveGreen}{\mathit {a}}}{}_{(}{\color
{OliveGreen}{\mathit {{}_{j}}}}{\color {BlueViolet}{\mathit {{}_{+}}}}{\color
{Plum}\mathrm {{}_{1}} }{}_{)}\;{\color {BlueViolet}{\mathit {\gets }}}\;{\color
{OliveGreen}\mathrm {aux} }}
{\displaystyle {\color {Sepia}\mathrm {Fin\;Si} }} {\displaystyle {\color
{Sepia}\mathrm {Fin\;Si} }}
{\displaystyle {\color {Sepia}\mathrm {Fin\;Para} }} {\displaystyle {\color
{Sepia}\mathrm {Fin\;Para} }}
{\displaystyle {\color {Sepia}\mathrm {Fin\;Para} }} {\displaystyle {\color
{Sepia}\mathrm {Fin\;Para} }}
{\displaystyle {\color {Sepia}\mathrm {Fin\;Procedimiento} }} {\displaystyle
{\color {Sepia}\mathrm {Fin\;Procedimiento} }}
Desarrollo de algoritmos
Con el pseudocódigo se puede desarrollar cualquier algoritmo que:

Tenga un único punto de inicio.


Tenga un número finito de posibles puntos de término.
Halla un número finito de caminos, entre el punto de inicio y los posibles puntos
de término.
Ventajas del pseudocódigo sobre los diagramas de flujo
Los pseudocódigos presentan los siguientes beneficios:

Ocupan mucho menos espacio en el desarrollo del problema.


Permite representar de forma fácil operaciones repetitivas complejas.
Es más sencilla la tarea de pasar de pseudocódigo a un lenguaje de programación
formal.
Si se siguen las reglas de indentación se puede observar claramente los niveles en
la estructura del programa.
En los procesos de aprendizaje de los alumnos de programación, éstos están más
cerca del paso siguiente (codificación en un lenguaje determinado, que los que se
inician en esto con la modalidad Diagramas de Flujo).
Mejora la claridad de la solución de un problema.

Potrebbero piacerti anche