Está en la página 1de 17

Manual PseInt

Tabla de contenidos
1 Introduccin 2 Utilizacin del entorno 2.1 Elementos de la Ventana 2.2 Informacin de Ejecucin 3 Sintaxis del PseudoCdigo 3.1 Consideraciones Previas 3.2 Algoritmos 3.3 Acerca de constantes, identificadores y palabras reservadas 3.4 Asignacin 3.5 Entrada 3.6 Salida 3.7 Dimensionamiento 3.8 Condicional 3.9 Seleccin Multiple 3.10 Mientras Hacer 3.11 Repetir Hasta Que 3.12 Para 3.13 Operadores 4 Funciones Matemticas 5 Mensajes de Error 5.1 Asignacin incompleta 5.2 Caracter no vlido 5.3 Constante o Identificador no vlido 5.4 Demasiados Parmetros 5.5 Divisin por cero 5.6 Entonces mal colocado 5.7 Falta cerrar comillas 5.8 Falta cerrar parntesis 5.9 Falta cerrar Si/Para/Mientras/Repetir/Segn 5.10 Falta condicin 5.11 Falta Hacer 5.12 Falta Hasta 5.13 Falta nombre de proceso

5.14 Falta punto y coma 5.15 Faltan Parmetros 5.16 Faltan subndices 5.17 FinSegun/FinSi/FinPara/FinMientras/FinProceso/Hasta que mal colocado 5.18 Identificador no vlido 5.19 Instruccin fuera de proceso 5.20 La instruccin no debe tener parmetros 5.21 Logaritmo de 0 o negativo 5.22 No coinciden los tipos 5.23 No lleva punto y coma 5.24 Nmero de parmetros o subndices incorrecto 5.25 Operador incorrecto 5.26 Parmetro nulo 5.27 Raz de negativo 5.28 Se cerraron parntesis dems 5.29 Se esperaba <opcin>: 5.30 Se esperaba asignacin 5.31 Se esperaba Con Paso o fin de instruccin 5.32 Se esperaba Entonces 5.33 Se esperaba espacio o coma 5.34 Se esperaba Proceso <nombre> 5.35 Sino mal colocado 5.36 Subndices fuera de rango

Introduccin
PseInt (Pseudo Intrprete) es un Entorno de Desarrollo Integrado (IDE, por sus siglas en ingls) para PseudoCdigo, un lenguaje de programacin imperativa simple y en castellano. Es decir, PseInt es un editor e intrprete de programas escritos en PseudoCdigo. Su interfaz grfica permite crear, almacenar, ejecutar y corregir fcilmente programas en PseudoCdigo. La sencillez del lenguaje PseudoCdigo lo hacen ideal para la enseanza de la programacin. Permite escribir programas con instrucciones condicionales (Si-EntoncesSino, Segun) y ciclos (Mientras, Hasta Que, Para), y tambin usar valores numricos (nmeros decimales), lgicos, caracteres y arreglos. Tambin provee funciones de entrada/salida y algunas funciones matemticas. Este proyecto se encuentra en http://pseint.sourceforge.net y de all se puede descargar la ltima versin del programa, acceder al foro de soporte y tambin 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 crtico de un docente que usa el programa o de un alumno que quiere proponer mejoras; otras veces se necesita de quien

quiera aportar documentacin (esta pgina dinmica est para eso). En cualquiera de los casos, el desarrollador principal les espera.

Utilizacin del entorno


Elementos de la Ventana

Barra de Ttulo Men de Opciones Barra de Acceso Rpido rea de Trabajo rea de Informacin de Ejecucin Barras de scroll

Informacin de Ejecucin La Informacin de Ejecucin 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 ejecucin. Al hacer click sobre los mismos, automticamente se seleccionar la lnea que contiene dicho error en el rea de trabajo. Si la ejecucin se interrumpe de forma anormal (presionando Ctrl+Pause o finalizando el proceso por medio del sistema operativo), dicha informacin no puede ser actualizada. A partir de la versin 1.1 se puede redimensionar esta rea manipulando la lnea divisoria entre dicha rea y el rea de trabajo. Notar que al pasar por sobre esa lnea divisoria, el cursor del ratn se mostrar como una doble flecha; manteniendo el botn izquierdo apretado podemos cambiar las dimensiones de las reas. Problemas con el Entorno Debido a que la comunicacin entre el entorno y el intrprete propiamente dicho se realiza a travs 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 instalacin. 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 lnea: WinDir=E:\windows\ En este ejemplo, Windows se encuentra en la carpeta "e:\windows". Ntese que la ruta termina en "\". Esto siempre debe ser as. No seria correcto "e:\windows". Otro posible problema que puede presentarse al ejecutar la aplicacin es que un mensaje indique que no se encontr el intrprete. Debe asegurarse de ejecutar VPSeInt.exe desde el directorio donde instal la aplicacin. Si intent actualizar el intrprete, consulte la documentacin adjunta.

Si esto no soluciona su problema, escriba a zaskar @hotmail.com y describa con detalle el error en cuestin. Consideraciones Previas En las secciones siguientes, la sintaxis del lenguaje PseudoCdigo (es decir, las reglas que permiten decir si un programa est bien escrito) es definida usando una notacin similar a la notacin BNF (Backus-Naur Form). Las palabras y smbolos que pertenecen al pseudocdigo se escriben tal como deben ir, por ejemplo: Proceso; mientras que los nombres de variables y otros smbolos y expresiones que pueden variar son escritos entre corchetes angulares, por ejemplo: <condicin>. Algoritmos Un programa escrito en PseudoCdigo 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 ms instrucciones, cada una terminada en punto y coma.
<instruccin>; <instruccin>; ... <instruccin>;

Se pueden introducir comentarios luego de una instruccin, o en lneas separadas, mediante el uso de la doble barra ( // ). Todo lo que precede a //, hasta el fin de la lnea, 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. Acerca de constantes, identificadores y palabras reservadas

Los identificadores, o nombres de variables, deben constar slo de letras y nmeros, comenzando siempre con una letra. Las constantes de tipo carcter se escriben entre comillas ( " ). En las constantes numricas, el punto ( . ) es el separador decimal. Las constantes lgicas son Verdadero y Falso. Las palabras reservadas no llevan acentos. Por ejemplo, Segun, Dimension.

Asignacin La instruccin de asignacin permite almacenar una valor en una variable.


<variable> <- <expresin> ;

Al ejecutarse la asignacin, primero se evala la expresin de la derecha y luego se asigna el resultado a la variable de la izquierda. El tipo de la variable y el de la expresin deben coincidir. Ejemplos :
var <- 1; // asigna el nmero 1 a var Acumulador <- Acumulador + 1; // incrementa el valor del Acumulador en 1

Entrada La instruccin Leer permite ingresar informacin desde el ambiente.


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

Esta instruccin lee N valores desde el ambiente (en este caso el teclado) y los asigna a las N variables mencionadas. Pueden incluirse una o ms variables, por lo tanto el comando leer uno o ms valores. Ejemplos :
Leer Cantidad; Leer Valorl,Valor2,Valor3;

Salida La instruccin Escribir permite mostrar valores al ambiente.


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

Esta instruccin imprime al ambiente (en este caso en la pantalla) los valores obtenidos de evaluar N expresiones. Dado que puede incluir una o ms expresiones, mostrar uno o ms valores. Ejemplos:
Escribir "Ingrese el nombre:"; Escribir "Resultado:" , x*2 ;

Dimensionamiento La instruccin Dimension permite definir un arreglo, indicando sus dimensiones.

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

Esta instruccin define un arreglo con el nombre indicado en <indentificador> y N dimensiones. Los N parmetros indican la cantidad de dimensiones y el valor mximo de cada una de ellas. La cantidad de dimensiones puede ser una o ms, y la mxima cantidad de elementos debe ser una expresin numrica positiva. Se pueden definir ms de un arreglo en una misma instruccin, separndolos 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 instruccin Si-Entonces-Sino depende del valor de una condicin lgica.
Si <condicin> Entonces <instrucciones> Sino <instrucciones> FinSi

Al ejecutarse esta instruccin, se evala la condicin y se ejecutan las instrucciones que correspondan: las instrucciones que le siguen al Entonces si la condicin es verdadera, o las instrucciones que le siguen al Sino si la condicin es falsa. La condicin debe ser una expresin lgica, que al ser evaluada retorna Verdadero o Falso. La clusula Entonces debe aparecer siempre, pero la clusla Sino puede no estar. En ese caso, si la condicin es falsa no se ejecuta ninguna instruccin y la ejecucin del programa contina con la instruccin 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

Seleccin Multiple La secuencia de instrucciones ejecutada por una instruccin Segun depende del valor de una variable numrica.
Segun <variable> Hacer <nmero1>: <instrucciones> <nmero2>,<nmero3>: <instrucciones> <...> De Otro Modo: <instrucciones> FinSegun

Esta instruccin permite ejecutar opcionalmente varias acciones posibles, dependiendo del valor almacenado en una variable de tipo numrico. Al ejecutarse, se evala el contenido de la variable y se ejecuta la secuencia de instrucciones asociada con dicho valor. Cada opcin est formada por uno o ms nmeros separados por comas, dos puntos y una secuencia de instrucciones. Si una opcin incluye varios nmeros, la secuencia de instrucciones asociada se debe ejecutar cuando el valor de la variable es uno de esos nmeros. Opcionalmente, se puede agregar una opcin final, denominada De Otro Modo, cuya secuencia de instrucciones asociada se ejecutar slo 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 instruccin Mientras ejecuta una secuencia de instrucciones mientras una condicin sea verdadera.
Mientras <condicin> Hacer <instrucciones>

FinMientras

Al ejecutarse esta instruccin, la condicin es evaluada. Si la condicin resulta verdadera, se ejecuta una vez la secuencia de instrucciones que forman el cuerpo del ciclo. Al finalizar la ejecucin del cuerpo del ciclo se vuelve a evaluar la condicin y, si es verdadera, la ejecucin se repite. Estos pasos se repiten mientras la condicin sea verdadera. Note que las instrucciones del cuerpo del ciclo pueden no ejecutarse nunca, si al evaluar por primera vez la condicin resulta ser falsa. Si la condicin siempre es verdadera, al ejecutar esta instruccin se produce un ciclo infinito. A fin de evitarlo, las instrucciones del cuerpo del ciclo deben contener alguna instruccin que modifique la o las variables involucradas en la condicin, de modo que sta sea falsificada en algn momento y as finalice la ejecucin del ciclo. Ejemplo :
Escribir "Ingrese un nmero (0 para salir)"; Leer a; Mientras a<>0 Hacer Tot <- Tot+a; Escribir "Ingrese otro nmero (0 para salir)"; Leer a; FinMientras Escribir "Total:",Tot;

Repetir Hasta Que La instruccin Repetir-Hasta Que ejecuta una secuencia de instrucciones hasta que la condicin sea verdadera.
Repetir <instrucciones> Hasta Que <condicin>

Al ejecutarse esta instruccin, la secuencia de instrucciones que forma el cuerpo del ciclo se ejecuta una vez y luego se evala la condicin. Si la condicin es falsa, el cuerpo del ciclo se ejecuta nuevamente y se vuelve a evaluar la condicin. Esto se repite hasta que la condicin sea verdadera. Note que, dado que la condicin se evala al final, las instrucciones del cuerpo del ciclo sern ejecutadas al menos una vez. Adems, a fin de evitar ciclos infinitos, el cuerpo del ciclo debe contener alguna instruccin que modifique la o las variables involucradas en la condicin de modo que en algn momento la condicin sea verdadera y se finalice la ejecucin del ciclo. Ejemplo :

Repetir Tot <- Tot+a; Escribir "Ingrese un nmero (0 para salir)"; Leer a; Hasta Que a=0; Escribir "Total:",Tot;

Para La instruccin Para ejecuta una secuencia de instrucciones un nmero 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 evala 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 clusula Con Paso <paso>, la variable <variable> se incrementar en 1. Ejemplo :
Escribir "Nmeros pares de 10 a 20:"; Para a<-10 Hasta 20 Con Paso 2 Hacer Escribir a; FinPara

Operadores

Operador Relacionales > < = <= >= Lgicos &

Significado Mayor que Menor que Igual que

Ejemplo 3>2 'ABC'<'abc' 4=3

Menor o igual que 'a'<='b' Mayor o igual que 4>=5 Conjuncin (y). (7>4) & (2=1) //falso

| ~ Algebraicos * / ^

Disyuncin (o). Negacin (no).

(1=1 | 2=1) //verdadero ~(2<5) //falso Suma

Multiplicacin Divisin Potenciacin

La jerarqua de los operadores matemticos es igual a la del lgebra, aunque puede alterarse mediante el uso de parntesis.

Funciones Matemticas

Funcin RC(X) ABS(X) LN(X) EXP(X) SEN(X) COS(X) ATAN(X)

Significado Raz Cuadrada de X Valor Absoluto de X Logaritmo Natural de X Funcin Exponencial de X Seno de X Coseno de X Arcotangente de X

TRUNC(X) Parte entera de X REDON(X) Entero ms cercano a X La funcin raz cuadrada no debe recibir un argumento negativo. La funcin 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 intrprete, junto con su explicacin. Los errores estn en orden alfabtico. Asignacin incompleta Este error se produce por la ausencia de alguna de las dos partes de una asignacin: la variable o la expresin a asignar. Ejemplos :

Para <-3 hasta 5 hacer a<-;

Caracter no vlido Se encontr un caracter no permitido en el PseudoCdigo. Ejemplos: &, %, #, \, -, . Estos smbolos slo pueden aparecer dentro de constantes de tipo caracter. Constante o Identificador no vlido Los identificadores deben comenzar siempre con una letra y pueden continuar slo con letras o nmeros. Tampoco pueden usarse palabras reservadas como identificadores. Este error puede ser causado tambin por una constante incorrectamente escrita. Ejemplos :
Escribir 1erVar; // No puede empezar con nmero Tot <- Tot + Primer_Var; // el smbolo '_' no puede ser parte de un identificador Escribir 3.4.5; // el nmero tiene dos puntos decimales Escribir Para; // 'Para' es una palabra reservada

Demasiados Parmetros Ocurre cuando una instruccin que admite slo un parmetro recibe ms de uno. Ejemplo:
a <- 1,3; // 1 y 3 son dos parmetros

Divisin por cero Una expresin matemtica no debe intentar dividir por cero. Ejemplo:
a <- 0; Escribir 7/a; // la operacin 7/a equivale a 7/0 y es imposible.

Entonces mal colocado La clusula Entonces siempre debe estar despus 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. Ejemplo:
Escribir "Total:, Tot;

Falta cerrar parntesis Este error se produce cuando en alguna expresin se abre un parntesis que luego no se cierra. Se deben cerrar todos los parntesis que se abren. Ejemplo:
Escribir (3+4/(2*a);

Falta cerrar Si/Para/Mientras/Repetir/Segn 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 condicin Las estructuras de control repetitivas (Mientras y Repetir-Hasta Que) y las condicionales (Si y Segun) requieren que exista una condicin lgica. Ejemplos:
Si Hasta Que Segn Hacer Mientras

Falta Hacer Las condiciones lgicas en las instrucciones Para, Mientras y Segun deben ser seguidas por la palabra Hacer. Ejemplos:
Para a<- 1 Hasta c Segn a

Falta Hasta La instruccin Para siempre debe contener la clusula Hasta <final>. Ejemplos:

Para a<-1 hacer

Falta nombre de proceso Todos los programas deben comenzar con la palabra reservada Proceso y a continuacin un nombre vlido (un identificador) para el programa. Ejemplo:
Proceso // aqu se coloca el nombre

Falta punto y coma Cada instruccin en una secuencia debe finalizar siempre con punto y coma (;). Ejemplos:
Escribir 1 Leer a Dimension b(10)

Faltan Parmetros Este error se produce cuando se intenta ejecutar una instruccin sin los parmetros mnimos necesarios. Ejemplos:
Escribir ; // falta expresin Leer ; // falta identificador de variable Dimension ; // falta identificador de arreglo Para B // falta asignacin y valor final

Faltan subndices En la declaracin de un arreglo siempre deben indicarse las dimensiones y sus cantidades mximas de elementos. Ejemplo:
Dimensin 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 estn 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 vlido Los identificadores deben comenzar siempre con una letra y pueden continuar slo con letras o nmeros. No pueden ser palabras reservadas. Ejemplos :
Leer 1erVar; // No puede empezar con nmero Leer Para; // Para es palabra reservada

Instruccin fuera de proceso Todas las acciones deben estar contenidas dentro del programa. Cualquier accin posterior a la palabra FinProceso ocasiona este error. La instruccin no debe tener parmetros Este error ocurre cuando una instruccin que no espera parmetros los recibe. FinSi, Repetir, FinPara, FinMientras, FinProceso y FinSegun no llevan parmetros. Logaritmo de 0 o negativo No se puede calcular el logaritmo de un nmero 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 numrico. Ejemplos:
a <-'b'; c <- 5+a; // a es caracter Segn a; // a es caracter Si 1='3' // '3' es caracter, 1 es numrica

No lleva punto y coma Slo las instrucciones secuenciales (Leer, Escribir, Dimension, <-) deben finalizar con punto y coma ( ; ). Ejemplos:

Para a<-1 Hasta 3 Hacer; Repetir; Si a=1;

Nmero de parmetros o subndices 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 funcin matemtica con ms de un parmetro. Ejemplos:
Escribir Cos(20,4); // Cos es la funcin matemtica coseno Dimension a(10,2); Escribir a(2); // el arreglo a fue definido como bidimensional

Operador incorrecto Este error se produce cuando se encuentra un operador mal ubicado o desconocido. Tambin ocurre cuando se encuentran dos operadores seguidos sin una constante o variable en medio. Ejemplos :
a <- 5*/3; // dos operadores ('*' y '/', multiplicacin y divisin) seguidos Escribir 5_2; // el smbolo '_' no es un operador

Parmetro nulo Este error se produce cuando falta un parmetro. Ejemplos :


Escribir a,,2; // el 2do parmetro est vaco Leer b,; // el 2do parmetro est vaco Escribir (); // el parmetro () es un parmetro nulo

Raz de negativo PseudoCdigo slo trabaja con nmeros reales, por lo que no se puede calcular la raz cuadrada de un nmero negativo. Se cerraron parntesis dems Este error se produce cuando en alguna expresin matemtica sobran parntesis. Ejemplo :

Escribir 2+(2*a)-b) ;

Se esperaba <opcin>: La instruccin de seleccin mltiple Segun deben incluir al menos una opcin. Para estar bien construda, la opcin debe constar de uno o ms nmeros, seguidos por dos puntos ( : ) y luego la secuencia de instrucciones a ejecutar. Ejemplo :
Segun a Hacer Escribir b;

Se esperaba asignacin La instruccin Para siempre debe contener la asignacin que inicialice la variable de control. Ejemplo:
Para a Hasta 5 Hacer

Se esperaba Con Paso o fin de instruccin Este error se produce cuando en una instruccin Para se incluye un parmetro (u otra instruccin) no vlido. Ejemplos :
Para a<-1 Hasta 3 Leer a;

Se esperaba Entonces La instruccin condicional Si siempre debe tener una clusula Entonces (es decir, una secuencia de instrucciones a ejecutarse cuando la condicin es verdadera). Ejemplos :
Si a=1 Sino Escribir 2; FinSi // Para evitar este error se puede negar la condicin: a<>1 // y transformar la clusula Sino en una clusula Entonces

Se esperaba espacio o coma

Este error se produce cuando se encuentran dos variables o constantes consecutivas sin ningn 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 continuacin un nombre vlido (un identificador) para el programa. Todas las acciones deben estar contenidas dentro del programa. Sino mal colocado La clusula Sino siempre debe estar dentro de un Si, de lo contrario est mal colocada. Subndices 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 instruccin Dimension que se us para declarar el arreglo. Ejemplo :
Dimension a(5); Escribir a(6); // el arreglo a slo tiene 5 elementos