Professional Documents
Culture Documents
Apuntes preliminares
Antes de empezar a utilizar PsInt, es
conveniente tener una idea del
funcionamiento general de PSeInt.
1
Introduccion
Proceso HolaMundo
escribir 'Hola Mundo';
FinProceso
TIPOS DE DATOS
Natural (0, 1, 2, 3, .)
Entero (..-1, 0, 1, ...)
Real, Decimal o Flotantes.
Cadena de caracteres:
Acciones Secuenciales
Definicin: Accin que nos permite definir una variable y otorgarle un tipo de dato.
2
Sintaxis: Definir <Nombre> como <Tipo>;
Lectura: Nos permite obtener un valor desde el teclado y asignarlo a una variable.
Escritura: Nos permite mostrar el valor de una variable o una cadena de caracteres en
pantalla.
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.
Operadores: Son smbolos que indican una operacin especifica. Tenemos los siguientes
tipos:
Algebraicos
Relacionales
Lgicos
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
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;
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:
5
B <- FALSO;
escribir NO(A);
escribir NO(B);
escribir A Y B;
escribir A O B;
FinProceso
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.
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.
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).
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
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
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.
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.
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