Está en la página 1de 4

PROGRAMACIÓN ORIENTADA A OBJETOS

MB545-A

Apellidos y Nombres: VALLEJOS PALOMINO, MARCOS RICARDO


Código: 20180187A

1. EJERCICIO:

Se desea tener un menú de opciones que permita convertir un valor en base 10 a diferentes
bases, en este caso base2, base3,base5, base8,base12 y base16 el usuario pide la base y el
sistema lo convierte.
Código fuente:
#include<iostream>
#include<math.h>
using namespace std;
void main(){
int n, b, c, d, i = 0, s, op;
cout << "Elige una operacion, para ello seleccione: " << endl;
cout << "Transformar a base [2] escriba -> 2 " << endl;
cout << "Transformar a base [3] escriba -> 3 " << endl;
cout << "Transformar a base [5] escriba -> 5 " << endl;
cout << "Transformar a base [8] escriba -> 8 " << endl;
cout << "Transformar a base [12] escriba -> 12 " << endl;
cout << "Transformar a base [16] escriba -> 16 " << endl;
do {
cout << "Ingrese el numero: "; cin >> n;
cout << "Escriba la operacion que quiera:"; cin >> b;
cout << "El numero " << n << " en base " << b << " se escribe: ";
do {
s = powf(b, i);
i++;
} while (n >= s);
i = i - 2; //Se obtiene el numero de operaciones

for (i; i >= 0; i = i - 1)


{
c = powf(b, i);
d = floorf(n / c);
if (d >= 10)
cout << "(" << d << ")";
else
cout << d;
n = n % c;
}
cout << endl;
cout << "Volver al inicio SI [1] NO [0]: "; cin >> op;
cout << endl;
} while (op == 1);
system("pause");
}

Resultados:
Elige una operacion, para ello seleccione:
Transformar a base [2] escriba -> 2

Transformar a base [3] escriba -> 3

Transformar a base [5] escriba -> 5

Transformar a base [8] escriba -> 8

Transformar a base [12] escriba -> 12

Transformar a base [16] escriba -> 16

Ingrese el numero: 16

Escriba la operacion que quiera:16

El numero 16 en base 16 se escribe: 10

Volver al inicio SI [1] NO [0]: 1

Ingrese el numero: 35789

Escriba la operacion que quiera:16

El numero 35789 en base 16 se escribe: 8(11)(12)(13)

Volver al inicio SI [1] NO [0]: 0

Presione una tecla para continuar . . .

2. EJERCICIO:

Genere usted números en el rango de 7 a 777 , e indique si el numero es perfecto. Un número


es perfecto si la suma de sus divisores es igual al número.
Código fuente:
#include<iostream>
#include<stdlib.h>
#include<time.h>
#include<math.h>
using namespace std;
void main(){
int n, i, div, sum = 0;
srand((unsigned)time(NULL));
n = rand() % (771) + 7;
cout << "El numero generado aleatoriamente es: " << n << endl;
cout << "Sus divisores son: ";
for (i = 1; i <= n; i++) {
div = n%i;
if (div == 0) {
cout << i << " ";
sum = sum + i;
}
}
cout << endl;
sum = sum - n;
if (sum == n)
cout << "Es un numero perfecto" << endl;
else
cout << "No es un numero perfecto" << endl;
system("pause");
}

Resultados:
El numero generado aleatoriamente es: 370

Sus divisores son: 1 2 5 10 37 74 185 370

No es un numero perfecto

Presione una tecla para continuar . . .

3. EJERCICIO:

Genere usted números en el rango de 7 a 777 , y muestre cuántos son múltiplos de 3 pero no
de 6:
Código fuente:
#include<iostream>
#include<stdlib.h>
#include<time.h>
#include<math.h>
using namespace std;
void main(){
int n, i, op1, op2, sum=0, art;
srand((unsigned)time(NULL));
n = rand() % (771) + 7;
cout << "El numero generado aleatoriamente es: " << n << endl;
cout << "Desde el 7 hasta el numero generado hay los siguientes multiplos
de 3:" << endl;
for (i = 7; i <= n; i++) {
op1 = i % 3;
op2 = i % 2;
if (op1 == 0) {
if (op2 != 0) {
cout << i << " ";
art = 1;
sum = sum + art;
}
}
}
cout << endl;
cout << "Elnumero de multiplos de 3 pero no de 6 es: "<<sum << endl;
system("pause");
}

Resultados:
El numero generado aleatoriamente es: 315

Desde el 7 hasta el numero generado hay los siguientes multiplos de 3:


9 15 21 27 33 39 45 51 57 63 69 75 81 87 93 99 105 111 117 123 129 135 141 147
153 159 165 171 177 183 189 195 201 207 213 219 225 231 237 243 249 255 261
267 273 279 285 291 297 303 309 315

Elnumero de multiplos de 3 pero no de 6 es: 52

Presione una tecla para continuar . . .

También podría gustarte