PSEUDOCÓDIGO 1
1. Dadas dos variables numéricas A y B, que el usuario debe teclear, se
pide realizar un algoritmo que intercambie los valores de ambas variables y muestre cuánto valen al final las
dos variables (recuerda la asignación).
Papel:
|
Var A,
B, C: numerica
Inicio
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
Fin
|
PSeInt:
|
|
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
números, calculando y escribiendo el valor de su suma, resta, producto y
división.
Papel:
|
Var numero1, numero2,
resultado: numerica
Inicio
Escribir
"Introduce el primer numero"
Leer numero1
Escribir
"Introduce el segundo numero"
Leer numero2
resultado<-numero1+numero2
Escribir resultado
resultado<-numero1-numero2
Escribir resultado
resultado<-numero1*numero2
Escribir resultado
resultado<-numero1/numero2
Escribir resultado
Fin
|
PSeInt:
|
|
Proceso ejercicio_2
Escribir
"Introduce el primer numero"
Leer
numero1
Escribir
"Introduce el segundo numero"
Leer
numero2
resultado1<-0
resultado1<-numero1+numero2
Escribir
“El resultado de la suma es ” resultado1
Resultado2<-numero1-numero2
Escribir
“El resultado de la resta es ” resultado2
Resultado3<-numero1*numero2
Escribir
“El resultado de la multiplicación es ” resultado3
Resultado4<-numero1/numero2
Escribir
“El resultado de la división es ” resultado4
FinProceso
|
3.
Algoritmo que lea dos
números y nos diga cuál de ellos es mayor o bien si son iguales (recuerda usar
la estructura condicional SI)
Papel:
|
Var numero1, numero2: numerica
Inicio
Escribir
"Introduce el primer numero"
Leer
numero1
Escribir
"Introduce el segundo numero"
Leer
numero2
Si
(numero1>=numero2) Entonces
Si
(numero1=numero2) Entonces
escribir
"los numeros " numero1 " " numero2 " son
iguales"
Sino
Escribir
numero1 " es el mayor de los dos"
FinSi
Sino
Escribir
numero2 " es el mayor de los dos"
FinSi
Fin
|
PSeInt:
|
Proceso ejercicio_3
Escribir
"Introduce el primer numero"
Leer
numero1
Escribir
"Introduce el segundo numero"
Leer
numero2
Si
(numero1>=numero2) Entonces
Si
(numero1=numero2) Entonces
Escribir
"los numeros " numero1 " y " numero2 " son iguales"
Sino
Escribir
numero1 " es el mayor de los dos numeros"
FinSi
Escribir
numero2 " es el mayor de los dos
numeros"
FinSi
FinProceso
|
|
|
|
|
4.
Algoritmo que lea tres
números distintos y nos diga cual de ellos es el mayor (recuerda usar la
estructura condicional Si y los operadores lógicos).
Papel:
|
Var numero1, numero2, numero3:
numerica
Inicio
Escribir
"Introduce el primer numero"
Leer
numero1
Escribir
"Introduce el segundo numero"
Leer
numero2
Escribir
"Introduce el tercer numero"
Leer
numero3
Si
(numero1>numero2 AND numero1>numero3) Entonces
Escribir
"el numero " numero1 " es el mayor"
Sino
Si
(numero2>numero3) Entonces
Escribir
"El numero " numero2 " es el mayor"
Sino
Escribir
"El numero " numero3 " es el mayor"
FinSi
FinSi
Fin
|
PSeInt:
|
Proceso ejercicio_4
Escribir
"Introduce el primer numero"
Leer
numero1
Escribir
"Introduce el segundo numero"
Leer numero2
Escribir
"Introduce el tercer numero"
Leer
numero3
Si
(numero1>numero2 Y numero1>numero3) Entonces
Escribir
"El numero " numero1 " es el mayor"
Sino
Si
(numero2>numero3) Entonces
Escribir
"El numero " numero2 " es el mayor"
Sino
Escribir
"El numero " numero3 " es el mayor"
FinSi
FinSi
FinProceso
|
5.
Diseñar un algoritmo que
pida por teclado tres números; si el primero es negativo, debe imprimir el
producto de los tres y si no lo es, imprimirá la suma.
Papel:
|
Var numero1, numero2, numero3,
resultado: numerica
Inicio
Escribir
"Introduce el primer numero"
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
Fin
|
PSeInt:
|
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
(numero1<0) Entonces
resultado<-numero1*numero2*numero3
Sino
resultado<-numero1+numero2+numero3
FinSi
Escribir “El valor
es ” resultado
FinProceso
|
6. Realizar un algoritmo que lea un número por teclado. En caso
de que ese número 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 función interna RAIZ(X) o con una potencia de 0,5.
Papel:
|
Var numero, potencia, raiz:
numerica
Inicio
Escribir
"Introduce un numero"
Leer
numero
Si
(numero>0) Entonces
potencia<-numero^2
raiz_cuadrada<-numero^0,5
Escribir
"Su potencia es " potencia "
Escribir
"Su raiz es " raiz_cuadrada
Sino
Escribir
"Error, introduce un numero mayor que 0"
FinSi
Fin
|
PSeInt:
|
Proceso ejercicio_6
Escribir
"Introduce un numero"
Leer numero
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
|
7.
Un colegio desea saber qué
porcentaje de niños y qué porcentaje de niñas hay en el curso actual. Diseñar
un algoritmo para este propósito (recuerda que para calcular el porcentaje
puedes hacer una regla de 3).
Papel:
|
Var numero_niños, numero_niñas,
resultado: numerica
Inicio
Escribir
"Introduce el numero de niños"
Leer
numero_niños
Escribir
"Introduce el numero de niñas"
Leer
numero_niñas
porcentaje_niños<-numero_niños*100/(numero_niños+numero_niñas)
porcentaje_niñas<-100-porcentaje_niños
Escribir
"Hay un " porcentaje_niños " % de niños
Escribir
"Hay un " porcentaje_niñas " % de niñas
Fin
|
PSeInt:
|
Proceso Ejercicio_7
Escribir
"Introduce el numero de niños"
Leer
numero_niños
Escribir
"Introduce el numero de niñas"
Leer
numero_niñas
porcentaje_niños<-numero_niños*100/(numero_niños+numero_niñas)
porcentaje_niñas<-100-porcentaje_niños
Escribir
"Hay un " porcentaje_niños " % de niños
Escribir
"Hay un " porcentaje_niñas " % de niñas"
FinProceso
|
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 cuál es la cantidad que se debe
cobrar al cliente.
Papel:
|
Var mes: cadena
importe,
total:numerico
Inicio
Escribir
"escribe el importe de la compra"
Leer
importe
Escribir
"Introduce el mes"
Leer
mes
Si
(mes="octubre") Entonces
total<-importe*0.85
Sino
total<-importe
FinSi
Escribir
total
Fin
|
PSeInt:
|
Proceso ejercicio_8
Escribir
"Escribe el importe de la compra"
Leer
importe
Escribir
"Introduce el mes"
Leer
mes
Si
(mes="octubre") Entonces
total<-importe*0.85
Sino
total<-importe
FinSi
Escribir
“El descuento es de ” total
FinProceso
|
9. Realizar un algoritmo que dado un número
entero, visualice en pantalla si es par o impar. En el caso de ser 0, debe
visualizar “el número no es par ni impar” (para que un numero sea par, se debe
dividir entre dos y que su resto sea 0)
Papel:
|
Var numero: numerica
Inicio
Escribir
"Introduce un numero"
Leer numero
Si (numero=0)
Entonces
Escribir
"El " numero " no es par ni impar"
Sino
Si
(numero MOD 2=0) Entonces
Escribir
"El " numero " es par"
Sino
Escribir
"El " numero " no es par"
FinSi
FinSi
Fin
|
PSeInt:
|
Proceso ejercicio_9
Escribir
"Introduce un numero"
Leer numero
Si (numero=0)
Entonces
Escribir
"El " numero " no es par ni impar"
Sino
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
número por teclado (así hasta que se teclee un número mayor que cero) (recuerda
la estructura mientras).
Papel:
|
Var numero: numerica
Inicio
Escribir
"Introduce un numero"
Leer numero
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
Fin
|
PSeInt:
|
Proceso ejercicio_10
Escribir
"Introduce un numero"
Leer numero
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.
Papel:
|
Var bachiller, prueba_acceso:
cadena
Inicio
Escribir
"¿Tienes el titulo de bachiller?"
Leer
bachiller
si
(bachiller="si") Entonces
Escribir
"Puedes acceder al grado superior"
Sino
Escribir
"¿Tienes la prueba de acceso superada?"
Leer
prueba_acceso
si
(prueba_acceso="si") Entonces
Escribir
"Puedes acceder al grado superior"
Sino
Escribir
"No puedes acceder a un grado superior"
FinSi
FinSi
Fin
|
PSeInt:
|
Proceso ejercicio_11
Escribir
"¿Tienes el titulo de bachiller?"
Leer
bachiller
si
(bachiller="si") Entonces
Escribir
"Puedes acceder al grado superior"
Sino
Escribir
"¿Tienes la prueba de acceso superada?"
Leer
prueba_acceso
si
(prueba_acceso="si") Entonces
Escribir
"Puedes acceder al grado superior"
Sino
Escribir
"No puedes acceder a un grado superior"
FinSi
FinSi
FinProceso
|
12.
Desarrollar
un algoritmo que nos calcule el cuadrado de los 9 primeros números naturales
(recuerda la estructura desde-hasta)
Papel:
|
Var num, res: numerica
Inicio
Desde
num<-1 Hasta 9 In 1
res<-num^2
Escribir
num " " res
FinDesde
Fin
|
PSeInt:
|
Proceso ejercicio_12
Para
num<-1 Hasta 9 Con Paso 1
res<-num^2
Escribir
num " " res
FinPara
FinProceso
|
13. Se pide representar el algoritmo que nos
calcule la suma de los N primeros números naturales. N se leerá por teclado (no tenemos
porque llamar a la variable N, podemos llamarla como queramos).
Papel:
|
Var N, contador, suma: numerica
Inicio
Leer N
suma<-0
Desde
contador<-1 Hasta 5 In 1
suma<-N+suma
N<-N+1
FinDesde
Escribir suma
Fin
|
PSeInt:
|
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 números pares. Es decir,
si insertamos un 5, nos haga la suma de 6+8+10+12+14.
Papel:
|
Var N, contador, suma: numerica
Inicio
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
Fin
|
PSeInt:
|
Proceso ejercicio_14
Leer N
contador<-0
limite<-N
Mientras
(contador<limite) Hacer
si (N
MOD 2=0) Entonces
suma<-N+suma
contador<-contador+1
FinSi
N<-N+1
FinMientras
Escribir suma
FinProceso
|
15. Dada una secuencia de números leídos 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 aritmética. Suponemos que el usuario no
insertara numero negativos.
Papel:
|
Var num, contador, suma:
numerica
Inicio
Leer num
suma<-0
contador<-1
Mientras
(num<>-1) Hacer
suma<-suma+num
contador<-contador+1
Leer
num
FinMientras
Escribir
suma/(contador-1)
Fin
|
PSeInt:
|
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 indicándonos que hemos agotado esos 3 intentos. (Recomiendo
utilizar un interruptor). Si acertamos la clave, saldremos directamente del programa.
Papel:
|
Var clave: cadena
acierto:
booleano
contador:
numerica
Inicio
contador<-0
acierto<-Falso
Mientras
(contador<3 AND acierto=falso) Hacer
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:
|
Proceso ejercicio_16
contador<-0
acierto<-Falso
Mientras
(contador<3 Y acierto=falso) Hacer
Escribir
"introduce la clave"
Leer
clave
si
(clave="eureka") Entonces
Escribir
"la clave es correcta"
acierto<-Verdadero
FinSi
contador<-contador+1
FinMientras
si
(contador=3 Y acierto=falso) Entonces
Escribir
"Ya no tienes mas intentos"
FinSi
FinProceso
|
|
|
|
|
17. Algoritmo que lea números enteros hasta teclear 0, y nos
muestre el máximo, el mínimo y la media de todos ellos. Piensa como debemos inicializar
las variables.
Papel:
|
Var maximo, minimo, num, suma,
media, contador: numerica
Inicio
Leer num
minimo<-num
maximo<-num
suma<-0
Mientras
(num<>0) Hacer
si
(num>maximo) Entonces
maximo<-num
FinSi
si
(num<minimo) Entonces
minimo<-num
FinSi
suma<-suma+num
contador<-contador+1
leer
num
FinMientras
media<-suma/(contador)
Escribir
"El maximo es " maximo
Escribir
"El minimo es " minimo
Escribir
"La media es " media
Fin
|
PSeInt:
|
Proceso ejercicio_17
Leer num
minimo<-num
maximo<-num
suma<-0
Mientras
(num<>0) Hacer
si
(num>maximo) Entonces
maximo<-num
FinSi
si
(num<minimo) Entonces
minimo<-num
FinSi
suma<-suma+num
contador<-contador+1
leer
num
FinMientras
media<-suma/(contador)
Escribir "El
maximo es " maximo
Escribir "El
minimo es " minimo
Escribir "La
media es " media
FinProceso
|
18. Algoritmo que visualice la cuenta de los números que son
múltiplos de 2 o de 3 que hay entre 1 y 100.
Papel:
|
Var num: numerica
Inicio
Desde
num<-1 Hasta 100 In 1
//asi
indicamos si un numero es multiplo de 3 o de 2
si
(num MOD 2=0 OR num MOD 3=0) Entonces
Escribir
num
FinSi
FinDesde
Fin
|
PSeInt:
|
Proceso ejercicio_18
Para
num<-1 Hasta 100 Con Paso 1
si
(num MOD 2=0 o num MOD 3=0) Entonces
Escribir
num
FinSi
FinPara
FinProceso
|
19. Leer tres números que denoten una fecha (día, mes, año).
Comprobar que es una fecha válida. Si no es válida escribir un mensaje de
error. Si es válida escribir la fecha cambiando el número del mes por su
nombre. Ej. si se introduce 1 2 2006, se deberá imprimir “1 de febrero de
2006”. El año debe ser mayor que 0. (Recuerda la estructura segun sea).
Papel:
|
Var dia, mes, año: numerica
Inicio
Escribir
"Introduce el dia"
Leer dia
Escribir
"Introduce el mes"
Leer mes
Escribir "Introduce el año"
Leer año
//comprobamos
que la fecha es correcto
si
((dia<=31 y dia>=0) AND (mes<=12 y mes>=0) AND año>0) Entonces
Escribir
dia sin saltar
//usamos
el segun sea para escribir el mes
Segun
mes Hacer
1:
escribir
" de enero de" sin saltar
2:
escribir
" de febrero de " sin saltar
3:
escribir
" de marzo de " sin saltar
4:
escribir
" de abril de " sin saltar
5:
escribir
" de mayo de " sin saltar
6:
escribir
" de junio de " sin saltar
7:
escribir
" de julio de " sin saltar
8:
escribir
" de agosto de " sin saltar
9:
escribir
" de septiembre de " sin saltar
10:
escribir
" de octubre de " sin saltar
11:
escribir
" de noviembre de " sin saltar
12:
escribir
" de diciembre de " sin saltar
FinSegun
Escribir
año
Sino
Escribir
"error"
FinSi
Fin
|
PSeInt:
|
Proceso ejercicio_19
Escribir
"Introduce el dia"
Leer dia
Escribir
"Introduce el mes"
Leer mes
Escribir
"Introduce el año"
Leer año
si
((dia<=31 y dia>0) y (mes<=12 y mes>0) y año>0) Entonces
Escribir
dia sin saltar
Segun
mes Hacer
1:
escribir
" de enero de " sin saltar
2:
escribir
" de febrero de " sin saltar
3:
escribir
" de marzo de " sin saltar
4:
escribir
" de abril de " sin saltar
5:
escribir
" de mayo de " sin saltar
6:
escribir
" de junio de " sin saltar
7:
escribir
" de julio de " sin saltar
8:
escribir
" de agosto de " sin saltar
9:
escribir
" de septiembre de " sin saltar
10:
escribir
" de octubre de " sin saltar
11:
escribir
" de noviembre de " sin saltar
12:
escribir
" de diciembre de " sin saltar
FinSegun
Escribir
año
Sino
Escribir
"error"
FinSi
FinProceso
|
20. Calcular las calificaciones de un grupo de alumnos. La nota
final de cada alumno se calcula según el siguiente criterio: la parte práctica
vale el 10%; la parte de problemas vale el 50% y la parte teórica 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 vacía. Las notas deben estar entre 0 y 10, si no lo están,
no imprimirá las notas, mostrara un mensaje de error
y volverá a pedir otro alumno.
Papel:
|
Var alumno: cadena
nota_teoria,
nota_problemas, nota_teoria, nota_final: numerica
Inicio
Escribir
"Introduce el nombre del alumno"
Leer
alumno
Mientras
alumno<>"" Hacer
Escribir
"Introduce la nota practica"
leer
nota_practica
Escribir
"Introduce la nota de problemas"
leer
nota_problemas
Escribir
"Introduce la nota de teoria"
Leer
nota_teoria
//NOTA:
este si esta agrupado por falta de espacio
si
(nota_practica<=10 AND nota_practica>=0)
AND
(nota_problemas<=10 AND nota_problemas>=0)
AND
(nota_teoria<=10 AND nota_teoria>=0) Entonces
Escribir
"El alumno " alumno
Escribir
"La nota practica es " nota_practica
Escribir
"La nota de problemas es " nota_problemas
Escribir
"La nota de teoria es " nota_teoria
nota_practica<-nota_practica*0.1
nota_problemas<-nota_problemas*0.5
nota_teoria<-nota_teoria*0.4
nota_final<-nota_practica+nota_problemas+nota_teoria
Escribir
"La nota final es " nota_final
Sino
Escribir
"Has escrito una nota incorrecta, vuelve a intentarlo"
FinSi
Escribir
"Introduce el nombre de otro alumno"
Leer
alumno
FinMientras
Fin
|
PSeInt:
|
Proceso ejercicio_20
Escribir
"Introduce el nombre del alumno"
Leer alumno
Mientras
alumno<>"" Hacer
Escribir
"Introduce la nota practica"
leer
nota_practica
Escribir
"Introduce la nota de problemas"
leer
nota_problemas
Escribir
"Introduce la nota de teoria"
Leer
nota_teoria
si
(nota_practica<=10 y nota_practica>=0)
y
(nota_problemas<=10 y nota_problemas>=0)
y
(nota_teoria<=10 y nota_teoria>=0) Entonces
Escribir
"El alumno " alumno
Escribir
"La nota practica es " nota_practica
Escribir
"La nota de problemas es " nota_problemas
Escribir
"La nota de teoria es " nota_teoria
nota_practica<-nota_practica*0.1
nota_problemas<-nota_problemas*0.5
nota_teoria<-nota_teoria*0.4
nota_final<-nota_practica+nota_problemas+nota_teoria
Escribir
"La nota final es " nota_final
Sino
Escribir
"Has escrito una nota incorrecta, vuelve a intentarlo"
FinSi
Escribir
"Introduce el nombre de otro alumno"
Leer
alumno
FinMientras
FinProceso
|
21. Algoritmo
que lea un número entero (lado) y a partir de él cree un cuadrado de asteriscos
con ese tamaño. Los asteriscos sólo se verán en el borde del cuadrado, no en el
interior.
Papel:
|
Var lado, asterisco, espacio:
numerica
Inicio
Leer lado
Desde
asterisco<-1 Hasta lado In 1
Escribir
"*"
FinDesde
escribir "
"
desde
asterisco<-1 Hasta lado-2 In 1
Escribir
"*"
Desde
espacio<-1 Hasta lado-2 In 1
Escribir
" "
FinDesde
Escribir
"*"
escribir
" "
FinDesde
Desde
asterisco<-1 Hasta lado In 1
Escribir
"*"
FinDesde
Fin
|
PSeInt:
|
Proceso ejercicio_21
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
|
22. Algoritmo
que lea un número 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.
Papel:
|
Var altura, asterisco, espacio,
espacio_linea, asterisco_linea: numerica
Inicio
Leer altura
asterisco<-altura
espacio<-0
Desde linea<-1
hasta altura In 1
Desde
espacio_linea<-0 hasta espacio In 1
Escribir
" "
FinDesde
Desde
asterisco_linea<-1 hasta asterisco In 1
Escribir
"*"
FinDesde
asterisco<-asterisco-1
espacio<-espacio+1
Escribir
" "
FinDesde
Fin
|
PSeInt:
|
Proceso ejercicio_22
Leer altura
asterisco<-altura
espacio<-0
Para linea<-1
hasta altura con paso 1
Para
espacio_linea<-0 hasta espacio con paso 1
Escribir
" " sin saltar
FinPara
Para
asterisco_linea<-1 hasta asterisco con paso 1
Escribir
"*" sin saltar
FinPara
asterisco<-asterisco-1
espacio<-espacio+1
Escribir
" "
FinPara
FinProceso
|
|
|
|
|
23. Algoritmo que dado un año, nos
diga si es bisiesto o no. Un año es bisiesto bajo las siguientes condiciones:
·
Un año
divisible por 4 es bisiesto y no debe ser divisible entre 100.
·
Si un año
es divisible entre 100 y además es divisible entre 400, también resulta
bisiesto.
Papel:
|
Var año: numerica
Inicio
Escribir
"Introduce un año"
leer año
si (año MOD
4=0 y año MOD 100<>0)Entonces
Escribir
"El año " año " es bisiesto"
Sino
si
(año MOD 400=0 y año MOD 100=0) Entonces
Escribir
"El año " año " es bisiesto"
Sino
escribir
"El año " año " no es bisiesto"
FinSi
FinSi
Fin
|
PSeInt:
|
Proceso ejercicio_23
Escribir
"Introduce un año"
leer año
si (año MOD
4=0 y año MOD 100<>0)Entonces
Escribir
"El año " año " es bisiesto"
Sino
si
(año MOD 400=0 y año MOD 100=0) Entonces
Escribir
"El año " año " es bisiesto"
Sino
escribir
"El año " año " no es bisiesto"
FinSi
FinSi
FinProceso
|
24. El siguiente es el menú de un restaurante de bocadillos.
Diseñar un algoritmo capaz de leer el número 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).

Papel:
|
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
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
total<-((cant_jamon*JAMON)+(cant_refresco*REFRESCO)+(cant_cerveza*CERVEZA))
Escribir
total
FinProceso
|
25. Algoritmo que nos calcule las raíces de una ecuación de
segundo grado. Controlar el caso de que las soluciones sean imaginarias.
Papel:
|
Var a,b, c, raizcua, x1, x2:
numerica
Inicio
Escribir
"escibe el valor de a"
Leer a
Escribir
"escibe el valor de b"
Leer b
Escribir
"escibe el valor de c"
Leer c
neg<--b
raizcua<-(b^2-4*a*c)^0.5
Si raizcua<=0
Entonces
Escribir
"La ecuacion no se puede resolver"
Sino
x1<-(neg+raizcua)/(2*a)
x2<-(neg-raizcua)/(2*a)
Escribir
x1
Escribir
x2
FinSi
Fin
|
PSeInt:
|
Proceso ejercicio_25
Escribir
"escibe el valor de a"
Leer a
Escribir
"escibe el valor de b"
Leer b
Escribir
"escibe el valor de c"
Leer c
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
|
26. Escribir
un Pseudocódigo de un programa que permita leer la edad y peso de una persona y
posteriormente imprimirla.
Inicio
Variables
edad, peso.
Imprimir
"Escribir los datos (Edad, Peso):"
Leer
Edad, Leer Peso.
Visualizar
"Tu peso es: ", peso, " y tu edad es: ", edad.
Fin.
Proceso
edad_peso
Escribir
“Digite su edad”
Leer
edad
Escribir
“Digite su peso”
Leer
peso
Escribir “Tu peso es “ peso “ y tu edad es “ edad
FinProceso
27. Escribir un Pseudocódigo
que calcule el área de un triángulo recibiendo como entrada el valor de base y
altura.
Inicio
Variables
Altura, Base, Area.
Imprimir
"Introduce la base y la altura: "
Leer
base y peso.
area=
(base*altura)/2.
Imprimir
"El area es: ", base.
Fin.
Proceso
area_triangulo
Escribir
“Digite la altura del triangulo”
Leer
altura
Escribir
“Digite la base del triangulo”
Leer
base
area<-base*altura/2
Escribir
“El area del triangulo es “ area
FinProceso
- Escribir
Pseudocódigo que calcule el área de un círculo.
Inicio
Constantes Pi=
3.1416
Variables
Radio, area = real
Imprime "Introduce el radio:
"
Leer
radio.
area=
radio*radio*Pi
Imprimir
"El área del circulo es: ", area.
Fin.
Proceso
area_circulo
Constantes Pi=
3.1416
Escribir
“Digite el radio”
Leer
radio
area<-radio*radio*Pi
Escribir
“El area del circulo es “ area
FinProceso
- Escribir
Pseudocodigo que dados 2 valores de entrada imprima siempre la división
del mayor entre el menor. ************
Inicio
Variables
num1, num2=entero.
Variables
R=real.
Imprimir
"Introduce los números:"
Leer
num1, Leer num2.
Si
a>b entonces
R=
a/b
Sino
R=
b/a
Fin.
Inicio
Variables
num1, num2=entero.
Variables
R=real.
Imprimir
"Introduce los números:"
Leer
num1, Leer num2.
Si
a>b entonces
R=
a/b
Sino
R=
b/a
Fin.
- Escribir Pseudocódigo
que lea de entrada 3 números y que indique cual es el mayor de ellos.
Inicio
Variables
a, b,c = enteros.
Imprimir
"Introduce los datos a comparar: "
Leer
a,b,c
Si
a<b y a<c entonces
Imprime
"El mayor es: ", a
Sino
Si
b<a y b<c entonces
Imprime
"El mayor es: ",b
sino
Imprime
"El mayor es: ", c
Fin.
Inicio
Variables
a, b,c = enteros.
Imprimir
"Introduce los datos a comparar: "
Leer
a,b,c
Si
a<b y a<c entonces
Imprime
"El mayor es: ", a
Sino
Si
b<a y b<c entonces
Imprime
"El mayor es: ",b
sino
Imprime
"El mayor es: ", c
Fin.
- Escribir un
Pseudocódigo que lea 3 números los cuales significan una fecha (día, mes,
año). Comprobar que sea válida la fecha, si no es valido que imprima un
mensaje de error, y si es válida imprimir el mes con su nombre.
Inicio
Variables dia,
mes, año =entero.
Imprimir
"Introduce la fecha (Dia,mes,año): "
Leer
dia, mes, año.
Si
dia>31 o mes >12 o año<0 entonces
Imprimir
"Error la fecha no es correcta"
Sino
si
mes=1 o mes=3 o mes=5 o mes=7 o mes=8 o mes=10 o mes=12 entonces
si
dia >31 y dia<1 entonces
Imprimir
"Error de Dia"
sino
si
mes=1 entonces imprimir dia,"/ Enero /",año
si
mes=3 entonces imprimir dia,"/ Marzo /",año
si
mes=5 entonces imprimir dia,"/ Mayo /",año
si
mes=7 entonces imprimir dia,"/ Julio /",año
si
mes=8 entonces imprimir dia,"/ Agosto /",año
si
mes=10 entonces imprimir dia,"/ Octubre /",año
si
mes=12 entonces imprimir dia,"/ Diciembre /",año
Si
mes=2 entonces
si
dia>28 o dia<0 entonces
Imprimir
"Error de Dia"
sino
Imprimir
dia,"/ Febrero /",año
Si
mes=4 o mes=6 o mes=9 o mes=11
Si
dia >30 o dia <1 entonces
Imprimir
"Error de Dia"
Sino
Si
mes=4 entonces
Imprimir
dia,"/ Abril /",año
Si
mes=6 entonces
Imprimir
dia,"/ Junio /",año
Si
mes=9 entonces
Imprimir
dia,"/ Septiembre /",año
Si
mes=11 entonces
Imprimir
dia,"/ Noviembre /",año
Fin.
Inicio
Variables dia,
mes, año =entero.
Imprimir
"Introduce la fecha (Dia,mes,año): "
Leer
dia, mes, año.
Si
dia>31 o mes >12 o año<0 entonces
Imprimir
"Error la fecha no es correcta"
Sino
si
mes=1 o mes=3 o mes=5 o mes=7 o mes=8 o mes=10 o mes=12 entonces
si
dia >31 y dia<1 entonces
Imprimir
"Error de Dia"
sino
si
mes=1 entonces imprimir dia,"/ Enero /",año
si
mes=3 entonces imprimir dia,"/ Marzo /",año
si
mes=5 entonces imprimir dia,"/ Mayo /",año
si
mes=7 entonces imprimir dia,"/ Julio /",año
si
mes=8 entonces imprimir dia,"/ Agosto /",año
si
mes=10 entonces imprimir dia,"/ Octubre /",año
si
mes=12 entonces imprimir dia,"/ Diciembre /",año
Si
mes=2 entonces
si
dia>28 o dia<0 entonces
Imprimir
"Error de Dia"
sino
Imprimir
dia,"/ Febrero /",año
Si
mes=4 o mes=6 o mes=9 o mes=11
Si
dia >30 o dia <1 entonces
Imprimir
"Error de Dia"
Sino
Si
mes=4 entonces
Imprimir
dia,"/ Abril /",año
Si
mes=6 entonces
Imprimir
dia,"/ Junio /",año
Si
mes=9 entonces
Imprimir
dia,"/ Septiembre /",año
Si
mes=11 entonces
Imprimir
dia,"/ Noviembre /",año
Fin.
- Escribir un
Pseudocodigo que pida la edad y el sexo y dependiendo si es hombre o mujer
y si puede votar o no.
Inicio
variables
edad=entero, sexo=caracter.
repetir
Imprimir
"Introduce Tu edad:"
Leer
edad.
Hasta
que (edad >0)
Hacer
Imprimir
"Introduce tu sexo (M/H):"
leer
sexo
hasta
que (sexo='H' o sexo = 'M')
Si sexo=
'M' entonces
si
edad > 18 entonces
Imprimir
"Eres Mujer y puedes votar"
sino
Imprimir
"Eres Mujer y no puedes votar"
Sino
si
edad >18 entonces
Imprimir
"Eres Hombre y puedes votar"
sino
Imprimir
"Eres Hombre y no puedes votar"
Fin.
Inicio
variables
edad=entero, sexo=caracter.
repetir
Imprimir
"Introduce Tu edad:"
Leer
edad.
Hasta
que (edad >0)
Hacer
Imprimir
"Introduce tu sexo (M/H):"
leer
sexo
hasta
que (sexo='H' o sexo = 'M')
Si sexo=
'M' entonces
si
edad > 18 entonces
Imprimir
"Eres Mujer y puedes votar"
sino
Imprimir
"Eres Mujer y no puedes votar"
Sino
si
edad >18 entonces
Imprimir
"Eres Hombre y puedes votar"
sino
Imprimir
"Eres Hombre y no puedes votar"
Fin.
- - Realice un
Pseudocódigo que calcule la nómina salarial neto, de unos obreros cuyo
trabajo se paga en horas. El cálculo se realiza de la siguiente forma:
- Las
primeras 35 horas a una tarifa fija.
- Las
horas extras se pagan a 1.5 más de la tarifa fija.
- Los
impuestos a deducir de los trabajadores varian, segun el sueldo mensual si el
sueldo es menos a $20,000.00 el sueldo es libre de impuesto y si es al
contrario se cobrará un 20% de impuesto.
Inicio
Canstante Tarifa= 50.
Variables Horas, Sueldo, dif_horas,
tarifa_extra, Salario_extra, Sueldo_mes, Impuesto, Sueldo_total.
Imprimir "Introduce las Horas de
Trabajo ==> "
Leer Horas.
Si Horas <= 35 entonces
Sueldo= horas * tarifa.
Sino
Dif_horas= Horas - 35
tarifa_extra=(tarifa * 1.5)
Salario_exta= tarifa_extra
* Dif_horas
Sueldo=(35*tarifa)+
salario_extra.
Sueldo_mes = sueldo * 4
Impuesto=0
Si sueldo_mes > 20000 entonces
Impuesto
= (Sueldo_mes* 0.20)
Salario_total
= Sueldo_mes - Impuesto
Imprimir
"Tu sueldo al mes es: ", sueldo_mes,"Valor de Impuesto: ",
Impuesto, " El salario Neto es: ",Salario_total.
sino
Imprimir
"Tu sueldo Neto es: ", sueldo_mes.
Fin.
Inicio
Canstante Tarifa= 50.
Variables Horas, Sueldo, dif_horas,
tarifa_extra, Salario_extra, Sueldo_mes, Impuesto, Sueldo_total.
Imprimir "Introduce las Horas de
Trabajo ==> "
Leer Horas.
Si Horas <= 35 entonces
Sueldo= horas * tarifa.
Sino
Dif_horas= Horas - 35
tarifa_extra=(tarifa * 1.5)
Salario_exta= tarifa_extra
* Dif_horas
Sueldo=(35*tarifa)+
salario_extra.
Sueldo_mes = sueldo * 4
Impuesto=0
Si sueldo_mes > 20000 entonces
Impuesto
= (Sueldo_mes* 0.20)
Salario_total
= Sueldo_mes - Impuesto
Imprimir
"Tu sueldo al mes es: ", sueldo_mes,"Valor de Impuesto: ",
Impuesto, " El salario Neto es: ",Salario_total.
sino
Imprimir
"Tu sueldo Neto es: ", sueldo_mes.
Fin.
- Hacer un
Pseudocódigo que calcule el factorial de un número.
Inicio
Variables N,Fact,aux.
Imprimir "Introduce el
número: "
Leer N
aux= n-1.
fact=n
Hacer
fact=fact * aux.
Hasta que aux=1
Imprimir "El factorial de
", n, "es:", fact
Fin.
Inicio
Variables N,Fact,aux.
Imprimir "Introduce el
número: "
Leer
N
aux=
n-1.
fact=n
Hacer
fact=fact * aux.
Hasta que aux=1
Imprimir "El factorial de
", n, "es:", fact
Fin.
- Hacer un
Pseudocodigo que despliegue las tablas de multiplicar.
Inicio
Variables i,k,r.
para i=1 hasta 10.
para k=1 hasta
10.
r:=i*k.
Imprimir
i," por ",k," = ",r.
k=k+1.
i=i+1.
Fin.
Inicio
Variables i,k,r.
para i=1 hasta 10.
para k=1 hasta
10.
r:=i*k.
Imprimir
i," por ",k," = ",r.
k=k+1.
i=i+1.
Fin.
36.
Escribir un Pseudocódigo que encuentre y despliegue
los números primos entre uno y cien. Un número primo es divisible entre el
mismo y la unidad por lo tanto un numero primo no puede ser par excepto el dos
(2).
Inicio
Variables primo, cont, div, res.
Primo = 1.
Hacer mientras primo<=100
Div =0.
Cont =1.
Hacer Mientras cont <= primo
Res
= cont mod primo
si
res = 0 entonces
Div
= div +1.
Fin
si
Cont
= cont +1.
Fin
de Hacer mientras
si
div<=2 entonces
imprimir
primo
Fin
si.
Primo
= primo + 1.
Fin
de Hacer mientras
Fin.
Inicio
Variables primo, cont, div, res.
Primo = 1.
Hacer mientras primo<=100
Div =0.
Cont =1.
Hacer Mientras
cont <= primo
Res
= cont mod primo
si
res = 0 entonces
Div
= div +1.
Fin
si
Cont =
cont +1.
Fin de Hacer
mientras
si div<=2
entonces
imprimir
primo
Fin si.
Primo = primo + 1.
Fin de Hacer mientras. Fin
No hay comentarios:
Publicar un comentario