Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - da stringa a float e calcolo distanza punti su un piano cartesinano
Forum - C# / VB.NET - da stringa a float e calcolo distanza punti su un piano cartesinano

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
microprocessore (Normal User)
Pro


Messaggi: 146
Iscritto: 18/06/2009

Segnala al moderatore
Postato alle 15:14
Mercoledì, 30/09/2009
ciao... ho bisogno del vostro aiuto con una applicazione console.
devo caricare un vettore di n celle di tipo float, come devo fare per convertire il numero che inserisce l'utente da string a float?

i valori float sarebbero le coordinate cartesiano di n punti e dovrei calcolare le distanza che intercorrono tra tutti i punti.
quindi mi vengono in mente altri 2 dubbi:
1)come si calcolano le combinazioni di n elementi presi a 2 a 2?
2)che tipo di condizione dovrei mettere per fare in modo che mi venga calcolata la distanza tra i punti?... lo dico perchè si dovrebbe impostare il codice in modo che usi le formule del teorema di pitagora.

grazie in anticipo

Ultima modifica effettuata da microprocessore il 30/09/2009 alle 15:38
PM Quote
Avatar
LittleHacker (Member)
Guru


Messaggi: 1033
Iscritto: 28/04/2009

Segnala al moderatore
Postato alle 15:52
Mercoledì, 30/09/2009
Testo quotato

Postato originariamente da microprocessore:

ciao... ho bisogno del vostro aiuto con una applicazione console.
devo caricare un vettore di n celle di tipo float, come devo fare per convertire il numero che inserisce l'utente da string a float?



Scusa ma i numeri che inserisci l'utente sono in numeri o in parole perchè se fossere in numeri invece di dichiararla come string la dichiari subito come float...

Poi le altre domande non so risponderti mi disp:(:k:

PM Quote
Avatar
microprocessore (Normal User)
Pro


Messaggi: 146
Iscritto: 18/06/2009

Segnala al moderatore
Postato alle 16:49
Mercoledì, 30/09/2009

in pratica uso il Console.ReadLine(); che avrei convertito in int ma i numeri devono essere decimali quindi dovrei convertirlo in float

esempio: devo assegnare alla cella 0: 1,1.
come lo converto?

Ultima modifica effettuata da microprocessore il 30/09/2009 alle 16:51
PM Quote
Avatar
LittleHacker (Member)
Guru


Messaggi: 1033
Iscritto: 28/04/2009

Segnala al moderatore
Postato alle 16:52
Mercoledì, 30/09/2009
Testo quotato

Postato originariamente da microprocessore:

i numeri che inserisce sono in formato string...
in pratica uso il Console.ReadLine(); che avrei convertito in int ma i numeri devono essere decimali quindi dovrei convertirlo in float


Codice sorgente - presumibilmente C# / VB.NET

  1. Dim num As Float = Console.ReadLine()


questo è in vb.net
:k:

Ultima modifica effettuata da LittleHacker il 30/09/2009 alle 16:53
PM Quote
Avatar
microprocessore (Normal User)
Pro


Messaggi: 146
Iscritto: 18/06/2009

Segnala al moderatore
Postato alle 17:02
Mercoledì, 30/09/2009
grazie ma mi sono dimenticato di dire che uso c#. sai dirmi come si fa con c#?

PM Quote
Avatar
LittleHacker (Member)
Guru


Messaggi: 1033
Iscritto: 28/04/2009

Segnala al moderatore
Postato alle 17:15
Mercoledì, 30/09/2009
Il convertitore mi dice in questo modo:
Codice sorgente - presumibilmente C# / VB.NET

  1. {
  2.     float num = console.readline();
  3.  }


poi boh...:rotfl:

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 17:47
Mercoledì, 30/09/2009
Float non esiste in VB.NET, ma si chiama Single.
Inoltre Console.ReadLine() restituisce SEMPRE una stringa. Il fatto che noi assegnamo il risultato di tale funzione ad un numero implica una conversione che avviene implicitamente, e che viene attuata "di nascosto" dal programma.

Invece di usare valori Singole (o Float, che dir si voglia), utilizza delle strutture PointF, che contengono appunto due valori, X e Y. Una volta memorizzate n strutture, basta un semplice ciclo For per iterare attraverso l'array (o la lista) e prendere due elementi alla volta. In sostanza:
Codice sorgente - presumibilmente C# / VB.NET

  1. PointF Points[] = new PointF[n];


inizializza l'array di punti;

Codice sorgente - presumibilmente C# / VB.NET

  1. float X, Y;
  2. X = Console.ReadLine();
  3. Y = Console.ReadLine();
  4. Points[i] = new PointF(X, Y);


aggiunge un punto alla collezzione;

e... il ciclo non te lo scrivo, altrimenti ti faccio l'esercizio tutto io.

Riguardo alla "condizione", non ho capito la domanda.

Ultima modifica effettuata da Il Totem il 30/09/2009 alle 17:48
PM Quote
Avatar
microprocessore (Normal User)
Pro


Messaggi: 146
Iscritto: 18/06/2009

Segnala al moderatore
Postato alle 21:14
Mercoledì, 30/09/2009
è un esercizio per scuola... devo attenermi alla consegna dell' esercizio e devo usare un vettore di tipo float quindi non posso usare il pointf che tra l'altro non conosco.

hai detto che da string a float fa una conversione implicita, quindi se io scrivo:
vett[k]=Console.ReadLine();

mi converte la stringa in float senza problemi? (vett è di tipo float)

per quanto riguarda la domanda che non hai capito intendo: nel piano ci saranno n punti inseriti dall'utente... come devo impostare il codice per calcolare le distanze tra i punti visto che in base alla loro posizione si dovranno usare o meno le formule del teorema di pitagora?

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 16:57
Giovedì, 01/10/2009
Non avevi specificato il vincolo di poter usare solo i float, né avevi detto che si trattava di un esercizio scolastico (cosa che, come vedi, avevo comunque intuito). E, dato che il regolamento specifica che non si possono chiedere risoluzioni di esercizi, è lecito che io ti dia solo un'idea di come fare, senza entrare nel dettaglio.

Per quanto riguarda la prima domanda, sì, la conversione è implicita (tutte le conversioni sono implicite quando il tipo di assegnamento è diverso dal tipo restituito dall'espressione). Ovviamente se l'utente introduce una sequenza alfanumerica, il programma crasha, ma speriamo che non sia così crudele.

Per la seconda domanda... in realtà tu mi stai chiedendo l'algoritmo. Non è questione di VB.NET o C#, il problema è di fondo: non sai trovare l'algoritmo giusto. E, dato che questo è il fine principale degli esercizi, mi sembra di non commettere un torto verso di te se decido di non risponderti.

PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo