Newsgroup: it.comp.lang.pascal
Titolo: esa_bin

Ho un piccolo problema col seguente listato... qualcuno potrebbe spiegarmi
gli errori che ho fatto( nn mi dą problemi in compilazione, ma nn mi
trasforma nel modo giusto i numeri da decimali a esadecimali)? GRAZIE
(*********************************************)
program bin_esa;
uses crt;
var num:longint;
espo,i:byte;
{1}function esp(base,esponente:integer):longint;
var i,nume:longint;
begin
nume:=1;
if (esponente>0) and (base>0) then begin
for i:=1 to esponente do begin nume:=nume*base;end;
esp:=nume;
end;
if (esponente=0) and (base<>0) then esp:=1;
if (esponente=0) and (base=0) then writeln('Error');
end;
{2}function esp_max:integer;
var numero,potenza:longint;
begin
potenza:=0;
numero:=esp(16,potenza);
while numero<=num do
begin
numero:=esp(16,potenza);
inc(potenza);
end;
dec(potenza,2);
esp_max:=potenza;
end;
{3}procedure calcola;
var numero:longint;
    coefficente:integer;
begin
coefficente:=0;numero:=coefficente*esp(16,esp_max);
while numero<=num do
begin
numero:=coefficente*esp(16,esp_max);
inc(coefficente);
end;
dec(coefficente,2);
case coefficente of
0:write('0');
1:write('1');
2:write('2');
3:write('3');
4:write('4');
5:write('5');
6:write('6');
7:write('7');
8:write('8');
9:write('9');
10:write('a');
11:write('b');
12:write('c');
13:write('d');
14:write('e');
15:write('f');
end;
num:=num-coefficente*esp(16,esp_max);
end;
begin
write('DEC>');
readln(num);
espo:=esp_max;
write('ESA>');
for i:=espo downto 0 do
begin
calcola;
if num<=esp(16,(i-1)) then write('0');
end;
readln;
end.

 wrote in message
news:wgA38.15784$hi.4...@news1.tin.it...


Me lo studio con un po' di calma domani e poi ti faccio sapre...
Il Razziatore,
The Only Good Windows in an uninstalled Windows
-----------------------------------------------
E-MAILs : IlRazziat...@NOSPAMnetscape.net
WEB     : 
http://www.razziatore.dns2go.com/
ICQ     : 67552596

 gli errori che ho fatto( nn mi dà problemi in compilazione, ma nn mi


 ha scritto nel messaggio
news:QvV38.20606$hi.4...@news1.tin.it...


 ha scritto nel messaggio
news:nqW38.20810$hi.5...@news1.tin.it...


Per prima cosa ti posso dare un cosiglio (sto ancora in fase di debug
del programma).
Non usare mai delle Var Globali dentro una procedura... poi per
guadagnare velocita alcune asegnazione che sai gia il valore sensa
fare il calcolo.
cmq il tuo stile non mi piace (ma non ci posso fare niente)... per
esempio la funzione per calcolarti X^Y con le FOR la potresti fare
molto meglio ricorsivamente... è + facile da scrivere, da debugare....
insomma tutto da guadagnare...
come ho detto sono ancora in fase di debug... non riesco a capire cosa
c'è che non va...
se vuoi ti posto la funzione X^Y ricorsiva... sono 3 righe...


> se vuoi ti posto la funzione X^Y ricorsiva... sono 3 righe...
e poi la gente si lamenta se windows va piano oppure
la gente si chiede perche' lo stack esplode...
Razz non fare danni :-)
--
Dreadnaut (dn)
drea...@liberoDALLASPAM.it
(Life would be easier if I had the source code)



Dreadnaut... vuoi dire che a te lu funricorsive non piacciono?


Sinceramento nn sto capendo di cosa state parlando... cosa sono le
ricorsive?? Cmq avrei un'altro quesito: è possibile creare un'applicazione
in pascal che nn apra nessuna finestra ma ke svolga cmq il suo compito?
PS Lo stile si aquista con l'esperienza... ke a me manca :-)

Nn volevo essere "violento", anzi ho apprezzato il tuo gesto, ma preferisco
fare a meno di programmi in scatola...

 ha scritto nel messaggio
news:8Pd48.24053$Rv3.8...@news2.tin.it...


> Dreadnaut... vuoi dire che a te lu funricorsive non piacciono?
mi piacciono quando hanno senso... e il guadagno che ne
deriva supera lo spreco di stack, di costo chiamata e di
sbattimento nel programmare :-)
Spesso sono effettivamente piu' facili, ti eviti di dover
gestire strutture complesse perche' finiscono tutte a strati
nello stack, pero' spesso il b-testing mi uccide :-)
Cmq (e' dimostrato) ogni funzione ricorsiva puo' essere
scritta in modo iterativo e viceversa.
ciao


 PS Lo stile si aquista con l'esperienza... ke a me manca :-)
arrivera'... arrivera'... [ muahhahahhaa <risata diabolica> :-) ]


in pascal che nn apra nessuna finestra ma ke svolga cmq il suo compito?
Che intendi? il pascal non apre finestre.... esendo dos...



Lo so :o)
