Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 14

1

¿Qué es PSEINT?
PSeInt es un intérprete de pseudocódigo, le ayuda a escribir algoritmos utilizando un pseudo-
lenguaje simple, intuitivo y en español.

El objetivo es permitir al estudiante centrar la atención en los conceptos fundamentales que debe
aprender, sin perder tiempo en los detalles de un lenguaje o del uso de un intérprete o compilador.
(ver)

Actualmente incluye otras funcionalidades como editor y ayuda integrada, generación de


diagramas de flujo o exportación a código C++ (en etapa experimental).

El proyecto se distribuye como software libre bajo licencia GPL. 1

La interfaz y el área de trabajo

1
visite http://pseint.sourceforge.net
Las funciones: botones 2

El Pseudocódigo
Las características de este pseudo lenguaje son:

• Sintaxis sencilla.
• Manejo de las estructuras básicas de control.
• Solo 3 tipos de datos básicos: numérico, carácter/cadenas de caracteres y lógico
(verdadero/falso).
• Estructuras de datos: arreglos.

Forma general de un algoritmo en Pseudocódigo


Todo algoritmo en pseudocódigo de Pseint tiene la siguiente estructura general:
3

Proceso SinTitulo

accion 1;

accion 2;

...

accion n;

FinProceso

Comienza con la palabra clave Proceso seguida del nombre del programa, luego le sigue
una secuencia de instrucciones y finaliza con la palabra FinProceso.

Una secuencia de instrucciones es una lista de una o más instrucciones, cada una
terminada en punto y coma.

Las acciones incluyen operaciones de entrada y salida, asignaciones de variables,


condicionales si-entonces o de selección múltiple y/o lazos mientras, repetir o para.

Variables

Una variable en un algoritmo computacional es una posición de memoria donde se puede


almacenar información. Por ejemplo, si un programa debe obtener el área de un triángulo,
seguramente la base del mismo y su altura se carguen en memoria en dos variables para
poder realizar el cálculo. El resultado, probablemente también se asigne en una variable
luego del cálculo para luego informarlo al usuario. Como su nombre lo indica, el valor
almacenado en una variable puede ir variando a medida que el programa avanza. En un
pseudocódigo el concepto es similar. Una variable representa un lugar donde guardar
cierta información.

En un algoritmo o programa se hace referencia a una variable mediante un identificador


(el nombre de la variable). Un identificador debe comenzar con letras, y puede contener
solo letras, números y el guión bajo. No puede contener ni espacios ni operadores, ni
coincidir con una palabra reservada o función del lenguaje, para no generar ambigüedad.
Ejemplos de identificadores válidos son: A, B, C, Lado1, Total, Nombre_y_Apellido,
4
DireccionCorreo, etc. En la mayoría de los lenguajes reales los nombres de variables no
pueden contener acentos, ni diéresis, ni eñes. En PSeInt, esto se permite si se activa la
Sintaxis Flexible (Configurar – Opciones del lenguaje (perfiles): flexible).

En algunos lenguajes se puede guardar cualquier información en cualquier variable,


mientras en otros las variables solo pueden guardar cierto tipo de informació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 siempre del mismo tipo. Por ejemplo, si
una variable se utiliza para guardar números, no puede utilizarse luego para guardar
texto. Este tipo se puede declarar explícitamente con la palabra clave Definir, o se puede
dejar que el intérprete intente deducirlo a partir de los datos que se guardan en la misma y
la forma en que se la utiliza en el algoritmo.
Si utiliza el perfil de lenguaje por defecto (Flexible), la definición explicita es opcional,
pero se puede configurar el lenguaje para que la misma sea obligatoria.
Hay dos formas de crear una variable y/o asignarle un valor: la lectura y la asignación. Si
se lee o asigna un valor en una variable que no existe, esta se crea. Si la variable ya existía,
esta toma el nuevo valor, perdiendo el viejo. Por esto se dice que la asignación y la lectura
son acciones destructivas (aunque se debe notar que en la asignación pueden intervenir
más de una variable, y solo se destruye el contenido previo de la que se encuentra a la
izquierda del signo de asignación).

Una vez inicializada, la variable puede utilizarse en cualquier expresión (para realizar un
cálculo en una asignación, para mostrar en pantalla, como condición en una estructura de
control, etc.)

Definición explícita de variables.

Los tipos de datos simples se determinan automáticamente cuando se crean las variables.
Las dos acciones que pueden crear una variable son la lectura (LEER) y la asignación(<-).
Por ejemplo, la asignación "A<-0;" está indicando implícitamente que la variable A será
una variable numérica. Una vez determinado el tipo de dato, deberá permanecer
constante durante toda la ejecución del proceso; en caso contrario el proceso será
interrumpido.

Se puede definir el tipo de una variable antes de utilizarla. Esta definición puede ser
obligatoria u opcional dependiendo de la configuración del lenguaje.
Los arreglos son estructuras homogéneas (es decir, que todos sus elementos son del
mismo tipo simple de dato). El tipo de sus elementos se determina cuando se utiliza
alguno de ellos de igual forma que para las variables de tipos simples.
Pueden ser mono o multidimensionales, pero deben ser dimensionados antes de ser
utilizados por primera vez mediante la directiva DIMENSION (ejemplo: "DIMENSION
A[10,20];").
Los identificadores, o nombres de variables, deben constar sólo de letras, números y/o
5
guion bajo (_), comenzando siempre con una letra.

Tipos de datos

• Tipos Simples: Numérico, Lógico, Carácter.


• Estructuras de Datos: Arreglos.
6
Tipos de Datos Simples

Existen tres tipos de datos básicos:

• Numérico: números, tanto enteros como decimales. Para separar decimales se utiliza el
punto. Ejemplos: 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 (pueden ser
dobles o simples). Ejemplos 'hola' "hola mundo" '123' 'FALSO' 'etc'

Los tipos de datos simples se determinan automáticamente cuando se crean las


variables. Las dos acciones que pueden crear una variable son la lectura(LEER) y la
asignación(<-).

Por ejemplo, la asignación "A<-0;" está indicando implícitamente que la variable A será
una variable numérica. Opcionalmente, se puede declarar una variable numérica como
entera con la instrucción DEFINIR.

Una vez determinado el tipo de dato, deberá permanecer constante durante toda la
ejecución del proceso; en caso contrario el proceso será interrumpido.

Expresiones

• Operadores.
• Funciones.

Operadores
Este pseudo-lenguaje dispone de un conjunto básico de operadores que pueden ser
7
utilizados para la construcción de expresiones más o menos complejas.

Las siguientes tablas exhiben la totalidad de los operadores de este lenguaje reducido:

La jerarquía de los operadores matemáticos es igual a la del álgebra, aunque puede


alterarse mediante el uso de paréntesis.

Funciones matemática
Las funciones en el pseudocódigo se utilizan de forma similar a otros lenguajes. Se coloca
su nombre seguido de los argumentos para la misma encerrados entre paréntesis (por
ejemplo trunc(x)). Se pueden utilizar dentro de cualquier expresión, y cuando se evalúe la
misma, se reemplazará por el resultado correspondiente. Actualmente, todas la funciones
disponibles son matemáticas (es decir que devolverán un resultado de tipo numérico) y
reciben un sólo parámetro de tipo numérico. A continuación se listan las funciones
integradas disponibles:
8

La función raíz cuadrada no debe recibir un argumento negativo. La función exponencial


no debe recibir un argumento menor o igual a cero.

Algunas Observaciones

• Se pueden introducir comentarios luego de una instrucción, o en líneas


separadas, mediante el uso de la doble barra ( // ). Todo lo que precede a //,
hasta el fin de la línea, no será tomado en cuenta al interpretar el algoritmo.

• No puede haber instrucciones fuera del proceso (antes de PROCESO, o después


de FINPROCESO), aunque si comentarios.

• Las estructuras no secuenciales pueden anidarse. Es decir, pueden contener otras


adentro, pero la estructura contenida debe comenzar y finalizar dentro de la
contenedora.

• Los identificadores, o nombres de variables, deben constar sólo de letras,


números y/o guión bajo (_), comenzando siempre con una letra.

• Los tipos de datos de las variables no se declaran explícitamente, sino que se


infieren a partir de su utilización.

• Las constantes de tipo carácter se escriben entre comillas ( " ).

• En las constantes numéricas, el punto ( . ) es el separador decimal.


• Las constantes lógicas son Verdadero y Falso.
9

• Actualmente este pseudolenguaje no contempla la creación de nuevas funciones o


subprocesos.

Primitivas Secuenciales (Comandos de Entrada, Proceso


y Salida)
• Lectura (Entrada).
• Asignación (Proceso).
• Escritura (Salida).

Lectura o entrada

La instrucción Leer permite ingresar información desde el ambiente.

Leer <variablel> , <variable2> , ... , <variableN> ;

Esta instrucción lee N valores desde el ambiente (en este caso el teclado) y los asigna a las
N variables mencionadas. Pueden incluirse una o más variables, por lo tanto el comando
leerá uno o más valores.

Asignación o proceso

La instrucción de asignación permite almacenar un valor en una variable.

<variable> <- <expresión> ;

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 la variable y el de la expresión deben
coincidir.
10

Escritura o salida

La instrucción Escribir permite mostrar valores al ambiente.

Escribir <exprl>, <expr2>, ... , <exprN>;

Esta instrucción imprime al ambiente (en este caso en la pantalla) los valores obtenidos de
evaluar N expresiones. Dado que puede incluir una o más expresiones, mostrará uno o
más valores.

Estructuras de Control Selectivas


Condicional Si-Entonces

La secuencia de instrucciones ejecutadas por la instrucción Si-Entonces-Sino depende del


valor de una condición lógica.
11

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 puede no estar. En ese
caso, si la condición es falsa no se ejecuta ninguna instrucción y la ejecución del programa
continúa con la instrucción siguiente.

Selección Múltiple

La secuencia de instrucciones ejecutada por una instrucción Según depende del valor de
una variable numérica.

Esta instrucción permite ejecutar opcionalmente varias acciones posibles, dependiendo


del valor almacenado en una variable de tipo numérico. Al ejecutarse, se evalúa el
contenido de la variable y se ejecuta la secuencia de instrucciones asociada con dicho
valor.
Cada opción está formada por uno o más números separados por comas, dos puntos y una
secuencia de instrucciones. Si una opción incluye varios números, la secuencia de
instrucciones asociada se debe ejecutar cuando el valor de la variable es uno de esos
números.
Opcionalmente, se puede agregar una opción final, denominada De Otro Modo, cuya
secuencia de instrucciones asociada se ejecutará sólo si el valor almacenado en la variable
no coincide con ninguna de las opciones anteriores.
Estructura de Control del Ciclo Mientras-hacer 12

La instrucción Mientras ejecuta una secuencia de instrucciones mientras una condición


sea verdadera.

Al ejecutarse esta instrucción, la condición es evaluada. Si la condición resulta verdadera,


se ejecuta una vez la secuencia de instrucciones que forman el cuerpo del ciclo. Al
finalizar la ejecución del cuerpo del ciclo se vuelve a evaluar la condición y, si es verdadera,
la ejecución se repite. Estos pasos se repiten mientras la condición sea verdadera.

Note que las instrucciones del cuerpo del ciclo pueden no ejecutarse nunca, si al evaluar
por primera vez la condición resulta ser falsa.

Si la condición siempre es verdadera, al ejecutar esta instrucción se produce un ciclo


infinito. A fin de evitarlo, las instrucciones del cuerpo del ciclo deben contener alguna
instrucción que modifique la o las variables involucradas en la condición, de modo que
ésta sea falsificada en algún momento y así finalice la ejecución del ciclo.

Estructura de Control de Ciclos Repetir-hasta que

La instrucción Repetir-Hasta Que ejecuta una secuencia de instrucciones hasta que la


condición sea verdadera.
13

Al ejecutarse esta instrucción, la secuencia de instrucciones que forma el cuerpo del ciclo
se ejecuta una vez y luego se evalúa la condición. Si la condición es falsa, el cuerpo del
ciclo se ejecuta nuevamente y se vuelve a evaluar la condición.
Esto se repite hasta que la condición sea verdadera.

Note que, dado que la condición se evalúa al final, las instrucciones del cuerpo del ciclo
serán ejecutadas al menos una vez.

Además, a fin de evitar ciclos infinitos, el cuerpo del ciclo debe contener alguna instrucción
que modifique la o las variables involucradas en la condición de modo que en algún
momento la condición sea verdadera y se finalice la ejecución del ciclo.

Estructura de Control de Ciclos Para

La instrucción Para ejecuta una secuencia de instrucciones un número determinado de


veces.

Al ingresar al bloque, la variable <variable> recibe el valor <inicial> y se ejecuta la


secuencia de instrucciones que forma el cuerpo del ciclo. Luego se incrementa la variable
<variable> en <paso> unidades y se evalúa si el valor almacenado en <variable> superó al
valor <final>. Si esto es falso se repite hasta que <variable> supere a <final>. Si se omite la
cláusula Con Paso<paso>, la variable <variable> se incrementará en 1.

Funciones/Subprocesos en PSeInt
Si el perfil de lenguaje seleccionado lo permite, se pueden declarar nuevas funciones o
subprocesos en un algoritmo en PSeudoCódigo. La sintaxis para ello es la siguiente:

SubProceso variable_de_retorno <- nombre_de_la_funcion ( argumento_1, argumento_2,


... )
accion 1;
accion 1;
14
.
.
.
accion n;
FinSubproceso

Comienza con la palabra clave SubProceso (o Función, son equivalentes) seguida de la


variable de retorno, el signo de asignación, el nombre del subproceso, y finalmente, la
lista de argumentos entre paréntesis.
Existen variantes para esta estructura. Si la función no retorna ningún valor, pueden
omitirse el identificador variable_de_retorno y el signo de asignación, es decir, colocar
directamente el nombre y los argumentos a continuación de la palabra clave SubProceso.
Si el subproceso no recibe ningún valor pueden colocarse los paréntesis vacios u omitirse,
finalizando la primer línea con el nombre del subproceso. Las reglas para los nombres de
subprocesos, variables de retorno y argumentos son las mismas que para cualquier
identificador en pseudocódigo.

Además, opcionalmente pueden agregarse las palabras claves Por Valor o Por Referencia
para indicar el tipo de paso de parámetro de cada argumento. Si no se indica, los arreglos
se pasan por referencia, las demás expresiones por valor. El paso de parámetros por
referencia implica que si la función modifica el argumento, se modificará en realidad la
variable que se utilizó en la llamada, mientras que el paso de parámetros por valor implica
que la función opera con una copia de la variable (o el resultado de la expresión) que se
utilizó en la llamada, por lo que las modificaciones que aplique la función no se verán
reflejadas fuera de la misma.

Para invocar a la función se debe utilizar su nombre y entre paréntesis los parámetros,
que podrán ser expresiones sólo si el tipo de paso de parámetros es por referencia. Una
llamada puede ser en sí una instrucción, pero si la función retorna algún valor, también
puede utilizarse como operando dentro de una expresión.

Arreglos
La instrucción Dimensión permite definir un arreglo, indicando sus dimensiones.
Dimension <identificador> (<maxl>,...,<maxN>);

Esta instrucción define un arreglo con el nombre indicado en <identificador> y N


dimensiones. Los N parámetros indican la cantidad de dimensiones y el valor máximo de
cada una de ellas. La cantidad de dimensiones puede ser una o más, y la máxima cantidad
de elementos debe ser una expresión numérica positiva. Se pueden definir más de un
arreglo en una misma instrucción, separándolos con una coma (,).
Dimension <ident1> (<max11>,...,<max1N>),..., <identM> (<maxM1>,...,<maxMN>)

Es importante notar que es necesario definir un arreglo antes de utilizarlo.

También podría gustarte