Sei sulla pagina 1di 18

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
ta
Sino
tb
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