PSeInt - MANUAL 2024
PSeInt - MANUAL 2024
1 “A”
MANUAL DE PSeInt
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
PSeInt
Contenido Página
Introducción 3
Primeros Pasos 8
Tipos de Datos 16
Variables 17
Operadores 19
Funciones Matemáticas 20
Funciones de Texto 21
Arreglos 37
2
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
1) Introducción
http://pseint.sourceforge.net/index.php?page=descargas.php
PSEINT realmente es más que gratis, es "de código abierto": cualquiera puede ver
cómo está creado, de forma que incluso si su autor perdiera el interés por el
proyecto, otras personas podrían retomarlo, lo que le garantiza una vida mucho
mayor.
3
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
4
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
• Permitir asignar con el signo igual (=): Esta opción habilita la asignación con
el signo igual (Ej.: x=0;). En muchos casos esta sintaxis de asignación no se
permite, ya que en muchos lenguajes no se utiliza el mismo operador para
asignar y comparar, como sucede al activar esta opción. En cualquier caso, las
otras dos sintaxis de asignación (con <- y con :=) siguen siendo válidas.
5
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
6
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Proceso Estricto
VAL_MAYOR<-0
Para Cada ELEMENTO de ARREGLO
Si ELEMENTO Es Mayor Que VAL_MAYOR
7
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
VAL_MAYOR<-ELEMENTO
Fin Si
Fin Para
Si VAL_MAYOR Es Par
Escribir "El mayor es " VAL_MAYOR " y es par"
Sino
Escribir "El mayor es " VAL_MAYOR " y es impar"
Fin Si
FinProceso
Escribir "Hola"
Hacerlo usando PSEINT también es casi igual de simple. En el caso de PSEINT, cada
programa debe encerrarse entre las palabras "Proceso" (para indicar dónde
comienza) y "FinProceso" (para señalar dónde termina).
8
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Podemos terminar de teclear la palabra, o bien pulsar Intro para que se complete
automáticamente. En cualquier caso, tras terminar la palabra "Escribir", se nos
propone que escribamos "una o más expresiones, separadas por comas"; en
nuestro caso, será la palabra "Hola", entre comillas:
9
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Mientras tecleamos, PseInt mostrará un mensaje de aviso que nos recuerda que no
será correcto hasta que terminemos de escribir el texto y cerremos las comillas:
10
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
11
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Y entonces aparecerá una nueva ventana que nos muestra el resultado de nuestro
programa (por supuesto, se trata de la palabra Hola):
12
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Un programa puede estar formado por más de una orden, claro. Bastará con pulsar
Intro después del final de la orden "Escribir", para crear una nueva línea en blanco.
De hecho, ni siquiera es necesario teclear la orden, porque PseInt permite utilizar
las estructuras de programación más habituales simplemente haciendo clic en el
correspondiente botón del panel derecho:
En ese caso, aparecerá un panel inferior, que nos recordará detalles adicionales
sobre esa orden:
13
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
14
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
15
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
3) TIPOS DE DATOS
Los arreglos son estructuras de datos homogéneas (todos sus datos son del mismo
tipo) que permiten almacenar un determinado número de datos bajo un mismo
identificador, para luego referirse a los mismo utilizando uno o más subíndices.
Los arreglos pueden pensarse como vectores, matrices, etc. Para poder utilizar un
arreglo, primero es obligatorio su dimensionamiento; es decir, definirlo
declarando los rangos de sus subíndices, lo cual determina cuantos elementos se
almacenarán y como se accederá a los mismos.
16
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
4) VARIABLES
17
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Usaremos las variables declaradas en forma explícita con su tipo de dato, para se
deberá acceder a la opción “Configurar” y elegir “Opciones del lenguaje
(perfiles…) :
Declaración de variables
18
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
5) OPERADORES
Operador Significado
Relacionales
> mayor
< menor
= igual
<= menor o igual
>= mayor o igual
<> distinto
Lógicos
% ó Y conjunción
| ó O disyunción
~ ó O negación
Algeraicos
+ suma
- resta
* multiplicación
/ división
^ potenciación
% ó MOD módulo (resto de la división entera)
19
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
6) FUNCIONES MATEMÁTICAS
Función Significado
20
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
7) FUNCIONES DE TEXTO
Función Significado
LONGITUD(S) Cantidad de caracteres de la cadena S
MAYUSCULAS(S) Retorna una copia de la cadena S con todos sus
caracteres en mayúsculas
MINUSCULAS(S) Retorna una copia de la cadena S con todos sus
caracteres en minúsculas
SUBCADENA(S,X,Y) Retorna una nueva cadena que consiste en la parte de
la cadena S que va desde la posición X hasta la
posición Y (incluyendo ambos extremos). Las
posiciones utilizan la misma base que los arreglos,
por lo que la primer letra será la 0 o la 1 de acuerdo
al perfil del lenguaje utilizado.
CONCATENAR(S1,S2) Retorna una nueva cadena resulta de unir las
cadenas S1 y S2.
CONVERTIRANUMERO(X) Recibe una cadena de caracteres que contiene un
número y devuelve una variable numérica con el
mismo.
CONVERTIRATEXTO(S) Recibe un real y devuelve una variable numérica con
la representación como cadena de caracteres de
dicho real.
21
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Lectura o 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.
Escritura o 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
Si en algún punto de la línea se encuentran las palabras clave "SIN SALTAR" o "SIN
BAJAR" los valores se muestran en la pantalla, pero no se avanza a la línea
siguiente, de modo que la próxima acción de lectura o escritura continuará en la
misma línea. En caso contrario, se añade un salto de línea luego de las expresiones
mostradas.
Asignación
22
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Ejemplos en PSeInt
Proceso Ejemplo
Definir primerNumero como Entero
Definir segundoNumero como Entero
Por otra parte, no siempre querremos que el valor de una variable lo introduzca el
usuario. Habrá veces que seamos nosotros mismos los que demos el valor inicial a
una variable desde nuestro programa, bien para usarlo en una serie de cálculos
posteriores, o bien por legibilidad (es más fácil entender algo como
"longitudCircunferencia = 2 * pi * radio" que algo como "longitudCircunferencia =
6.28 * radio".
23
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
radio <- 3
longitudCircunferencia <- 2 * pi * radio
¿Y qué ocurre si usamos una variable sin haberle dado valor? Esto sucede a veces
por despiste, si tecleamos mal el nombre de una variable, como en este fragmento
de programa:
primerNumero <- 2
Escribir primerNmero
Si lees ese fragmento con cuidado, verás que el nombre de la variable que aparece
en la segunda línea es incorrecto, falta la letra "u". ¿Qué sucede en ese caso? En
algunos lenguajes (pocos, afortunadamente) se da por sentado que es una variable
nueva, y se le da el valor 0; en el caso de PseInt, igual que en la mayoría de
lenguajes actuales, obtendremos un mensaje de error que nos dirá que estamos
usando una variable que no tenía valor.
24
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
<instrucciones>
Sino
<instrucciones>
FinSi
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.
25
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Sólo tenemos que escribir la condición que realmente nos interesa, y la serie de
pasos que se deben dar si se cumple y si no se cumple:
Proceso Ejemplo
Escribir "Dime un numero"
Leer primerNumero
Escribir "Dime otro numero"
Leer segundoNumero
Si primerNumero > segundoNumero Entonces
Escribir "El primero es mayor"
Sino
Escribir "El segundo es mayor"
FinSi
FinProceso
26
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Proceso Ejemplo
Escribir "Dime un numero"
Leer primerNumero
FinProceso
27
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
<número1>: <instrucciones>
<número2>,<número3>: <instrucciones>
<...>
FinSegun
El bloque "De Otro Modo" es opcional: si detallamos todos los valores posibles, no
sería necesario utilizarlo.
El número de valores que podemos probar es indefinido: no tiene por qué ser 3,
sino que pueden ser menos casos o muchos más.
28
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Al igual que ocurría con la orden SI, existe en PseInt el icono del panel derecho que
representa la condición SEGUN, para que bacer los cambios que nos interesen:
Sólo tenemos que escribir la condición que realmente nos interesa, y la serie de
pasos a dar si se cumple y si no se cumple.
Proceso EjemploCasos
Escribir "Introduzca la nota";
Leer nota;
Segun nota Hacer
10: Escribir "Ha obtenido un sobresaliente alto";
9: Escribir "Ha obtenido un sobresaliente bajo";
6, 7, 8: Escribir "Ha obtenido un aprobado";
De Otro Modo:
Escribir "Ha desaprobado";
FinSegun
FinProceso
29
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
<instrucciones>
FinMientras
Note que las instrucciones del cuerpo del ciclo pueden no ejecutarse nunca, si al
evaluar por primera vez la condición resulta ser falsa.
30
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Por ejemplo, un programa capaz de sumar muchos números, todos los que el
usuario quisiera, y en el que hubiera que escribir "0" para indicar que queremos
terminar, podría ser así:
Proceso Mientras
Escribir "Dime un numero";
Leer x;
suma <- 0;
Mientras x <> 0 Hacer
suma <- suma + x;
Escribir "Hasta ahora, la suma es ", suma;
Escribir "Dime otro numero";
Leer x;
FinMientras
Escribir "Terminado";
FinProceso
31
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Repetir
<instrucciones>
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.
32
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Por ejemplo, un programa que pida al usuario una clave de acceso, y que no le
permita seguir hasta que la introduzca correctamente, se podría hacer así:
Proceso Repetir
Repetir
Escribir "Dime tu clave de acceso";
Leer clave;
Si clave <> 1234 Entonces
Escribir "Clave incorrecta";
FinSi
Hasta Que clave=1234
Escribir "Bienvenido!";
FinProceso
33
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Para <variable> <- <inicial> Hasta <final> Con Paso <paso> Hacer
<instrucciones>
FinPara
Para <variable> Desde <inicial> Hasta <final> Con Paso <paso> Hacer ...
De esta forma, la lectura de la sentencia resulta más obvia. Además, con sintaxis
flexible, si no se especifica el paso pero el valor final es menor al inicial, el bucle
recorrerá los valores en orden inverso como si el paso fuera -1.
34
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Por ejemplo, un programa que mostrara los números del 1 al 10, podría ser:
Proceso Para01
Para x <- 1 Hasta 10 Hacer
Escribir x;
FinPara
FinProceso
Proceso Para02
Para x <- 10 Hasta 20 Con Paso 2 Hacer
Escribir x;
FinPara
FinProceso
35
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Las estructuras repetitivas ("bucles") se pueden incluir una dentro de otra si fuera
necesario. El resultado se conoce como un "bucle anidado". Por ejemplo, si se desea
dibujar un rectángulo usando asteriscos, se puede plantear como escribir de forma
repetitiva varias filas que, a su vez están formadas cada una por varias columnas,
de forma también repetitiva, como muestra este ejemplo:
36
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
14) ARREGLOS
Cuando necesitamos manejar muchos datos, generalmente hay soluciones más
efectivas que tener muchas variables. Por ejemplo, si hay que guardar 10 números,
resultará incómodo usar 10 variables llamadas n1, n2, n3, n4, n5, n6, n7, n8, n9,
n10; si se trata de 100 números, puede pasar de resultar incómodo a ser
totalmente inviable. En esos casos, será más eficiente almacenar esos 100 datos
"juntos", formando lo que se conoce como una "arreglo" (tabla o vector), en vez de
usar 100 variables distintas.
Normalmente, en una arreglo podremos acceder individualmente a cada uno de
sus elementos usando corchetes: el primer dato sería algo como "dato[1]".
Como primer ejemplo, se puede crear un arreglo de 3 elementos, guardar datos en
sus 3 posiciones y mostrar el primer dato y el tercero así:
Proceso Arreglo
Dimension datos[3]
datos[1] <- 10
datos[2] <- 25
datos[3] <- 50
Escribir "El primer dato es ", datos[1]
Escribir "Y el tercero es ", datos[3]
FinProceso
Proceso MostrarAlReves
Dimension datos[6]
Para i <- 1 Hasta 6 Hacer
Escribir "Dime el dato numero ", i
Leer datos[i]
FinPara
Escribir "Los datos al reves son: "
Para i <- 6 Hasta 1 Con Paso -1 Hacer
Escribir datos[i]
FinPara
FinProceso
37
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
También se pueden crear arreglos "de dos dimensiones" (por ejemplo, 3 filas y
dos columnas), que se acercan más al concepto matemático de matriz:
Proceso Matriz
Dimension datos[3,2]
datos[1,1] <- 10
datos[2,1] <- 25
datos[3,1] <- 50
datos[1,2] <- 11
datos[2,2] <- 26
datos[3,2] <- 51
38
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Las dos más sencillas son las que permiten convertir un texto a mayúsculas y a
minúsculas:
Proceso Cadenas01
Escribir "Dime tu nombre"
Leer nombre
Escribir "En mayúsculas quedaría:"
Escribir Mayusculas(nombre)
Escribir "En minúsculas quedaría:"
Escribir Minusculas(nombre)
FinProceso
Para resolver problemas reales de computación, hay otras dos funciones que dan
más posibilidades: una nos dicen la longitud de una cadena y otra permite extraer
una subcadena, desde cierta posición inicial hasta cierta posición final:
Proceso Cadenas02
Escribir "Dime tu nombre"
Leer texto
Escribir "Su longitud es:"
Escribir Longitud(texto)
Escribir "Su primera letra es:"
Escribir Subcadena(texto, 1, 1)
FinProceso
39
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Proceso Cadenas02b
Escribir "Dime tu nombre"
Leer texto
Escribir "Con espacios adicionales, quedaría:"
Para x <- 1 Hasta Longitud(texto) Hacer
Escribir Sin Saltar Subcadena(texto, x, x)
Escribir Sin Saltar " "
FinPara
Escribir ""
FinProceso
40
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
También es posible "concatenar" dos cadenas, es decir, formar una nueva cadena
a partir de la unión de esas dos. Por ejemplo, el resultado de Concatenar("1a",
"2b") sería la cadena de texto "1a2b". Así, el ejemplo del rectángulo de asteriscos se
podría hacer, de forma alternativa, creando primero una cadena que fuera la fila de
asteriscos y luego mostrándola varias veces, así:
41
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
acción 1;
acción 1;
.
.
.
acción n;
FinSubproceso
Además, opcionalmente pueden agregarse las palabras claves Por Valor o Por
Referencia para indicar el tipo de pasaje en cada argumento. Si no se indica, los
arreglos se pasan por referencia, las demás expresiones por valor.
42
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Proceso SubProcesos01
Escribir " Primer ejemplo"
Para x <- 1 Hasta 20 Hacer
Escribir Sin Saltar "-"
FinPara
Escribir ""
43
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Subproceso Subrayar
Para x <- 1 Hasta 20 Hacer
Escribir Sin Saltar "-"
FinPara
Escribir ""
FinSubproceso
Proceso SubProcesos02
Escribir " Primer ejemplo"
Subrayar
44
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Mucho más legible, pero todavía no está tan bien como debería: siempre estamos
escribiendo 20 guiones, aunque el texto sea más largo o más corto. En la mayoría
de lenguajes de programación se puede indicar detalles adicionales ("parámetros")
para que se puedan utilizar desde dentro de esa subrutina. Por ejemplo, en nuestro
caso podríamos indicarle qué texto queremos escribir y qué longitud queremos
que tenga la secuencia de guiones:
Proceso SubProcesos03
EscribirSubrayado(" Primer ejemplo", 16)
EscribirSubrayado(" Segundo ejemplo", 17)
EscribirSubrayado(" Tercer ejemplo", 16)
FinProceso
45
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Subproceso EscribirSubrayado(texto)
Escribir texto
Para x <- 1 Hasta Longitud(texto) Hacer
Escribir Sin Saltar "-"
FinPara
Escribir ""
FinSubproceso
Proceso SubProcesos04
EscribirSubrayado("Primer ejemplo")
EscribirSubrayado("Segundo ejemplo")
EscribirSubrayado("Tercer ejemplo")
FinProceso
46
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Su desarrollo se parece mucho a lo que hemos hecho hasta ahora, con la diferencia
de que escogeremos un nombre para la variable que guardará el resultado, así:
Proceso Funciones01
Escribir "El máximo de 5 y 12 es:"
Escribir Maximo(5,12);
Escribir "El máximo de 25 y 12 es:"
Escribir Maximo(25,12);
Finproceso
Este programa crea una función que calcula cuál es el mayor de los dos números
que se le indican como parámetro, y la usa dos veces, para mostrar el máximo de
dos valores prefijados.
47
UNIVERSIDAD NACIONAL DEL SUR Introducción a la Programación 1”A”
Escuela Superior de Comercio
Proceso PrimosDel1Al30
DEFINIR n COMO entero;
Para n <- 1 hasta 30
Si Primo(n) Entonces
ESCRIBIR n;
FinSi
FinPara
FinProceso
48