Está en la página 1de 9

Introducción a Pseint

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.

¿Para qué sirve PSeInt?


PSeInt está pensado para asistir a los estudiantes que se inician en la construcción de
programas o algoritmos computacionales. El pseudocódigo se suele utilizar como primer
contacto para introducir conceptos básicos como el uso de estructuras de control,
expresiones, variables, etc, sin tener que lidiar con las particularidades de la sintaxis de un
lenguaje real. Este software pretende facilitarle al principiante la tarea de escribir
algoritmos en este pseudolenguaje presentando un conjunto de ayudas y asistencias, y
brindarle ademas algunas herramientas adicionales que le ayuden a encontrar errores y
comprender la lógica de los algoritmos.

Características y Funcionalidades de PSeInt:


 Presenta herramientas de edición básicas para escribir algoritmos en pseudocódigo
en español
 Permite la edición simultánea de múltiple algoritmos
 Presenta ayudas para la escritura
o Autocompletado
o Ayudas Emergentes
o Plantillas de Comandos
o Coloreado de Sintaxis
o Endentado Inteligente
 Puede ejecutar los algoritmos escritos
 Permite ejecutar el algoritmo paso a paso controlando la velocidad e inspeccionando
expresiones
 Puede confeccionar automáticamente la tabla de prueba de escritorio
 Determina y marca los errores de sintaxis y en tiempo de ejecución
 Genera diagramas de flujo a partir del algoritmo escrito
 Convierte el algoritmo de pseudocodigo a código C++
 Ofrese un sistema de ayuda integrado acerca del pseudocódigo y el uso del
programa (esta última, aún en construcción)
 Incluye un conjunto de ejemplos de diferentes niveles de dificultad
 Es multiplataforma (probado en Microsoft Windows y GNU/Linux)
 Es totalmente libre y gratuito (licencia GPL)

PSeInt es una herramienta para aprender la lógica de programación, orientada a estudiantes


sin experiencia en dicha área. Mediante la utilización de un simple y limitado pseudo-
lenguaje intuitivo y en español, permite comenzar a comprender conceptos básicos y
fundamentales de un algoritmo computacional. Nacido originalmente como proyecto final
para la materia Programación I de la carrera Ingeniería en Informática Facultad de la
Universidad Nacional del Litoral, es en realidad un intérprete de pseudocódigo basado en
los contenidos de la cátedra de Fundamentos de Programación de la de dicha carrera.

Historia y creación de Pseint


El software comenzó a desarrollarse en octubre de 2003 utilizando Borland C++ Builder
debido a que era esta la herramienta que recomendaba la cátedra (por la facilidad que
brinda para el desarrollo de interfaces visuales) y estar presente en los laboratorios de la
facultad. Comencé con una prueba de concepto, ya que era el primer proyecto que iba a
desarrollar con C++. A esta inexperiencia con el lenguaje le atribuyo algunos errores de
diseño y muchas desprolijidades o ineficiencias en la implementación que con el tiempo fuí
notando y, cuando se podía, corrigiendo. Al ser este un software para uso exclusivamente
didáctico, no se presentan grandes problemas de rendimiento (no se tiene que interpretar
algoritmos de miles de lineas sumamente complejos) por los que puedo tomarme ciertas
libertades en la implementación. Más aún, se debe tener en cuenta que el objetivo principal
del intérprete no es sólo interpretar un buen código, sino también señalar correctamente los
errores de uno incorrecto. La versión original, presentado el 29 de diciembre del mismo
año, tenía cientos de errores latentes, sólo corría bajo Windows y se limitaba a interpretar el
algoritmo o marcar sus errores de sintaxis. El pseudocódigo interpretable era estrictamente
el que desarrollaban los apuntes de la asignatura escritos por el Ingeniero Horacio Loyarte y
el Doctor Diego Milone. Sugerí en el cuatrimestre siguiente a los responsables de la cátedra
ofrecer el software a sus futuros alumnos, pero no obtuve (al menos de parte de los
alumnos) la respuesta esperada, por lo que el proyecto pareció terminar allí.

Casi dos años más tarde, gracias a la lista de correo del Grupo de Usuarios de Linux del
Litoral(Lugli) llegó a mi la invitación a participar en la recopilación de software libre
educativo para el CD Actividades Educativas con Software Libre de la colección ??? que se
distribuiría gratuitamente entre los docentes que lo solicitaran promocionado por el
Ministerio de Educación de la Nación y llevado a cabo por los grupos gleducar, solar y
educ.ar. Sugerí entonces a travez de una lista de correo creada para tal recopilación la
inclusión del PSeInt en dicho CD. Por fortuna y azar, uno de los mayores responsables de
la recopilación, el profesor Román Gelbort, resultó ser profesor de programación en un
colegio secundario, lo que generó gran entusiasmo y me motivó a retomar el desarrollo.
Uno de los primeros pasos fué crear el proyecto en SourceForge y publicar así el software
bajo la Licencia Pública General (GPL). El siguiente paso fue comenzar a portarlo al
sistema operativo GNU/Linux. El intérprete propiamente dicho estaba escrito mayormente
en ANSI/ISO C++ por lo que no presentó mayores dificultades, pero la interfaz gráfica
debió desarrollarse desde cero, eligiéndose para tal fin la librería GTK+ por estar esta
presente en la mayoría de las distribuciones de Linux y tener yo alguna experiencia en la
utilización de la misma.

Luego de esto, sobrevino una etapa de corrección de errores sin grandes avances, hasta que
en mayo de 2006 comencé a desempeñarme como ayudante de cátedra de Fundamentos de
Programación y Programación Orientada a Objetos en la UNL, comenzando primero como
pasante, y luego, en agosto del mismo año, asumiendo el cargo interino luego de concursar
por el mismo. Esta posición me permitió observar a los alumnos utilizando el software,
encontrar y corregir errores, y realizar ciertas observaciones que derivaron en la
implementación de las características de Ayuda Rápida y Diagrama de Flujo.

Objetivos de Pseint
OBJETIVO El objetivo principal de este Capítulo es capacitar al estudiante en los
conceptos básicos de algoritmos, que le permitan obtener la destreza necesaria para diseñar
sus propios algoritmos. DISEÑO DE ALGORITMOS

Se trata de un intérprete de Pseudo código completamente en español, su nombre es


PSEINT.

Muchas veces una de las cosas que se les hace más difícil a los nuevos estudiantes de
informática es aprender la sintaxis, ya que normalmente o mejor dicho siempre está en
inglés. Siempre me digo a mí y a mis compañeros por que no existía algo que en vez de
utiliza “for” usara “para” o en lugar de “if” usásemos “si”, pues hoy he visto que si existe.
El objetivo de PSEINT es introducir al mundo de la programación de manera sencilla y lo
mejor de todo es ¡Software Libre! con licencia GPL.

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

Proceso <nombre> <secuencia de instrucciones> Fin Proceso

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

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.

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.

Comandos en Pseint
Las características de este pseudolenguaje fueron propuestas en 2001 por el responsable de la
asignatura Fundamentos de Programación de la carrera de Ingeniería Informática de la FICH-UNL.
Las premisas son:

Sintaxis sencilla

Manejo de las estructuras básicas de control

Solo 3 tipos de datos básicos: numérico, caracter /cadenas de caracteres y lógico (verdadero-
falso).

Estructuras de datos: arreglos


Todo algoritmo en pseudocógido tiene la siguiente estructura general:
Proceso SinTitulo
accion 1;
accion 1;
. . .
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.
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.

Entradas

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.

Salidas

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.

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.

Condicional Si-Entonces

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.

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.

Lazos Mientras

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

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.

Lazos 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.
Operadores y Funciones
Este pseudolenguaje dispone de un conjunto básico de operadores y funciones que pueden ser
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:

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

Logicos

&óY Conjunción (y). (7>4) & (2=1) //falso

|óO Disyunción (o). (1=1 | 2=1) //verdadero

~ ó NO Negación (no). ~(2<5) //falso

Algebraicos

+ Suma total <- cant1 + cant2

- Resta stock <- disp - venta

* Multiplicación area <- base * altura

/ División porc <- 100 * parte / total

^ Potenciación sup <- 3.41 * radio ^ 2

% ó MOD Módulo (resto de la división entera) resto <- num MOD div

La jerarquía de los operadores matemáticos es igual a la del álgebra, aunque puede alterarse
mediante el uso de paréntesis.

También podría gustarte