You are on page 1of 9

Sintaxis de PSeInt Tutorial

Introducci on a la Programaci on (T.U.M - T.U.G.) Introducci on a la Computaci on (T.U.R. - T.U.W.) Fundamentos de la Inform atica (Prof. en Tec. Electr. - Ing. Electr.) Area de Servicios Departamento de Inform atica Universidad Nacional de San Luis

L ogica

Indice
1. Sintaxis general 1.1. Formalizaci on de Algoritmos 1.2. Tipos de datos . . . . . . . . 1.3. Declaraci on de variable . . . 1.4. Nombre de una variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 2 2 2 3 3 3 3 3 3 4 4 4 4 4 4 4 5 5 5 6 6 6 7 8 8

2. Expresiones 2.1. Expresiones relacionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Expresiones l ogicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Expresiones aritm eticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. Entrada Salida 3.1. Entrada - Lectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Salida - Escritura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. Estructuras de Control 4.1. Secuencial . . . . . 4.1.1. Asignaci on 4.2. Condicional . . . . 4.3. Repeticion . . . . . 4.3.1. Mientras . 4.3.2. Para . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5. Arreglos 5.0.3. Denici on de Arreglo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6. Subalgoritmos 6.1. Denici on de Subalgoritmo . . . . . 6.2. Invocaci on de Subalgoritmo . . . . 6.2.1. Lenguaje de Dise no: . . . . 6.2.2. PSeInt . . . . . . . . . . . . 6.3. Funciones primitivas o predenidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Area de Servicios - Departamento de Inform atica - Universidad Nacional de San Luis

L ogica

INTRODUCCION
PSeInt es un software que interpreta pseudoc odigo. Pseudoc odigo es un tipo de lenguaje de dise no que permite expresar algoritmos acerc andose a los lenguajes de programaci on con elementos del lenguaje de problema. El objetivo de este manual es brindar al alumno una gu a r apida de diferencias y similitudes entre la sintaxis de Lenguaje de Dise no vista en clase y la sintaxis usada por el software PSeInt. Entre las caracter sticas generales del pseudoc odigo se encuentra una sintaxis sencilla y un manejo de estructuras b asicas de control, entre ellas: secuencial, condicional y repetici on.

1. Sintaxis general
1.1. Formalizaci on de Algoritmos
Lenguaje de Diseno ALGORITMO Nombre de Algoritmo COMENZAR Declaraciones de variables Acciones FIN PSeInt PROCESO SinTitulo Acci on 1; ... Acci on n FINPROCESO

1.2. Tipos de datos


Lenguaje de Diseno Num ericos: enteros y reales, los reales se separan con un punto. L ogico: solo puede tomar dos valores Verdadero o Falso. Caracter PSeInt Num ericos: enteros y reales, los reales se separan con una coma. L ogico: solo puede tomar dos valores Verdadero o Falso. Caracter

1.3. Declaraci on de variable


Lenguaje de Diseno <variable>: [Real/Entero/Logico/Caracter] Ejemplo: Contador : Entero X, Y : Real PSeInt DEFINIR <variable >COMO [Real/Entero/Logico/Caracter]; Ejemplo: DEFINIR Contador COMO Entero; DEFINIR X, Y COMO Real;

Importante: En PseInt los tipos de datos simples pueden determinarse autom aticamente no solo en el momento de creaci on de la variable sino en el momento en que se referencia dicha variable. A pesar de esta particularidad que ofrece PseInt, los ejercicios deben realizarse deniendo el tipo de dato simple en el momento de creaci on de la variable

1.4. Nombre de una variable


Para denir una variable: 1. Debe comenzar con una letra (A a Z, may usculas o min usculas) y no deben contener espacios en blanco. 2. Despu es del primer caracter se permiten: letras, d gitos y caracteres como gui on bajo ( ). 2

Area de Servicios - Departamento de Inform atica - Universidad Nacional de San Luis

L ogica

3. La longitud de identicadores puede ser de varios caracteres. Pero es recomendable una longitud promedio de 8 caracteres. 4. El nombre de la variable debe dar una idea del valor que contiene.

2. Expresiones
2.1. Expresiones relacionales
Lenguaje de Diseno > < = <= >= PSeInt > < = <= >=

2.2. Expresiones l ogicas


Lenguaje de Diseno PSeInt Y &o O |o NO o

2.3. Expresiones aritm eticas


Lenguaje de Diseno + * / // PSeInt + * / MOD %o

3. Entrada Salida
3.1. Entrada - Lectura
Lenguaje de Diseno LEER <variable > LEER <vble1 >, . . . , <vbleN > PSeInt LEER <variable >; LEER <vble1 >, . . . , <vbleN >;

Area de Servicios - Departamento de Inform atica - Universidad Nacional de San Luis

L ogica

3.2. Salida - Escritura


Lenguaje de Diseno ESCRIBIR Mensaje ESCRIBIR <vble1 >, . . . , <vbleN > ESCRIBIREl valor de la variable es:,<variable> PSeInt ESCRIBIR Mensaje; ESCRIBIR <vble1 >, . . . , <vbleN >; ESCRIBIREl valor de la variable es:<variable>;

4. Estructuras de Control
4.1. Secuencial
En PseInt, igual que en lenguaje de dise no las acciones se escriben una debajo de otra, y pueden ir separadas o no por un punto y coma.

4.1.1. Asignaci on Lenguaje de Diseno <variable><- <expresi on > PSeInt <variable><- <expresi on >;

4.2. Condicional
Lenguaje de Diseno SI <condici on >ENTONCES <instrucciones > SINO <instrucciones > FINSI Ejemplo: SI X >Y ENTONCES Escribir X SINO Escribir Z FINSI PSeInt Si <condici on >ENTONCES <instrucciones > SINO <instrucciones > FINSI Ejemplo: SI X >Y ENTONCES Escribir X; SINO Escribir Z; FINSI

4.3. Repeticion

4.3.1. Mientras Lenguaje de Diseno MIENTRAS <condici on >HACER <instrucciones > FINMIENTRAS PSeInt MIENTRAS <condici on >HACER <instrucciones > FINMIENTRAS

Area de Servicios - Departamento de Inform atica - Universidad Nacional de San Luis

L ogica

4.3.2. Para Lenguaje de Diseno PARA <variable ><- <inicial >CON PASO <paso >HACER <instrucciones > FINPARA PSeInt PARA <variable ><- <inicial >CON PASO <paso >HACER <instrucciones > FINPARA

5. Arreglos

5.0.3. Denici on de Arreglo Lenguaje de Diseno <identicador >: arreglo [1 ... <m aximo >] de <tipo > Ejemplo: A: arreglo [1...10] de Real PSeInt Dimension <identicador >[<max1 >, ... , <maxN >]; Ejemplo: Dimension A [10];

Se pueden declarar mas de un arreglo en una misma instrucci on separ andolos con una coma. Para declarar el tipo de elemento del arreglo, se puede denir una variable de tipo espec co y luego utilizarla para asignale valores. O se puede asignarle directamente por medio de la instrucci on Leer, y el tipo del arreglo va a depender de lo ingresado. Ejemplo: Dimension A[5]; Dimension B[5]; Denir c como Entero; Denir x como Caracter; Leer A[1]; // Suponer que se ingresa un 8 c <- A[1]; Escribir c;// Muestra por pantalla 8 x <- p; B[1] <- x; //B[1] tiene el caracter p B[2] <- 58; // ERROR DE TIPO porque ten a asignado un valor de tipo caracter y 58 es un valor entero Para acceder a un elemento del arreglo se utiliza el siguiente comando: <identicador >[posici on]; Ejemplo: Escribir A[3]; //Muestra por pantalla el contenido del arreglo A en la posici on 3 i <- 3; Escribir A[i]; //Muestra por pantalla el contenido del arreglo A en la posici on 3

Area de Servicios - Departamento de Inform atica - Universidad Nacional de San Luis

L ogica

6. Subalgoritmos

6.1. Denici on de Subalgoritmo


Lenguaje de Diseno SUBALGORITMO Nombre(<clase par ametro> <Nombre par ametro>:<Tipo>,...) COMENZAR <Secuencia de acciones> FIN PSeInt SUBPROCESO<variable tipo Out><<Nombre funci on>(<Nombre par ametro 1>, <Nombre par ametro 2>,...) acci on 1; ... acci on N; FINSUBPROCESO

En PseInt un Subalgoritmo comienza con la palabra clave Subproceso, seguida de la Variable de tipo Out, el signo de asignaci on, el Nombre del Subproceso, y nalmente, la Lista de argumentos (o Par ametros). Existen variantes para esta estructura, si el Subproceso no devuelve ning un valor, pueden omitirse el identicador <variable tipo Out> y el signo de asignaci on, es decir, colocar directamente el nombre y los par ametros a continuaci on de la palabra clave Subproceso. Si el Subproceso no recibe ning un valor pueden colocarse los par etesis vac os u omitirse, nalmente la primer l nea con el nombre del Subproceso. Adem as, opcionalmente pueden agregarse las palabras claves Por Valor o Por Referencia para indicar el tipo de pasaje en cada argumento, en donde un argumento Por Valor es equivalente a un argumento de tipo In en lenguaje de dise no y un argumento Por Referencia es equivalente a un argumento de tipo In Out en lenguaje de dise no. Si no se indica, los arreglos se pasan Por Referencia (In Out),y el resto de los argumentos Por Valor (In).

6.2. Invocaci on de Subalgoritmo


Igual que en lenguaje de dise no, para invocar a un Subproceso se debe utilizar su Nombre (Par ametros). Debe respetarse la cantidad de Par ametros formales, que debe coincidir con la cantidad de par ametros actuales. Adem as, deben coincidir los tipos utilizados en la invocaci on con los tipos declarados en la denici on de Subproceso. Cada vez que un Subproceso es invocado desde un Algortimo o Subalgoritmo (Proceso o Subproceso) se establece, autom aticamente una correspondencia entre los par ametros formales y los actuales. Esta correspondencia est a denida por la posici on que los par ametros ocupan dentro de la lista de par ametros. Para los par ametros formales que fueron denidos como: In/ Por Valor los par ametros actuales pueden ser constantes, variables (denidas en el ambiente del Algoritmo invocante), expresiones o valores de funciones. Out o In Out/ Por Referencia, los par ametros acutales deben ser variables denidas en el ambiente del algoritmo invocante, pues all el subalgoritmo devuelve sus resultados. Ejemplo: El siguiente programa calcula el promedio de una lista de N datos utilizando un SubProceso o Subalgoritmo.

Area de Servicios - Departamento de Inform atica - Universidad Nacional de San Luis

L ogica

6.2.1. Lenguaje de Diseno: SUBALGORTIMO Ingresar( IN OUT arr : entero, IN tam: entero, OUT cant: entero) COMENZAR i ,n, a: entero Escribir Ingrese la cantidad de datos: LEER n MIENTRAS (n < 0 v n > tam) HACER ESCRIBIR Ingrese nuevamente la cantidad de datos LEER n FINMIENTRAS PARA i<-1 HASTA n CON PASO 1 HACER ESCRIBIR Ingrese el dato LEER a arr[i] <- a FINPARA cant<-n FIN SUBALGORITMO Promedio ( IN arreglo: entero , IN cantidad: entero, OUT prom: real ) suma: entero suma <- 0 PARA i<-1 HASTA cantidad CON PASO 1 HACER suma <- suma + arreglo[i] FINPARA prom <- suma/cantidad FIN ALGORITMO Principal datos: arreglo [1..100] de entero num :entero prom: real Ingresar(datos,100, num) ESCRIBIR La cantidad de datos ingresados es: num ESCRIBIR El promedio es: , Promedio(datos ,num, prom) FIN

Area de Servicios - Departamento de Inform atica - Universidad Nacional de San Luis

L ogica

6.2.2. PSeInt SubProceso cant <-Ingresar( arr ,tam) Denir i, n, a como entero Escribir Ingrese la cantidad de datos: Leer n Mientras (n < 0|n > tam) Escribir Ingrese nuevamente la cantidad de datos Leer n FinMientras Para i<-1 Hasta n con paso 1 Hacer Escribir Ingrese el dato Leer a arr[i]<- a Finpara cant <- n FinSubProceso SubProceso prom <- Promedio ( arreglo , cantidad ) Denir suma como entero suma <- 0 Para i<-1 Hasta cantidad con paso 1 Hacer suma <- suma + arreglo[i] FinPara prom <- suma/cantidad FinSubProceso Proceso Principal Dimension datos[100] Denir num como entero num <-Ingresar(datos,100) Escribir La cantidad de datos ingresados es : num Escribir El promedio es: , Promedio(datos,num) FinProceso

6.3. Funciones primitivas o predenidas


Lenguaje de Diseno ABS(X) Valor Absoluto RC(X) Ra z Cuadrada de X PSeInt ABS(X) Valor Absoluto RC(X) o RAIZ(X) Ra z Cuadrada de X

Area de Servicios - Departamento de Inform atica - Universidad Nacional de San Luis

You might also like