Documente Academic
Documente Profesional
Documente Cultură
1) 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 cuanto valen al final las
dos variables (recuerda la asignacin).
SeleccionarEsconder
Spoiler
Papel:
1
2
3
4
5
6
7
8
9
10
11
Var A, B, C:
Inicio
Escribir
Leer A
Escribir
Leer B
C<-A
A<-B
B<-C
Escribir
Fin
numerica
"Introduce el valor de A"
"Introduce el valor de B"
PSeInt:
1
2
3
4
5
6
7
8
9
10
Proceso ejercicio_1
Escribir "Introduce el valor de A"
Leer A
Escribir "Introduce el valor de B"
Leer B
C<-A
A<-B
B<-C
Escribir "A vale " A " y B vale " B
FinProceso
2) Algoritmo que lea dos nmeros, calculando y escribiendo el valor de su suma, resta, producto y
divisin.
Spoiler
SeleccionarMostrar
3) Algoritmo que lea dos nmeros y nos diga cual de ellos es mayor o bien si son iguales (recuerda
usar la estructura condicional SI)
Spoiler
Papel:
SeleccionarEsconder
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
PSeInt:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Proceso ejercicio_3
Escribir "Introduce el primer numero"
Leer numero1
Escribir "Introduce el segundo numero"
Leer numero2
//comparamos los dos numeros,
//si el primero es mayor o igual que el segundo entra
Si (numero1>=numero2) Entonces
//Si el numero1 y numero2 son iguales entra y escribe que son
iguales
//Sino lo son escribe que el numero1 es el mayor
Si (numero1=numero2) Entonces
escribir "los numeros " numero1 " " numero2 " son
iguales"
Sino
Escribir numero1 " es el mayor de los dos"
FinSi
//Si el primer Si es falso, escribe que el numero2 es mayor
Sino
Escribir numero2 " es el mayor de los dos"
FinSi
FinProceso
4) Algoritmo que lea tres nmeros distintos y nos diga cual de ellos es el mayor (recuerda usar la
estructura condicional Si y los operadores lgicos).
Spoiler
SeleccionarEsconder
NOTA: De esta forma que esta hecha, aunque dos de los nmeros sean iguales, siempre dir el mayor.
Papel:
Var numero1, numero2, numero3: numerica
1
Inicio
2
Escribir "Introduce el primer numero"
3
Leer numero1
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
PSeInt:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Proceso ejercicio_4
Escribir "Introduce el primer numero"
Leer numero1
Escribir "Introduce el segundo numero"
Leer numero2
Escribir "Introduce el tercer numero"
Leer numero3
//comparamos el numero1 con el numero2 y numero3
//Si las dos condiciones son verdaderas el numero1 es el mayor
Si (numero1>numero2 Y numero1>numero3) Entonces
Escribir "el numero " numero1 " es el mayor"
//si el numero1 no es el mayor,
//comparamos el numero2 con el numero3
Sino
Si (numero2>numero3) Entonces
Escribir "El numero " numero2 " es el mayor"
Sino
Escribir "El numero " numero3 " es el mayor"
FinSi
FinSi
FinProceso
5) Disear un algoritmo que pida por teclado tres nmeros; si el primero es negativo, debe imprimir
el producto de los tres y si no lo es, imprimir la suma.
Spoiler
Papel:
1
2
3
SeleccionarEsconder
4
5
6
7
8
9
10
11
12
13
14
15
Fin
Leer numero1
Escribir "Introduce el segundo numero"
Leer numero2
Escribir "Introduce el tercer numero"
Leer numero3
Si (numero1<0) Entonces
resultado<-numero1*numero2*numero3
Sino
resultado<-numero1+numero2+numero3
FinSi
Escribir resultado
PSeInt:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Proceso ejercicio_5
Escribir "Introduce el primer numero"
Leer numero1
Escribir "Introduce el segundo numero"
Leer numero2
Escribir "Introduce el tercer numero"
Leer numero3
//si el numero1 es menor que 0,
//multiplicara los numero y sino los sumara
Si (numero1<0) Entonces
resultado<-numero1*numero2*numero3
Sino
resultado<-numero1+numero2+numero3
FinSi
Escribir resultado
FinProceso
6) 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 raiz cuadrada del mismo, visualizando el numero que ha
tecleado el usuario y su resultado (Del numero X, su potencia es X y su raiz X ). Para calcular la
raiz cuadrada se puede usar la funcin interna RAIZ(X) o con una potencia de 0,5.
Spoiler
Papel:
1
2
3
4
5
6
7
8
SeleccionarEsconder
9
10
11
12
13
Sino
Fin
PSeInt:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Proceso ejercicio_6
Escribir "Introduce un numero"
Leer numero
//si el numero es mayor que 0, calcula la potencia y la raiz
//sino muestra un mensaje de error y sale del programa
Si (numero>0) Entonces
potencia<-numero^2
raiz_cuadrada<-RAIZ(numero)
Escribir "Su potencia es " potencia
Escribir "Su raiz es " raiz_cuadrada
Sino
Escribir "Error, introduce un numero mayor que 0"
FinSi
FinProceso
Spoiler
SeleccionarEsconder
Papel:
1
2
3
4
5
6
7
8
9
10
11
PSeInt:
Proceso Ejercicio_7
1
Escribir "Introduce el numero de nios"
2
Leer numero_nios
3
Escribir "Introduce el numero de nias"
4
Leer numero_nias
//calculamos el porcentaje
5
porcentaje_nios<-numero_nios*100/(numero_nios+numero_nias)
6
porcentaje_nias<-100-porcentaje_nios
8
9
10
11
8) Una tienda ofrece un descuento del 15% sobre el total de la compra durante el mes de octubre.
Dado un mes y un importe, calcular cul es la cantidad que se debe cobrar al cliente.
Spoiler
SeleccionarEsconder
Papel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
PSeInt:
1
2
3
4
5
6
7
8
9
10
11
12
13
Proceso ejercicio_8
Escribir "escribe el importe de la compra"
Leer importe
Escribir "Introduce el mes"
Leer mes
//Si el mes es octubre, se aplicara el descuento
Si (mes="octubre") Entonces
total<-importe*0.85
Sino
total<-importe
FinSi
Escribir total
FinProceso
9) 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 numero sea par, se debe
dividir entre dos y que su resto sea 0)
Spoiler
Papel:
SeleccionarEsconder
1
2
3
4
5
6
7
8
9
10
11
12
13
14
PSeInt:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Proceso ejercicio_9
Escribir "Introduce un numero"
Leer numero
Si (numero=0) Entonces
Escribir "El " numero " no es par ni impar"
Sino
//comprobamos si el numero es par
Si (numero MOD 2=0) Entonces
Escribir "El " numero " es par"
Sino
Escribir "El " numero " no es par"
FinSi
FinSi
FinProceso
10) Modificar el algoritmo anterior, de forma que si se teclea un cero, se vuelva a pedir el nmero
por teclado (as hasta que se teclee un nmero mayor que cero) (recuerda la estructura mientras).
Spoiler
Papel:
1
2
3
4
5
6
7
8
9
10
11
SeleccionarEsconder
12
13
14
Fin
PSeInt:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Proceso ejercicio_10
Escribir "Introduce un numero"
Leer numero
//Hasta que no se introduzca un numero mayor que 0 no saldra del
bucle
Mientras (numero<=0) hacer
Escribir "escribe un numero mayor que 0"
Leer numero
FinMientras
Si (numero MOD 2=0) Entonces
Escribir "El " numero " es par"
Sino
Escribir "El " numero " no es par"
FinSi
FinProceso
11) Algoritmo que nos diga si una persona puede acceder a cursar un ciclo formativo de grado
superior o no. Para acceder a un grado superior, si se tiene un titulo de bachiller, en caso de no
tenerlo, se puede acceder si hemos superado una prueba de acceso.
Spoiler
SeleccionarEsconder
Papel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
PSeInt:
Proceso ejercicio_11
1
Escribir "Tienes el titulo de bachiller?"
2
Leer bachiller
3
si (bachiller="si") Entonces
4
Escribir "Puedes acceder al grado superior"
Sino
5
6
7
8
9
10
11
12
13
14
15
12) Desarrollar un algoritmo que nos calcule el cuadrado de los 9 primeros nmeros naturales
(recuerda la estructura desde-hasta)
Spoiler
SeleccionarEsconder
Papel:
1
2
3
4
5
6
7
PSeInt:
1
2
3
4
5
6
Proceso ejercicio_12
Para num<-1 Hasta 9 Con Paso 1
res<-num^2
Escribir num " " res
FinPara
FinProceso
NOTA: este ejercicio tambin se puede hacer con la estructura Mientras, pero lo hemos hecho con la
estructura Desde-Hasta porque sabemos el rango.
13) Se pide representar el algoritmo que nos calcule la suma de los N primeros nmeros
naturales. Nse leer por teclado (no tenemos porque llamar a la variable N, podemos llamarla
como queramos).
Spoiler
Papel:
1
2
3
4
5
6
SeleccionarEsconder
7
8
9
10
FinDesde
Escribir suma
Fin
PSeInt:
1
2
3
4
5
6
7
8
9
Proceso ejercicio_13
Leer N
suma<-0
Para contador<-1 Hasta 5 Con Paso 1
suma<-N+suma
N<-N+1
FinPara
Escribir suma
FinProceso
14) Se pide representar el algoritmo que nos calcule la suma de los N primeros nmeros pares. Es
decir, si insertamos un 5, nos haga la suma de 6+8+10+12+14.
Spoiler
Papel:
1
2
3
4
5
6
7
8
9
10
11
12
13
PSeInt:
1
2
3
4
5
6
7
8
9
10
11
12
Proceso ejercicio_14
Leer N
contador<-0
Mientras (contador<5) Hacer
si (N MOD 2=0) Entonces
suma<-N+suma
contador<-contador+1
FinSi
N<-N+1
FinMientras
Escribir suma
FinProceso
SeleccionarEsconder
15) Dada una secuencia de nmeros ledos por teclado, que acabe con un 1, por ejemplo:
5,3,0,2,4,4,0,0,2,3,6,0,,-1; Realizar el algoritmo que calcule la media aritmtica. Suponemos
que el usuario no insertara numero negativos.
Spoiler
SeleccionarEsconder
Papel:
1
2
3
4
5
6
7
8
9
10
11
12
PSeInt:
1
2
3
4
5
6
7
8
9
10
11
Proceso ejercicio_15
Leer num
suma<-0
contador<-1
Mientras (num<>-1) Hacer
suma<-suma+num
contador<-contador+1
Leer num
FinMientras
Escribir suma/(contador-1)
FinProceso
16) Teniendo en cuenta que la clave es eureka, escribir un algoritmo que nos pida una clave.
Solo tenemos 3 intentos para acertar, si fallamos los 3 intentos nos mostrara un
mensaje indicndonos que hemos agotado esos 3 intentos. (Recomiendo utilizar un interruptor). Si
acertamos la clave, saldremos directamente del programa.
Spoiler
Papel:
1
2
3
4
5
6
SeleccionarEsconder
7
8
9
10
11
12
13
14
15
16
17
18
Leer clave
si (clave="eureka") Entonces
Escribir "la clave es correcta"
acierto<-Verdadero
FinSi
contador<-contador+1
FinMientras
si (contador=3 AND acierto=falso) Entonces
Escribir "Ya no tienes mas intentos"
FinSi
Fin
PSeInt:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Proceso ejercicio_16
contador<-0
//interruptor
acierto<-Falso
//usamos un interruptor, cuando acertemos,
//cambiara y la condicion sera falsa
Mientras (contador<3 Y acierto=falso) Hacer
//ponemos aqui leer porque con las variables
//iniciales entra en el bucle
Escribir "introduce la clave"
Leer clave
si (clave="eureka") Entonces
Escribir "la clave es correcta"
//el interruptor cambia cuando acertamos
acierto<-Verdadero
FinSi
contador<-contador+1
FinMientras
//este mensaje solo aparecera si hemos agotado
//todos los intentos y no hemos acertado
si (contador=3 Y acierto=falso) Entonces
Escribir "Ya no tienes mas intentos"
FinSi
FinProceso
17) Algoritmo que lea nmeros enteros hasta teclear 0, y nos muestre el mximo, el mnimo y la
media de todos ellos. Piensa como debemos inicializar las variables.
Spoiler
SeleccionarMostrar
18) Algoritmo que visualice la cuenta de los nmeros que son mltiplos de 2 o de 3 que hay entre 1
y 100.
Spoiler
SeleccionarEsconder
Papel:
1
2
3
4
5
6
7
8
9
PSeInt:
1
2
3
4
5
6
7
8
Proceso ejercicio_18
Para num<-1 Hasta 100 Con Paso 1
//asi indicamos si un numero es multiplo de 3 o de 2
si (num MOD 2=0 o num MOD 3=0) Entonces
Escribir num
FinSi
FinPara
FinProceso
19) Leer tres nmeros que denoten una fecha (da, mes, ao). Comprobar que es una fecha vlida.
Si no es vlida escribir un mensaje de error. Si es vlida escribir la fecha cambiando el nmero del
mes por su nombre. Ej. si se introduce 1 2 2006, se deber imprimir 1 de febrero de 2006. El ao
debe ser mayor que 0. (Recuerda la estructura segun sea).
NOTA: en PSeInt, si queremos escribir sin que haya saltos de linea, al final de la operacion escribir
escribimos sin saltar.
Spoiler
SeleccionarEsconder
Papel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
3:
escribir " de marzo de " sin saltar
4:
5:
6:
7:
8:
9:
10:
11:
12:
PSeInt:
Proceso ejercicio_19
1
Escribir "Introduce el dia"
2
Leer dia
3
Escribir "Introduce el mes"
4
Leer mes
Escribir "Introduce el ao"
5
Leer ao
6
//comprobamos que la fecha es correcto
7
si ((dia<=31 y dia>=0) y (mes<=12 y mes>=0) y ao>0) Entonces
8
Escribir dia sin saltar
9
//usamos el segun sea para escribir el mes
Segun mes Hacer
10
1:
11
escribir " de enero de" sin saltar
12
2:
13
escribir " de febrero de " sin saltar
3:
14
escribir " de marzo de " sin saltar
15
4:
16
escribir " de abril de " sin saltar
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
5:
escribir " de
6:
escribir " de
7:
escribir " de
8:
escribir " de
9:
escribir " de
10:
escribir " de
11:
escribir " de
12:
escribir " de
FinSegun
Escribir ao
Sino
Escribir "error"
FinSi
FinProceso
20) Calcular las calificaciones de un grupo de alumnos. La nota final de cada alumno se calcula
segn el siguiente criterio: la parte prctica vale el 10%; la parte de problemas vale el 50% y la
parte terica el 40%. El algoritmo leer el nombre del alumno, las tres notas, escribir el resultado y
volver a pedir los datos del siguiente alumno hasta que el nombre sea una cadena vaca. Las
notas deben estar entre 0 y 10, si no lo estn, no imprimir las notas, mostrara un mensaje de error
y volver a pedir otro alumno.
Spoiler
SeleccionarEsconder
Papel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Fin
PSeInt:
Proceso ejercicio_20
1
Escribir "Introduce el nombre del alumno"
2
Leer alumno
3
Mientras alumno<>"" Hacer
4
//si introducimos un nombre de alumno
//correcto, entrara en el bucle
5
Escribir "Introduce la nota practica"
6
leer nota_practica
7
Escribir "Introduce la nota de problemas"
8
leer nota_problemas
9
Escribir "Introduce la nota de teoria"
Leer nota_teoria
10
//comprobamos si las notas tienen un rango correcto
11
//NOTA: este si esta agrupado por falta de espacio
12
si (nota_practica<=10 y nota_practica>=0)
13
y (nota_problemas<=10 y nota_problemas>=0)
y (nota_teoria<=10 y nota_teoria>=0) Entonces
14
Escribir "El alumno " alumno
15
Escribir "La nota practica es " nota_practica
16
Escribir "La nota de problemas es " nota_problemas
17
Escribir "La nota de teoria es " nota_teoria
18
nota_practica<-nota_practica*0.1
nota_problemas<-nota_problemas*0.5
19
nota_teoria<-nota_teoria*0.4
20
nota_final<-nota_practica+nota_problemas+nota_teoria
21
Escribir "La nota final es " nota_final
22
Sino
23
Escribir "Has escrito una nota incorrecta, vuelve a
24
25
26
27
28
29
30
31
32
33
intentarlo"
FinSi
Escribir "Introduce el nombre de otro alumno"
Leer alumno
FinMientras
FinProceso
21) 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.
Ejemplo, para lado = 4 escribira:
****
* *
* *
****
Spoiler
SeleccionarEsconder
NOTA: este tipo de ejercicios cambian mucho en papel y en PSeInt, en papel es mas sencillo que en PSeInt.
Papel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
PSeInt:
Proceso ejercicio_21
1
Leer lado
2
Para asterisco<-1 Hasta lado Con Paso 1
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
22) Algoritmo que lea un nmero entero (altura) y a partir de l cree una escalera invertida de
asteriscos con esa altura. Debera quedar asi, si ponemos una altura de 5.
*****
****
***
**
*
Spoiler
SeleccionarEsconder
Papel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
PSeInt:
Proceso ejercicio_22
1
Leer altura
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
23) Algoritmo que dado un ao, nos diga si es bisiesto o no. Un ao es bisiesto bajo las siguientes
condiciones:
Si un ao es divisible entre 100 y adems es divisible entre 400, tambin resulta bisiesto.
NOTA: este ejercicio tiene muchas formas de hacerlo si quieres comprobar que es correcto,
puedes probarlo aqu, tambin encontraras informacin sobre las condiciones de cuando un ao es
bisiesto.
Spoiler
Papel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
PSeInt:
SeleccionarEsconder
1
2
3
4
5
6
7
8
9
10
11
12
13
Proceso ejercicio_23
Escribir "Introduce un ao"
leer ao
si (ao MOD 4=0 y ao MOD 100<>0)Entonces
Escribir "El ao " ao " es bisiesto"
Sino
si (ao MOD 400=0 y ao MOD 100=0) Entonces
Escribir "El ao " ao " es bisiesto"
Sino
escribir "El ao " ao " no es bisiesto"
FinSi
FinSi
FinProceso
Precio
Bocadillo de jamn
1,5
Refresco
1,05
Cerveza
0,75
Spoiler
SeleccionarEsconder
Papel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Inicio
JAMON=1.5
REFRESCO=1.05
CERVEZA=0.75
total=0
Escribir "Introduce la cantidad de bocadillos de jamon"
Leer cant_jamon
Escribir "Introduce la cantidad de refresco"
Leer cant_refresco
Escribir "Introduce la cantidad de cerveza"
Leer cant_cerveza
//NOTA: las 2 siguientes lineas van en una linea
total<-((cant_jamon*JAMON)+(cant_refresco*REFRESCO)
+(cant_cerveza*CERVEZA))
Escribir total
Fin
PSeInt:
Proceso ejercicio_24
1
JAMON=1.5
2
REFRESCO=1.05
3
CERVEZA=0.75
Producto
4
5
6
7
8
9
10
11
12
13
14
15
16
Precio
total=0
Escribir "Introduce la cantidad de bocadillos de jamon"
Leer cant_jamon
Escribir "Introduce la cantidad de refresco"
Leer cant_refresco
Escribir "Introduce la cantidad de cerveza"
Leer cant_cerveza
//NOTA: los dos siguientes van en una linea
total<-((cant_jamon*JAMON)+(cant_refresco*REFRESCO)
+(cant_cerveza*CERVEZA))
Escribir total
FinProceso
25) Algoritmo que nos calcule las races de una ecuacin de segundo grado. Controlar el caso de
que las soluciones sean imaginarias.
Spoiler
Papel:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
PSeInt:
Proceso ejercicio_25
1
Escribir "escibe el valor de a"
2
Leer a
3
Escribir "escibe el valor de b"
4
Leer b
Escribir "escibe el valor de c"
5
Leer c
6
SeleccionarEsconder
7
8
9
10
11
12
13
14
15
16
17
18
neg<--b
raizcua<-(b^2-4*a*c)^0.5
Si raizcua<=0 Entonces
Escribir "La ecuacion no se puede resolver"
Sino
totalx1<-(NEG+Raizcua)/(2*a)
totalx2<-(NEG-Raizcua)/(2*a)
Escribir Totalx1
Escribir Totalx2
FinSi
FinProceso