Newsgroup: it.comp.lang.pascal
Titolo: [REQ]Conversione numeri da base 10 a una base qualunque

Ciao, vorrei fare un programmino che mi converta i numeri da base 10 a una
base qualunqe.
Fatemelo nel modo + semplice possibile, perchè vorrei capirlo, senza usare
metodi troppo avanzati, magari inserendo un po' di commenti!
Ciao e grazie!^_^
Per risposte togli SPALMATUAMADRE
¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿
                    ^_^                                   ^_^
                                Ferrara Carmelo
 
ranma...@iol.it
       Se ti interessano midi  e immagini di manga Jappo
      Firma anche tu la Petizione Anti-Censura negli anime
  vai in 
http://www.geocities.com/tokyo/towers/4689
¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿

Rimando questo messaggio perché non sono sicuro che sia arrivato:
E' semplicissimo:
1) prendi il numero in base 10, chiamiamolo x.
2) Chiamiamo n il numero della base in cui lo vuoi convertire (ad es. in base 3
allora n=3)
3) Continua a dividere x per n, e tieni il resto.
4) Leggi ora tutti i resti in senso contrario a come li hai ottenuti
(dall'ultimo al primo)
5) Voilà il tuo numero bello e convertito
6) Il programma te lo lascio da fare come esercizio stimolante...
Aiutini: per calcolare il resto usa l'operatore MOD:    resto:= x MOD n;
Ti consiglio di salvare i resti in una stringa (e di convertirli già in cifre a
base n, in numeri o eventualmente in lettere maiuscole), e alla fine di
capovolgerla.
Se hai problemi chiedi e te lo risolvo (Manda però quello che riesci a fare,
sennò non ti serve a niente).
Emanuele Cesena
d.a.m...@iol.it

capovolgerla.
Il programma glielo gia' spedito via e.mail, ma una domanda : perche'
capovolgerla ??? :-))
--------------------------------------------------------
Andrea      
===========================================================================
Altro che sconti Telecom ! fatevi un bel panino con la Nutella...
---------------------------------------------------------------------------
Ti ho messo la maionese ! ti ho messo il chectch ? che vuoi di piu' ?
---------------------------------------------------------------------------
per le risposte via e-mail togli CHITIHACHIESTONIENTE!!!! dal mio indirizzo
---------------------------------------------------------------------------
ICQ# 8143647
---------------------------------------------------------------------------

 
Ecco un'elementare soluzione del problema :
 
 READLN (Numdec);
 READLN (Base);
 NumB:=0;
 E:=1;
 WHILE Numdec > 0 DO BEGIN
    NumB:=NumB + Numdec MOD Base * E;
    Numdec:=Numdec DIV Base;
    E:=E*10;
 END;
PS: questo metodo di conversione non e' certo tra i piu' potenti...
      infatti , poiche' i tipi standard del pascal sono finalizzati alla
numerazione                               
      decimale , nella conversione si incorre in due tipi di problemi :
1)   quando passi a basi piccole ,ad es. base 2 ,rischi di uscire dal range
2)  non e' possibile la conversione in basi maggiori di 10 perche' in tal
caso
     bisognerebbe usare come cifre le lettere dell'alfabeto latino.
Dunque la soluzione e' la seguente:
 
1)  Utilizza una struttura dati dinamica per rappresentare il numero in
base X
     (cosi' non avrai problemi di range)
2)  Rappresenta le cifre del numero X con un set di CHAR (1..9)+(A..Z).
Spero di essere stato chiaro
LIVIO VIGGIANO
________________________________________________
http://www.diemme.it/gol/users/355.html
liv...@mbox.vol.it
----------------------------------------------------------------------------
-

Scusami, ma c'erano due o tre richieste di programmi semplici, che chiunque
saprebbe fare, di quelli che danno i prof. quando spiegano:
    gli operatori div e mod: Conversione...
    le matrici e la funzione Random: Battaglia Navale...
Posso capire che ad uno non interessi l'informatica, ma a cosa serve dargli un
programma già fatto??
Secondo me è molto più utile e stimolante un aiuto nel caso in cui non si
abbiano idee o punti d'inizio, poi vedi tu...
Emanuele Cesena
d.a.m...@iol.it

programma già fatto??
A fargli imparare un po' di pascal ?
Quanti problemi per tre righe di programma !!!
Andrea      
(per le risposte via e-mail togli CHITIHACHIESTONIENTE!!!! dal mio indirizzo)
ICQ# 8328956

2)  Rappresenta le cifre del numero X con un set di CHAR (1..9)+(A..Z).
In questo caso puoi usare una stringa di simboli a cui accedi usando come indice
il resto +1 delle divisioni successive e quindi qualcosa del tipo :
const  Simbolo := '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
In questo modo puoi trasformare fino alla base 36.
