Guia Pseint 2016
Guia Pseint 2016
Guia Pseint 2016
El Pseudocódigo
Las características del este pseudolenguaje fueron propuestas en 2001 por el
responsable de la asignatura Fundamentos de Programación (Horacio Loyarte) 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, carácter/cadenas de caracteres y
lógico (verdadero/falso).
• Estructuras de datos: arreglos.
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.
Tipos de datos
• Tipos Simples: Numérico, Lógico, Caracter.
• Estructuras de Datos: Arreglos.
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.
Dimensionamiento (Arreglos-Arrays)
La instrucción Dimensión permite definir un arreglo, indicando sus dimensiones.
Expresiones
• Operadores.
• Funciones.
Operadores
Este pseudolenguaje dispone de un conjunto básico de operadores que pueden
ser utilizados para la construcción de expresiones más o menos complejas.
Funciones matemática
Las funciones en el pseudocódigo se utilizan de forma similar a otros lenguajes.
Se coloca su nombre seguido de los argumentos para la misma encerrados entre
paréntesis (por ejemplo trunc(x)). Se pueden utilizar dentro de cualquier expresión,
y cuando se evalúe la misma, se reemplazará por el resultado correspondiente.
Actualmente, todas la funciones disponibles son matemáticas (es decir que
9
Función Significado
RC(X) Raíz Cuadrada de X
ABS(X) Valor Absoluto de X
LN(X) Logaritmo Natural de X
EXP(X) Función Exponencial de X
SEN(X) Seno de X
COS(X) Coseno de X
TAN(X) Tangente de X
TRUNC(X) Parte entera de X
REDON(X) Entero más cercano a X
AZAR(X) Entero aleatorio entre 0 y x-1
Lectura o entrada
La instrucción Leer permite ingresar información desde el
ambiente.
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.
Asignación o proceso
La instrucción de asignación permite almacenar una valor en
una variable.
Escritura o salida
La instrucción Escribir permite mostrar valores al
ambiente.
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.
11
• Repetitivas
o Mientras
o Repetir
o Para
Condicionales
Si-Entonces (If-Then)
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
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.
Repetitivas
Mientras Hacer (while)
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,
13
de modo que ésta sea falsificada en algún momento y así finalice la ejecución del
ciclo.
Repetir
<instrucciones>
Hasta Que <condición>
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.
Para (for)
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
El botón "Comenzar" del panel sirve para iniciar la ejecución automática. Cuando
lo utilice, el algoritmo comenzará a ejecutarse lentamente y cada instrucción que
se vaya ejecutando según el flujo del programa se irá seleccionando en el código
de dicho algoritmo. La velocidad con que avance la ejecución del algoritmo,
inicialmente depende de la seleccionada en el menú "Configuración", aunque
mientras la ejecución paso a paso está en marcha, puede variarla desplazando el
control rotulado como "Velocidad" en el panel.
Algunas Observaciones
Ejemplos de Algoritmos
PSeInt incluye un conjunto de algoritmos de diferentes niveles de dificultad para
ejemplificar la sintaxis y el uso del pseudocódigo. A continuación se describen los
ejemplos disponibles:
Si intentos=0 Entonces
Escribir "El numero era: ",num_secreto;
Sino
Escribir "Exacto! Usted adivinó en ",11-intentos," intentos.";
FinSi
FinProceso
Si datos[1]>datos[2] Entonces
may1<-datos[1];
may2<-datos[2];
Sino
may1<-datos[2];
may2<-datos[1];
FinSi
// cargar datos
Escribir "Ingrese el lado 1:";
Leer l1;
Escribir "Ingrese el lado 2:";
Leer l2;
Escribir "Ingrese el lado 3:";
Leer l3;
hip<-l3;
cat2<-l1;
FinSi
Sino
cat1<-l1;
Si l2>l3 Entonces
hip<-l2;
cat2<-l3;
Sino
hip<-l3;
cat2<-l2;
FinSi
FinSi
// leer la lista
cant<-0;
Leer nombre;
Mientras nombre<>"" Hacer
cant<-cant+1;
lista[cant]<-nombre;
Repetir // leer un nombre y ver que no esté ya en la lista
Leer nombre;
se_repite<-Falso;
Para i<-1 Hasta cant Hacer
Si nombre=lista[i] Entonces
19
se_repite<-Verdadero;
FinSi
FinPara
Hasta Que NO se_repite
FinMientras
// ordenar
Para i<-1 Hasta cant-1 Hacer
// busca el menor entre i y cant
pos_menor<-i;
Para j<-i+1 Hasta cant Hacer
Si lista[j]<lista[pos_menor] Entonces
pos_menor<-j;
FinSi
FinPara
Proceso Promedio
acum<-0;
prom<-acum/n;