El lenguaje de pseudocódigo PSeInt
PSeInt
Todo algoritmo en pseudocódigo tiene la siguiente estructura general:
Algoritmo <NombreAlgoritmo>
accion 1;
accion 2;
.
.
.
accion n;
FinAlgoritmo
Todo programa de PSeInt comienza con la palabra clave Algoritmo, seguida del nombre del programa, luego le sigue una secuencia de instrucciones y termina con la palabra FinAlgoritmo.
Una secuencia de instrucciones es una lista de una o más instrucciones o estructuras de control.
Variables
Una variable es una posición de memoria donde se puede almacenar información. Por ejemplo, si un programa tiene que obtener el área de un triángulo; la base y la altura deberán cargarse en dos variables diferentes. El resultado de la operación también se guardará en una variable para luego mostrarlo al usuario o para que sea utilizado por otra operación del programa.
El valor asignado en una variable puede ir cambiando a medida que el programa avanza. En pseudocódigo el concepto es similar, una variable representa un lugar donde guardar la información que puede ser: un número, una letra o una colección de números y/o letras.
En un algoritmo o programa se hace referencia a una variable mediante un identificador esto es el nombre de la variable.
Las reglas para definir variables son:
- Deben comenzar con una letra o guión bajo.
- Pueden contener letras, guiones bajos y números.
- No se permiten espacios en blanco en el nombre de una variable.
- No se permiten simbolos ni signos de puntuación.
En PSeInt las variables tienen un tipo de dato asociado, por lo que durante la ejecución del algoritmo una variable deberá guardar datos del mismo tipo. Por ejemplo, si una variable se utiliza para guardar números, no puede ser utilizada para guardar texto. Para declarar una variable en PSeInt se puede utilizar la palabra clave Definir, o puede dejar que el intérprete intente deducir el tipo de dato en tiempo de ejecución.
Hay dos maneras asignar un valor a una variable: durante la lectura y la a través de la asignación explícita.
Tipos de datos
- Tipos simples: Numérico, Lógico, Carácter.
- Estructuras de datos: Arreglos.
- Definición explícita de variables.
Los tipos de datos simples se determinan cuando se crean las variables. El tipo de dato asociado a una variable siempre será constante pero el valor que contenga esa variable sí será cambiante. Una variable no puede ser declarada más de una vez y tampoco puede tener dos tipos de datos asociados.
Tipos de datos simples
Existen tres tipos de datos básicos:
- Numérico: números enteros o reales. Para separar decimales se utiliza el punto. Ejemplo: 12 23 0 -2.3 3.14
- Lógico: solo puede tomar dos valores: VERDADERO o FALSO.
- Carácter caracteres o cadenas de caracteres encerrados entre comillas (simples o dobles). Ejemplo: 'hola' "hola mundo" "123" 'FALSO' 'W'.
Arreglos
Los arreglos son estructuras de datos homogéneas (todos sus datos son del mismo tipo) que permiten almacenar determinada cantidad de datos bajo un mismo identificados, para luego referirse a los mismos utilizando uno o más subíndices.
Los arreglos pueden pensarse como vectores, matricres, etc. Para poder utilizar un arreglo, primero debe indicarse la cantidad de elementos que debe contener; esto determinará cuantos elementos se almacenarán y como se accederá a los mismos.
Ejemplo de definición de un arreglo:
Algoritmo Arreglo
Definir arreglo como Entero;
Dimension arreglo[100];
FinAlgoritmo
Definición de variables
La instrucción definir permite especificar el tipo de una o más variables. Una variable debe definirse antes de ser utilizada por primera vez. Los arreglos, se definen utilizando su identificador y el tipo de dato aplica para todos los elementos del mismo ya que un arreglo es una estructura de datos homogénea.
Los tipos de datos que pueden ser utilizados en PSeInt son: Numero, Numerico, Real, Entero, Logico, Caracter, Texto y Cadena.
En el caso de Numero, Numerico y Real son sinónimos para el tipo de datos numérico básico, que puede almacenar tanto números reales como enteros.
Una variable de tipo Entero es una especialización que sólo permite almacenar valores enteros; cualquier valor no entero que se lea o asigne en una variable de este tipo será truncado.
Una variable de tipo Logico sólo puede tomar los valores de Verdadero o Falso, también se puede utilizar 0 para falso y 1 para verdadero.
Los tipos de dato Caracter, Texto y Cadena son sinónimos para definir variables de tipo carácter. Estas pueden contener cero, uno o más caracteres arbitrarios y no tienen una longitud máxima.
Si se intenta asignar a una variable ya definida un tipo de dato incorrecto se producirá un error en tiempo de ejecución.
Expresiones y operadores
Los lenguajes de programación disponen de un conjunto básico de operadores que pueden ser utilizados para la construcción de expresiones básicas o complejas.
Algunos operadores válidos en PSeInt y en otros lenguajes de programación se muestran en las siguientes tablas:
- Operadores relacionales
Operador | Significado | Ejemplo | Resultado |
---|---|---|---|
> | mayor que | 3 > 2 | verdadero |
< | menor que | 8 < 8 | falso |
= | igual que | 5 = 4 | falso |
<= | menor o igual que | 12 <= 15 | verdadero |
>= | mayor o igual que | 8 >= 9 | falso |
<> | distinto de | 9 <> 7 | verdadero |
- Operadores lógicos
Operador | Significado | Ejemplo | Resultado |
---|---|---|---|
& | Conjunción (Y) | ( 7 > 5 ) & ( 2 = 5 ) | falso |
| | Disyunción (O) | ( 6 >= 5 ) | ( 4 = 5 ) | verdadero |
~ | Negación (NO) | ~( 5 < 8 ) | falso |
- Operadores algebraicos
Operador | Significado | Ejemplo | Resultado |
---|---|---|---|
+ | Suma | total = 65 + 20 | total será igual a 85 |
- | Resta | total = 88 - 38 | total será igual a 50 |
* | Multiplicación | area = base * altura | suma de base por altura |
/ | División | total = 150 / 15 | total será igual a 10 |
% | Módulo (resto de la división entera) | resto = 80 % 7 | resto será igual a 3 |
La jerarquía de los operadores matemáticos es igual a la del álgebra, aunque puede alterarse mediante el uso de paréntesis.
Si dos expresiones están unidas por el operador & ambas expresiones deben ser verdaderas para que el resultado sea verdadero.
Si dos expresiones están unidas por el operador | a la primera expresión que sea verdadera el resultado será verdadero.
Acciones secuenciales
Asignación
La instrucción de asignación permite almacenar un valor en una variable. Por ejemplo:
suma = 34 + 16;
Al ejecutarse la asignación, primero se evalúa la expresión de la derecha y luego se asigna el resultado a la variable de la izquierda. El tipo de dato de la variable y el de la expresión deben coincidir.
Lectura
La instrucción Leer permite ingresar información desde el teclado. Ejemplo:
Leer variable1, variable2, ..., variableN;
Esta instrucción puede tomar N valores del teclado y los asigna a N variables. Usualmente solo se utiliza una variable por cada instrucción de lectura, pero en casos especiales se pueden tomar varias variables en una sola instrucción.
Escritura
La instrucción Escribir permite mostrar valores en pantalla. Ejemplo:
Escribir expresion1, expresion2, ..., expresionN;
Esta instrucción muestra los valores obtenidos del programa en pantalla. Generalmente se utilizan para mostrar los resultados finales que el programa ha generado.
Otras acciones de PSeInt
La instrucción "Borrar Pantalla" en PSeInt, permite borrar la pantalla y colocar el cursor en la esquina superior izquierda.
La instrucción "Esperar Tecla" detiene la ejecución hasta que el usuario presiona una tecla.
Estructuras condicionales
Estructura condicional Si-Entonces-SiNo
La secuencia de instrucciones ejecutadas por la instrucción Si-Entonces-SiNo depende del valor de una condición lógica.
Si <condicion> Entonces
<instrucciones>
SiNo
<instrucciones>
FinSi
Al ejecutarse esta instrucción, se evalúa la condición y se ejecutan las instrucciones que correspondan: las instrucciones que le siguen al Entonces si la condición es verdadera, o las instrucciones que le siguen al SiNo si la condición es falsa. La condición debe ser una expresión lógica, que al ser evaluada retorna Verdadero o Falso.
La cláusula Entonces debe aparecer siempre pero la cláusula SiNo depende de que ejecutaría el programa en caso de que la condición fuese falsa.
Estructura condicional Segun
La secuencia de instrucciones ejecutada por una instrucción Segun depende del valor de una variable numérica.
Segun <variable> Hacer
<numero1>: <instrucciones>
<numero2>: <instrucciones>
<...>
De Otro Modo: <instrucciones>
FinSegun
Esta instrucción permite ejecutar opcionalmente varias acciones posibles, dependiendo del valor almacenado en una variable de tipo númerico. Al ejecutarse, se evalúa el contenido de la variable y se ejecuta la secuencia de instrucciones asociada a dicho valor.
Opcionalmente, se puede agregar una opción final, denominada De Otro Modo, cuya secuencia de instrucciones asociada se ejecutará solo si el valor almacenado en la variable no coincide con ninguna de las opciones anteriores.