View Full Version : [Java]Conversione in float+consiglio
blue_blue
09-11-2007, 20:36
Ciao!
Ritorno a postare in questa sezione sempre più disperata..In realtà, prima di passare al programma in oggetto, vi vorrei chiedere una cosa..è da poco più di un mese che studio informatica ma, sia perché la prof è un po' impedita a spiegare, sia perché io non ho mai programmato e, se le cose mi vengono spiegate in fretta, non ci capisco un tubo, mi sto trovando veramente in difficoltà..sto cercando di studiare la teoria per conto mio sul libro, e fin lì vabbè, ce la posso fare (anche se alcuni argomenti non ci sono..), ma quel che non mi riesce proprio sono gli esercizi di programmazione..di quelli che ci assegna, me ne riescono veramente pochissimi, e non so cosa fare..ci sto davanti ore e ore ma non ne vengo fuori, è possibile?? cosa posso fare, secondo voi, per migliorare? Io la buona volontà ce la metto tutta, ci sto perdendo dietro un sacco di tempo, ma a vedere che non mi riesce un tubo mi sento ancora più demoralizzata..:(
Scusate per lo sfogo..
prova così:
int qualcosa = 10, qualcos_altro = 3;
float num = (float) qualcosa/qualcos_altro;
wingman87
10-11-2007, 01:12
Io ti consiglio di provare qualche corso di java che trovi su internet, puoi vedere su html.it oppure cercando ho trovato questo: http://www.corsojava.it/videocorso/
giusto per acquisire delle basi solide ed avere le idee un po' più chiare, e anche per fare esperienza con degli esercizi pratici guidati. La cosa peggiore è provare e riprovare e non giungere mai a nulla per questo è importante avere una guida di riferimento almeno all'inizio. In seguito capirai che nessuno è in grado di fare tutto da solo e dei dubbi vengono sempre quindi non demoralizzarti e chiedi senza farti troppi scrupoli.
blue_blue
11-11-2007, 00:51
Io ti consiglio di provare qualche corso di java che trovi su internet, puoi vedere su html.it oppure cercando ho trovato questo: http://www.corsojava.it/videocorso/
giusto per acquisire delle basi solide ed avere le idee un po' più chiare, e anche per fare esperienza con degli esercizi pratici guidati. La cosa peggiore è provare e riprovare e non giungere mai a nulla per questo è importante avere una guida di riferimento almeno all'inizio. In seguito capirai che nessuno è in grado di fare tutto da solo e dei dubbi vengono sempre quindi non demoralizzarti e chiedi senza farti troppi scrupoli.
Grazie, hai capito perfettamente quello che intendevo dire..ti ringrazio anche per il link che mi hai dato, ho scaricato una guida che mi leggerò con calma una volta stampata..
ieri sera alla fine ero talmente demoralizzata che non ho neanche scritto qual è il nuovo programma che mi sta facendo impazzire: sostanzialmente dovrei fare in modo che, dato un qualsiasi numero reale (con parte intera o decimale o tutte e due), mi venga restituita la sua rappresentazione a 32 bit..
Dopo un intenso pomeriggio, sono arrivata in un modo o nell'altro alla fine dell'algoritmo..che però non funziona con tutti i numeri :(
E' abbastanza lunghino (probabilmente c'è molta roba inutile, ma che io non vedo :fagiano: ), se andate meglio lo posto tutto..intanto vi metto la prima parte, che è quella che è sicuramente sbagliata (soprattutto nell'ultimo blocco) ma non so davvero come sistemarla; praticamente è il passaggio in cui converte la parte intera del reale in binario e ci sono da sistemare i resti nell'ordine giusto:
import java.util.Scanner;
import java.util.Locale;
public class Pezzoconvert
{
public static void main (String[] args)
{
Scanner in = new Scanner (System.in);
in.useLocale(Locale.US);
System.out.println ("Inserire il numero da convertire");
double numero = in.nextDouble(); //inserisco il numero da convertire
System.out.println (" Il numero inserito e' "+numero);
int pi = (int) Math.abs(numero) /1; // definisco la parte intera del numero
double pf = Math.abs(numero )- pi; // definisco la parte decimale del numero
int[] binario = new int [32];
int resto = -1;
int resto2;
int resto3;
int contatore = 0;
int contatore2 = 0;
int esponente=0;
int i=9;
int k=9;
int v =8;
double molt;
// converto la parte intera in binario e assegno i resti all'array dal primo all'ultimo
System.out.println ("La parte frazionaria del numero e': "+pf);
System.out.print ("I resti in ordine inverso sono : ");
while (pi != 0 )
{
resto = pi % 2;
pi = pi / 2;
binario [i] = resto;
System.out.print (binario[i]);
i++;
contatore++;
}
System.out.println ("\nSono state effettuate "+contatore+" divisioni");
//inserisco la virgola (e' il numero 2)
binario[ 9 + contatore] = 2;
//scambio i resti per farli mettere nell'ordine "corretto" (dall'ultimo al primo)
for (i = 8 + contatore; i> 8+(contatore/2); i--)
{
for (k = 9; k <9+(contatore/2) ; k++)
{
int sc = binario [k];
binario [k] = binario [i];
binario [i] = sc;
}
}
blue_blue
12-11-2007, 17:42
Wow, ho fatto un passone avanti!
Adesso riesco a farlo funzionare con tutti i numeri con parte intera diversa da 0, positivi e negativi..madò sono troppo contenta :D
però ci sono ancora i numeri compresi tra -1 e 1 che mi danno rogne..se lo posto c'è qualche buon'anima che ha voglia di aiutarmi a trovare l'errore?
Grazie
EDIT: non mi fa allegare il file :mbe:..lo incollo in un post, anche se viene lunghissimo??
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.