Salve ragazzi, come da titolo avrei bisogno di una dritta su un esercizio in c++ :
Seguendo i principi della programmazione strutturata e della modularità, si sviluppi un programma in C/C++ che:
-richieda all’utente di indicare un numero intero compreso tra 0 e 255;
-calcoli e restituisca, mediante un sottoprogramma, la rappresentazione in binario puro su 8 bit del numero inserito, memorizzata in un vettore (MSB in posizione 0 e così via);
-stampi a video il vettore così calcolato. Esempio: Se il numero inserito è 8, il programma calcola e visualizza a video: 0 0 0 0 1 0 0 0
Facendo in questo modo, riesco a visualizzare il decimale convertito in binario, ma lo fa solamente se inserisco un'altra cifra e non in automatico.
Seguendo i principi della programmazione strutturata e della modularità, si sviluppi un programma in C/C++ che:
-richieda all’utente di indicare un numero intero compreso tra 0 e 255;
-calcoli e restituisca, mediante un sottoprogramma, la rappresentazione in binario puro su 8 bit del numero inserito, memorizzata in un vettore (MSB in posizione 0 e così via);
-stampi a video il vettore così calcolato. Esempio: Se il numero inserito è 8, il programma calcola e visualizza a video: 0 0 0 0 1 0 0 0
Facendo in questo modo, riesco a visualizzare il decimale convertito in binario, ma lo fa solamente se inserisco un'altra cifra e non in automatico.
C++:
#include <iostream>
#define MAX 8
using namespace std;
void conversione (int bin [], int dec );
void stampa (int bin []);
int main (){
int binario [MAX];
int decimale;
do{
cout << "Inserire numero ";
cin >> decimale;
}while (decimale < 0 || decimale > 255);
conversione (binario, decimale );
stampa (binario);
return 0;
}
void conversione (int bin [], int decimale){
int i;
for(i=0;i<MAX;i++){
if (decimale %2 ==0)
bin[i]=0;
else
bin [i]=1;
decimale= decimale/2;
}
}
void stampa (int bin []){
int i;
for (i=8; i>=0; i--){
cout << " Il numero binario è : " << bin [i] << endl ;
cin >> bin [i];
}
}