Newsgroup: it.comp.lang.c++
Titolo: Ottimizzazione codice.

Come posso migliorare questo codice?
Mi riferisco a quella funzione check che mi serve per conoscere il numero di
cifre del numero inserito.
C'è un modo + rapido?
Ps : Ah com'è secondo voi il codice?
Grazie
//Dato un numero, viene restituito al contrario.
#include <iostream.h>
#include <stdlib.h>
  //Prototipo.
  int contrario(int);
  int check(int);
int main()
{
 int number;
 cout<<"RESTITUISCE UN NUMERO DATO AL CONTRARIO.\n";
 cout<<"\n";
 cout<<"Inserisci un numero intero : ";
 cin>>number;
 cout<<"\n";
 cout <<"Ecco il contrario: "<< contrario(number);
 cout<<endl;
      system("PAUSE");
      return 0;
}
 int contrario(int x)
 {
 int b,c,k;
 int i = 1;
 int mod = 10;
  k = check(x); //Chiamata alla funzione;
  int mult = k;
  while (i <= k)
   {
    c = (x % mod);
    x /= mod;
    b = c*mult + b;      //Espressione di b.
    mult /= 10;
    i *= 10;
   }
   return b;
 }//Fine function
 int check(int l)
 {
  if (l <= 9)
   return 1;
   else if (l <= 99)
    return 10;
     else if (l <= 999)
      return 100;
       else if (l <= 9999)
        return 1000;
         else if (l <= 99999)
          return 10000;
           else if (l <= 999999)
            return 100000;
 }

 Come posso migliorare questo codice?
io eliminerei del tutto la funzione check() che non serve
a nulla:
int contrario(int x)
{ int y=0;
   while (x)
     {
       y = 10*y+(x%10);
       x /= 10;
     }
   return y;
}
ciao,
g.

 }
Concordo....
Questo intervento e' per un'altra ragione.... ed e' per Kenyon.
Poco sopra c'e' un thread chiamato: "prog. per riconoscere i numeri
palindromi".
Bene in questo thread io davo il seguente codice:
<SNIPPET>
while(n1>0){
     n2 =  (n2 * 10) + (n1 % 10);
     n1 /= 10;
}
</SNIPPET>
Per vedere se un numero e' palindromo suggerivo di creare il numero
speculare e poi vedere se i due erano uguali (se lo erano -> palindromo).
Invito le persone che iniziano con il C++ a leggere i threads oltre che a
crearne di nuovi. Questo thread e (dei palindromi) e' stato scritto tra ieri
ed oggi.
Ricordate che e' molto utile leggersi sempre tutti i thread. E' vero che si
impara dai propri problemi e dai propri sbagli, ma se poi uno ha la
possibilita' di imparare anche dai problemi e dagli sbagli degli altri,
allora e' ancora meglio.
Tra le altre cose G. Resta e' stato "costretto" a dare un codice
fondamentalmente identico (non c'era molta alternativa), se non metterlo in
una stringa e ribaltare la stringa.
Insomma, prima di postare si dovrebbero consultare le FAQ, e leggere i
threads. Poi se non si trova risposta allora postare.
Kenyon oggi ha scritto 3 msg qui. Quello sul DEV C++ IDE o no era
risolvibile con una ricerca su internet o con google nei messaggi passati
del ng.
Quello della gestione dei files puo' trovare risposta in un qualsiasi libro
di C++. Ripeto che a mio avviso non e' possibile imparare il C++ solo sui NG
o con miseri tutorials in internet. Un libro ci vuole. Se non ci sono fondi
si possono fortunatamente scaricare gratuitamente ottimi libri come quelli
di bruce eckel.
Scusate ma oggi mi andava di fare polemiche!
Tommy

 Tommy
Trovata oggi su comp.lang.c++ (e quasi adatta)
"You don't expect those who respond to your posts to tie your shoes
for you as well, do you?"
Ciao,
Enrico

 for you as well, do you?"
farebbe comodo....
Tommy

 di bruce eckel.
Poi l'avevo visto il tuo programma, ma ho provato a farne uno simile al tuo
da solo. (per imparare no?)
Terza ed ultima cosa quella sull'ide e sul dev era una disputa tra le varie
cose che avevo già
trovato e speravo che qualcuno potesse semplicemente chiarirmi le idee, che
male c'è?


 Terza ed ultima cosa
Si.... mi andava di fare polemiche... mi rendo conto di aver esagerato, non
ti preoccupare!
Tommy