...cuments\Visual Studio 2017\Projects\Tarea base\Tarea base\Tarea base.
cpp 1
1 /* Mauricio Villalpando Puente
2 A00569573
3 Organización Computacional */
4
5 #include "stdafx.h"
6 #include<iostream>
7 #include <cmath>
8 using namespace std;
9
10 int main()
11 {
12 int selec, base, num, digit, resultado = 0;
13 cout << "Escoge la operación: " << endl;
14 cout << "\t 1. Convertir a base 10. \n \t 2. Convertir de base 10." << endl;
15 do {
16 cin >> selec;
17 } while (selec != 1 && selec != 2);
18 switch (selec) {
19 case 1:{
20 cout << "Ingresa la base original." << endl;
21 do {
22 cin >> base;
23 } while (base > 9 || base < 1);
24 cout << "Ingresa el numero a convertir." << endl;
25 cin >> num;
26 digit = (int)log10(num) + 1; //obtener el número de dígitos
27 int x;
28 for (int i = 0; i < digit; i++) {
29 x = num % (int)pow(10, i + 1) / (int)pow(10, i);//obtener la cifra en la posición i
30 if (x >= base) { //si la cifra es igual o menor que la base, terminar con error
31 cout << "Error";
32 goto finish;
33 }
34 //multiplicar la cifra en la posición i por la base a la potencia i y sumar al resultado
35 resultado += x * (int)pow(base, i);
36 }
37 break;
38 }
39 case 2: {
40 cout << "Ingresa la base deseada." << endl;
41 cin >> base;
42 cout << "Ingresa el numero a convertir." << endl;
43 cin >> num;
44 int i = 0, x = num;
45 do {
46 //obtener el módulo del cociente y la base y escribirlo en la posición siguiente (diez a
la potencia i)
47 resultado += x % base*(int)pow(10, i);
48 x /= base; //calcular nuevo cociente
49 i++;
50 } while (x > 0);
51
52 break; }
53 }
54 cout << "Resultado: "<<resultado << endl;
55 finish:
56 return 0;
57 }