Manual PseInt
Tabla de contenidos
1 Introducción
4 Funciones Matemáticas
5 Mensajes de Error
Introducción
PseInt (Pseudo Intérprete) es un Entorno de Desarrollo Integrado (IDE, por sus siglas en inglés) para
PseudoCódigo, un lenguaje de programación imperativa simple y en castellano.
Es decir, PseInt es un editor e intérprete de programas escritos en PseudoCódigo. Su interfaz gráfica permite
crear, almacenar, ejecutar y corregir fácilmente programas en PseudoCódigo.
La sencillez del lenguaje PseudoCódigo lo hacen ideal para la enseñanza de la programación. Permite escribir
programas con instrucciones condicionales (Si-Entonces-Sino, Segun) y ciclos (Mientras, Hasta Que,
Para), y también usar valores numéricos (números decimales), lógicos, caracteres y arreglos. También provee
funciones de entrada/salida y algunas funciones matemáticas.
Este proyecto se encuentra en http://pseint.sourceforge.net y de allí se puede descargar la última versión del
programa, acceder al foro de soporte y también unirse al equipo de desarrollo del programa. No es necesario
ser programador para esto último (aunque mejor si lo sos), en muchas ocasiones es necesario el ojo crítico de
un docente que usa el programa o de un alumno que quiere proponer mejoras; otras veces se necesita de
quien quiera aportar documentación (esta página dinámica está para eso). En cualquiera de los casos, el
desarrollador principal les espera.
Elementos de la Ventana
● Barra de Título
● Menú de Opciones
● Barra de Acceso Rápido
● Área de Trabajo
● Área de Información de Ejecución
● Barras de scroll
Información de Ejecución
En ella aparecen los errores encontrados, ya sean de sintaxis (antes de ejecutarse) o errores en tiempo de
ejecución. Al hacer click sobre los mismos, automáticamente se seleccionará la línea que contiene dicho error
en el área de trabajo. Si la ejecución se interrumpe de forma anormal (presionando Ctrl+Pause o finalizando
el proceso por medio del sistema operativo), dicha información no puede ser actualizada. A partir de la
versión 1.1 se puede redimensionar esta área manipulando la línea divisoria entre dicha área y el área de
trabajo. Notar que al pasar por sobre esa línea divisoria, el cursor del ratón se mostrará como una doble
flecha; manteniendo el botón izquierdo apretado podemos cambiar las dimensiones de las áreas.
Debido a que la comunicación entre el entorno y el intérprete propiamente dicho se realiza a través de
archivos temporales, es posible que el entorno no funcione correctamente si el sistema operativo Windows no
se encuentra en el directorio "c:\windows". Para solucionar este problema, se debe editar el archivo Pselnt.ini
que se encuentra en el directorio de instalación. Si no se encuentra allí, debe ser creado en la carpeta junto a
los ejecutables. En dicho archivo se debe agregar (en cualquier lugar) la siguiente línea: WinDir=E:\windows\
En este ejemplo, Windows se encuentra en la carpeta "e:\windows". Nótese que la ruta termina en "\". Esto
siempre debe ser así. No seria correcto "e:\windows".
Otro posible problema que puede presentarse al ejecutar la aplicación es que un mensaje indique que no se
encontró el intérprete. Debe asegurarse de ejecutar VPSeInt.exe desde el directorio donde instaló la
aplicación. Si intentó actualizar el intérprete, consulte la documentación adjunta.
Si esto no soluciona su problema, escriba a zaskar @hotmail.com y describa con detalle el error en cuestión.
Consideraciones Previas
En las secciones siguientes, la sintaxis del lenguaje PseudoCódigo (es decir, las reglas que permiten decir si
un programa está bien escrito) es definida usando una notación similar a la notación BNF (Backus-Naur
Form).
Las palabras y símbolos que pertenecen al pseudocódigo se escriben tal como deben ir, por ejemplo:
Proceso; mientras que los nombres de variables y otros símbolos y expresiones que pueden variar son
escritos entre corchetes angulares, por ejemplo: <condición>.
Algoritmos
Un programa escrito en PseudoCódigo comienza con la palabra clave Proceso seguida del nombre del
programa, luego le sigue una secuencia de instrucciones y finaliza con la palabra FinProceso.
Proceso <nombre>
<secuencia de instrucciones>
FinProceso
Donde una secuencia de instrucciones es una lista de una o más instrucciones, cada una terminada en punto
y coma.
<instrucción>;
<instrucción>;
...
<instrucción>;
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.
Note que no puede haber instrucciones fuera del programa, aunque sí 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 y números, comenzando
siempre con una letra.
● 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.
● Las palabras reservadas no llevan acentos. Por ejemplo, Segun, Dimension.
Asignación
Ejemplos :
Entrada
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.
Ejemplos :
Leer Cantidad;
Leer Valorl,Valor2,Valor3;
Salida
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.
Ejemplos:
Dimensionamiento
Esta instrucción define un arreglo con el nombre indicado en <indentificador> 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 (,).
Ejemplos:
Condicional
La secuencia de instrucciones ejecutadas por la instrucción Si-Entonces-Sino depende del valor de una
condición lógica.
Si <condición>
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áusla 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.
Ejemplos :
Si A>B
Entonces
Escribir "Es mayor";
Sino
Escribir "Es menor o igual";
FinSi
Leer Muchos;
Si Muchos = 10
Entonces
Escribir "Demasiados articulos.";
Sino
Escribir "Solo se consideraran los 10 primeros.";
FinSi
Selección Multiple
La secuencia de instrucciones ejecutada por una instrucción Segun 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.
Ejemplo :
Leer a;
Segun a Hacer
0,1,2,3: Escribir "Desaprobado";
4,5,6: Escribir "Condicional";
10: Escribir "Excelente!";
De Otro Modo: Escribir "Aprobado";
FinSegun
Mientras Hacer
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.
Ejemplo :
La instrucción Repetir-Hasta Que ejecuta una secuencia de instrucciones hasta que la condición sea
verdadera.
Repetir
<instrucciones>
Hasta Que <condición>
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.
Ejemplo :
Repetir
Tot <- Tot+a;
Escribir "Ingrese un número (0 para salir)";
Leer a;
Hasta Que a=0;
Escribir "Total:",Tot;
Para
Para <variable> <- <inicial> Hasta <final> ( Con Paso <paso> ) Hacer
<instrucciones>
FinPara
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.
Ejemplo :
Operadores
Suma
Operador Significado Ejemplo
Relacionales
> Mayor que 3>2
< Menor que 'ABC'<'abc'
= Igual que 4=3
Menor o igual
<= 'a'<='b'
que
Mayor o igual
>= 4>=5
que
Lógicos
& Conjunción (y). (7>4) & (2=1) //falso
(1=1 | 2=1) //
| Disyunción (o).
verdadero
~ Negación (no). ~(2<5) //falso
Algebraicos
* Multiplicación
/ División
^ Potenciación
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áticas
Función Significado
RC(X) Raíz Cuadrada de X
ABS(X) Valor Absoluto de X
LN(X) Logaritmo Natural de X
Función Exponencial de
EXP(X)
X
SEN(X) Seno de X
COS(X) Coseno de X
ATAN(X) Arcotangente de X
TRUNC
Parte entera de X
(X)
REDON
Entero más cercano a X
(X)
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.
Mensajes de Error
La siguiente es una lista de errores posibles en un programa que son detectados por el intérprete, junto con
su explicación. Los errores están en orden alfabético.
Asignación incompleta
Este error se produce por la ausencia de alguna de las dos partes de una asignación: la variable o la expresión
a asignar.
Ejemplos :
Caracter no válido
Los identificadores deben comenzar siempre con una letra y pueden continuar sólo con letras o números.
Tampoco pueden usarse palabras reservadas como identificadores. Este error puede ser causado también por
una constante incorrectamente escrita.
Ejemplos :
Tot <- Tot + Primer_Var; // el símbolo '_' no puede ser parte de un identificador
Demasiados Parámetros
Ocurre cuando una instrucción que admite sólo un parámetro recibe más de uno.
Ejemplo:
Ejemplo:
a <- 0;
Escribir 7/a; // la operación 7/a equivale a 7/0 y es imposible.
La cláusula Entonces siempre debe estar después de un Si, de lo contrario está mal colocada.
Este error es ocasionado por una constante de tipo caracter incorrecta. Se deben delimitar con comillas ( " )
tanto el inicio como el final de la misma.
Ejemplo:
Este error se produce cuando en alguna expresión se abre un paréntesis que luego no se cierra. Se deben
cerrar todos los paréntesis que se abren.
Ejemplo:
Escribir (3+4/(2*a);
Todas las estructuras deben tener un comienzo y un final dentro del algoritmo. Este error se produce porque
falta la palabra reservada FinSi/FinPara/FinMientras/Hasta Que/FinSegun o porque una de esas
palabras está mal ubicada.
Falta condición
Las estructuras de control repetitivas (Mientras y Repetir-Hasta Que) y las condicionales (Si y Segun)
requieren que exista una condición lógica.
Ejemplos:
Si
Hasta Que
Según Hacer Mientras
Falta Hacer
Las condiciones lógicas en las instrucciones Para, Mientras y Segun deben ser seguidas por la palabra
Hacer.
Ejemplos:
Falta Hasta
Ejemplos:
Todos los programas deben comenzar con la palabra reservada Proceso y a continuación un nombre válido
(un identificador) para el programa.
Ejemplo:
Cada instrucción en una secuencia debe finalizar siempre con punto y coma (;).
Ejemplos:
Escribir 1
Leer a
Dimension b(10)
Faltan Parámetros
Este error se produce cuando se intenta ejecutar una instrucción sin los parámetros mínimos necesarios.
Ejemplos:
Faltan subíndices
En la declaración de un arreglo siempre deben indicarse las dimensiones y sus cantidades máximas de
elementos.
Ejemplo:
Dimensión C;
Estas estructuras deben tener su comienzo y su final en el mismo nivel, es decir que si están anidadas deben
incluirse completamente una dentro de otra. En el caso de un programa, el Proceso es único y debe ser el
primero en abrirse y el último en cerrarse.
Identificador no válido
Los identificadores deben comenzar siempre con una letra y pueden continuar sólo con letras o números. No
pueden ser palabras reservadas.
Ejemplos :
Todas las acciones deben estar contenidas dentro del programa. Cualquier acción posterior a la palabra
FinProceso ocasiona este error.
Este error ocurre cuando una instrucción que no espera parámetros los recibe. FinSi, Repetir, FinPara,
FinMientras, FinProceso y FinSegun no llevan parámetros.
Logaritmo de 0 o negativo
Este error se produce cuando se utilizan variables, constantes u operadores correspondientes a tipos de datos
diferentes.
En las instrucciones Segun y Para la constantes, expresiones y variables deben ser siempre de tipo
numérico.
Ejemplos:
a <-'b';
c <- 5+a; // a es caracter
Según a; // a es caracter
Si 1='3' // '3' es caracter, 1 es numérica
Sólo las instrucciones secuenciales (Leer, Escribir, Dimension, <-) deben finalizar con punto y coma ( ; ).
Ejemplos:
Este error puede ser causado por acceder a un elemento de un arreglo utilizando una cantidad de índices
diferente a las dimensiones declaradas o al invocar una función matemática con más de un parámetro.
Ejemplos:
Operador incorrecto
Este error se produce cuando se encuentra un operador mal ubicado o desconocido. También ocurre cuando
se encuentran dos operadores seguidos sin una constante o variable en medio.
Ejemplos :
Parámetro nulo
Ejemplos :
Raíz de negativo
PseudoCódigo sólo trabaja con números reales, por lo que no se puede calcular la raíz cuadrada de un
número negativo.
Ejemplo :
Escribir 2+(2*a)-b) ;
Se esperaba <opción>:
La instrucción de selección múltiple Segun deben incluir al menos una opción. Para estar bien construída, la
opción debe constar de uno o más números, seguidos por dos puntos ( : ) y luego la secuencia de
instrucciones a ejecutar.
Ejemplo :
Segun a Hacer
Escribir b;
Se esperaba asignación
La instrucción Para siempre debe contener la asignación que inicialice la variable de control.
Ejemplo:
Este error se produce cuando en una instrucción Para se incluye un parámetro (u otra instrucción) no válido.
Ejemplos :
Se esperaba Entonces
La instrucción condicional Si siempre debe tener una cláusula Entonces (es decir, una secuencia de
instrucciones a ejecutarse cuando la condición es verdadera).
Ejemplos :
Si a=1
Sino
Escribir 2;
FinSi
// Para evitar este error se puede negar la condición: a<>1
// y transformar la cláusula Sino en una cláusula Entonces
Este error se produce cuando se encuentran dos variables o constantes consecutivas sin ningún separador en
medio.
Ejemplo :
Todos los programas deben comenzar con la palabra Proceso y a continuación un nombre válido (un
identificador) para el programa. Todas las acciones deben estar contenidas dentro del programa.
La cláusula Sino siempre debe estar dentro de un Si, de lo contrario está mal colocada.
Este error se produce cuando se usa como índice de un arreglo a un valor fuera de las posiciones definidas en
la instrucción Dimension que se usó para declarar el arreglo.
Ejemplo :
Dimension a(5);
Escribir a(6); // el arreglo a sólo tiene 5 elementos.
Obtenido de "http://www.gleducar.org.ar/wiki/index.php/Manual_PseInt"