Guia04
1.- Hacer un pseudocódigo que permita calcular el área y perímetro de un cuadrado.
A= lado2 y perímetro =4 lado
2.- Hallar el “N” termino de la serie de fibonacci
1, 1, 2, 3, 5, 8, 13, 21, 34, ……………
3.- Escribir un pseudocódigo utilizando funciones que invierta un número entero
Ejemplo: el número entero 1842 invertido es 2481.
4.- Hacer un pseudocódigo que: A) Lea tres números enteros. B) Invoque una función
denominada MENOR que determine y regrese al pseudocódigo principal el menor de los
tres números y C) Muestre los números leídos y el menor de ellos.
5.- Escribir un pseudocódigo que:
a) Lea tres números enteros.
b) Invoque una función denominada MEDIA que calcule y regrese al programa
principal el promedio de los números leídos
c) Muestre el valor del promedio obtenido.
6.- Escribir un algoritmo que lea una serie de número y muestre el valor del mayor y
del menor número leído.
7.- Halar el mayor de una lista de números y cuantas veces se repite
8.- Escribir una función que dada una fecha valida determine el día siguiente.
9.- Escribir una función que dada una fecha valida determine el día anterior.
10- Dada una fecha obtenga la cantidad de días transcurridos en el año
correspondiente. Por ejemplo, si se ingresa 15/06/2007, se ha transcurrido 166 días
del año 2007.
11.- Dado un número de día de un determinado año, encuentre el día, mes y año al
que corresponde. Por ejemplo el día 300 del año 2000 es el 26/10/2000.
12.- Dado una fecha cuantos días faltan para que termine el año.
13. Dada una cantidad de dinero en soles, diseñe un programa que descomponga
dicha cantidad en billetes de S/. 100, S/. 50, S/.10 y monedas de S/. 5, S/. 2 y S/.1.
Así, por ejemplo, S/. 3778 puede descomponerse en 37 billetes de S/. 100, mas 1
billete de S/. 50, mas 2 billetes de S/. 10, mas 1 moneda de S/. 5, mas 1 moneda de
S/.2 y más 1 moneda de S/. 1.
14.- Un colegio particular ha organizado un festival para los niños pobres, los gastos
de este festival lo asumirán los alumnos de dicho colegio. Se les cargara el 5 % a la
pensión según su categoría más 10 soles por gastos administrativos. Se desea saber
cuánto pagara finalmente un alumno este mes.
Categoria Pensión
A 1500
B 1000
C 800
15.- Un supermercado realiza descuentos de 3 tipos de productos como se muestran
en el siguiente cuadro:
Producto Precio (S/.) Descuento (%)
A 57.40 10
B 42.30 15
C 35.20 20
Para acceder al descuento un cliente tiene que comprar más de 5 productos del mismo
tipo. Elaborar un pseudocódigo que calcule el total que paga un cliente por la compra
de N productos del mismo tipo.
16.- El horóscopo de la alquimia, basado en la numerología y las correspondencias
planetarias, te permitirá conocer qué poderosas energías, llegadas del cielo en forma
de metales, rigen tu vida. Las civilizaciones antiguas consideraban los metales como la
carne de los dioses, y eran conscientes de sus poderes mágicos.
Crearon el horóscopo de los metales, gracias al cuál no sólo conocerás qué metal te
corresponde por tu fecha de nacimiento, sino también el que te rige cada año. Ponerte
joyas con el metal que te pertenezca o llevarlo simplemente en el bolsillo aumentará
los dones que te concede éste y te aportará protección y suerte.
Elaborar un pseudocódigo que averigüe a qué metal pertenece una persona, para esto
sume los números de tu fecha de nacimiento y a continuación reducirlos a un sólo
dígito. Una vez que tengas el número busca en la tabla siguiente el metal
correspondiente.
Por ejemplo, alguien nacido el 12 de marzo de 1973 estaría bajo la influencia de:
Metal de nacimiento: 1+2+3+1+9+7+3= 26 (2+6) = 8= Níquel
Número Metal Virtudes
1 Plata Seductores y volubles
2 Hierro Dinámicos y combativos
3 Mercurio Locuaces y simpáticos
4 Zinc Impulsivos y serviciales
5 Estaño Inconstantes y sociables
6 Plomo Pesimistas y tímidos
7 Platino Intelectuales y apasionados
8 Niquel Vagabundos y poetas
9 Oro Altruistas y encantadores
0 Cobre Afectuosos y detallistas
Sólo en el caso de que la suma resultante sea 10, 20, 30, 40, 50, 60, 70, 80 ó 90, no
se reducirá y se tomará el 0 como número y el Cobre como metal correspondiente.
Solución:
1.- Hacer un pseudocódigo que permita calcular el área y perímetro de un cuadrado.
A= lado2 y perímetro =4 lado
Inicio
Entero: lado, a=0, p=0
ingresarDatos(lado)
areaPerimetro(lado, a, p)
mostrarDatos(a,p)
Fin
Procedimiento ingresarDatos(entero &lado)
Escribir (“Ingrese el lado de un cuadrado: ")
Leer (lado)
Fin_ procedimiento
Procedimiento areaPerimetro(entero lado, entero &a, entero &p)
a= lado*lado;
p= 4*lado;
Fin_ procedimiento
Procedimiento mostrarDatos(entero a, entero p)
Escribir ("el area del cuadrado es : ", a)
Escribir (el perimetro del cuadrado es: ",p )
Fin_ procedimiento
2.- Hallar el “N” termino de la serie de fibonacci
1, 1, 2, 3, 5, 8, 13, 21, 34, ……………
Inicio
int n, r;
ingresarDatos(n);
r=fibonacci(n);
mostrarDatos(r);
system("PAUSE");
return EXIT_SUCCESS;
Fin
Procedimiento ingresarDatos(entero &n)
Escribir ("Ingrese numero de termino: ")
Leer ( n)
Fin_ procedimiento
Funcion fibonacci(entero n): entero
Entero: a=1,b=1,c,x
Escribir (a , b)
Desde x=3 Hasta x<=n con incremento 1 Hacer
c=a+b
a=b
b=c
Escribir (c )
Fin_desde
retornar c
Fin_funcion
Procedimiento mostrarDatos(entero r){
Escribir ("\nel numero de termino es : "<<r<<endl;
Fin_ procedimiento
3.- Escribir un pseudocódigo utilizando funciones que invierta un número entero
Ejemplo: el número entero 1842 invertido es 2481.
Inicio
Entero: n, r
ingresarDatos(n)
r= invertir(n)
mostrarDatos(n)
Escribir ("El numero invertido es ", r )
Fin
Procedimiento ingresarDatos (entero &n)
Escribir (“Ingrese un numero: ")
Leer (n )
Fin_ procedimiento
Funcion invertir (entero n): entero
// Definir variables
Entero: inver=0,digito
Mientras (n>0) Hacer
digito = n mod 10
inver=10*inver + digito
n= n div 10
Fin_mientras
retornar inver
Fin_funcion
Procedimiento mostrarDatos (entero n)
Escribir ( “numero invertido es “,n)
Fin_ procedimiento
4.- Hacer un pseudocódigo que: A) Lea tres números enteros. B) Invoque una función
denominada MENOR que determine y regrese al pseudocódigo principal el menor de los
tres números y C) Muestre los números leídos y el menor de ellos.
Nos dan tres valores: a, b, c
Comparamos a con b y obtenemos una variable temporal t que representa el menor de
a y b, luego comparamos t con c y obtenemos una variable menor, es decir
a b c
menor
Inicio
Entero: a, b, c, r
ingresarDatos(a,b,c)
r=menor (a,b,c)
mostrarDatos(a,b,c)
Escribir (" El area del cuadrado es ", r)
Fin
Procedimiento ingresarDatos(entero &a, entero &b, entero &c)
Escribir (“ingrese tres numeros ”)
Leer (a,b,c)
Fin_ procedimiento
Función menor (entero a, entero b, entero c): entero
// Definir variables
entero: t, menor
Si (a<b ) entonces
ta
Sino
tb
Fin_si
Si (t < c ) entonces
menor a
Sino
menor c
Fin_si
retornar menor
Fin_función
Procedimiento ingresarDatos(entero a, entero b, entero c)
Escribir (a, b, c)
Fin_ procedimiento
Otra forma de resolver la función menor es por falsa suposición.
Supongamos que el menor es a, luego comparamos el menor con b, si es cierto
asignamos b al menor, luego comparamos el menor con c si es cierto asignamos c al
menor. Es decir:
Función menor (entero a, entero b, entero c): entero
// Definir variables
Entero: menor
menor = a
Si (b <menor) entonces
menor b
Fin_si
Si (c <menor) entonces
menor c
Fin_si
retornar menor
Fin_función
5.- Escribir un pseudocódigo que:
a) Lea tres números enteros.
b) Invoque una función denominada MEDIA que calcule y regrese al programa
principal el promedio de los números leídos
c) Muestre el valor del promedio obtenido.
Inicio
Entero: n, r
ingresarDatos(a,b,c)
r= media(a,b,c)
mostrarDatos(a,b,c)
Escribir ("El promedio es ", r )
Fin
Procedimiento ingresarDatos (entero &a, entero &b, entero &c)
Escribir (“Ingrese tres un numeros: ")
Leer (a,b,c )
Fin_ procedimiento
Funcion media (entero a, entero b, entero c): entero
// Definir variables
Real: promedio
promedio = (a + b + c ) /3
retornar promedio
Fin_funcion
Procedimiento mostrarDatos (entero a, entero b, entero c)
Escribir ( a,b,c)
Fin_ procedimiento
6.- Escribir un algoritmo que lea una serie de número y muestre el valor del mayor y
del menor número leído.
Inicio
Entero: n, max=0, min=9999
mayorMenor(max,min)
mostrarDatos(max,min)
Fin
Procedimiento mayorMenor(entero &max, entero &min)
// Definir variables
Entero: n, i, valor
Escribir ("cuantos valores desea ingresar ")
Leer (n )
i=1
Mientras (i<=n) Hacer
Escribir ("ingrese valor ")
Leer (valor )
Si (valor >max) entonces
max=valor
Fin_si
Si (valor <min) entonces
min=valor
Fin_si
i = i +1
Fin_mientras
Fin_procedimiento
Procedimiento mostrarDatos(entero max, entero min)
Escribir (“El mayor es " , max )
Escribir ("El menor es " ,min )
Fin_procedimiento
7.- Halar el mayor de una lista de números y cuantas veces se repite
Inicio
entero max=0,repi=1
mayorRepite(max,repi)
mostrarDatos(max,repi)
Fin
Procedimiento mayorRepite(entero &max, entero &repi)
entero i,n,valor;
Escribir ( "cuantos terminos desea ingresar")
Leer (n)
i=1;
Mientras (i<=n) Hacer
Escribir ( "ingrese valor ")
Leer (valor )
Si (valor >max) entonces
max=valor
Sino
Si (max =valor) entonces
repi = repi +1
Fin_si
Fin_si
i = i +1
Fin_mientras
Fin_ procedimiento
Procedimiento mostrarDatos(entero max, entero repi){
Escribir ( "El numero mayor es : ", max )
Escribir ( "El numero de repeticiones es : ", repi )
Fin_ procedimiento
8.- Escribir una función que dada una fecha valida determine el día siguiente.
Inicio
Entero: d, m, a, maxDia
ingresarFecha(d,m,a)
maxDia=cantidadDias(m,a)
Si ((d>0 and d<=maxDia) and (m>0 and m<13) and a>0) entonces
diaSgte(maxDia,d,m,a)
mostrarFecha(d,m,a)
Sino
Escribir ("La fecha no correcta ")
Fin
Procedimiento ingresarFecha(entero &d, entero &m, entero &a)
Escribir ("ingrese dia, mes y año ")
Leer (d, m, a )
Fin_procedimiento
Funcion cantidadDias(entero m, entero a): entero
Entero md
En caso sea (m) Hacer
1 : 3 : 5 : 7 : 8 : 10: 12: md = 31
4 : 6 : 9 : 11: md = 30
2 : Si ( a mod 4= 0 and (a mod100 <>= 0 or a mod 400 = 0)) entonces
md=29
Sino
md=28
Fin_si
Fin_caso
retornar md
Fin_funcion
Procedimiento diaSgte(int diasMes,int &d,int &m,int &a){
d=d+1;
Si (d>diasMes) entonces
d=1;
m = m+1
Si (m =13) entonces
m=1
a = a +1;
Fin_si
Fin_si
Fin_procedimiento
Procedimiento mostrarFecha(int d,int m,int a)
Escribir (“dia : " , d )
Escribir ("mes : ", m)
Escribir ("año : ", a )
Fin_procedimiento
9.- Escribir una función que dada una fecha valida determine el día anterior.
Inicio
Entero: d, m, a, maxDia
ingresarFecha(d,m,a)
maxDia=cantidadDias(m,a)
Si ((d>0 and d<=maxDia) and (m>0 and m<13) and a>0) entonces
diaAnterior(d,m,a)
mostrarFecha(d,m,a)
Sino
Escribir (“La fecha no correcta ")
Fin_si
Fin
Procedimiento ingresarFecha(entero &d, entero &m, entero &a)
Escribir ("ingrese dia, mes y año ")
Escribir (d ,m,a )
Fin_procedimiento
Funcion cantidadDias(entero m, entero a): entero
Entero md
En caso sea (m) Hacer
1 : 3 : 5 : 7 : 8 : 10: 12: md = 31
4 : 6 : 9 : 11: md = 30
2 : Si ( a mod 4= 0 and (a mod100 <>= 0 or a mod 400 = 0)) entonces
md=29
Sino
md=28
Fin_si
Fin_caso
retornar md
Fin_funcion
Procedimiento diaAnterior(int &d,int &m,int &a){
d=d-1
Si (d = 0) entonces
m =m-1
d=cantidadDias(m,a)
Si (m =0) entonces
m=12
d=31
a=a-1
Fin_si
Fin_si
Fin_procedimiento
Procedimiento mostrarFecha(int d,int m,int a)
Escribir (“dia : " , d )
Escribir ("mes : ", m)
Escribir ("año : ", a )
Fin_procedimiento
10- Dada una fecha obtenga la cantidad de días transcurridos en el año
correspondiente. Por ejemplo, si se ingresa 15/06/2007, se ha transcurrido 166 días
del año 2007.
Inicio
Entero: d, m, a, mes, maxDia, diaTrans=0
ingresarFecha(d,m,a)
maxDia=cantidadDias(m,a)
Si ((d>0 and d<=maxDia) and (m>0 and m<13) and a>0) entonces
Desde (mes=1 hasta mes<m con incremento 1 Hacer
maxDia=cantidadDias(mes,a)
diasTranscurridos(maxDia,diaTrans)
Fin_desde
diasTranscurridos(d,diaTrans)
Escribir("Han transcurrido ", diaTrans, " dias" )
Sino
Escribir ("La fecha no correcta " )
Fin-si
Fin
Procedimiento ingresarFecha(entero &d, entero &m, entero &a)
Escribir ("ingrese dia, mes y año ")
Escribir (d ,m,a )
Fin_procedimiento
Funcion cantidadDias(entero m, entero a): entero
Entero md
En caso sea (m) Hacer
1 : 3 : 5 : 7 : 8 : 10: 12: md = 31
4 : 6 : 9 : 11: md = 30
2 : Si ( a mod 4= 0 and (a mod100 <>= 0 or a mod 400 = 0)) entonces
md=29
Sino
md=28
Fin_si
Fin_caso
retornar md
Fin_funcion
Procedimiento diasTranscurridos(entero dias, entero &dt)
dt= dt+ dias
Fin_procedimiento
11.- Dado un número de día de un determinado año, encuentre el día, mes y año al
que corresponde. Por ejemplo el día 300 del año 2000 es el 26/10/2000.
Inicio
Entero: d, m, a, diaTrans=0
ingresarFecha(diaTrans,a)
diasMesYear(diaTrans,m,a)
Escribir (diaTrans, " " , m , " " ,a )
Fin
Procedimiento ingresarFecha( entero &d, entero &a)
Escribir( "ingrese dia y año ")
Leer (d,a)
Fin_procedimiento
Procedimiento diasMesYear(entero &diaTrans, entero &mes, entero a)
Entero: dm=31
mes=1
Mientras (diaTrans >dm) Hacer
En caso sea (mes) Hacer
1 : 3 : 5 : 7 : 8 : 10: 12: dm = 31
4 : 6 : 9 : 11: dm = 30
2 : Si ( a mod 4= 0 and (a mod 100 <> 0 or a mod 400 = 0)) entonces
dm=29
Sino
dm=28
Fin_si
mes =mes +1
diaTrans=diaTrans - dm
Escribir (diaTrans )
Fin_mientras
Fin_procedimiento
12.- Dado una fecha cuantos días faltan para que termine el año.
13. Dada una cantidad de dinero en soles, diseñe un programa que descomponga
dicha cantidad en billetes de S/. 100, S/. 50, S/.10 y monedas de S/. 5, S/. 2 y S/.1.
Así, por ejemplo, S/. 3778 puede descomponerse en 37 billetes de S/. 100, mas 1
billete de S/. 50, mas 2 billetes de S/. 10, mas 1 moneda de S/. 5, mas 1 moneda de
S/.2 y más 1 moneda de S/. 1.
inicio
// Definir variables
int dinero=0,billete100=0,billete50=0,billete10=0,b100=100,b50=50,b10=10;
int moneda5=0,moneda2=0,moneda1=0,m5=5,m2=2,m1=1;
ingresarDinero(dinero);
calcula(dinero,billete100,b100);
calcula(dinero,billete50,b50);
calcula(dinero,billete10,b10);
calcula(dinero,moneda5,m5);
calcula(dinero,moneda2,m2);
calcula(dinero,moneda1,m1);
cout<<"billete100 "<<billete100<<endl;
cout<<"billete50 "<<billete50<<endl;
cout<<"billete10 "<<billete10<<endl;
cout<<"moneda5 "<<moneda5<<endl;
cout<<"moneda2 "<<moneda2<<endl;
cout<<"moneda1 "<<moneda1<<endl;
system("PAUSE");
return 0;
Fin
void ingresarDinero (int &dinero)
{
// Definir variables
cout<<"Ingresar cantidad de dinero:";
cin>>dinero;
}
void calcula(int &dinero,int &billete,int y){
while(dinero >=y){
billete=billete+1;
dinero=dinero-y;
}
}
Otra forma
Solucion 2
#include <iostream.h>
#include <stdlib.h>
#include <iomanip.h>
void ingresarDinero(int &dinero);
void calcula(int &dinero,int &billete,int y);
int main()
{
// Definir variables
int dinero=0,billete100=0,billete50=0,billete10=0,b100=100,b50=50,b10=10;
int moneda5=0,moneda2=0,moneda1=0,m5=5,m2=2,m1=1;
ingresarDinero(dinero);
calcula(dinero,billete100,b100);
calcula(dinero,billete50,b50);
calcula(dinero,billete10,b10);
calcula(dinero,moneda5,m5);
calcula(dinero,moneda2,m2);
calcula(dinero,moneda1,m1);
cout<<"billete100 "<<billete100<<endl;
cout<<"billete50 "<<billete50<<endl;
cout<<"billete10 "<<billete10<<endl;
cout<<"moneda5 "<<moneda5<<endl;
cout<<"moneda2 "<<moneda2<<endl;
cout<<"moneda1 "<<moneda1<<endl;
system("PAUSE");
return 0;
}
void ingresarDinero (int &dinero)
{
// Definir variables
cout<<"Ingresar cantidad de dinero:";
cin>>dinero;
}
void calcula(int &dinero,int &billete,int y){
billete= dinero/y;
dinero=dinero % y;
}
14.- Un colegio particular ha organizado un festival para los niños pobres, los gastos
de este festival lo asumirán los alumnos de dicho colegio. Se les cargara el 5 % a la
pensión según su categoría más 10 soles por gastos administrativos. Se desea saber
cuánto pagara finalmente un alumno este mes.
Categoria Pensión
A 1500
B 1000
C 800
Inicio
// Definir variables
Real: pagoTotal
Caracter : categoria
// Lectura de datos
ingresarDatos(categoria)
// Proceso
pagoTotal calcularPago(categoria)
mostrarPago(pagoTotal)
Fin
Procedimiento ingresarDatos(caracter &categoria)
// Definir variable
Escribir ("Ingresar categoria (A/ B /C) “)
Leer (categoria)
Fin_procedimiento
Funcion calcularPago(char categoria): real
// Definir variables
Real: pago
En caso sea (categoria) Hacer
'A': pago 1500
'B': pago 1000
'C': pago 800
Fin_caso
pago pago + pago*0.05+10
retornar pago
Fin_funcion
Procedimiento mostrarPago(real pagoTotal)
Escribir ("El pago total “, pagoTotal)
Fin_procedimiento
15.- Un supermercado realiza descuentos de 3 tipos de productos como se muestran
en el siguiente cuadro:
Producto Precio (S/.) Descuento (%)
A 57.40 10
B 42.30 15
C 35.20 20
Para acceder al descuento un cliente tiene que comprar más de 5 productos del mismo
tipo. Elaborar un pseudocódigo que calcule el total que paga un cliente por la compra
de N productos del mismo tipo.
Inicio
// Definir e inicializar variables
Entero: cant
caracter: tipo
real: precio, dsto, total
ingresarDatos(tipo, cant)
calcularPrecioDesc(tipo, cant, precio, dsto)
total calcularTotal(precio, dsto, cant)
mostrarTotal(total)
Fin
Procedimiento ingresarDatos(caracter &tipo, entero &cant)
// Definir variable
Escribir ("Ingresar tipo (A/ B /C) “)
Leer (tipo)
Escribir ("Ingresar cantidad “)
Leer (cant)
Fin_procedimiento
Procedimiento calcularPrecioDesc(caracter tipo, entero cant, real &precio, real &dsto)
// Definir variable
En caso sea (tipo) Hacer
'A': precio 57.50
Si (cant>5) entonces
dsto 0.10
Sino
dsto 0
Fin_si
'B': precio 42.30
Si (cant>5) entonces
dsto 0.15
Sino
dsto 0
Fin_si
'C': precio 35.20
Si (cant>5) entonces
dsto 0.20
Sino
dsto 0
Fin_si
Fin_caso
Fin_procedimiento
Funcion calcularTotal(real precio, real dsto, entero cant):real
// Definir variables
Real: pago
dsto dsto * precio * cant
pago precio* cant - dsto
retornar pago
Fin_funcion
Procedimiento mostrarTotal(real pagoTotal)
// Definir e inicializar variables
Escribir ("El pago total “, pagoTotal)
Fin_procedimiento
16.- El horóscopo de la alquimia, basado en la numerología y las correspondencias
planetarias, te permitirá conocer qué poderosas energías, llegadas del cielo en forma
de metales, rigen tu vida. Las civilizaciones antiguas consideraban los metales como la
carne de los dioses, y eran conscientes de sus poderes mágicos.
Crearon el horóscopo de los metales, gracias al cuál no sólo conocerás qué metal te
corresponde por tu fecha de nacimiento, sino también el que te rige cada año. Ponerte
joyas con el metal que te pertenezca o llevarlo simplemente en el bolsillo aumentará
los dones que te concede éste y te aportará protección y suerte.
Elaborar un pseudocódigo que averigüe a qué metal pertenece una persona, para esto
sume los números de tu fecha de nacimiento y a continuación reducirlos a un sólo
dígito. Una vez que tengas el número busca en la tabla siguiente el metal
correspondiente.
Por ejemplo, alguien nacido el 12 de marzo de 1973 estaría bajo la influencia de:
Metal de nacimiento: 1+2+3+1+9+7+3= 26 (2+6) = 8= Níquel
Número Metal Virtudes
1 Plata Seductores y volubles
2 Hierro Dinámicos y combativos
3 Mercurio Locuaces y simpáticos
4 Zinc Impulsivos y serviciales
5 Estaño Inconstantes y sociables
6 Plomo Pesimistas y tímidos
7 Platino Intelectuales y apasionados
8 Niquel Vagabundos y poetas
9 Oro Altruistas y encantadores
0 Cobre Afectuosos y detallistas
Sólo en el caso de que la suma resultante sea 10, 20, 30, 40, 50, 60, 70, 80 ó 90, no
se reducirá y se tomará el 0 como número y el Cobre como metal correspondiente.
Inicio
Entero: nro, dia,mes ,year, sd,sm,sa,alqui
ingresarFecha(dia, mes, year)
sd sumaDigito(dia) // suma los dias
sm sumaDigito(mes) // suma los meses
sa sumaDigito(year) // suma el año
nro sd+sm+sa
alqui alquimia(nro)
mostrarMetales(alqui)
Fin
Procedimiento ingresarFecha(entero &dia, entero &mes, entero &year)
Escribir ("ingresar dia mes year ")
Leer ( dia,mes,year)
Fin_procedimiento
Función Alquimia (entero nro):entero
Entero:alqui
Si (nro Mod 10 = 0) entonces
alqui 0
Sino
Si (nro>9) entonces
alqui sumaDigito(nro)
Sino
alqui nro
Fin_si
Fin_si
retornar alqui
Fin_funcion
Funcion sumaDigito(entero nro): entero
// Definir variables
Entero: digito, suma 0
Mientras (nro>0) Hacer
digito nro Mod 10
suma suma+digito
nro nro Div 10
Fin_mientras
retornar suma
Fin_funcion
Procedimiento mostrarMetales(entero alqui)
En caso sea (alqui)
0: Escribir (“cobre ")
Escribir ("Afectuosos y detallistas ")
1: Escribir ("plata ")
Escribir ("seductores y volubles ")
2: Escribir ("hierro ")
Escribir ("dinamicos y combativos")
3: Escribir ("mercurio ")
Escribir ( "locuaces y simpaticos ")
4: Escribir ("zinc ")
Escribir ( "impulsivos y serviciales")
5: Escribir ("estaño ")
Escribir ( "inconstantes y sociales")
6: Escribir ("plomo ")
Escribir ( "pesimistas y timidos ")
7: Escribir ("platino ")
Escribir ( "intelectuales y apasionados ")
8: Escribir ("niquel ")
Escribir ( "vagabundos y poetas")
9: Escribir ("oro ")
Escribir ("Altruistas y detallistas ")
Fin_caso
Fin_procedimiento