Está en la página 1de 14

PRACTICA Nº1

Metodologia de la programacion II-SIS 2210 “B”


Docente: Ing. Bermúdez Vargas Julio Cesar
Auxiliar: Univ. Quispe Martínez Juan Visney
Nombre: Univ. Toledo Gomez Dennys Josafat
Fecha de entrega: 17/04/23
1.Miguel es un joven a quien le gusta mucho coleccionar figuras de jugadores de Futbol, pero
tiene algunas que están repetidas, ingresando las figuras que tiene, ayudarlo a decidir cuales
están repetidas y puede cambiarlos.

#include <iostream>
#include <iostream>
using namespace std;
void repetidos(string jugadores[],int n);
int main()
{
int n=10;
string jugadores[n];
string jugadoresDobles[n];
int nDuplicado=0;
string jugadoresDuplicados[n];
jugadores[0]="Messi";
jugadores[1]="Pogba";
jugadores[2]="Cristiano";
jugadores[3]="Pogba";
jugadores[4]="Neymar";
jugadores[5]="Aguero";
jugadores[6]="Dybala";
jugadores[7]="Aguero";
jugadores[8]="Messi";
jugadores[9]="Haaland";
repetidos(jugadores,n);
return 0;
}
void repetidos(string jugadores[],int n)
{
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
if(jugadores[i]==jugadores[j])
{
cout <<"El jugador repetido es:"<<jugadores[i]<<" ,vender"<<endl;
break;
}
}
}
}

2.Esther estuvo revisando los diferentes tipos de números en la matemática y encontró varios
numeros que los consideraba “Interesantes”, ella sabe como identificarlos pero aun no sabe
como programarlos. Tu como estudiante de la materia de SIS 2210, ayudala realizando funciones
para verificar si un numero pertenece a uno de los números interesantes para Esther.
 Numeros primos.
 Numeros perfectos.
 Numeros curiosos.
 Numeros narcisistas.
 Numeros felices o infelices.
 Numeros malvados.
 Numeros amigos.

#include <iostream>
using namespace std;
int num_Primo(int n);
int num_Perfecto(int n);
int num_Curioso(int n);
int num_Narcisista(int n);
void num_Feliz(int n);
int num_Malvado(int n);
int main()
{
int num;
cout<<"Introduzca un numero:";
cin>>num;
if(num_Primo(num))
{
cout<<"El numero es primo"<<endl;
}
else
{
cout<<"El numero no es primo"<<endl;
}
if (num_Perfecto(num))
{
cout<<"El numero es perfecto"<<endl;
}
else
{
cout<<"El numero no es perfecto"<<endl;
}
if(num_Curioso(num))
{
cout<<"El numero es curioso"<<endl;
}
else
{
cout<<"El numero no es curioso"<<endl;
}
if(num_Narcisista(num))
{
cout<<"El numero es narcisista"<<endl;
}
else
{
cout<<"El numero no es narcisista"<<endl;
}
num_Feliz(num);
if(num_Malvado(num))
{
cout<<"El numero es malvado"<<endl;
}
else
{
cout<<"El numero no es malvado"<<endl;
}
return 0;
}
int num_Primo(int n)
{
if (n==2||n==3)
{
return 1;
}
if (n==1||n%2==0)
{
return 0;
}
for (int i=3;i*i<=n;i+=2)
{
if (n%i==0)
{
return 0;
}
}
return 1;
}
int num_Perfecto(int n)
{
int suma=0;
for(int i=1;i<n;i++)
{
if(n%i==0)
{
suma+=i;
}
}
if (suma==n)
{
return 1;
}
else
{
return 0;
}
}
int num_Curioso(int n)
{
int suma=0,dig=0,temp=n;
while(temp!=0)
{
dig++;
temp/=10;
}
temp=n;
while(temp!=0)
{
int digito=temp%10;
int producto=1;
for(int i=0;i<dig;i++)
{
producto*=digito;
}
suma+=producto;
temp/=10;
}
if (suma==n)
{
return 1;
}
else
{
return 0;
}
}
int num_Narcisista(int n)
{
int suma=0;
int temp=n;
int longitud=0;
while (temp>0)
{
temp/=10;
longitud++;
}
temp=n;
while(temp>0)
{
int digito=temp%10;
int potencia=1;

for(int i=0;i<longitud;i++)
{
potencia*=digito;
}
suma+=potencia;
temp/=10;
}
if(suma==n)
{
return 1;
} else
{
return 0;
}
}
void num_Feliz(int n)
{
while(n!=1&&n!=4)
{
int suma=0;
while(n>0)
{
int digito=n%10;
suma+=digito*digito;
n/=10;
}
n=suma;
}
if(n==1)
{
cout<<"El numero es feliz"<<endl;
} else
{
cout<<"El numero es infeliz"<<endl;
}
}
int num_Malvado(int n)
{
int cont=0;
while(n>0)
{
cont+=n%2;
n/=2;
}
if(cont%2==0)
{
return 1;
}
Else
{
return 0;
}
}

3.Jamil es un joven a quien le gusta mucho la historia, actualmente se encuentra revisando un


libro antiguo, sin embargo, tuvo un gran problema, el libro tiene números en romano,
lamentablemente Jamil se falto a la clase donde tenia que aprender números romanos por salvar
un árbol o algo parecido, como su gran amigo debes ayudarlo con su problema realizando un
programa que convierta los números romanos a decimal.

#include <iostream>
#include <string>
using namespace std;
int Decimal(char l);
int Romano_Decimal(string rom);
int main()
{
string romano;
cout<<"Ingresar un numero romano:";
cin>>romano;
int decimal=Romano_Decimal(romano);
cout<<"El numero romano a decimal es:"<<decimal<<endl;
return 0;
}
int Decimal(char l)
{
switch(l)
{
case 'I': return 1;
case 'V': return 5;
case 'X': return 10;
case 'L': return 50;
case 'C': return 100;
case 'D': return 500;
case 'M': return 1000;
default : return 0;
}
}
int Romano_Decimal(string rom)
{
int d=0;
int i=0;
while (rom[i]!='\0')
{
if(i>0&&Decimal(rom[i])>Decimal(rom[i-1]))
{
d+=Decimal(rom[i])-2*Decimal(rom[i-1]);
} else
{
d+=Decimal(rom[i]);
}
i++;
}
return d;
}
5.El programa anterior que hiciste le ayudo mucho a Jamil pero ahora tiene otro problema, debe
realizar un resumen del libro que estaba revisando pero su docente le pidió que lo números de
su resumen deben estar en romano, por lo tanto te pide ayuda para que dado un numero en
decimal puedas transformarlo en un numero romano.

#include <iostream>
using namespace std;
string dec_rom(int dec);
int main() {
int decimal;
cout<<"Ingrese un numero decimal:";
cin >> decimal;
string resultado = dec_rom(decimal);
cout<<"El numero decimal a romano es:"<<resultado<<endl;
return 0;
}
string dec_rom(int dec)
{
string rom="";
int ud[]={1000,900,500,400,100,90,50,40,10,9,5,4,1};
string simb[]={"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};
for (int i=0;i<13;i++)
{
while(dec>=ud[i])
{
rom += simb[i];
dec -= ud[i];
}
}
return rom;
}
6.Gracias al buen trabajo que hiciste con las funciones de los números interesantes para Esther,
su hermana Noemí te pide ayuda para encontrar la raíz digital de un numero(la raíz digital es la
suma de todos los dígitos de un numero, si la suma tiene 2 o mas dígitos debes volver a realizar la
operación hasta que quede solamente un digito), pero ella es un poco mas exigente así que la
función debe ser recursiva.

#include <iostream>
using namespace std;
int raiz_digital(int n);
int main()
{
int num;
cout<<"Ingrese un numero:";
cin>>num;
int raiz=raiz_digital(num);
cout<<"La raiz digital es:"<<raiz<<endl;
return 0;
}
int raiz_digital(int n)
{
if(n<10)
{
return n;
}
int sum=0;
while(n>0)
{
sum+=n%10;
n/=10;
}
return raiz_digital(sum);
}
8.Es tu primer día de trabajo como programador, el anterior programador al enterarse que seria
despedido, borro varias líneas de código del programa y ahora no funciona, por lo tanto debes
hacer que el programa funciones correctamente, además debes indicar que es lo que hace.

#include <iostream>
using namespace std;
int contar0(int num)
{
int cant=0;
while(num>0)
{
int bit=num%2;
if (bit==0)
{
cant++;
}
num=num/2;
}
return cant;
}
int contar1(int num)
{
int cant=0;
while(num>0)
{
int bit=num%2;
if(bit==1)
{
cant++;
}
num=num/2;
}
return cant;
}

int main()
{
int num,cant0,cant1;
cout<<"Ingrese un numero"<<endl;
cin>>num;
cant0=contar0(num);
cant1=contar1(num);
if(cant0==cant1)
{
cout<<"El numero esta equilibrado"<<endl;
}
else
{
cout <<"El numero no esta equilibrado"<<endl;
}
return 0;
}

Este programa nos permite saber si un numero esta equilibrado o no.

También podría gustarte