Você está na página 1de 15

1

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.

Utilización del entorno

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

La Información de Ejecución se actualiza cada vez que se ejecuta el algoritmo.

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.

Problemas con el Entorno


2

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.
3

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.

Acerca de constantes, identificadores y palabras reservadas

• 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

La instrucción de asignación permite almacenar una 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.

Ejemplos :

var <- 1; // asigna el número 1 a var


Acumulador <- Acumulador + 1; // incrementa el valor del Acumulador
en 1

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.

Ejemplos :

Leer Cantidad;
Leer Valorl,Valor2,Valor3;

Salida

La instrucción Escribir permite mostrar valores al ambiente.

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


4

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:

Escribir "Ingrese el nombre:";


Escribir "Resultado:" , x*2 ;

Dimensionamiento

La instrucción Dimension permite definir un arreglo, indicando sus dimensiones.

Dimesion <identificador> (<maxl>,...,<maxN>);

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 (,).

Dimension <ident1> (<max11>,...,<max1N>),..., <identM>


(<maxM1>,...,<maxMN>)

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

Ejemplos:

Dimension Alumnos (10);


Leer Alumno (1);
Dimension Tabla (10,5,3), Resultados (5);
Escribir Tabla (1,3,2);

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.
5

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.

Segun <variable> Hacer


<número1>: <instrucciones>
<número2>,<número3>: <instrucciones>
<...>
De Otro Modo: <instrucciones>
FinSegun

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
6

Mientras Hacer

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


sea verdadera.

Mientras <condición> Hacer


<instrucciones>
FinMientras

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 :

Escribir "Ingrese un número (0 para salir)";


Leer a;
Mientras a<>0 Hacer
Tot <- Tot+a;
Escribir "Ingrese otro número (0 para salir)";
Leer a;
FinMientras
Escribir "Total:",Tot;

Repetir Hasta Que

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.
7

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

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


veces.

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 :

Escribir "Números pares de 10 a 20:";


Para a<-10 Hasta 20 Con Paso 2 Hacer
Escribir a;
FinPara

Operadores

Operador Significado Ejemplo


Relacionales
> Mayor que 3>2
< Menor que 'ABC'<'abc'
= Igual que 4=3
<= Menor o igual que 'a'<='b'
>= Mayor o igual que 4>=5
8

Lógicos
& Conjunción (y). (7>4) & (2=1) //falso
| Disyunción (o). (1=1 | 2=1) //verdadero
~ Negación (no). ~(2<5) //falso
Suma
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
EXP(X) Función Exponencial de X
SEN(X) Seno de X
COS(X) Coseno de X
ATAN(X) Arcotangente de X
TRUNC(X) Parte entera de X
REDON(X) Entero más cercano a 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 :
9

Para <-3 hasta 5 hacer


a<-;

Caracter no válido

Se encontró un caracter no permitido en el PseudoCódigo. Ejemplos: &, %, #, \, -, °.


Estos símbolos sólo pueden aparecer dentro de constantes de tipo caracter.

Constante o Identificador 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 :

Escribir 1erVar; // No puede empezar con número

Tot <- Tot + Primer_Var; // el símbolo '_' no puede ser parte de un


identificador

Escribir 3.4.5; // el número tiene dos puntos decimales

Escribir Para; // 'Para' es una palabra reservada

Demasiados Parámetros

Ocurre cuando una instrucción que admite sólo un parámetro recibe más de uno.

Ejemplo:

a <- 1,3; // 1 y 3 son dos parámetros

División por cero

Una expresión matemática no debe intentar dividir por cero.

Ejemplo:

a <- 0;
Escribir 7/a; // la operación 7/a equivale a 7/0 y es imposible.

Entonces mal colocado

La cláusula Entonces siempre debe estar después de un Si, de lo contrario está mal
colocada.

Falta cerrar comillas

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.
10

Ejemplo:

Escribir "Total:, Tot;

Falta cerrar paréntesis

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);

Falta cerrar Si/Para/Mientras/Repetir/Según

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:

Para a<- 1 Hasta c Según a

Falta Hasta

La instrucción Para siempre debe contener la cláusula Hasta <final>.

Ejemplos:

Para a<-1 hacer

Falta nombre de proceso

Todos los programas deben comenzar con la palabra reservada Proceso y a


continuación un nombre válido (un identificador) para el programa.
11

Ejemplo:

Proceso // aquí se coloca el nombre

Falta punto y coma

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:

Escribir ; // falta expresión


Leer ; // falta identificador de variable
Dimension ; // falta identificador de arreglo
Para B // falta asignación y valor final

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;

FinSegun/FinSi/FinPara/FinMientras/FinProceso/Hasta que mal colocado

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 :

Leer 1erVar; // No puede empezar con número


Leer Para; // Para es palabra reservada

Instrucción fuera de proceso


12

Todas las acciones deben estar contenidas dentro del programa. Cualquier acción
posterior a la palabra FinProceso ocasiona este error.

La instrucción no debe tener parámetros

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

No se puede calcular el logaritmo de un número menor o igual a cero.

No coinciden los tipos

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

No lleva punto y coma

Sólo las instrucciones secuenciales (Leer, Escribir, Dimension, <-) deben finalizar con
punto y coma ( ; ).

Ejemplos:

Para a<-1 Hasta 3 Hacer;


Repetir;
Si a=1;

Número de parámetros o subíndices incorrecto

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:

Escribir Cos(20,4); // Cos es la función matemática coseno


Dimension a(10,2);
Escribir a(2); // el arreglo a fue definido como bidimensional
13

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 :

a <- 5*/3; // dos operadores ('*' y '/', multiplicación y división)


seguidos
Escribir 5_2; // el símbolo '_' no es un operador

Parámetro nulo

Este error se produce cuando falta un parámetro.

Ejemplos :

Escribir a,,2; // el 2do parámetro está vacío


Leer b,; // el 2do parámetro está vacío
Escribir (); // el parámetro () es un parámetro nulo

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.

Se cerraron paréntesis demás

Este error se produce cuando en alguna expresión matemática sobran paréntesis.

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:
14

Para a Hasta 5 Hacer

Se esperaba Con Paso o fin de instrucción

Este error se produce cuando en una instrucción Para se incluye un parámetro (u otra
instrucción) no válido.

Ejemplos :

Para a<-1 Hasta 3 Leer a;

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

Se esperaba espacio o coma

Este error se produce cuando se encuentran dos variables o constantes consecutivas sin
ningún separador en medio.

Ejemplo :

Escribir C B; // falta coma u operador


Escribir "21" B; // falta coma u operador
Mientras a='A'Hacer // falta un espacio

Se esperaba Proceso <nombre>

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.

Sino mal colocado

La cláusula Sino siempre debe estar dentro de un Si, de lo contrario está mal colocada.

Subíndices fuera de rango

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 :
15

Dimension a(5);
Escribir a(6); // el arreglo a sólo tiene 5 elementos.

Você também pode gostar