PDA

Visualizza la versione completa : [PASCAL] Conversione da numero decimale a binario


alessio_web
17-01-2011, 16:06
Come faccio a creare un programma Pascal che dato il numero in base 10 ricava il binario?

Grazie

LeleFT
17-01-2011, 16:14
Applicando il normale algoritmo di cambio di base:

si effettuano successive divisioni per la base in cui si desidera convertire finchè il dividendo non diventa 0, tenendo da conto i resti di tali divisioni ribaltandone l'ordine.

Prova a scrivere tu l'algoritmo e se hai difficoltà postalo e se ne discute.


Ciao. :ciauz:

alessio_web
17-01-2011, 16:25
Ho fatto questo algoritmo ma non so come far leggere le cifre nell'ordine inverso.

program base10a2;
var numero,risultato,resto:integer;
begin
writeln('Inserisci un numero in base 10');
readln(numero);
risultato:=numero;
repeat
risultato:=risultato div 2;
resto:=risultato mod 2;
write(resto);
until risultato=0;
end.

LeleFT
17-01-2011, 16:30
A parte che queste due righe andrebbero invertite (altrimenti perdi il primo resto, ovvero la cifra meno significativa)



risultato:=risultato div 2;
resto:=risultato mod 2;


Per poterle "leggere" in ordine inverso dovrai prima memorizzarle in una apposita struttura (per la banalità della cosa potrebbe bastarti tranquillamente una stringa di caratteri), quindi scorrere questa struttura al contrario (per una stringa, potresti costruirti una funzione che la inverte).


Ciao. :ciauz:

Loading