Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - convertitore decimale->binario etc
Forum - C/C++ - convertitore decimale->binario etc

Avatar
Birkhoff92 (Normal User)
Rookie


Messaggi: 31
Iscritto: 27/03/2014

Segnala al moderatore
Postato alle 18:00
Lunedì, 03/10/2016
salve , ho scritto questo codice ma non capisco l'errore che mi restituisce sullo switch(A) perchè me lo riporta convrertitorecompleto.cpp:84:1: error: statement requires expression of integer type ('int [100]' invalid)
switch(A)
^      ~
1 error generated.
Codice sorgente - presumibilmente C++

  1. //Sanseverino Raffaele
  2. //Convertitore da bin
  3. #include<iostream>
  4. #include<stdlib.h>
  5. using namespace std;
  6. void binario(int n);
  7. void ottale(int n);
  8. void esadecimale(int n);
  9. int main()
  10. {
  11. int n;
  12. char risposta;
  13. do
  14. {
  15. cout<<"Inserisci un numero decimale per convertirlo: ";
  16. cin>>n;
  17. if(n<0)
  18. cout<<"Impossibile convertire";
  19. else
  20. {
  21. binario(n);
  22. ottale(n);
  23. esadecimale(n);
  24. cout<<endl<<"Vuoi continuare? [n=no,s=si]: ";
  25. cin>>risposta;
  26. system("cls");
  27. }
  28. }
  29. while((risposta!='n') && (risposta!='N'));
  30. return 0;
  31. }
  32. void binario(int n)
  33. {
  34. int A[100],c=0,i=0;
  35. cout<<"Conversione binaria: ";
  36. if(n==0)
  37. cout<<"0";
  38. else
  39. while(n>0)
  40. {
  41. A[c]=n%2;
  42. n=n/2;
  43. c++;
  44. }
  45. for(i=c-1;i>=0;i--)
  46. cout<<A;
  47. cout<<endl;
  48. }
  49.  
  50. void ottale(int n)
  51. {
  52. int A[100],c=0,i=0;
  53. cout<<"Conversione ottale: ";
  54. if(n==0)
  55. cout<<"0";
  56. else
  57. while(n>0)
  58. {
  59. A[c]=n%8;
  60. n=n/8;
  61. c++;
  62. }
  63. for(i=c-1;i>=0;i--)
  64. cout<<A;
  65. cout<<endl;
  66. }
  67.  
  68. void esadecimale(int n)
  69. {
  70.  
  71. int A[100],c=0,i=0;
  72. cout<<"Conversione esadecimale: ";
  73. if(n==0)
  74. cout<<"0";
  75. else
  76. while(n>0)
  77. {
  78. A[c]=n%16;
  79. n=n/16;
  80. c++;
  81. }
  82. for(i=c-1;i>=0;i--)
  83. {
  84. switch(A)
  85. {
  86. case 10: cout<<"A";
  87. break;
  88. case 11: cout<<"B";
  89. break;
  90. case 12: cout<<"C";
  91. break;
  92. case 13: cout<<"D";
  93. break;
  94. case 14: cout<<"E";
  95. break;
  96. case 15: cout<<"F";
  97. break;
  98. default: cout<<A;
  99. }
  100. }
  101. cout<<endl;
  102. }



Uso CodeRunner su macOs Sierra . Grazie per chiarimenti:hail:


Autodidatta: c++,sql,swift2.2,python,java(poco)
Hobby: Costruire droni programmando arduino,giocare a basket. Praticante di Sanda Boxe
OS: linux ,MacOs(Sierra), windows(10)
Linux: ubuntu12.04lts,arch,slack,pearos,zorinos,debian e mint 14.
PM Quote
Avatar
Ultimo (Member)
Expert


Messaggi: 513
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 18:16
Lunedì, 03/10/2016
Codice sorgente - presumibilmente Delphi

  1. for(i=c-1;i>=0;i--)
  2. {
  3. switch(A[i])
  4. {
  5. case 10: cout<<"A";
  6. break;
  7. case 11: cout<<"B";
  8. break;
  9. case 12: cout<<"C";
  10. break;
  11. case 13: cout<<"D";
  12. break;
  13. case 14: cout<<"E";
  14. break;
  15. case 15: cout<<"F";
  16. break;
  17. default: cout<<A[i];
  18. }
  19.  
  20. // noti la differenza?







Ultima modifica effettuata da Ultimo il 03/10/2016 alle 18:24


Ultimo (Hai voluto la bicicletta ? ....)

Studiare LINQ, WPF, ASP.NET MVC, Entity Framwork, C#, Blend, XAML, Javascript, HTML5, CSS .....(tanta roba)

https://www.dropbox.com/s/c2aots5x4urgbhf/setup_game_sudoku ...
PM Quote
Avatar
Birkhoff92 (Normal User)
Rookie


Messaggi: 31
Iscritto: 27/03/2014

Segnala al moderatore
Postato alle 18:28
Lunedì, 03/10/2016
grazie mille :) quella [ i ] dimenticata -.- mi vergogno di me
Edit: l'output però è sbagliato :( Inserisci un numero decimale per convertirlo: 1
Conversione binaria: 0x7fff5f65c6f0
Conversione ottale: 0x7fff5f65c6f0
Conversione esadecimale: 1

Ultima modifica effettuata da Birkhoff92 il 03/10/2016 alle 18:32


Autodidatta: c++,sql,swift2.2,python,java(poco)
Hobby: Costruire droni programmando arduino,giocare a basket. Praticante di Sanda Boxe
OS: linux ,MacOs(Sierra), windows(10)
Linux: ubuntu12.04lts,arch,slack,pearos,zorinos,debian e mint 14.
PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 413
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 18:55
Lunedì, 03/10/2016
Prima di procedere, ti consiglio due cose
1) Indenta il codice (anche se probabilmente CodeRunner o quel che è dovrebbe farlo per te). Diventa anche più facile da leggere per noi.
2) Compila questo snippet e guarda come funziona, magari ti arriva un'illuminazione per semplificare tutto (ad esempio renderebbe inutile lo switch)

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. int main()
  3. {
  4.      using namespace std;
  5.      char c = 'A';
  6.      cout << c << endl;
  7.      cout << (int) c << endl;
  8.      char c2 = c + 3;
  9.      cout << c2 << endl;
  10.      cout << (int) c2 << endl;
  11.      return 0;
  12. }


Ultima modifica effettuata da lumo il 03/10/2016 alle 18:55
PM Quote
Avatar
Template (Member)
Pro


Messaggi: 175
Iscritto: 09/12/2015

Segnala al moderatore
Postato alle 18:57
Lunedì, 03/10/2016
Lo stesso identico errore segnalato già da Ultimo: alla fine delle funzioni per la conversione in binario ed ottale, tu metti

Codice sorgente - presumibilmente Plain Text

  1. cout<<A;




Invece che

Codice sorgente - presumibilmente Plain Text

  1. cout<<A[i];



"Nel curriculum scrivete quello che sapete fare... e anche quello che non sapete fare! Tipo: "Già vescovo di Cracovia, partecipai alla Coppa America, vincendola!""
[...]
"Sto giocando al piccolo Dio e mi sta venendo pure alla grande."
PM Quote
Avatar
Birkhoff92 (Normal User)
Rookie


Messaggi: 31
Iscritto: 27/03/2014

Segnala al moderatore
Postato alle 20:18
Lunedì, 03/10/2016
grazie per le risposte ;)


Autodidatta: c++,sql,swift2.2,python,java(poco)
Hobby: Costruire droni programmando arduino,giocare a basket. Praticante di Sanda Boxe
OS: linux ,MacOs(Sierra), windows(10)
Linux: ubuntu12.04lts,arch,slack,pearos,zorinos,debian e mint 14.
PM Quote
Avatar
AldoBaldo (Member)
Expert


Messaggi: 345
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 21:38
Martedì, 04/10/2016
Perché non fare un'unica funzione che tratti tutte le basi restituendo una stringa da visualizzare? Impostando le cifre in un array di const char dal quale estrarre è facile trattare basi di numerazione qualsiasi. E' anche facile fare in modo che vengano accettati i valori negativi. Basta memorizzare all'inizio la condizione valore<0 (magari in un bool), invertire il segno e convertire il valore, quindi aggiungere '-' alla stringa delle cifre se il valore era negativo in partenza.


Ma cosa vuoi che ne sappia? Io ci gioco, col codice, mica ci lavoro!
PM Quote