You are on page 1of 18

Ejemplos PsInt

PSeInt, es la abreviatura de Pseudocode Interpreter, (Intrprete de Pseudocdigo). Este programa fue


creado como proyecto final para la materia Programacin I de la carrera Ingeniera en Informtica de la
Facultad de Ingeniera y Ciencias Hdricas de la Universidad Nacional del Litoral, del en aquel
momento estudiante Pablo Novara.

Apuntes preliminares
Antes de empezar a utilizar PsInt, es
conveniente tener una idea del
funcionamiento general de PSeInt.

Cuando abrimos por primera vez PSeInt


aparece un cartel preguntndonos que
perfil deseamos utilizar, para evitar
confusiones con el lenguaje.

Manejaremos dos perfiles. El estricto, que es el ms parecido a un lenguaje de programacin


real, se debe respetar al pie de la letra el formato del pseudocdigo propuesto por Novara. La
sintaxis flexible la usamos para ejecutar ciertos cdigos que requieren ms flexibilidad a la hora
de ejecutarse.

Tambin podemos ir a Configurar / Opciones de


Lenguaje / Elegimos Estricto o Flexible y pulsamos
aceptar.

1
Introduccion

Ejercicio 1: Hola Mundo

Proceso HolaMundo
escribir 'Hola Mundo';
FinProceso

Nota: Escribir Sin saltar o Sin bajar evita el salto de lnea.

Variables y Tipos de Datos


En programacin, una variable es un espacio de memoria reservado, que permite almacenar
un valor que corresponde a un tipo de dato soportado por el lenguaje de programacin.

Como su nombre indica, pueden cambiar de contenido a lo largo de la ejecucin de un


programa.

TIPOS DE DATOS

Numrico: enteros y decimales, los decimales se separan con un punto ( 2, 2.5) .


Lgico o Booleano: V y F.
Carcter: carcter y cadena de caracteres, Maysculas y minsculas, signos y
caracteres especiales. Se delimitan entre comillas simples (a, hola, ?, 8, B, ).

Las variables numricas pueden ser de tres tipos:

Natural (0, 1, 2, 3, .)
Entero (..-1, 0, 1, ...)
Real, Decimal o Flotantes.

Cadena de caracteres:

Se delimitan por doble comillas: Hola Mundo

Acciones Secuenciales
Definicin: Accin que nos permite definir una variable y otorgarle un tipo de dato.

2
Sintaxis: Definir <Nombre> como <Tipo>;

Asignacion: Nos permite dar un valor a las variables.

Sintaxis: <Variable> <- <Valor de la variable>;


Proceso definicion
definir edad, edad1, edad2 Como Entero;
definir nota Como Real;
definir dni Como Caracter;
definir nombre Como Caracter;
definir encontado Como Logico;

edad <- 20;


nota <- 15;
dni <- '09054874'
nombre <- 'Jose'
encontrado <- Falso;
FinProceso

Lectura: Nos permite obtener un valor desde el teclado y asignarlo a una variable.

Sintaxis: leer <Variable> ;


leer edad;
leer nota;
leer dni;
leer nombre;

Escritura: Nos permite mostrar el valor de una variable o una cadena de caracteres en
pantalla.

Sintaxis: escribir <Variable> ;

escribir cadena de caracteres;


escribir 'Introduce tu Edad';
leer edad;
escribir 'Introduce tu Nota';
leer nota;
escribir 'Introduce tu DNI';
leer dni;
escribir 'Introduce tu Nombre';
leer nombre;

3
escribir 'Tu edad es: ', edad;
escribir 'Tu nombre es: ', nombre;
escribir 'Tu DNI es: ', dni, ' y tienes una nota de ', nota;

Expresiones
Las expresiones son combinaciones de variables, utilizando operadores, que adquieren un
valor evaluado.

El valor se evala de acuerdo a las normas particulares de precedencia y asociacin que


tengan esos operadores.

Operadores: Son smbolos que indican una operacin especifica. Tenemos los siguientes
tipos:

Algebraicos
Relacionales
Lgicos

Operadores Algebraicos: realizan operaciones matemticas. Suelen operara variables


numricas y su resultado tambin es numrico.

Suma: A + B;
Resta: A B;
Multiplicacin: A * B;
Divisin: A / B;
Modulo: A % B A MOD B;
Potenciacin: A ^ B;

Ejemplo:
Proceso Operadores
definir A, B como enteros;
A <- 5;
B <- 2;

escribir A + B;
escribir A - B;
escribir A * B;
escribir A / B;
escribir A ^ B;
escribir A % B;

escribir A*5+10/B;

4
escribir 2*A^2+10*A+B;
FinProceso

Operadores Relacionales: Son operadores comparativos, sirven para comparar. Operan


cualquier tipo de variable pero el resultado es siempre de tipo lgico.

Igual que: A = B;
Distinto de: A <> B;
Mayor que: A > B;
Menor que: A < B;
Mayor o igual que: A >= B;
Menor o igual que: A <= B;

Ejemplo:

Proceso Operadores
definir A, B como enteros;
A <- 5;
B <- 2;

escribir A = B;
escribir A <> B;
escribir A < B;
escribir A > B;
escribir A <= B;
escribir A >= B;

escribir 'A' = 'B';


escribir 'A' <> 'B';
FinProceso

Operadores Lgicos: crean expresiones lgicas ms complejas, solo operan tipos lgicos y
su resultado tambin es lgico (VERDADERO o FALSO). Veremos solo estos tres tipos:

NO lgico (NOT Negacin): NO(A); NOT(A);


Y lgico (AND Conjuncin): A Y B; (A AND B;)
O Lgico (OR Disyuncin): A O B; (A OR B;)

OjO: En la Negacin la variable va entre parntesis.


Proceso Operadores
definir A, B como logicos;
A <- VERDADERO;

5
B <- FALSO;

escribir NO(A);
escribir NO(B);

escribir A Y B;
escribir A O B;
FinProceso

Ejercicio 2: Confeccionar un programa que sume dos nmeros y muestre el resultado.

Proceso suma
escribir 'Suma de dos numeros'
escribir 'Digite el primer numero';
leer A;
escribir 'Digite el segundo numero';
leer B;
suma <- A+B;
escribir 'El resultado de la suma es: ', suma;
FinProceso

6
Ejercicio 2a: confeccione un algoritmo que lea dos nmeros, calculando y escribiendo el valor
de su suma, resta, producto y divisin.

Ejercicio 3: Calcular el rea y el permetro de un tringulo, conociendo sus tres lados.

Segn el teorema de Heron de Alejandria que dice: En un tringulo de lados a, b, c, y


semipermetro s=(a+b+c)/2, su rea es igual a la raz cuadrada de s(s-a)(s-b)(s-c).
Proceso triangulo
//ingreso de datos
escribir 'Calculo del perimetro y area de un Triangulo';
escribir 'Ingrese el primer lado del triangulo';
leer L1;
escribir 'Ingrese el segundo lado del triangulo';
leer L2;
escribir 'Ingrese el tercer lado del triangulo';
leer L3;
//calculo del perimetro y semiperimetro
perimetro <- L1+L2+L3;
semip <- perimetro/2;
//calculo del area
area <- (semip*(semip-L1)*(semip-L2)*(semip-L3))^(1/2);
//salida de la informacion calculada
escribir 'El perimetro del triangulo es: ', perimetro;
escribir 'El area del triangulo es: ', area;
FinProceso

7
Ejercicio 4: Dadas dos variables numricas A y B, que el usuario debe teclear, se pide
realizar un algoritmo que intercambie los valores de ambas variables y muestre cunto valen
al final las dos variables (recuerda la asignacin).

Proceso intercambio_valores
Escribir "Intercambio de valores";
Escribir "Introduce el valor de A";
Leer A;
Escribir "Introduce el valor de B";
Leer B;
// C es una variable intermedia
C<-A;
A<-B;
B<-C;
Escribir "A vale ", A, " y B vale ", B;
FinProceso

Ejercicio 4a: Un colegio desea saber qu porcentaje de nios y qu porcentaje de nias hay
en el curso actual. Disear un algoritmo para este propsito (recuerda que para calcular el
porcentaje puedes hacer una regla de 3).

Estructura de Decisin
Una estructura de decisin nos permitir bifurcar el algoritmo en dos ramas, una que cumple
con la condicin y otra que no la cumple.

La estructura de decisin se escribe en pseudocdigo como:

Si <expresin lgica> Entonces


<bloque de acciones por verdadero>
Sino
<bloque de acciones por falso>
FinSi

Ejercicio 5: confeccionar un algoritmo que pida al usuario su edad, si es menor a 18 aos no


le permita el acceso.

Proceso Edad
Escribir ("Hola Usuario, Escribe tu Edad");
Leer edad;
Si edad >= 18 Entonces
Escribir ("Bienvenido Puedes entrar");
Sino

8
Escribir ("!! No !! Puedes entrar. eres Menor de Edad");
FinSi
FinProceso

Ejercicio 6: confeccionar un algoritmo que lea dos nmeros y nos diga cul de ellos es mayor
o bien si son iguales.

Ejercicio 7: Realizar un algoritmo que lea un nmero por teclado. En caso de que ese nmero
sea 0 o menor que 0, se saldr del programa imprimiendo antes un mensaje de error. Si es
mayor que 0, se deber calcular su cuadrado y la raz cuadrada del mismo.

Para calcular la raz cuadrada se puede usar la funcin interna RAIZ(X) o con una potencia
de 0.5.

Ejercicio 8: Realizar un algoritmo que dado un nmero entero, visualice en pantalla si es par
o impar. En el caso de ser 0, debe visualizar el nmero no es par ni impar (para que un
nmero sea par, se debe dividir entre dos y su resto debera ser 0).

Estructura de Repeticin o Bucle


Un bucle permite repetir una o varias acciones un nmero determinado de veces. El nmero
de veces se indica mediante una condicin, si la condicin es verdadera ejecuta el bloque de
cdigo que contenga, cuando la condicin sea falsa saldr del bucle.

Mientras <expresin_logica> Hacer


<bloque de instrucciones>
Fin Mientras

La expresin lgica es la que determina si se volver a ejecutar el bloque de instrucciones


mientras sea de resultado verdadero, cuando la expresin tiene como resultado falso
entonces ya no se ejecutar ms el bloque y se seguir con la secuencia normal.

Ejercicio 9: Modificar el algoritmo anterior, de forma que si se teclea un cero, se vuelva a


pedir el nmero por teclado (repetir hasta que se teclee un nmero mayor que cero).

9
Proceso par_impar_repetitivo
Escribir "Calculo de Numero Par e Impar";
Escribir "Introduce un numero";
Leer numero;
Mientras (numero <= 0) Hacer
Escribir "El ", numero, " debe ser mayor que Cero";
Leer numero;
FinMientras
//comprobamos si el numero es par
Si (numero % 2 = 0) Entonces
Escribir "El numero ", numero, " es par";
Sino
Escribir "El numero ", numero, " es impar";
FinSi
FinProceso

Ejercicio 9: Modificar el algoritmo anterior, de forma que vuelva a pedir un nmero. Para
continuar presione (S), cualquier otro abandonar.

Proceso par_impar_repetitivo
Escribir "Calculo de Numero Par e Impar";
continuar<-'S'
Mientras (continuar='S') Hacer
Escribir "Introduce un numero";
Leer numero;
Mientras (numero <= 0) Hacer
Escribir "El ", numero, " debe ser mayor que Cero";
Leer numero;
FinMientras
//comprobamos si el numero es par
Si (numero % 2 = 0) Entonces
Escribir "El numero ", numero, " es par";
Sino
Escribir "El numero ", numero, " es impar";
FinSi
Escribir "Si desea continuar presione (S)";
leer opcion;
Si (opcion = 'S' O opcion = 's') Entonces
continuar<-'S';
Sino
continuar<-'N';
FinSi
FinMientras
Ejercicio 10: Confeccionar un algoritmo que nos muestre por pantalla la tabla de multiplicar
de un nmero ingresado.

10
Proceso tabla
operando<-1;
escribir 'Ingrese el numero para la tabla de multiplicar';
leer N;
escribir 'Tabla del Numero ', N;
mientras operando<=10 Hacer
resultado<-N*operando;
escribir N, ' x ', operando, ' = ', resultado;
operando = operando + 1;
finmientras
FinProceso

Estructura Iterativa
Para los casos en que se debe controlar el ciclo mediante una variable de tipo contadora
existe una estructura particular que puede sustituir con ventaja a la estructura anterior. Nos
referimos a la estructura iterativa, la cual se asocia a una variable que se incrementa
automticamente y que al llegar a un determinado valor interrumpe las repeticiones del
bloque.

Sintaxis

Para variable <- valor_inicial Hasta valor_final Con Paso N Hacer


Instrucciones;
FinPara

Paso N: este puede ser un nmero entero o una variable entera.


Nota: el paso 1 puede omitirse, tanto en sintaxis estricta como flexible.

Utilizando este tipo de estructura, el algoritmo de la tabla de multiplicar, quedara planteado de


la forma siguiente:

Ejercicio 10a:

Proceso tabla
escribir 'Ingrese el numero para la tabla de multiplicar';
leer N;
escribir 'Tabla del Numero ', N;
Para operando <- 1 Hasta 10 con paso 1 Hacer
resultado <- N * operando;
escribir N, ' x ', operando, ' = ', resultado;

11
Fin Para
FinProceso

NOTA: en PSeInt, si queremos escribir sin que haya saltos de lnea, al final de la operacin
escribir escribimos sin saltar.

Ejercicio 11: Algoritmo que lea un nmero entero (lado) y a partir de l cree un cuadrado de
asteriscos con ese tamao. Los asteriscos slo se vern en el borde del cuadrado, no en el
interior.

Proceso cuadrado
escribir 'Dibujar un Cuadrado con asteriscos';
escribir 'Digite un numero entero';
Leer lado
Para asterisco<-1 Hasta lado Con Paso 1
Escribir "*" Sin Saltar
FinPara
escribir " "
Para asterisco<-1 Hasta lado-2 Con Paso 1
Escribir "*" Sin Saltar
Para espacio<-1 Hasta lado-2 Con Paso 1
Escribir " " sin saltar
FinPara
Escribir "*" Sin Saltar
escribir " "
FinPara
Para asterisco<-1 Hasta lado Con Paso 1
Escribir "*" Sin Saltar
FinPara
FinProceso

Ejercicio 12: Confeccione un algoritmo que lea un nmero entero (altura) y a partir de l cree
una escalera invertida de asteriscos con esa altura. Deber quedar as, si ponemos una altura
de 10.

12
Ejercicio 12a: Confeccione un algoritmo que lea un nmero entero (altura) y a partir de l
cree una pirmide.

Seleccin Multiple
Instruccion Segun
Esta instruccin permite ejecutar 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.

Opcionalmente, se puede agregar una opcin final, denominada De Otro Modo, cuya
secuencia de instrucciones se ejecutar slo si el valor almacenado en la variable no coincide
con ninguna de las opciones anteriores.

Sintaxis:

13
Segun variable_numerica Hacer
opcion_1:
secuencia_de_acciones_1
opcion_2:
secuencia_de_acciones_2
opcion_3:
secuencia_de_acciones_3
De Otro Modo:
secuencia_de_acciones_dom
FinSegun

Ejercicio 13: Confeccione un algoritmo para una calculadora con operaciones bsicas como
sumar, restar, multiplicar y dividir. Se deber pedir al usuario la operacin y luego dos
nmeros.

Proceso Calculadora
Escribir "Escoge una Operacion :";
Escribir "(1)Suma (2)Resta (3)Multiplicacion (4)Division";
Leer operador;
Segun operador Hacer
1:
Escribir "Suma";
Escribir "Digite el primer numero";
Leer num1;
Escribir "Digite el segundo numero";
Leer num2;
resultado<- num1 + num2;
Escribir "El resultado de la suma es: ", resultado;
2:
Escribir "Resta";
Escribir "Digite el primer numero";
Leer num1;
Escribir "Digite el segundo numero";
Leer num2;
resultado<- num1 - num2;
Escribir "El resultado de la resta es: ", resultado;
3:
Escribir "Multiplicacion";
Escribir "Digite el primer numero";
Leer num1;
Escribir "Digite el segundo numero";
Leer num2;
resultado<- num1 * num2;
Escribir "El resultado de la multiplicacion es: ", resultado;

14
4:
Escribir "Division";
Escribir "Digite el primer numero";
Leer num1;
Escribir "Digite el segundo numero";
Leer num2;
resultado<- num1 / num2;
Escribir "El resultado de la division es: ", resultado;
De Otro Modo:
Escribir "Operador errado";
FinSegun
FinProceso

Nota: La instruccin Limpiar Pantalla limpia la pantalla.

Ejercicio 14: Confeccione un algoritmo que pida un nmero de 1 al 12, y muestre en pantalla
el nombre del mes. Se pedir al usuario si desea continuar, si es afirmativo, limpie la pantalla.

Variables especiales
Variable contadora
Una variable contadora tiene la funcin de contar ocurrencias en un algoritmo.

Ejercicio 15: De un conjunto de N elementos numricos enteros, indicar cuantos son pares y
cuantos son impares.

Proceso pares_impares
pares <- 0;
escribir 'Digite Nmero de elementos a evaluar';
Leer N;
Para num <- 1 Hasta N Hacer
escribir 'Ingrese el elemento: ', num;
leer elemento;
Si elemento % 2 = 0 Entonces
pares <- pares + 1;
FinSi
FinPara
impares = N - pares;
escribir 'La cantidad de Nmeros Pares es: ', pares;
escribir 'La cantidad de Nmeros Impares es: ', impares;
FinProceso
En nuestro ejemplo la variable contadora es pares.
15
Variable acumuladora
Pero qu pasa si en lugar de sumarle valores constantes queremos sumarle valores variables.
Analicemos un nuevo enunciado de un problema.

Ejercicio 16: Queremos obtener el promedio de edad de un grupo de personas.

Proceso promedio_edad
acumulador <- 0;
escribir 'Calculo del promedio de Edad';
escribir 'Digite Numero de personas a evaluar';
Leer N;
Para num <- 1 Hasta N Hacer
escribir 'Ingrese edad de la persona: ', num;
leer edad;
// No se permite ingresar cero y numeros negativos
Si edad <= 0 Entonces
escribir 'Error la edad debe ser mayor que cero';
num = num -1;
FinSi
acumulador = acumulador + edad;
FinPara
promedio_edad = acumulador / N;
escribir '';
escribir 'El promedio de edad es: ', promedio_edad;
FinProceso

Funciones
Una funcin es un procedimiento definido por el lenguaje de programacin que permite
obtener un resultado a travs del proceso de uno, varios o ningn dato denominados
parmetros. Por ejemplo en la instruccin y f(x) donde f es una funcin, x es el parmetro y
el resultado es almacenado en la variable y.

Matemticas
RAIZ(Nmero) o RC(Nmero)
Obtiene la Raz Cuadrada del valor de Nmero.
ABS(Nmero)
Obtiene el Valor Absoluto (valor con signo positivo) del valor de Nmero.

16
TRUNC(Nmero)
Trunca el valor de Nmero obteniendo slo la parte entera.
REDON(Nmero)
Devuelve el entero ms cercano al valor de Nmero.
AZAR(Nmero)
Genera un valor aleatorio entero entre 0 y Nmero-1 incluidos.
LN(Nmero)
Obtiene el Logaritmo Natural del valor de Nmero
EXP(Nmero)
Obtiene la Funcin Exponencial (y <- ex) del valor de Nmero

Trigonomtricas

SEN(Nmero)
Obtiene el Seno del valor de Nmero tomado en radianes.
COS(Nmero)
Obtiene el Coseno del valor de Nmero tomado en radianes.
TAN(Nmero)
Obtiene la Tangente del valor de Nmero tomado en radianes.
ASEN(Nmero)
Obtiene el Arcoseno en radianes del valor de Nmero.
ACOS(Nmero)
Obtiene el Arcocoseno en radianes del valor de Nmero.
ATAN(Nmero)
Obtiene el Arcotangente en radianes del valor de Nmero.

Funciones de cadena de texto

LONGITUD(Cadena)
Devuelve la cantidad de caracteres que componen la Cadena.
MAYUSCULAS(Cadena)
17
Retorna una copia de la Cadena con todos sus caracteres en maysculas.
MINUSCULAS(Cadena)
Retorna una copia de la Cadena con todos sus caracteres en minsculas.
SUBCADENA(Cadena, Nmero1, Nmero2)
Retorna una nueva cadena que consiste en la parte de la Cadena que va desde la
posicin Nmero1 hasta la posicin Nmero2 (incluyendo ambos extremos). Las
posiciones utilizan la misma base que los arreglos, por lo que la primera letra ser la 0
o la 1 de acuerdo al perfil del lenguaje utilizado.
CONCATENAR(Cadena1, Cadena2)
Retorna una nueva cadena resulta de unir las Cadenas 1 y 2.
CONVERTIRANUMERO(Cadena)
Recibe una cadena de caracteres que contiene un grupo de caracteres numricos y
devuelve una variable numrica con el valor equivalente.
CONVERTIRATEXTO(Nmero)
Recibe un real y devuelve una variable numrica con la representacin como cadena
de caracteres de dicho real.

Ejercicios:
Adivina Numero: Confeccione un algoritmo para un sencillo juego en el que el usuario debe
adivinar un nmero aleatorio del 1 al 100 en 10 intentos.

Salario: A un trabajador le pagan segn sus horas trabajadas y la tarifa tiene un valor por
hora. Si la cantidad de horas trabajadas es mayor a 40 horas, la tarifa por hora se incrementa
en un 50% para las horas extras. Calcular el salario del trabajador dadas las horas trabajadas
y la tarifa por hora.

SalarioTotal: Modificar el ejercicio anterior para obtener la suma de los salarios de todos los
trabajadores.

18

You might also like