Dev - C++ - Automatizar un programa

 
Vista:

Automatizar un programa

Publicado por Santiago D (1 intervención) el 02/05/2019 01:12:44
Buenas tardes, tengo el siguiente problema:

Hemos realizado el siguiente programa para convertir un número decimal a un número binario:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
    int numero, exp, digito;
    double binario;
   cout << "Introduce numero: ";
   cin >> numero;
   exp=0;
   binario=0;
   while(numero/2!=0)
   {
           digito = numero % 2;
           binario = binario + digito * pow(10.0,exp);
           exp++;
           numero=numero/2;
   }
   binario = binario + numero * pow(10.0,exp);
   cout << fixed << setprecision(0);
   cout << "binario: " << binario << endl;
}

Sin embargo, ahora se nos pide la misma función pero de manera automatizada, esto quiere decir, en lugar de escribir un número y recibir una respuesta única, se debe mostrar una tabla con los valores binarios de los números del 1 hasta, por ejemplo, 100.

Hemos intententado poner el código dentro de un for loop de la forma:
1
2
3
for (int numero=1; numero<=100; numero++) {
//programa anterior//
}
. Pero al compilar y ejecutar se obtiene una extensa cantidad de números que no corresponden a los resultados deseados.

¿Alguien podría explicarme cómo automatizar el programa?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Automatizar un programa

Publicado por Alfil (1444 intervenciones) el 02/05/2019 06:00:33
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <cmath>
 
using namespace std;
 
void deDecimalABinario( int x )
{
    int v[50], i = 0;
 
	do{
		v[i] = x % 2;
		x = x / 2;
		i++;
 
	} while( x != 0 );
 
	for( int t = i; t < 50; t++ )
		v[t] = 9;
 
	for( i = 49; i >= 0; i-- ){
		if( v[i] == 0 ) cout << v[i];
		if( v[i] == 1 ) cout << v[i];
	}
}
 
int main()
{
 
    for( int i = 1; i < 101; i++ ) {
            cout << endl;
            deDecimalABinario( i );
 
    }
 
    cout << endl;
 
    return 0;
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar