Page 2 of 2

Re: Dec2Bin convertitore in binario in bennu

Posted: 8 Jun 2011, 11:59
by gigios
Toglilo pure, era una prova di una funzione trovata sul forum (Frac) che dovrebbe tornare la parte di 'resto' di un float.
Il 'numeraccio' probabilmente è dato dagli arrotondamenti.

Quello che a te interesse dovrebbe essere solo la parte relativa al mod, ovvero dove viene 'settata' la variabile binario.

Re: Dec2Bin convertitore in binario in bennu

Posted: 8 Jun 2011, 12:56
by gigios
Questa è la funzione che ho provato ad aggiungere al tuo esempio, chiamandola poi internamente dove premi i tasti.

Code: Select all

FUNCTION string NumberToBinString (int number)
PRIVATE
	string resultString;
	int n;
BEGIN
	n = number;
	resultString = "";
	while(n >= 1)
		resultString = (n mod 2) + resultString;
		n = n / 2;
	end
	say (resultString);
	RETURN resultString;
END
Mettendo il say prima rel return vedo il valore corretto nella console, ma se metto il valore tornato dalla funzione in una variabile 'plottata' poi con un write_string ottengo dei numeri (sembra la somma di qualche cosa...)

Re: Dec2Bin convertitore in binario in bennu

Posted: 8 Jun 2011, 15:09
by Zip
bene gigios ora aspetto che posti la tua ultima versione e iniziamo a lavorare all'aggiunta della possibilita
di inserire manualmente il numero da convertire

Re: Dec2Bin convertitore in binario in bennu

Posted: 8 Jun 2011, 16:12
by gigios
Eccomi qui, scusa il ritardo nella risposta :P

Questa è la versione 'riadattata' da me:

Code: Select all

//-----------------------------------------------------------------------------
//CONVERTITORE v.0.3

//-----------------------------------------------------------------------------
//Declare of internal functions
Declare FUNCTION string IntToBinString (int value)
End
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
//Main Process
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
// Constants
const version=0.3;		// Application Version
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
// Main Process Variables
LOCAL

int    numberInt;		//Int number to convert
string binaryString;	//Binary string with converted value
byte   last_ascii;		//Last ascii key pressed

END
//-----------------------------------------------------------------------------

BEGIN
	set_mode(320,240,16); 
	
	//-----------------------------------------------------------------------------
	//Display information
	write(0,10,5,0,"dec2bin v"+ FTOA(version));
	write(0,10,15,0,"Press a number key!");

	write(0,120,30,0,"Numero  :=>:");
	write_int(0,210,30,0,&numberInt);
	
	write(0,120,40,0,"Binario :=>:");
	write_string(0,210,40,0,&binaryString);
	//-----------------------------------------------------------------------------
	
	//-----------------------------------------------------------------------------
	//Main Loop
	loop
		if(ascii!=0 & last_ascii!=ascii)
			last_ascii = ascii;
			
			//Convert key pressed into number (ascii 0 = 48)
			numberInt = ascii-48;
			if(numberInt=>0 & numberInt<=9)
				binaryString = IntToBinString(numberInt);
			else
				binaryString = "none";
			end
		end

		if(key(_esc))
			exit("Press ESC to close console window!", 0);
		end

		frame;
	end
	let_me_alone();
END
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
// Convert the integer in the Binary string
// value (int) = value to convert
// Return (string) = Binary string (ex. 9 = "1001")
FUNCTION string IntToBinString (int value)
PRIVATE
	int n;
	string resultString;
BEGIN
	n = value;
	if(n <= 0) RETURN "0"; end
	
	resultString = "";
	while(n >= 1)
		resultString = (n mod 2) + resultString;
		n = n / 2;
	end
	//say (resultString);
	RETURN resultString;
END
//-----------------------------------------------------------------------------
Ho modificato leggermente il programma per fare dei test su Bennu (sfrutto questo piccolo programmino anche per farmi un'infarinatura).
Per provarlo devi premere uno dei tasti numerici e dovrebbe apparire la corrispondente rappresentazione binaria.

Ciao.

Re: Dec2Bin convertitore in binario in bennu

Posted: 8 Jun 2011, 16:37
by Zip
Ottimo gigios se vuoi lo presentiamo sul forum di bennu ancora nessuno ha fatto un lavoro di questo tipo :)

adesso basandomi su questo faro l'orologio (in questi giorni ovviamente devo finire la webzine)
bravo gigios ;)

Re: Dec2Bin convertitore in binario in bennu

Posted: 8 Jun 2011, 17:09
by gigios
Non mi sembra un gran che ;)
Sicuramente mi è servito come 'punto' di partenza, almeno ho provato (pochissimo) bennu e mi rendo conto che non è proprio come gli strumenti di 'lavoro' che uso tutti i giorni.

Non avere un help in linea o comunque un editor che suggerisca la sintassi e i parametri disponibili fa diventare ardua la programmazione.
E' vero che sino a 10 anni fa era così che si lavorava (considerando che ho cominciato così e mi ero fatto un editor in VB4 poi portato in VB6 per l'azienda in cui lavoravo), ora però con gli strumenti che ci sono/usano tornare indietro è decisamente scomodo.
Anche il fatto, come accennavo in chat, che la documentazione non sia completa, e tanto meno corretta, è decisamente fuorviante!

Comunque, tornando a noi, proverò ancora a giochicchiare un po' con questa versione ;)