3.Pseudocódigo.
3.Pseudocódigo.
3.1.Introducción.
Es un lenguaje de especificación de algoritmos, pero muy parecido a cualquier lenguaje de programación, por lo que luego su traducción es muy sencilla, pero con la ventaja de que no se rige por las normas de un lenguaje en particular.
Está muy próximo al lenguaje natural y nos permite, en cierta medida, utilizar un lenguaje personalizado. Frente a las representaciones gráficas ocupa un espacio más reducido.
3.2.Normas generales.
No existe un estándar y se permite que cada programador utilice su propio lenguaje pseudocódigo, pero es recomendable tener en cuenta las siguientes normas:
- Indicar claramente el comienzo y el final del programa.
- Utilizar una línea para cada operación.
- Establecer un conjunto de palabras reservadas que pueden ser en Castellano. (inicio, fin, si, mientras, repetir, etc.).
- Utilizar tabulación para indicar los niveles de indentación, se pueden utilizar corchetes para los bloques de código.
- Cada estructura de control tendrá un único punto de entrada y otro de final.
- Se expresará en minúsculas, utilizando las mayúsculas para nombres de variables, ficheros, otros módulos, etc.
- Las referencias a otros módulos, subprogramas o subrutinas se harán en mayúsculas y entre los símbolos “<” y “>”, por ejemplo: <NUMBREMODULO>.
3.3.Elementos.
Se utilizan una serie de palabras clave que van indicando lo que significa el algoritmo.
3.3.1Elementos básicos.
- Nombre del algoritmo: algoritmo. Ej. algoritmo [NOMBRE_DEL_ALGORITMO]. Se utiliza al comienzo del programa para indicar el nombre del algoritmo.
- Inicio del algoritmo: inicio. Determina donde comienza el código.
- Fin del algoritmo: fin. Determina el final del código.
- Asignación: Se utiliza el símbolo “<-” o “=”.
Ej. : VARIABLE = EXPRESIÓN.
Indica la actualización de una variable con el resultado de una expresión.
- Entrada: leer. Ej. :
leer VARIABLE
Determina la actualización de una variable con un valor leído.
- Salida: mostrar. Ej.:
mostrar VARIABLE
mostrar EXPRESIÓN
Indica que el valor de la variable o expresión debe enviarse al dispositivo de salida.
- Declaración de variables: var. Ej.:
var [NOMBRES]: [tipo]
Se suele utilizar en bloque para declarar todas las variables del algoritmo.
- Declaración de constantes: const. EJ:
const [NOMBRES]:[tipo]
Se suele utilizar como en el caso anterior.
Con esto el diagrama general de un algoritmo será:
Algoritmo <nombre del algoritmo>
Var <nombre>: <tipo>
Inicio
<Instrucciones>
Fin
3.3.2Estructuras en pseudocódigo.
Se pueden realizar las mismas estructuras que con los ordinogramas: secuencial, condicionales y repetitivas. No todas se pueden implementar en todos los lenguajes de programación y en alguna de ellas hay ligeras diferencias.
3.3.2.1.Estructura secuencial.
Las distintas operaciones se realizan una a continuación de la otra y en orden descendente.
...
acción_1
...
acción_n
...
3.3.2.2.Estructura condicional simple.
Si se cumple la condición se ejecutan las acciones 1, 2,..., n y <mas_cosas> y si no se cumple, salta directamente a <mas_cosas>.
...
si <condición> entonces
<acción_1>
<acción_2>
...
<acción_n>
fin_si
<mas_cosas>
...
3.3.2.3.Estructura condicional doble.
Si se cumple la condición se ejecutan las acciones1, ..., n y <mas_cosas> y si no se cumple las acciones A, ..., Z y <mas_cosas>.
...
si <condición> Entonces
<acción_1>
...
<acción_n>
si_no
<acción_A>
...
<acción_Z>
fin_si
<mas_cosas>
...
3.3.2.4.Estructura condicional múltiple.
Dependiendo del valor de la VARIABLE ejecutará las diferentes acciones.
...
Según VARIABLE
=VALOR1 hacer
<acción_A1>
...
<acción_An>
=VALOR2 hacer
<acción_B1>
...
<acción_Bn>
...
=VALORN hacer
<acción_Z1>
...
<acción_Zn>
fin_según
...
3.3.2.5.Estructura de tipo mientras.
Mientras se cumple la condición se ejecutan las acciones. La evaluación de la condición se realiza al comienzo del bucle.
...
mientras <condición>
<acción_1>
<acción_2>
...
<acción_n>
fin_mientras
...
3.3.2.6.Estructura de tipo hasta.
Se ejecutan las acciones hasta alcanzar la condición. Las acciones se ejecutan al menos una vez realizándose la evaluación de la condición al final del bucle.
...
repetir
<acción_1>
<acción_2>
...
<acción_n>
hasta <condición>
...
3.3.2.7.Estructura de tipo para.
Nos permite ejecutar las acciones un determinado número de veces controlado por una variable. La variable se inicia con el valor Vini y se incrementa con el valor Vinc hasta conseguir Vfin.
...
para <variable> desde Vini, Hasta Vfin, Incrementando Vinc
<acción_2>
...
<acción_n>
fin_para
...
3.3.2.8.Estructura de tipo iterar.
El conjunto de acciones se repite hasta que se alcanza la condición, que está situada dentro del bucle.
<acción_1>
<accion_2>
...
<acción_n>
salir_si <condición>
<acción_a>
<acción_b>
...
<acción_z>
fin_iterar
3.4.Ejemplos.
- Programa que realiza las operaciones matemáticas básicas con dos números introducidos por teclado.
algoritmo operaciones var a,b,suma,resta,producto, cociente : entero inicio leer a leer b suma=a+b resta=a-b producto=a*b cociente=a/b mostrar “El resultado es:” mostrar suma, resta, producto, cociente fin
|
- Programa que muestra el mayor de dos números introducidos por teclado.
algoritmo mayor
var a, b : entero inicio leer a y b si a>b entonces mostrar a si_no si a=b entonces mostrar “Los números son iguales” si_no mostrar b fin_si fin_si fin |
- Programa que muestra el factorial de un número introducido por teclado.
algoritmo factorial
var n, factorial: entero Inicio leer n factorial=1 mientras n>0 factorial=factorial*n n=n-1 fin_mientras mostrar “El factorial de “,n, “es “, factorial fin
|
- Programa que muestra la suma de diez números desde el teclado.
algoritmo suma_diez
var dato[10]: array entero suma: entero inicio n=0 resultado=0 repetir introducir dato[n] resultado=resultado+dato[n] n=n+1 hasta n=10 fin |
3.5.Ejercicios.
Realizar mediante pseudocódigo los siguientes programas:
a)Mostrar la suma, por separado, de los números pares e impares comprendidos entre dos números introducidos por teclado.
b)Juego de adivinar un número generado aleatoriamente por el ordenador.
c)Resolución de una ecuación de segundo grado.
d)Presentar el resultado de elevar un número a otro introducidos por teclado, mediante multiplicaciones sucesivas.
e)Mostrar el cociente y el resto de dos números introducidos por teclado.
f)Desglosar una cantidad de dinero en el menor número de monedas de curso legal posible.
g)Mostrar n números leídos desde teclado en el orden inverso al de su introducción.