Escolar Documentos
Profissional Documentos
Cultura Documentos
Variables y constantes.
Operadores.
Asignacin.
Funciones internas.
Instrucciones de control.
Seguimiento.
Declaracin.
Anlisis de un problema.
Descarga de PSeInt.
Si tienes alguna duda o quieres proponer
alguna solucin alternativa, deja un comentario en este post
o mndanos un mensaje
a administrador@discoduroderoer.es Tambin dejare algunos
comentarios para explicar que hace cada paso. Puedes ponerlos
con //
Esconder
Papel:
1
2 Var A, B, C: numerica
Inicio
3 Escribir "Introduce el valor de A"
4 Leer A
5 Escribir "Introduce el valor de B"
6 Leer B
7 C<-A
A<-B
8 B<-C
9 Escribir "A vale " A " y B vale " B
10 Fin
11
PSeInt:
1
Proceso ejercicio_1
2
Escribir "Introduce el valor de A"
3 Leer A
4 Escribir "Introduce el valor de B"
5 Leer B
6 C<-A
A<-B
7
B<-C
8 Escribir "A vale " A " y B vale " B
9 FinProceso
10
2) Algoritmo que lea dos nmeros, calculando y escribiendo el
valor de su suma, resta, producto y divisin.
Esconder
Papel:
1
2 Var numero1, numero2, resultado: numerica
3 Inicio
4 Escribir "Introduce el primer numero"
Leer numero1
5 Escribir "Introduce el segundo numero"
6 Leer numero2
7 resultado<-numero1+numero2
8 Escribir resultado
9 resultado<-numero1-numero2
Escribir resultado
10 resultado<-numero1*numero2
11 Escribir resultado
12 resultado<-numero1/numero2
13 Escribir resultado
14 Fin
15
PSeInt:
1 Proceso ejercicio_2
Escribir "Introduce el primer numero"
2
Leer numero1
3 Escribir "Introduce el segundo numero"
4 Leer numero2
5 //inicializamos la variable resultado a 0 (recomendable)
6 resultado<-0
//sumamos los numeros y escribimos su resultado
7
resultado<-numero1+numero2
8 Escribir resultado
9 //restamos los numeros y escribimos su resultado
10 resultado<-numero1-numero2
11 Escribir resultado
//multiplicamos los numeros y escribimos su resultado
12
13
14 resultado<-numero1*numero2
Escribir resultado
15
//dividimos los numeros y escribimos su resultado
16 resultado<-numero1/numero2
17 Escribir resultado
18 FinProceso
19
20
Esconder
Papel:
1
2 Var numero1, numero2: numerica
3 Inicio
4 Escribir "Introduce el primer numero"
Leer numero1
5
Escribir "Introduce el segundo numero"
6 Leer numero2
7 Si (numero1>=numero2) Entonces
8 Si (numero1=numero2) Entonces
9 escribir "los numeros " numero1 " " numero2 " son iguales"
Sino
10
Escribir numero1 " es el mayor de los dos"
11 FinSi
12 Sino
13 Escribir numero2 " es el mayor de los dos"
14 FinSi
Fin
15
16
PSeInt:
1 Proceso ejercicio_3
Escribir "Introduce el primer numero"
2
Leer numero1
3 Escribir "Introduce el segundo numero"
4 Leer numero2
5 //comparamos los dos numeros,
6 //si el primero es mayor o igual que el segundo entra
Si (numero1>=numero2) Entonces
7
//Si el numero1 y numero2 son iguales entra y escribe que son iguales
8
9
10 //Sino lo son escribe que el numero1 es el mayor
11 Si (numero1=numero2) Entonces
12 escribir "los numeros " numero1 " " numero2 " son iguales"
13 Sino
Escribir numero1 " es el mayor de los dos"
14 FinSi
15 //Si el primer Si es falso, escribe que el numero2 es mayor
16 Sino
17 Escribir numero2 " es el mayor de los dos"
18 FinSi
FinProceso
19
20
Esconder
NOTA: De esta forma que esta hecha, aunque dos de
los nmeros sean iguales, siempre dir el mayor.
Papel:
1
2 Var numero1, numero2, numero3: numerica
3 Inicio
4 Escribir "Introduce el primer numero"
5 Leer numero1
Escribir "Introduce el segundo numero"
6
Leer numero2
7 Escribir "Introduce el tercer numero"
8 Leer numero3
9 Si (numero1>numero2 AND numero1>numero3) Entonces
10 Escribir "el numero " numero1 " es el mayor"
Sino
11
Si (numero2>numero3) Entonces
12 Escribir "El numero " numero2 " es el mayor"
13 Sino
14 Escribir "El numero " numero3 " es el mayor"
15 FinSi
FinSi
16
Fin
17
18
PSeInt:
1 Proceso ejercicio_4
Escribir "Introduce el primer numero"
2
Leer numero1
3
4
5 Escribir "Introduce el segundo numero"
Leer numero2
6
Escribir "Introduce el tercer numero"
7 Leer numero3
8 //comparamos el numero1 con el numero2 y numero3
9 //Si las dos condiciones son verdaderas el numero1 es el mayor
10 Si (numero1>numero2 Y numero1>numero3) Entonces
Escribir "el numero " numero1 " es el mayor"
11
//si el numero1 no es el mayor,
12 //comparamos el numero2 con el numero3
13 Sino
14 Si (numero2>numero3) Entonces
15 Escribir "El numero " numero2 " es el mayor"
Sino
16
Escribir "El numero " numero3 " es el mayor"
17 FinSi
18 FinSi
19 FinProceso
20
21
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.
Mostrar
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.
Esconder
Papel:
1 Var numero, potencia, raiz: numerica
Inicio
2
Escribir "Introduce un numero"
3 Leer numero
4 Si (numero>0) Entonces
5 potencia<-numero^2
6 raiz_cuadrada<-numero^0,5
Escribir "Su potencia es " potencia "
7
Escribir "Su raiz es " raiz_cuadrada
8 Sino
9
10 Escribir "Error, introduce un numero mayor que 0"
11 FinSi
12 Fin
13
PSeInt:
1
2 Proceso ejercicio_6
3 Escribir "Introduce un numero"
Leer numero
4
//si el numero es mayor que 0, calcula la potencia y la raiz
5 //sino muestra un mensaje de error y sale del programa
6 Si (numero>0) Entonces
7 potencia<-numero^2
8 raiz_cuadrada<-RAIZ(numero)
Escribir "Su potencia es " potencia
9
Escribir "Su raiz es " raiz_cuadrada
10 Sino
11 Escribir "Error, introduce un numero mayor que 0"
12 FinSi
13 FinProceso
14
7) 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).
Esconder
Papel:
1
2 Var numero_nios, numero_nias, resultado: numerica
Inicio
3 Escribir "Introduce el numero de nios"
4 Leer numero_nios
5 Escribir "Introduce el numero de nias"
6 Leer numero_nias
7 porcentaje_nios<-numero_nios*100/(numero_nios+numero_nias)
porcentaje_nias<-100-porcentaje_nios
8 Escribir "Hay un " porcentaje_nios " % de nios
9 Escribir "Hay un " porcentaje_nias " % de nias
10 Fin
11
PSeInt:
1 Proceso Ejercicio_7
Escribir "Introduce el numero de nios"
2
Leer numero_nios
3 Escribir "Introduce el numero de nias"
4 Leer numero_nias
5
6 //calculamos el porcentaje
porcentaje_nios<-numero_nios*100/(numero_nios+numero_nias)
7
porcentaje_nias<-100-porcentaje_nios
8 Escribir "Hay un " porcentaje_nios " % de nios
9 Escribir "Hay un " porcentaje_nias " % de nias"
10 FinProceso
11
Esconder
Papel:
1
2 Var mes: cadena
3 importe, total:numerico
Inicio
4
Escribir "escribe el importe de la compra"
5 Leer importe
6 Escribir "Introduce el mes"
7 Leer mes
8 Si (mes="octubre") Entonces
total<-importe*0.85
9
Sino
10 total<-importe
11 FinSi
12 Escribir total
13 Fin
14
PSeInt:
1 Proceso ejercicio_8
2 Escribir "escribe el importe de la compra"
3 Leer importe
4 Escribir "Introduce el mes"
5 Leer mes
//Si el mes es octubre, se aplicara el descuento
6
Si (mes="octubre") Entonces
7 total<-importe*0.85
8 Sino
9 total<-importe
10 FinSi
Escribir total
11
FinProceso
12
13
Esconder
Papel:
1
2 Var numero: numerica
3 Inicio
Escribir "Introduce un numero"
4
Leer numero
5 Si (numero=0) Entonces
6 Escribir "El " numero " no es par ni impar"
7 Sino
8 Si (numero MOD 2=0) Entonces
Escribir "El " numero " es par"
9
Sino
10 Escribir "El " numero " no es par"
11 FinSi
12 FinSi
13 Fin
14
PSeInt:
1
2 Proceso ejercicio_9
3 Escribir "Introduce un numero"
Leer numero
4
Si (numero=0) Entonces
5 Escribir "El " numero " no es par ni impar"
6 Sino
7 //comprobamos si el numero es par
8 Si (numero MOD 2=0) Entonces
Escribir "El " numero " es par"
9
Sino
10 Escribir "El " numero " no es par"
11 FinSi
12 FinSi
13 FinProceso
14
Esconder
Papel:
1 Var numero: numerica
Inicio
2
Escribir "Introduce un numero"
3 Leer numero
4 Mientras (numero<=0) hacer
5 Escribir "escribe un numero mayor que 0"
6 Leer numero
FinMientras
7
Si (numero MOD 2=0) Entonces
8 Escribir "El " numero " es par"
9 Sino
10 Escribir "El " numero " no es par"
11 FinSi
Fin
12
13
14
PSeInt:
1
2 Proceso ejercicio_10
3 Escribir "Introduce un numero"
Leer numero
4
//Hasta que no se introduzca un numero mayor que 0 no saldra del bucle
5 Mientras (numero<=0) hacer
6 Escribir "escribe un numero mayor que 0"
7 Leer numero
8 FinMientras
Si (numero MOD 2=0) Entonces
9
Escribir "El " numero " es par"
10 Sino
11 Escribir "El " numero " no es par"
12 FinSi
13 FinProceso
14
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.
Esconder
Papel:
1 Var bachiller, prueba_acceso: cadena
Inicio
2
Escribir "Tienes el titulo de bachiller?"
3 Leer bachiller
4 si (bachiller="si") Entonces
5 Escribir "Puedes acceder al grado superior"
6 Sino
Escribir "Tienes la prueba de acceso superada?"
7
Leer prueba_acceso
8 si (prueba_acceso="si") Entonces
9 Escribir "Puedes acceder al grado superior"
10 Sino
11
12 Escribir "No puedes acceder a un grado superior"
13 FinSi
14 FinSi
Fin
15
16
PSeInt:
1
2 Proceso ejercicio_11
3 Escribir "Tienes el titulo de bachiller?"
4 Leer bachiller
si (bachiller="si") Entonces
5 Escribir "Puedes acceder al grado superior"
6 Sino
7 Escribir "Tienes la prueba de acceso superada?"
8 Leer prueba_acceso
9 si (prueba_acceso="si") Entonces
Escribir "Puedes acceder al grado superior"
10 Sino
11 Escribir "No puedes acceder a un grado superior"
12 FinSi
13 FinSi
14 FinProceso
15
Esconder
Papel:
1 Var num, res: numerica
2 Inicio
3 Desde num<-1 Hasta 9 In 1
4 res<-num^2
5 Escribir num " " res
FinDesde
6 Fin
7
PSeInt:
1 Proceso ejercicio_12
Para num<-1 Hasta 9 Con Paso 1
2
res<-num^2
3
4 Escribir num " " res
5 FinPara
6 FinProceso
Esconder
Papel:
1
Var N, contador, suma: numerica
2
Inicio
3 Leer N
4 suma<-0
5 Desde contador<-1 Hasta 5 In 1
6 suma<-N+suma
N<-N+1
7
FinDesde
8 Escribir suma
9 Fin
10
PSeInt:
1
Proceso ejercicio_13
2 Leer N
3 suma<-0
4 Para contador<-1 Hasta 5 Con Paso 1
5 suma<-N+suma
6 N<-N+1
FinPara
7 Escribir suma
8 FinProceso
9
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.
Esconder
Papel:
1 Var N, contador, suma: numerica
Inicio
2
Leer N
3 contador<-0
4 Mientras (contador<5) Hacer
5
6 si (N MOD 2=0) Entonces
7 suma<-N+suma
contador<-contador+1
8
FinSi
9 N<-N+1
10 FinMientras
11 Escribir suma
12 Fin
13
PSeInt:
1
2 Proceso ejercicio_14
3 Leer N
contador<-0
4 limite<-N
5 Mientras (contador<limite) Hacer
6 si (N MOD 2=0) Entonces
7 suma<-N+suma
8 contador<-contador+1
FinSi
9 N<-N+1
10 FinMientras
11 Escribir suma
12 FinProceso
13
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.
Esconder
Papel:
1 Var num, contador, suma: numerica
Inicio
2
Leer num
3
4 suma<-0
5 contador<-1
6 Mientras (num<>-1) Hacer
suma<-suma+num
7 contador<-contador+1
8 Leer num
9 FinMientras
10 Escribir suma/(contador-1)
11 Fin
12
PSeInt:
1
2 Proceso ejercicio_15
Leer num
3 suma<-0
4 contador<-1
5 Mientras (num<>-1) Hacer
6 suma<-suma+num
7 contador<-contador+1
Leer num
8 FinMientras
9 Escribir suma/(contador-1)
10 FinProceso
11
Esconder
Papel:
1
2
Var maximo, minimo, num, suma, media, contador: numerica
3
Inicio
4 Leer num
5 minimo<-num
6 maximo<-num
7 suma<-0
Mientras (num<>0) Hacer
8
si (num>maximo) Entonces
9 maximo<-num
10 FinSi
11 si (num<minimo) Entonces
12 minimo<-num
FinSi
13
suma<-suma+num
14 contador<-contador+1
15 leer num
16 FinMientras
17 media<-suma/(contador)
Escribir "El maximo es " maximo
18
Escribir "El minimo es " minimo
19 Escribir "La media es " media
20 Fin
21
22
PSeInt:
1 Proceso ejercicio_17
Leer num
2
//maximo y el minimo se inician con el numero que
3 //insertemos para que lo podamos modificar
4 //durante el programa
5 minimo<-num
6 maximo<-num
suma<-0
7
Mientras (num<>0) Hacer
8 si (num>maximo) Entonces
9 maximo<-num
10 FinSi
si (num<minimo) Entonces
11
12
13 minimo<-num
14 FinSi
15 suma<-suma+num
16 contador<-contador+1
leer num
17
FinMientras
18 media<-suma/(contador)
19 //escrbimos los resultados
20 Escribir "El maximo es " maximo
21 Escribir "El minimo es " minimo
Escribir "La media es " media
22
FinProceso
23
24
25
18) Algoritmo que visualice la cuenta de los nmeros que son
mltiplos de 2 o de 3 que hay entre 1 y 100.
Esconder
Papel:
1
Var num: numerica
2 Inicio
3 Desde num<-1 Hasta 100 In 1
4 //asi indicamos si un numero es multiplo de 3 o de 2
5 si (num MOD 2=0 OR num MOD 3=0) Entonces
6 Escribir num
FinSi
7 FinDesde
8 Fin
9
PSeInt:
1
Proceso ejercicio_18
2 Para num<-1 Hasta 100 Con Paso 1
3 //asi indicamos si un numero es multiplo de 3 o de 2
4 si (num MOD 2=0 o num MOD 3=0) Entonces
5 Escribir num
FinSi
6
FinPara
7 FinProceso
8
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).
Esconder
Papel:
1 Var dia, mes, ao: numerica
Inicio
2
Escribir "Introduce el dia"
3 Leer dia
4 Escribir "Introduce el mes"
5 Leer mes Escribir "Introduce el ao"
6 Leer ao
//comprobamos que la fecha es correcto
7
si ((dia<=31 y dia>=0) AND (mes<=12 y mes>=0) AND ao>0) Entonces
8 Escribir dia sin saltar
9 //usamos el segun sea para escribir el mes
10 Segun mes Hacer
11 1:
escribir " de enero de" sin saltar
12
2:
13 escribir " de febrero de " sin saltar
14 3:
15 escribir " de marzo de " sin saltar
16 4:
escribir " de abril de " sin saltar
17
5:
18 escribir " de mayo de " sin saltar
19 6:
20 escribir " de junio de " sin saltar
21 7:
escribir " de julio de " sin saltar
22
8:
23 escribir " de agosto de " sin saltar
24 9:
25 escribir " de septiembre de " sin saltar
26 10:
escribir " de octubre de " sin saltar
27 11:
28 escribir " de noviembre de " sin saltar
29 12:
30 escribir " de diciembre de " sin saltar
31 FinSegun
Escribir ao
32 Sino
33 Escribir "error"
34 FinSi
35 Fin
36
37
38
39
40
41
42
PSeInt:
1 Proceso ejercicio_19
Escribir "Introduce el dia"
2
Leer dia
3 Escribir "Introduce el mes"
4 Leer mes
5 Escribir "Introduce el ao"
6 Leer ao
//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
10 Segun mes Hacer
11 1:
escribir " de enero de" sin saltar
12
2:
13 escribir " de febrero de " sin saltar
14 3:
15 escribir " de marzo de " sin saltar
16 4:
escribir " de abril de " sin saltar
17
5:
18 escribir " de mayo de " sin saltar
19 6:
20 escribir " de junio de " sin saltar
21 7:
escribir " de julio de " sin saltar
22
8:
23 escribir " de agosto de " sin saltar
24 9:
25 escribir " de septiembre de " sin saltar
26 10:
escribir " de octubre de " sin saltar
27 11:
28 escribir " de noviembre de " sin saltar
29 12:
30 escribir " de diciembre de " sin saltar
31 FinSegun
Escribir ao
32 Sino
33 Escribir "error"
34 FinSi
35 FinProceso
36
37
38
39
40
41
42
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.
Esconder
Papel:
1 Var alumno: cadena
nota_teoria, nota_problemas, nota_teoria, nota_final: numerica
2
Inicio
3 Escribir "Introduce el nombre del alumno"
4 Leer alumno
5 Mientras alumno<>"" Hacer
6 Escribir "Introduce la nota practica"
leer nota_practica
7
Escribir "Introduce la nota de problemas"
8 leer nota_problemas
9 Escribir "Introduce la nota de teoria"
10 Leer nota_teoria
11 //NOTA: este si esta agrupado por falta de espacio
si (nota_practica<=10 AND nota_practica>=0)
12
AND (nota_problemas<=10 AND nota_problemas>=0)
13 AND (nota_teoria<=10 AND 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
Escribir "La nota de teoria es " nota_teoria
17
nota_practica<-nota_practica*0.1
18 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
Sino
22
Escribir "Has escrito una nota incorrecta, vuelve a intentarlo"
23 FinSi
24
25 Escribir "Introduce el nombre de otro alumno"
26 Leer alumno
27 FinMientras
Fin
28
29
30
31
32
33
PSeInt:
1
2
3
Proceso ejercicio_20
4 Escribir "Introduce el nombre del alumno"
5 Leer alumno
6 Mientras alumno<>"" Hacer
7 //si introducimos un nombre de alumno
8 //correcto, entrara en el bucle
Escribir "Introduce la nota practica"
9 leer nota_practica
10 Escribir "Introduce la nota de problemas"
11 leer nota_problemas
12 Escribir "Introduce la nota de teoria"
13 Leer nota_teoria
//comprobamos si las notas tienen un rango correcto
14 //NOTA: este si esta agrupado por falta de espacio
15 si (nota_practica<=10 y nota_practica>=0)
16 y (nota_problemas<=10 y nota_problemas>=0)
17 y (nota_teoria<=10 y nota_teoria>=0) Entonces
18 Escribir "El alumno " alumno
Escribir "La nota practica es " nota_practica
19 Escribir "La nota de problemas es " nota_problemas
20 Escribir "La nota de teoria es " nota_teoria
21 nota_practica<-nota_practica*0.1
22 nota_problemas<-nota_problemas*0.5
23 nota_teoria<-nota_teoria*0.4
nota_final<-nota_practica+nota_problemas+nota_teoria
24 Escribir "La nota final es " nota_final
25 Sino
26 Escribir "Has escrito una nota incorrecta, vuelve a intentarlo"
27 FinSi
28 Escribir "Introduce el nombre de otro alumno"
Leer alumno
29 FinMientras
30 FinProceso
31
32
33
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:
****
**
**
****
Esconder
NOTA: este tipo de ejercicios cambian mucho en papel y en
PSeInt, en papel es mas sencillo que en PSeInt.
Papel:
1
2 Var lado, asterisco, espacio: numerica
3 Inicio
4 Leer lado
5 Desde asterisco<-1 Hasta lado In 1
6 Escribir "*"
FinDesde
7 escribir " "
8 desde asterisco<-1 Hasta lado-2 In 1
9 Escribir "*"
10 Desde espacio<-1 Hasta lado-2 In 1
11 Escribir " "
FinDesde
12 Escribir "*"
13 escribir " "
14 FinDesde
15 Desde asterisco<-1 Hasta lado In 1
16 Escribir "*"
FinDesde
17 Fin
18
19
PSeInt:
1 Proceso ejercicio_21
Leer lado
2
Para asterisco<-1 Hasta lado Con Paso 1
3 Escribir "*" Sin Saltar
4 FinPara
5 escribir " "
6 Para asterisco<-1 Hasta lado-2 Con Paso 1
Escribir "*" Sin Saltar
7
Para espacio<-1 Hasta lado-2 Con Paso 1
8 Escribir " " sin saltar
9
10
FinPara
11 Escribir "*" Sin Saltar
12 escribir " "
13 FinPara
14 Para asterisco<-1 Hasta lado Con Paso 1
Escribir "*" Sin Saltar
15
FinPara
16 FinProceso
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.
*****
****
***
**
Esconder
Papel:
1 Var altura, asterisco, espacio, espacio_linea, asterisco_linea: numerica
Inicio
2
Leer altura
3 asterisco<-altura
4 espacio<-0
5 Desde linea<-1 hasta altura In 1
6 Desde espacio_linea<-0 hasta espacio In 1
Escribir " "
7
FinDesde
8 Desde asterisco_linea<-1 hasta asterisco In 1
9 Escribir "*"
10 FinDesde
11 asterisco<-asterisco-1
espacio<-espacio+1
12
Escribir " "
13 FinDesde
14 Fin
15
16
17
PSeInt:
1
2
Proceso ejercicio_22
3 Leer altura
4 //iniciamos las variables segun lo necesitamos
5 asterisco<-altura
6 espacio<-0
Para linea<-1 hasta altura con paso 1
7
//escribimos los espacios iniciales
8 Para espacio_linea<-0 hasta espacio con paso 1
9 Escribir " " sin saltar
10 FinPara
11 //escribimos los asteriscos de la escalera
Para asterisco_linea<-1 hasta asterisco con paso 1
12
Escribir "*" sin saltar
13 FinPara
14 //aumentamos los espacios y disminuimos los asteriscos
15 asterisco<-asterisco-1
16 espacio<-espacio+1
Escribir " "
17
FinPara
18 FinProceso
19
20
23) Algoritmo que dado un ao, nos diga si es bisiesto o no. Un
ao es bisiesto bajo las siguientes condiciones:
Esconder
Papel:
1 Var ao: numerica
Inicio
2
Escribir "Introduce un ao"
3 leer ao
4 si (ao MOD 4=0 y ao MOD 100<>0)Entonces
5 Escribir "El ao " ao " es bisiesto"
6 Sino
si (ao MOD 400=0 y ao MOD 100=0) Entonces
7
8 Escribir "El ao " ao " es bisiesto"
9 Sino
10 escribir "El ao " ao " no es bisiesto"
11 FinSi
FinSi
12
Fin
13
14
PSeInt:
1
2 Proceso ejercicio_23
3 Escribir "Introduce un ao"
leer ao
4 si (ao MOD 4=0 y ao MOD 100<>0)Entonces
5 Escribir "El ao " ao " es bisiesto"
6 Sino
7 si (ao MOD 400=0 y ao MOD 100=0) Entonces
8 Escribir "El ao " ao " es bisiesto"
Sino
9 escribir "El ao " ao " no es bisiesto"
10 FinSi
11 FinSi
12 FinProceso
13
24) El siguiente es el men de un restaurante de bocadillos.
Disear un algoritmo capaz de leer el nmero de unidades
consumidas de cada alimento ordenado y calcular la cuenta total.
Vamos a suponer que estos precios son fijos, es decir, que son
constantes (recuerda que en PSeInt no se usa comas para separar
la parte decimal de la parte entera).
PRODUCTO
Bocadillo de jamn
Refresco
Cerveza
Esconder
Papel:
1 Inicio
JAMON=1.5
2
REFRESCO=1.05
3 CERVEZA=0.75
4
5 total=0
6 Escribir "Introduce la cantidad de bocadillos de jamon"
7 Leer cant_jamon
8 Escribir "Introduce la cantidad de refresco"
Leer cant_refresco
9
Escribir "Introduce la cantidad de cerveza"
10 Leer cant_cerveza
11 //NOTA: las 2 siguientes lineas van en una linea
12 total<-((cant_jamon*JAMON)+(cant_refresco*REFRESCO)
13 +(cant_cerveza*CERVEZA))
Escribir total
14
Fin
15
16
PSeInt:
1
2 Proceso ejercicio_24
3 JAMON=1.5
4 REFRESCO=1.05
CERVEZA=0.75
5
total=0
6 Escribir "Introduce la cantidad de bocadillos de jamon"
7 Leer cant_jamon
8 Escribir "Introduce la cantidad de refresco"
9 Leer cant_refresco
Escribir "Introduce la cantidad de cerveza"
10
Leer cant_cerveza
11 //NOTA: los dos siguientes van en una linea
12 total<-((cant_jamon*JAMON)+(cant_refresco*REFRESCO)
13 +(cant_cerveza*CERVEZA))
14 Escribir total
FinProceso
15
16
25) Algoritmo que nos calcule las races de una ecuacin de
segundo grado. Controlar el caso de que las soluciones sean
imaginarias.
Esconder
Papel:
1 Var a,b, c, raizcua, x1, x2: numerica
Inicio
2
Escribir "escibe el valor de a"
3 Leer a
4 Escribir "escibe el valor de b"
5 Leer b
6 Escribir "escibe el valor de c"
Leer c
7
neg<--b
8
9
10 raizcua<-(b^2-4*a*c)^0.5
11 Si raizcua<=0 Entonces
12 Escribir "La ecuacion no se puede resolver"
Sino
13
x1<-(neg+raizcua)/(2*a)
14 x2<-(neg-raizcua)/(2*a)
15 Escribir x1
16 Escribir x2
17 FinSi
Fin
18
19
PSeInt:
1
2 Proceso ejercicio_25
3 Escribir "escibe el valor de a"
4 Leer a
5 Escribir "escibe el valor de b"
Leer b
6
Escribir "escibe el valor de c"
7 Leer c
8 neg<--b
9 raizcua<-(b^2-4*a*c)^0.5
10 Si raizcua<=0 Entonces
Escribir "La ecuacion no se puede resolver"
11
Sino
12 totalx1<-(NEG+Raizcua)/(2*a)
13 totalx2<-(NEG-Raizcua)/(2*a)
14 Escribir Totalx1
15 Escribir Totalx2
FinSi
16
FinProceso
17
18