0 Manual de Pseint
0 Manual de Pseint
0 Manual de Pseint
PSeInt
1. Qu es PSeInt?
PSeInt est pensado para asistir a los estudiantes que se inician en la construccin de
programas o algoritmos computacionales. El pseudocdigo se suele utilizar como primer
contacto para introducir conceptos bsicos como el uso de estructuras de
control, expresiones, variables, estructuras de datos, 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 adems algunas herramientas adicionales que
le ayuden a encontrar errores y comprender la lgica de los algoritmos.
Cuando se formula un algoritmo el objetivo es ejecutar este en una computadora, sin
embargo, para que este entienda los pasos para llevar a cabo nuestro algoritmo debemos
indicrselo siguiendo un conjunto de instrucciones y reglas que este entienda, y estas
instrucciones son abstradas en lo que conocemos como lenguaje de programacin y luego
son traducidas (compiladas) por el compilador del programa
Un algoritmo codificado siguiendo un lenguaje de programacin es conocido como
programa. Antes de aprender un lenguaje de programacin es necesario aprender
la metodologa de programacin, es decir la estrategia necesaria para resolver problemas
mediante programas.
Como punto de partida se aborda la manera como es representado un algoritmo.
Bsicamente analizamos dos formas, la representacin usando pseudocdigo y la
representacin usando diagramas de flujo.
Un diagrama de flujo es un diagrama que utiliza smbolos (cajas) estndar y que tiene los
pasos del algoritmo escritos en esas cajas unidas por flechas, denominadas lneas de flujo,
que indican las secuencia que debe ejecutar el algoritmo.
Por otro lado, el pseudocdigo es un lenguaje de especificacin (descripcin) de
algoritmos. El uso de tal lenguaje hace el paso de codificacin final (traduccin al lenguaje
de programacin) relativamente fcil, por lo que este es considerado un primer borrador de
la solucin del programa.
Proceso pseudocodigo
Escribir "Digite la edad";
Leer edad;
Si edad > 18 Entonces
Escribir "Ud es mayor de edad";
Sino
Escribir "Ud es menor de edad";
Fin Si
FinProceso
Pseudocdigo en pocas palabras
Como habamos dicho antes, el pseudocdigo es un lenguaje de descripcin de algoritmos
por lo que un primer paso consiste en familiarizarnos con este lenguaje. Como punto de
partida tenemos que tener en cuenta lo siguiente:
Anatoma de un algoritmo: Un algoritmo es finito por lo que tiene un principio y un fin. La
siguiente plantilla muestra la forma bsica de un algoritmo:
Algoritmo(nombre_algoritmo)
Declaracion_de_variables
Inicio
Instruccin_1
Instruccin_2
Instruccin_N
Fin_inicio
Fin(nombre_algoritmo)
Las variables: Cuando nos referimos a variables nos referimos a lugares de memoria en
los cuales se almacena algn tipo de informacin, por ejemplo el nmero de gallinas, la
altura, la edad, el nombre y el peso.
VARIABLE: Es un espacio en memoria reservado para almacenar un valor, al cual se
le reconoce con una etiqueta o nombre para de este modo tener acceso a la informacin
que contiene.
Existen diferentes tipos de datos tal por NUMERICO: Este tipo de variable contiene
nmeros decimales o enteros
CARCTER: Contiene cadenas de caracteres.
Como se muestra en la siguiente tabla
Tipo de dato Descripcin Ejemplo
entero Tipo de dato asociado
a cantidades enteras.
No poseen parte
decimal. Ejemplo: 5,
6, -15, 199,
Numero de vacas,
edad.
real Tipo de dato asociado
a cantidades con parte
decimal. Por ejemplo:
0.06, -3.4, 2.16,
1000.345,
Estatura, peso,
volumen.
lgicos Se refiere a aquellos datos que
pueden tomar solo dos posibles
valores falso (F) o verdadero (T)
alfanumricos Asociado a aquellos
datos que contienen
caracteres
alfanumricos (letras,
nmero, signos de
puntuacin, etc).
Nombre, cedula,
telfono
Instruccin de asignacin: Escribe sobre una variable el valor de una expresin. En
Pseint el operador de asignacin es una flecha
variable expresin (en pseint)
Donde, una expresin es una combinacin de valores, variables y operadores, los siguientes
son algunos ejemplos de expresiones:
a 5
b c*d+(c-f)*m
z (x+y)/(w+s)
s (a/b)^3
Existen diferentes tipos de operadores. La siguiente tabla muestra los operadores
aritmticos.
Operador Significado
^ Potenciacin
+ Suma
- Resta
* Multiplicacin
/ Divisin
Instrucciones de entrada y salida: Para que un programa pueda interactuar con el usuario
deben haber un conjunto de instrucciones que permitan especificar tal interaccin, y estas
son las instrucciones de entrada y salida.
Instrucciones de entrada: Permite tomar uno o ms datos de un medio externo (comnmente
el teclado) y asignarlos a una o ms variables, su representacin en pseudocdigo es:
Leer(var1, var2, , varN)
Instrucciones de salida: Permite mostrar de variables y constante en un medio externo
(comnmente la pantalla). En pseudocdigo la instruccin asociada a la salida tiene la
siguiente forma:
Escribir(var1,var2, , varN)
Ejemplo 1:
Codifique un algoritmo que solicite el nombre y devuelva como salida el mensaje: Hola
nombre_ingresado. Por ejemplo, si el usuario digita ramn, el mensaje desplegado ser: Hola
ramn.
En lenguaje natural seria:
Pedir el nombre
Mostrar el nombre
En pseudocdigo seria:
Algoritmo(nombre)
Variables:
alfanumerica: nom
INICIO
ESCRIBA(Digite el nombre)
LEA(nom)
ESCRIBA(Hola ,nom)
FIN_INICIO
Fin(nombre)
Proceso nombre
Definir nom Como Caracter;
Escribir "Digite el nombre";
Leer nom;
Escribir "Hola " nom;
FinProceso
Ejemplo 2:
Realice un algoritmo que pida dos nmeros enteros, realice su suma y muestre el resultado.
En lenguaje natural seria:
Pedir los dos nmeros
Sumar ambos nmeros
Mostrar la suma
En pseudocdigo seria:
Algoritmo(suma)
Variables:
entero: a, b, c
INICIO
ESCRIBA(Digite el primer numero (entero))
LEA(a)
ESCRIBA(Digite el segundo numero (entero))
LEA(b)
c = a + b
ESCRIBA(La suma es: ,c)
FIN_INICIO
Fin(sumar)
Proceso suma
Definir a,b,c Como Entero;
Escribir "Digite el primer nmero";
Leer a;
Escribir "Digite el segundo numero";
Leer b;
c<-a+b;
Escribir "Suma es: " c;
FinProceso
Nota: la declaracin de variables es necesaria pues as se trabaja en un lenguaje de
programacin.
Diagramas de flujo
El diagrama de flujo es la representacin grafica del algoritmo, de modo que lo nico que es
necesario es conocer la equivalencia de este con el pseudocdigo. La siguiente tabla resume
esto:
Instruccin Representacin en PSeint Representacin en Diagrama
de flujo
Definicin de variables Definir var1 Como Entero
Escribir en la salida Escribir var1
Leer en la entrada Leer var1
Si - Entonces Si edad > 18 Entonces
Escribir
"Ud es mayor de edad";
Sino
Escribir
"Ud es menor de edad";
Fin Si
Segun Segun edad Hacer
16: Escribir "Ud es menor de
edad";
18: Escribir "Ud es mayor de
edad";
De Otro Modo: Escribir "Ud
debe dar una edad numerica";
Fin Segun
Mientras edad<-1;
Mientras edad<18 Hacer
Escribir "Ud es menor de
edad";
edad<-edad + 1;
Fin Mientras
Repetir Hasta que edad<-1;
Repetir
Escribir "Ud es menor de
edad";
edad<-edad + 1;
Hasta Que edad >18
Para Para edad<-1 Hasta 18 Con
Paso 1 Hacer
Escribir "Ud es menor de
edad";
Fin Para
Para el ejemplo 1, pedir el nombre, el diagrama seria:
Para el Ejemplo 2, sumar dos nmeros enteros, el diagrama seria:
Ejemplo3
Realizar un algoritmo que calcule el permetro y el rea de un rectngulo dado la base y la
altura del mismo.
En pseudocdigo seria:
Pedir la base
Pedir la altura
Calcular el area como base*altura/2
Mostrar el area
Codificacin en PSEINT
Proceso area
Definir base, altura, area Como Real;
Escribir "De la base";
Leer base;
Escribir "De la altura";
Leer altura;
area<-(base * altura)/2;
Escribir "Area es " area;
FinProceso
Ya se tiene el pseudocdigo del programa codificado en nuestro pseudocdigo por convencin
sin embargo la idea es probarlo para ver cmo funciona. La asignacin en PSeInt no es con
igual (=) sino con flecha (<-) y al final va punto y coma (;).
Entrada de datos
Leer a,b,c;
La instruccin de entrada en PSeInt se llama Leer no hace uso de parntesis y termina con
signo de punto y coma (;).
Salida de datos
Escribir Hola, nombre;
La instruccin de entrada en PSeInt se llama Escribir no hace uso de parntesis y termina con
signo de punto y coma (;). Y se utiliza comillas dobles para los carteles.
Ejecucin del PSeInt
Abra el programa PSEINT (Inicio > todos los Programas > PSeInt). Una vez ejecutado, se
debe abrir una ventana como la mostrada en la figura 1:
Figura 1. Ventana principal del programa PSeInt.
Codificacin del algoritmo
Al explorar la herramienta dando click en los diferentes botones del panel de comando,
observe el efecto en el rea de trabajo, una vez que se haya familiarizado un poco con la
herramienta intente adaptar el cdigo mostrado en el pseudocdigo del problema anterior en
el PseInt:
Figura 2. Adaptacin del Pseudocodigo a PSeInt.
Una vez codificado el pseudocdigo (ayudado de los botones del panel de comandos) en el
rea de trabajo guarde el archivo en una ruta conocida.
Una vez realizado lo anterior obtenga el diagrama de flujo asociado al pseudocdigo para ello
presione el dibujar diagrama de flujo.
Figura 3. Botn para obtener el diagrama de flujo.
Si lo anterior est bien, se generar un diagrama como el mostrado en la siguiente figura:
Figura 4. Diagrama de flujo del algoritmo del problema.
Guarde el diagrama de flujo anterior como una imagen jpg (puede serle til despus, por
ejemplo para un informe).
Figura 5.Guardada de la imagen.
Ejecucin del algoritmo
Una vez guardado el programa anterior, proceda a realizar la prueba del algoritmo
presionando el botn ejecutar.
Deber aparecer una ventana como la siguiente asociada al programa:
Figura 7. Ejecucin del programa asociado al algoritmo (antes de ingresar el valor solicitado
por teclado).
Lo anterior se debe a la instruccin Escribir De la base;
Si lo nota el cursor se queda titilando esperando a que sean introducidos los valores para la
altura y la base, esto debido a la instruccin Leer base;
Introduzca el valor de 2 como valor para la base y 3 como valor para la altura.
Note que cada vez que introduce un valor por teclado debe presionar enter. Una vez que
presione el enter despus de digitar el segundo valor aparece algo como lo siguiente:
Figura 8. Ejecucin del programa asociado al algoritmo (despus de ingresar el valor solicitado
por teclado).
Despus de que aparece la ventana anterior si damos enter esta se cierra. Intente
nuevamente ejecutar el algoritmo pero esta vez de 6 como valor para la base y 7 como valor
para la altura.
COMENTARIO
Un comentario es una opcin que permite un lenguaje de programacin para establecer
algunas oraciones y prrafos y as comprender mejor el cdigo que estamos programando.
Cada lenguaje contiene una serie de caracteres especiales que indican al compilador que lo
que est contenido en ellos no debe ejecutarse.
COMENTARIOS EN PSEINT
Comentarios por prrafo: el carcter que indica los comentarios por prrafo es: (/*) para abrir
y (*/) para cerrar. Por ejemplo
/*Esto es un
Comentario de dos lneas*/
Comentarios por lnea: el carcter que indica los comentarios por lnea es (//).
Por ejemplo //Esto es un comentario de una lnea
Como se programa con Pseint
1. Definicin de un algoritmo
2. Tipos de datos
3. Representaciones de un algoritmo Lenguaje natural Pseudocdigo Diagrama de flujo
4. Lenguaje de programacin Pseint -
5. Tipos de datos -
6. Expresiones -
7. Acciones secuenciales -
8. Estructuras de control -
9. Arreglos -
10. Notaciones Ejercicios
1. DEFINICIN DE UN ALGORITMO
Un algoritmo es una lista de operaciones o acciones (instrucciones) para poder encontrar la
solucin a un problema. Estas instrucciones deben estar ordenadas, estar bien definidas (no
ser ambiguas, que cada instruccin tenga un solo significado), finitas (un numero especifico de
las mismas para poder finalizar la tarea)
Est compuesto por operaciones, mtodos y variables.
Entre las operaciones se conocen las matemticas: +, -, /, *, funciones trigonomtricas, raz
cuadrada, etc.
Los mtodos son las funciones disponibles: Mostrar en pantalla. Pedir un dato
Las variables pueden ser de diversos tipos: por ejemplo la variable entera de
nombre dato puede contener los valores -1, 2, 3, etc. La variable booleana (lgica)
llamada nombre puede contener los valores V o F (Verdadero o Falso). Una variable de tipo
cadena o string llamada palabra puede contener los valores aaaaaa, "Hola Mundo", etc. La
variable de tipo caracter llamada vocal puede contener los valores 'a', 'b', '$', etc
2. TIPOS DE DATOS
Numrico: representa un numero, dentro de este tipo de dato pueden existir:
los enteros: numeros como el 12, 1 , -5, etc
los reales (con coma decimal), como el 1.3, 5.4, -1.33, etc
Booleano: representa un valor logico que solo puede ser verdadero o falso
Caracter: representa a una sola letra del sistema alfanumerico ascci, como por ejemplo 'a', '@', '$',
'3',etc
String o cadena de caracteres: representa una palabra entera, como ser: "Hola Mundo", "Jose", "a", etc
Tipos de Datos Simples
Existen tres tipos de datos bsicos:
Numrico: nmeros, tanto enteros como reales. Para separar decimales se utiliza el punto. Ejemplos:
12 23 0 -2.3 3.14
Lgico: solo puede tomar dos valores: VERDADERO o FALSO.
Caracter: caracteres o cadenas de caracteres encerrados entre comillas (pueden ser dobles o simples).
Ejemplos 'hola' "hola mundo" '123' 'FALSO' 'etc'
Los tipos de datos simples se determinan automticamente cuando se crean las variables. Las dos
acciones que pueden crear una variable son la lectura(LEER) y la asignacion(<-). Por ejemplo, la
asignacin "A<-0;" est indicando implcitamente que la variable A ser una variable numrica. Una vez
determinado el tipo de dato, deber permanecer constante durante toda la ejecucin del proceso; en
caso contrario el proceso ser interrumpido.
Opcionalmente, se puede declarar una variable numrica como entera con la instruccin DEFINIR. En
este caso, todo valor no entero que se lea o asigne a la misma ser truncado
Definicin de variables
La instruccin definir permite explicitar el tipo de una o ms variables. Esta definicin puede ser
opcional u obligatoria dependiendo de la configuracin del lenguaje. La sintaxis es:
Definir <varl> , <var2> , ... , <varN> Como [REAL/ENTERO/LOGICO/CARACTER];
Una variable debe definirse antes de ser utilizada por primera vez. Los arreglos, se definen utilizando
su identificador (sin subndices ni dimensiones) antes o despus de dimensionarlos, y el tipo aplica para
todos los elementos del mismo (ya que se trata de una estructura de datos homognea).
Los tipos posibles son NUMERO, NUMERICO, REAL, ENTERO, LOGICO, CARACTER, TEXTO, CADENA.
NUMERO, NUMERICO y REAL son sinnimos para el tipo de datos numrico bsico, que puede
almacenar tanto nmeros reales como enteros. El tipo ENTERO es una especializacin que slo permite
almacenar valores enteros; cualquier valor no entero que se lea o asigne en una variable de este tipo
ser truncado.
Una variable de tipo LOGICO slo puede tomar los valores VERDADERO y FALSO, pero cuando se lee
una variable ya definida como lgica, el usuario puede ingresar tambin las abreviaciones V y F, o 0 y 1.
CARACTER, TEXTO y CADENA son sinnimos para definir variables de tipo caracter. Estas pueden
contener cero, uno o ms caracteres arbitrarios y no tienen una longitud mxima. Si se declara una
variable de este tipo y en una lectura el usuario ingresa un nmero o un valor lgico, se asignar una
cadena que contiene el texto ingresado (ejemplo: "1", "VERDADERO", etc).
Si se intenta asignar a una variable ya definida un dato de un tipo incorrecto se producir un error en
tiempo de ejecucin.
2. Arreglos
Los arreglos son estructuras de datos homogneas (todos sus datos son del mismo tipo) que
permiten almacenar un determinado nmero de datos bajo un mismo identificador, para luego
referirse a los mismos utilizando uno o ms subndices. Los arreglos pueden pensarse como vectores,
matrices, etc. Para poder utilizar un arreglo, primero es obligatorio su dimensionamiento; es decir,
declarar los rangos de sus subndices, lo cual determina cuantos elementos se almacenarn y como se
acceder a los mismos.
Dimensionamiento
La instruccin Dimension permite declarar un arreglo, indicando sus dimensiones.
Dimension <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.
Si se utilizan arreglos en base 0, al declarar un arreglo de, por ejemplo 15 elementos, los ndices de
elementos vlidos van de 0 a 14; mientras que si se utilizan arreglos en base 1 los ndices vlidos van de
1 a 15. Esto se configura en el cuadro de Opciones del PSeudocdigo.
Se pueden declarar ms de un arreglo en una misma instruccin, separndolos con una coma (,).
Dimension <ident1> (<max11>,...,<max1N>),..., <identM> (<maxM1>,...,<maxMN>)
Por ejemplo declarar un arreglo de 10 posiciones:
Dimension A [10]
Ejemplo de un arreglo de 10 enteros que son cargados en el mismo y luego mostrados:
Proceso Arreglo
Dimension A[10];
Definir A Como Entero;
Definir i Como Entero;
Para i<-1 Hasta 10 Con Paso 1 Hacer
Escribir "De un numero";
Leer A[i];
FinPara
Para i<-1 Hasta 10 Con Paso 1 Hacer
Escribir "El numero en la posicion: " i " es: " A[i];
FinPara
FinProceso
3. REPRESENTACIONES DE UN ALGORITMO
Todo algoritmo puede ser representado por:
Lenguaje natural
Pseudocdigo
Diagramas de flujo
Lenguajes de programacin
4. LENGUAJE NATURAL
Problema : Sumar 2 nmeros.
Representacin mediante Lenguaje natural:
Inicio Suma
Ingresar primer nmero
Guardar nmero en variable a
Ingresar segundo nmero
Guardar nmero en variable b
Sumar a y b
Guardar resultado en R
Mostrar R
Fin
Desventajas: Ambiguo y Extenso
5. PSEUDOCDIGO
Es una forma de representar un algoritmo, que se acerca a los lenguajes de programacin y con
elementos del lenguaje natural.
El pseudocdigo se compone de:
Cabecera
Declaraciones
Cuerpo
La cabecera es la parte del algoritmo que posee el nombre de ste.
Las declaraciones son las variables y constantes que utilizar el algoritmo para resolver el problema.
El cuerpo son el conjunto de instrucciones o acciones que estn entre el Inicio y el Fin.
6. PSEUDOCDIGO
La estructura del pseudocdigo es la siguiente:
Proceso SinTitulo
accion1;
accion2;
....
accionN;
FinProceso
La seccin Proceso SinTitulo es la cabecera del algoritmo, aqu debe estar el nombre del algoritmo
La seccin accin 1, accin 1, es el cuerpo del algoritmo, es la lista de intrucciones ordenadas y
separadas por el punto y coma. Donde termina un punto y coma termina una instruccin (sentencia) y
comienza la siguiente.
En este caso como utilizaremos el Pseint la seccin de declaraciones del algoritmo no se toma en
cuenta, ya que el software se encarga de asignarle el tipo de dato a cada variable dependiendo del uso
que se le d.
El ejemplo anterior de sumar dos nmeros, en Pseint se vera como:
Proceso suma
Escribir "Ingrese primer numero" ;
Leer a;
Escribir "Ingrese segundo numero" ;
Leer b;
c <- a + b;
Escribir "La suma es: " c;
FinProceso
La 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.
Si la variable de la izquierda no exista previamente a la asignacin, se crea. Si la variable exista se
pierde su valor anterior y toma el valor nuevo, razn por la cual se dice que la asignacin es
"destructiva" (destruye el valor que tena la variable de la izquierda). Los contenidos de las variables
que intervienen en la expresin de la derecha no se modifican.
Existen dos operadores de asignacin alternativos que pueden utilizarse indistintamente en cualquier
caso, pero la habilitacin del segundo (=) depende del perfil de lenguaje seleccionado.
<variable> := <expresin> ;
<variable> = <expresin> ;
Lectura
La instruccin Leer permite ingresar informacin desde el ambiente.
Leer <variablel> , <variable2> , ... ,<variableN> ;
Esta instruccin toma 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.
Si una variable donde se debe guardar el valor ledo no existe, se crea durante la lectura. Si la variable
existe se pierde su valor anterior ya que tomar el valor nuevo, razn por la cual se dice que la lectura
es "destructiva" (destruye el valor que tena previamente la variable).
Si se utiliza sintaxis flexible se permite opcionalmente separar las variables a leer simplemente con
espacios en lugar de comas. Esto se configura en el cuadro de Opciones del PSeudocdigo.
El ejemplo Suma muestra un programa muy simple que lee dos nmeros y calcula y muestra la suma
de los mismos.
Escritura
La instruccin Escribir permite mostrar valores al ambiente.
Escribir <exprl> , <expr2> , ... , <exprN> ;
Esta instruccin informa al ambiente (en este caso escribiendo en pantalla) los valores obtenidos de
evaluar N expresiones. Dado que puede incluir una o ms expresiones, mostrar uno o ms valores. Si
hay ms de una expresin, se escriben una a continuacin de la otra sin separacin, por lo que el
algoritmo debe explicitar los espacios necesarios para diferenciar dos resultados si as lo requiere.
Si en algun punto de la linea se encuentran las palabras clave "SIN SALTAR" o "SIN BAJAR" los valores se
muestran en la pantalla, pero no se avanza a la linea siguiente, de modo que la prxima accin de
lectura o escritura continuar en la misma linea. En caso contrario, se aade un salto de lnea luego de
las expresiones mostradas.
Escribir Sin Saltar <exprl> , ... , <exprN>;
Escribir <exprl> , ... , <exprN> Sin Saltar;
Puede utlizarse indistintamente las palabras Imprimir y Mostrar en lugar de Escribir si su perfil de
lenguaje permite sintaxis flexible. Adems, en este caso se permite opcionalmente separar las
expresiones a mostrar simplemente con espacios en lugar de comas. Esto se configura en el cuadro de
Opciones del PSeudocdigo.
El ejemplo Suma muestra un programa muy simple que lee dos nmeros mostrando con la instruccin
Escribir las indicaciones para el usuario y el resultado de sumar los mismos.
Consideraciones
Todas las acciones (instrucciones) deben estar entre Proceso y FinProceso. Como se deben sumar dos
nmeros entonces necesitamos de dos variables que se llamarn a y b respectivamente de tipo
numrico. Para mostrar una leyenda pidiendo que se ingrese un numero se utiliza la instruccin
Escribir, que permite mostrar informacin en al pantalla. Para ingresar un dato se utiliza la instruccin
Leer.
Y finalmente para asignar la suma de a y b a otra variable c se utiliza la instruccin de asignacin <- que
permite almacenar un valor en una variable.
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. No es vlido introducir comentario con /* y */.
No puede haber instrucciones fuera del proceso (antes de PROCESO, o despues de FINPROCESO),
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 slo de letras, nmeros y/o guin_bajo (_),
comenzando siempre con una letra.
Los tipos de datos de las variables no se declaran explcitamente, sino que se infieren a partir de su
utilizacin.
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.
Operadores
Este pseudolenguaje dispone de un conjunto bsico de operadores que pueden ser utilizados para la
construccin de expresiones ms 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
<> Distinto que 'a'<>'b'
Logicos
& Y Conjuncin (y). (7>4) & (2=1) //falso
| O Disyuncin (o). (1=1 | 2=1) //verdadero
~ NO Negacin (no). ~(2<5) //falso
Algebraicos
+ Suma total <- cant1 + cant2
- Resta stock <- disp - venta
* Multiplicacin area <- base * altura
/ Divisin porc <- 100 * parte / total
^ Potenciacin sup <- 3.41 * radio ^ 2
% MOD Mdulo (resto de la divisin entera) resto <- num MOD div
La jerarqua de los operadores matemticos es igual a la del lgebra, aunque puede alterarse mediante
el uso de parntesis.
Funciones
Las funciones en el pseudocdigo se utilizan de forma similar a otros lenguajes. Se coloca su nombre
seguido de los argumentos para la misma encerrados entre parntesis (por ejemplo trunc(x)). Se
pueden utilizar dentro de cualquier expresin, y cuando se evale la misma, se reemplazar por el
resultado correspondiente. Actualmente, todas la funciones disponibles son matemticas (es decir que
devolvern un resultado de tipo numrico) y reciben un slo parmetro de tipo numrico. A
continuacin se listan las funciones integradas disponibles:
Funcin Significado
RC(X) o RAIZ(X) Raz Cuadrada de X
ABS(X) Valor Absoluto de X
LN(X) Logaritmo Natural de X
EXP(X) Funcin Exponencial de X
SEN(X) Seno de X
COS(X) Coseno de X
TAN(X) Tangente de X
ASEN(X) Arcoseno de X
ACOS(X) Arcocoseno de X
ATAN(X) Arcotangente de X
TRUNC(X) Parte entera de X
REDON(X) Entero ms cercano a X
AZAR(X) Entero aleatorio entre 0 y x-1
Las estructuras en Pseint se dividen en condiciones y repetitivas:
Estructuras Condicionales
Condicional Si-Entonces
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 clusula 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.
Ejemplo: realice un algoritmo que pida dos nmeros y busque el mayor de ambos
Proceso ElMayor
Definir a,b Como Real;
Escribir "De el primer lado del triangulo";
Leer a;
Escribir "De el segundo lado del triangulo";
Leer b;
Si a < b Entonces
Escribir "a es menor que b" a "menor que " b;
Sino
Escribir "b es menor que a" b "menor que " a;
Fin Si
FinProceso
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: realizar un programa que muestre un men de opciones dependiendo de la opcin elegida un
numero de 1 a 5 que significa 1 Literatura, 2 Cine, 3 Msica, 4 videojuegos 5 Salir, si es un nmero
mayor a 5 debe decir opcin no valida.
// Muestra como hacer un men simple con las estructuras Repetir-Hasta Que y Segn
Proceso Menu
Repetir
// mostrar menu
Escribir "Men de recomendaciones";
Escribir " 1. Literatura";
Escribir " 2. Cine";
Escribir " 3. Msica";
Escribir " 4. Videojuegos";
Escribir " 5. Salir";
// ingresar una opcion
Escribir "Elija una opcin (1-5): ";
Leer OP;
// procesar esa opcin
Segun OP Hacer
1:
Escribir "Lecturas recomendables:";
Escribir " + Esperndolo a Tito y otros cuentos de fbol (Eduardo
Sacheri)";
Escribir " + El juego de Ender (Orson Scott Card)";
Escribir " + El sueo de los hroes (Adolfo Bioy Casares)";
2:
Escribir "Pelculas recomendables:";
Escribir " + Matrix (1999)";
Escribir " + El ltimo samuray (2003)";
Escribir " + Cars (2006)";
3:
Escribir "Discos recomendables:";
Escribir " + Despedazado por mil partes (La Renga, 1996)";
Escribir " + Bfalo (La Mississippi, 2008)";
Escribir " + Gaia (Mgo de Oz, 2003)";
4:
Escribir "Videojuegos clsicos recomendables";
Escribir " + Da del tentculo (LucasArts, 1993)";
Escribir " + Terminal Velocity (Terminal Reality/3D Realms, 1995)";
Escribir " + Death Rally (Remedy/Apogee, 1996)";
5:
Escribir "Gracias, vuelva pronto";
De otro modo:
Escribir "Opcin no vlida";
FinSegun
Escribir "Presione enter para continuar";
Esperar Tecla;
Hasta Que OP=5
FinProceso
Estructuras Repetitivas
Mientras
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.
El ejemplo AdivinaNumero le da al usuario 10 intentos para adivinar un nmero generado
aleatoriamente, utilizando esta estructura para verificar si el usuario acierta el nmero o si se agotan
los intentos.
// Juego simple que pide al usuario que adivine un numero en 10 intentos
Proceso Adivina_Numero
intentos<-10;
num_secreto <- azar(100)+1;
Escribir "Adivine el numero (de 1 a 100):";
Leer num_ingresado;
Mientras num_secreto<>num_ingresado Y intentos>0 Hacer
Si num_secreto>num_ingresado Entonces
Escribir "Muy bajo";
Sino
Escribir "Muy alto";
FinSi
intentos <- intentos-1;
Escribir "Le quedan ",intentos," intentos:";
Leer num_ingresado;
FinMientras
Si intentos=0 Entonces
Escribir "El numero era: ",num_secreto;
Sino
Escribir "Exacto! Usted adivino en ",11-intentos," intentos.";
FinSi
FinProceso
Repetir
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.
Si se utiliza sintaxis flexible (ver Opciones del PSeudocdigo) se permite opcionalmente utilizar
Mientras Que en lugar de Hasta Que, de modo que el conjunto de acciones contenidas en el bucle se
ejecuta mientras que la condicin sea verdadera. Notar que la palabra Que es la que diferencia el uso
de la palabra Mientras en la estructura repetir de la estructura Mientras. Es decir, si se omite la palabra
que se considera como el comienzo de un bucle Mientras en lugar de el final de un bucle Repetir.
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.
Si se habilita la sintaxis flexible en las configuracin del lenguaje se pueden utilizar dos alternativas. La
primer variante consiste en reemplazar el operador de asignacin por la palabra clave Desde:
Para <variable> Desde <inicial> Hasta <final> Con Paso <paso> Hacer ...
De esta forma, la lectura de la sentencia resulta ms obvia. Adems, 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. La segunda variante solo sirve para recorrer arreglos de una o ms
dimensiones. Se introduce con la construccin Para Cada seguida de un identificador, la palabra clave
De y otro identificador:
Para Cada <elemento> De <Arreglo> Hacer ...
El segundo identificador debe corresponder a un arreglo. El primero ser el que ir variando en cada
iteracin. El ciclo realizar tantas iteraciones como elementos contenga el arreglo y en cada uno el
primer identificador servir para refererirse al elemento del arreglo en cuestin.
El ejemplo Promedio utiliza un bucle de este tipo para leer N valores numricos con los cuales calcula
un promedio.
// Calcula el promedio de una lista de N datos
Proceso Promedio
Escribir "Ingrese la cantidad de datos:";
Leer n;
acum<-0;
Para i<-1 Hasta n Hacer
Escribir "Ingrese el dato ",i,":";
Leer dato;
acum<-acum+dato;
FinPara
prom<-acum/n;
Escribir "El promedio es: ",prom;
FinProceso
El ejemplo Para1 utiliza las tres variantes de este tipo de bucles para recorrer un arreglo.
// Para poder ejecutar correctamente este ejemplo debe tener
// habilitada la sintaxis flexible en su perfil de lenguaje
Proceso Para1
// declara un arreglo de 10 elementos
Dimension A[10];
// recorre los 10 elementos y va asignandoles enteros aleatorios
para cada elemento de A Hacer
// elemento toma el contenido de cada posicion del arreglo
// y si se modifica elemento se modifica el arreglo
elemento <- azar(100);
FinPara
Escribir "Los elementos del arreglo son:";
// recorre los 10 elementos utilizando subindices y los muestra en pantalla
para i desde 1 hasta 10 Hacer
escribir "Posicin " i ": " A[i];
FinPara
Escribir ""; // deja una linea en blanco
Escribir "En orden inverso:";
// recorre los 10 elementos en orden inverso y los muestra en una misma linea
para i desde 10 hasta 1 Hacer
escribir sin bajar A[i] " ";
FinPara
FinProceso
Matrices en pseint
Tal como en excel que existen filas y columnas por cada celda que contiene un valor, tambin en pseint
se puede crear una matriz, para lo cual se deben crear dos ndices para saber cual es la fila y columna
donde se ubicara un valor.
Proceso Matriz
//Primero se crea la matriz de 2 x 2 y se define su tipo, asi como los dos indices para la fila y columna
Dimension M [2,2];
Definir M,I,J como Entero;
// Leer valores, aqui se cargan los valores en cada celda
Para J<-1 Hasta 2 Hacer
Para I<-1 Hasta 2 Hacer
Escribir 'Ingrese valor para indice ',I,', en columna ',J,':'
Leer M[I,J]
FinPara
FinPara
// Mostrar valores de cada celda
Para I<-1 Hasta 2 Hacer
Para J<-1 Hasta 2 Hacer
Escribir 'El valor para indice ',I,', en columna ',J,'es :' M[I,J];
FinPara
FinPara
FinProceso
Condiciones Lgicas
Hay que recordar que toda expresin lgica utiliza las tablas de verdad de los conectivos lgicos, los
cuales son:
& Y Conjuncin (y) (7>4) & (2=1) //falso
| O Disyuncin (o). (1=1 | 2=1) //verdadero
~ NO Negacin (no). ~(2<5) //falso
El resultado de una condicin lgica puede ser verdadera o falsa, se utilizan los conectivos lgicos para
crear condiciones complejas en las cuales su valor de verdad depende del conector lgico
Recordar que para la conjuncin solo es verdad cuando ambas condiciones son verdad
Recordar que para la disyuncin es verdad cuando una de las dos condiciones es verdad o ambas son
verdad
Un ejemplo es un programa que averige de tres nmeros cual es el menor y que ordene los tres
nmeros de menor a mayor, fjate el programa Ordenar
Proceso ordenar
Definir a,b,c Como Real;
Escribir "De el primer numero";
Leer a;
Escribir "De el segundo numero";
Leer b;
Escribir "De el tercer numero";
Leer c;
Si a < b Y a < c Entonces
Si b < c Entonces
Escribir "a es el menor y el ordenamiento es";
Escribir "a: " a " < " "b: " b " < " "c: " c;
Sino
Escribir "a: " a " < " "c: " c " < " "b: " b;
Fin Si
Fin Si
Si b < a Y b < c Entonces
Si a < c Entonces
Escribir "b es el menor y el ordenamiento es";
Escribir "b: " b " < " "a: " a " < " "c: " c;
Sino
Escribir "b: " b " < " "c: " c " < " "a: " a;
Fin Si
Fin Si
Si c < a Y c < b Entonces
Si a < b Entonces
Escribir "c es el menor y el ordenamiento es";
Escribir "c: " c " < " "a: " a " < " "b: " b;
Sino
Escribir "c: " c " < " "b: " b " < " "a: " a;
Fin Si
Fin Si
FinProceso
Ejemplo. Pedir dos nmeros y realizar la divisin entera, el segundo nmero no puede ser cero o
negativo. El primer nmero tampoco puede ser negativo
Proceso dividir
Definir a,b,c Como Real;
Escribir "De el primer nmero";
Leer a;
Escribir "De el segundo numero";
Leer b;
//Se realiza la division entera entre positivos
Si ((b < 0) O (b = 0)) Y ~(a < 0) Entonces
Escribir "No se puede dividir por 0 ni por negativo";
Sino
c<-a / b;
Escribir "Resultado es " c;
Fin Si
FinProceso