Vai al contenuto


Foto

[JAVA] Richieste di aiuto Java


Questa discussione e' stata archiviata Questo significa che non e' possibile rispondere
201 risposte a questa discussione

#61 Guest__*

Guest__*
  • Ospiti

Inviato 15 luglio 2011 - 14:05

Il cruccio sta che sto muovendo i primi passi in java come autodidatta http://www.hwupgrade...tyle_emoticons/default/patpat.gif


grazie. ;)



...posta la tua idea...poi eventualmente traduciamo in Java...

#62 scaci

scaci

    Schiavo

  • Membri
  • StellettaStellettaStellettaStellettaStelletta
  • 1.552 Messaggi:

Inviato 21 luglio 2011 - 22:51

ArrayList: http://download.orac... ... yList.html

per altro si può specificare il tipo di oggetti di cui l'array è composto (un solo tipo), la grandezza è dinamica purchè l'oggetto sia istanziato almeno una volta o punti ad un oggetto già in memoria.


ArrayList superScemo = new ArrayList(); :trollface:
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.

#63 TigerShark

TigerShark

    Schiavo

  • Membri
  • StellettaStellettaStellettaStellettaStellettaStellettaStelletta
  • 16.685 Messaggi:

Inviato 22 luglio 2011 - 00:49

mii.. ma manco le basi sulle strutture dati??? :yaya:
In caso tu debba avere una lista in cui aggiungere elementi allora puoi usare un arraylist.
Se hai una lista fissa che non cambia dimensione puoi usare un array (nel caso devi popolare questa lista dentro un metodo puoi sempre usare un arraylist e poi convertirla in array).
Se al contrario hai tante inserzioni ma hai bisogno raramente di leggere allora vai di linked list.
Se hai bisogno di fare operazioni insiemistiche (un oggetto unico caricato nel set e filtri, intersezioni e, mentre mia madre succhia cazzi, operazioni varie) la cosa migliore e' il set (che come implementazione piu' classica in java ha l'hashset).
In caso tu debba fare molte operazioni di lettura e poche di scrittura (solo il caricamento iniziale) allora Set e hashmap sono perfette.
Se devi fare qualcosa di molto flessibile e che vada bene per molte situazioni diverse alora puoi andare sui vari Tree / B-Tree / B+Tree e tutte le minghia di strutture dati usate nei database.
Se hai bisogno di fare delle analisi di dati senza perdere delle informazioni dovute all'appiattimento delle strutture bidimensionali/tabellari allora gli iper-grafi e gli iper-archi sono la scelta migliore.
Ma se non dici che minGhia vuoi fare mi spieghi come faremmo a risponderti con un minimo di cognizione di causa? :wat: :better: :cereal: :lnrg: :wat: :pua: :lol:
I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. And when it has gone past I will turn the inner eye to see its path. Where the fear has gone there will be nothing. Only I will remain.

#64 SuperMario=ITA=

SuperMario=ITA=

    Lo scemo del forum

  • Moderatori
  • 96.852 Messaggi:

Inviato 22 luglio 2011 - 08:38

:yaya:

vi ho detto che ho seguito solo un corsaccio on line e basta di java che insegna i comandi, ma non a programmare...

cmq l'array è di misura fissa, quello che mi importa è riuscire a ritornarlo da una funzione INTERO, non un solo elemento.


L'idea è sempre la solita...:

vi faccio i primi passi:

- main creo un array di 3 elementi
- nel main a seconda della data in cui mi trovo creo la classe stagione in cui mi trovo e lo scrivo in array in posizione 1
- nella classe stagione in cui mi trovo creo 3 classi tempo (piovoso, nuvoloso, soleggiato) tutte derivate dalla classe tempo inizializzate con un costruttore
- nella classe stagione, sfruttando le probabilità che trovo nelle classi tempo, mi calcolo che tempo c'è in quel giorno e lo scrivo nell'array in posizione 2
- nella classe tempo in cui mi trovo creo delle classi di qualcos'altro e calcolerò dove mi trovo, scrivendolo nell'array in posizione 3...e così via.
- Finito tutto ritorno nel main, aggiungo +1 al giorno e rifaccio da capo per la nuova data.


ora, tutto va in questo modo. Tuttavia io ora voglio calcolare il tempo 4 volte per ogni giorno, quindi il passo 2, dove calcolo il tempo, deve avere un ciclo. Quindi, o mi calcolo il tempo nello stesso modo 4 volte, e ritorno ogni volta una posizione dell'array e dopo lo sistemo bene nel livello superiore (stagione), o riempo l'array con i 4 tempi direttamente nel ciclo e poi ritorno l'intero array.
Io vorrei fare la seconda.
TghXItr.gif - Amare la Formattazione è la Soluzione al 90% dei Problemi della Vita

#65 TigerShark

TigerShark

    Schiavo

  • Membri
  • StellettaStellettaStellettaStellettaStellettaStellettaStelletta
  • 16.685 Messaggi:

Inviato 22 luglio 2011 - 08:56

allora, ora sto iniziando a capirci qualcosa di piu'.
Weather dovrebbe essere una enum con i tre possibili valori se non ha altra responsabilita' che indicare il tipo di tempo.
Io creerei una classe Day che contenga una List o un Weather[] e che calcola lui stesso il valore dei 4 tempi, o meglio se i 4 valori indicano il tempo in uno specifico momento creerei una Map in modo da memorizzare il valore del tempo in ogni momento e lo puoi calcolare in un ciclo direttamente nel costruttore di Day.
La classe Season invece conterra' solamente una List e puoi semplicemente creare 4 istanze della stessa classe (una per stagione) se l'unica differenza e' la probabilita' di un certo tempo.
I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. And when it has gone past I will turn the inner eye to see its path. Where the fear has gone there will be nothing. Only I will remain.

#66 Guest__*

Guest__*
  • Ospiti

Inviato 22 luglio 2011 - 09:02

:yaya:

vi ho detto che ho seguito solo un corsaccio on line e basta di java che insegna i comandi, ma non a programmare...

cmq l'array è di misura fissa, quello che mi importa è riuscire a ritornarlo da una funzione INTERO, non un solo elemento.


L'idea è sempre la solita...:

vi faccio i primi passi:

- main creo un array di 3 elementi


...stai parlando di un array o di una matrice?...


- nel main a seconda della data in cui mi trovo creo la classe stagione in cui mi trovo e lo scrivo in array in posizione 1
- nella classe stagione in cui mi trovo creo 3 classi tempo (piovoso, nuvoloso, soleggiato) tutte derivate dalla classe tempo inizializzate con un costruttore
- nella classe stagione, sfruttando le probabilità che trovo nelle classi tempo, mi calcolo che tempo c'è in quel giorno e lo scrivo nell'array in posizione 2
- nella classe tempo in cui mi trovo creo delle classi di qualcos'altro e calcolerò dove mi trovo, scrivendolo nell'array in posizione 3...e così via.
- Finito tutto ritorno nel main, aggiungo +1 al giorno e rifaccio da capo per la nuova data.



...cosa vuoi fare esattamente?...un calendario in cui per ogni giorno ci siano 4 orari in cui specifichi il tempo atmosferico o vuoi che per ogni giorno ci siano x posti in cui specifichi 4 orari in cui hai rilevato il tempo?...

#67 Guest__*

Guest__*
  • Ospiti

Inviato 22 luglio 2011 - 09:06

...se poi devi effettuare una ricerca per giorno/luogo o momento è meglio usare una struttura dati adatta allo scopo...prindi il tuo bel derby e crei una tabella con data,luogo,momentoDelGiorno,tempoAtmosferico...e i dati sono su strato persistente...

#68 SuperMario=ITA=

SuperMario=ITA=

    Lo scemo del forum

  • Moderatori
  • 96.852 Messaggi:

Inviato 22 luglio 2011 - 09:08

allora, ora sto iniziando a capirci qualcosa di piu'.
Weather dovrebbe essere una enum con i tre possibili valori se non ha altra responsabilita' che indicare il tipo di tempo.
Io creerei una classe Day che contenga una List o un Weather[] e che calcola lui stesso il valore dei 4 tempi, o meglio se i 4 valori indicano il tempo in uno specifico momento creerei una Map in modo da memorizzare il valore del tempo in ogni momento e lo puoi calcolare in un ciclo direttamente nel costruttore di Day.
La classe Season invece conterra' solamente una List e puoi semplicemente creare 4 istanze della stessa classe (una per stagione) se l'unica differenza e' la probabilita' di un certo tempo.


mmmm...mi sa di no.

Perchè io il passo successivo lo calcolo con un metodo all'interno della classe.

ovvero:

Calcolo in che stagione sono nel main e la creo, all'interno di quella classe c'è un metodo per il calcolo del tempo, all'interno della classe in cui mi trovo (di tempo) calcolo lo stato successivo.

cioè...la mia idea (magari cannata eh, però il relatore mi ha detto che va bene :yaya: ) era di concatenare il tutto. Mi trovo qui, da qui calcolo il successivo...


:wat:

vi ho detto che ho seguito solo un corsaccio on line e basta di java che insegna i comandi, ma non a programmare...

cmq l'array è di misura fissa, quello che mi importa è riuscire a ritornarlo da una funzione INTERO, non un solo elemento.


L'idea è sempre la solita...:

vi faccio i primi passi:

- main creo un array di 3 elementi


...stai parlando di un array o di una matrice?...


- nel main a seconda della data in cui mi trovo creo la classe stagione in cui mi trovo e lo scrivo in array in posizione 1
- nella classe stagione in cui mi trovo creo 3 classi tempo (piovoso, nuvoloso, soleggiato) tutte derivate dalla classe tempo inizializzate con un costruttore
- nella classe stagione, sfruttando le probabilità che trovo nelle classi tempo, mi calcolo che tempo c'è in quel giorno e lo scrivo nell'array in posizione 2
- nella classe tempo in cui mi trovo creo delle classi di qualcos'altro e calcolerò dove mi trovo, scrivendolo nell'array in posizione 3...e così via.
- Finito tutto ritorno nel main, aggiungo +1 al giorno e rifaccio da capo per la nuova data.



...cosa vuoi fare esattamente?...un calendario in cui per ogni giorno ci siano 4 orari in cui specifichi il tempo atmosferico o vuoi che per ogni giorno ci siano x posti in cui specifichi 4 orari in cui hai rilevato il tempo?...


si ho pensato anche a una matrice. Ma il problema di ritornarla è uguale.

a me interessa solamente l'array che mi dice in che stati (stagione - tempo atmosferico - etc) sono stato. E voglio calcolare il tutto giorno per giorno, tranne il tempo atmosferico 4 volte al giorno
TghXItr.gif - Amare la Formattazione è la Soluzione al 90% dei Problemi della Vita

#69 Guest__*

Guest__*
  • Ospiti

Inviato 22 luglio 2011 - 09:17

...se usi una hashmap dovresti usare come chiave un elemento legato alla data univoco...tipo annomesegiorno YYYYmmDD e scorrerli per collocarli nel giusto periodo...l'oggetto legato a questa chiave sarà un arrayList di oggetti DayWeatherData contenete un id del luogo, un id del momento e un id del tempo atmosferico...altrimenti fai un arrayList di oggetti weatherData con id del della stagione , id della data , id luogo , id momento e id tempo atmosferico...in ogni caso devi scorrerli e visionare ogni elemento per costruire le tue tabelle risultanti...ultima domandina...come speri di salvare questi dati?...

#70 TigerShark

TigerShark

    Schiavo

  • Membri
  • StellettaStellettaStellettaStellettaStellettaStellettaStelletta
  • 16.685 Messaggi:

Inviato 22 luglio 2011 - 09:18

appunto, se devi fare un calcolo per ogni giorno allora deve essere responsabilita' della classe giorno fare quel calcolo, non della classe stagione.
La classe stagione avra' semplicemente la responsabilita' di inizializzare correttamente i vari giorni che calcoleranno il tempo nel loro costruttore ricevendo in ingresso i necessari parametri di input.
I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. And when it has gone past I will turn the inner eye to see its path. Where the fear has gone there will be nothing. Only I will remain.

#71 SuperMario=ITA=

SuperMario=ITA=

    Lo scemo del forum

  • Moderatori
  • 96.852 Messaggi:

Inviato 22 luglio 2011 - 09:57

appunto, se devi fare un calcolo per ogni giorno allora deve essere responsabilita' della classe giorno fare quel calcolo, non della classe stagione.
La classe stagione avra' semplicemente la responsabilita' di inizializzare correttamente i vari giorni che calcoleranno il tempo nel loro costruttore ricevendo in ingresso i necessari parametri di input.


e ma io non ho la classe giorno.

ho una data, e dalla data parte direttamente il calcolo della stagione.

praticamente la classe giorno non mi serve. Ho la data e bona.
TghXItr.gif - Amare la Formattazione è la Soluzione al 90% dei Problemi della Vita

#72 Guest__*

Guest__*
  • Ospiti

Inviato 22 luglio 2011 - 10:04

?[/url]":1oveax2r] appunto, se devi fare un calcolo per ogni giorno allora deve essere responsabilita' della classe giorno fare quel calcolo, non della classe stagione.
La classe stagione avra' semplicemente la responsabilita' di inizializzare correttamente i vari giorni che calcoleranno il tempo nel loro costruttore ricevendo in ingresso i necessari parametri di input.


e ma io non ho la classe giorno.

ho una data, e dalla data parte direttamente il calcolo della stagione.

praticamente la classe giorno non mi serve. Ho la data e bona.


...allora fai una hashMap con chiave data e valore un contenitore arrayList contenente un oggettone con luogo momento e tempo atmosferico rilevato...

#73 scaci

scaci

    Schiavo

  • Membri
  • StellettaStellettaStellettaStellettaStelletta
  • 1.552 Messaggi:

Inviato 23 luglio 2011 - 18:12

il sunto della questione è che la struttura dati di superfesso fa cagare: sta usando un linguaggio object oriented per scrivere una fetecchia procedurale :cereal:
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.

#74 SuperMario=ITA=

SuperMario=ITA=

    Lo scemo del forum

  • Moderatori
  • 96.852 Messaggi:

Inviato 23 luglio 2011 - 18:18

:cereal:
TghXItr.gif - Amare la Formattazione è la Soluzione al 90% dei Problemi della Vita

#75 SuperMario=ITA=

SuperMario=ITA=

    Lo scemo del forum

  • Moderatori
  • 96.852 Messaggi:

Inviato 04 ottobre 2011 - 12:12

Edit errore mio.
TghXItr.gif - Amare la Formattazione è la Soluzione al 90% dei Problemi della Vita

#76 toyo

toyo

    sono triste

  • Donatori di sperma
  • StellettaStellettaStellettaStellettaStellettaStellettaStelletta
  • 43.890 Messaggi:

Inviato 09 novembre 2011 - 19:37

up.

devo fare un esercizietto con un programmino java che parsera e stampa dell'http, ma mi sono incartato all'inizio :better:

in pratica il seguente codice
public class HttpGet {

    private Socket s=null;

    private InetAddress ip;

    private int port=80;



    public void go(String str) throws IOException{

        ip=InetAddress.getByName(str);

        s=new Socket(ip,port);

        try{

        	System.out.println("inizio, ip ="+ip.getHostAddress());

        	Scanner input = new Scanner(s.getInputStream());

        	OutputStream o =s.getOutputStream();

        	PrintWriter output= new PrintWriter(o,true);

        	output.print("GET /~conti/teaching/PCD1112/project_config.txt HTTP/1.0\r\n\r\n");

        	System.out.println("aspetto l'input...");

        	String line=input.next(); //faila anche con nextline

        	System.out.println(line);

        	System.out.println("finito");

        }finally { s.close(); }

    }

    

    public static void main (String[] a) throws IOException{

    	HttpGet hg = new HttpGet();

    	hg.go("www.math.unipd.it");

    }



}

compila, parte, si connette, fa il GET ma poi non riceve un cazzo e (tipo dopo un paio di minuti d'attesa) muore così

inizio, ip =147.162.114.104

aspetto l'input...

Exception in thread "main" java.util.NoSuchElementException

	at java.util.Scanner.throwFor(Scanner.java:855)

	at java.util.Scanner.next(Scanner.java:1364)

	at HttpGet.go(HttpGet.java:26)

	at HttpGet.main(HttpGet.java:34)


la richiesta http me l'ha passata il prof:

GET /~conti/teaching/PCD1112/project_config.txt HTTP/1.0\r\n\r\n

The \r\n\r\n string is required by the HTTP protocol. More
specifically, the HTTP 1.0 protocol requires that every line of the
request ends with a Carriage Return (CR) followed by a Line Feed (LF).
In JAVA CR is represented by "\r" and LF is represented by "\n".
However, in the above GET request we see two of them. This second one
is required by the fact that in the HTTP 1.0 protocol the end of the
input is marked with CRLF.





Probabilmente è una cazzatina, ho appena iniziato a giocare con la concorrenza/distribuzione in Java.

FIRMA FOTTUTAMENTE EDITATA. IL FOTTUTO STAFF.
 

Mai più giorni felici


#77 toyo

toyo

    sono triste

  • Donatori di sperma
  • StellettaStellettaStellettaStellettaStellettaStellettaStelletta
  • 43.890 Messaggi:

Inviato 09 novembre 2011 - 20:50

...ally... :better:

FIRMA FOTTUTAMENTE EDITATA. IL FOTTUTO STAFF.
 

Mai più giorni felici


#78 TigerShark

TigerShark

    Schiavo

  • Membri
  • StellettaStellettaStellettaStellettaStellettaStellettaStelletta
  • 16.685 Messaggi:

Inviato 09 novembre 2011 - 21:24

...
ma che cazzo vuoi fare?
se vuoi aspettare la richiesta non devi usare il socket direttamente, ma devi usare il socket che ti viene restituito da un serversocket che e' in ascolto su una determinata porta.
Magari in un altro thread se vuoi fare le cose per bene.
E con questo puoi fare le cose piu' avanzate se vuoi farti il figo e serializzare deserializzare:

http://java.sun.com/... ... T/sockets/
Ma cazzo.. la documentazione e' la cosa migliore di java e voi nemmeno la leggete??? :better:
I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. And when it has gone past I will turn the inner eye to see its path. Where the fear has gone there will be nothing. Only I will remain.

#79 toyo

toyo

    sono triste

  • Donatori di sperma
  • StellettaStellettaStellettaStellettaStellettaStellettaStelletta
  • 43.890 Messaggi:

Inviato 09 novembre 2011 - 21:31

...
ma che cazzo vuoi fare?
se vuoi aspettare la richiesta non devi usare il socket direttamente, ma devi usare il socket che ti viene restituito da un serversocket che e' in ascolto su una determinata porta.
Magari in un altro thread se vuoi fare le cose per bene.
E con questo puoi fare le cose piu' avanzate se vuoi farti il figo e serializzare deserializzare:

http://java.sun.com/... ... T/sockets/
Ma cazzo.. la documentazione e' la cosa migliore di java e voi nemmeno la leggete??? :better:

tiger, è un esercizio didattico da fare così.

testo:

Dear All,

The exercises that we could not do in class are helpful in solving
some part of your project. The exercises that I had planned was to
write a program (HttpGet) to send a HTTP GET request to the web server
to receive a specific file from it. To write this code you need to
know some basic information about the HTTP protocol, and in particular
the GET request and the response to this request.

Fortunately, HTTP is a text based protocol. In other words, a server
and a client communicate with each other by exchanging text messages
that have a specific format. For the homework and the project you only
need to know the format of a GET request, and the format of the
response to it. The format of the GET request is as follows:

GET HTTP/1.0\r\n\r\n

For example to receive the project_config.txt file from the
www.math.unipd.it web server under the /~conti/teaching/PCD1112
directory, we have to send the following GET request over the socket
connection to this web server.

GET /~conti/teaching/PCD1112/project_config.txt HTTP/1.0\r\n\r\n

The \r\n\r\n string is required by the HTTP protocol. More
specifically, the HTTP 1.0 protocol requires that every line of the
request ends with a Carriage Return (CR) followed by a Line Feed (LF).
In JAVA CR is represented by "\r" and LF is represented by "\n".
However, in the above GET request we see two of them. This second one
is required by the fact that in the HTTP 1.0 protocol the end of the
input is marked with CRLF.

if you do not believe me on my words, you can always test the above by
making a "telnet" connection to www.math.unipd.it on port 80 and send
the above GET message, without the 2 CRLFs. In stead of that you have
to press the "Enter" button after the HTTP/1.0 part of the request.

Unfortunately, the response is more complicated then the GET request.
This is caused by the fact that the response consists out of a
variable length header and a variable length payload. These two fields
within the response message are separated by a line that only contains
CRLF on it.

I think the brief explanation above about the GET request and response
are sufficient enough to be able to write the required program. For
the first exercise you have to write a HttpGet program that does the
following: i) create to the specified web server making use of JAVA
Sockets, ii) form a correct GET request message, iii) send this GET
request over the Socket connection to the web server, iv) receive the
reply line-by-line from the web server, v) and print each line of the
response on the standard output.
So, the first exercise does not require any parsing of the response.


penso che nel punto i) volesse scrivere "connect" invece che "create"

FIRMA FOTTUTAMENTE EDITATA. IL FOTTUTO STAFF.
 

Mai più giorni felici


#80 TigerShark

TigerShark

    Schiavo

  • Membri
  • StellettaStellettaStellettaStellettaStellettaStellettaStelletta
  • 16.685 Messaggi:

Inviato 10 novembre 2011 - 09:40

ah ok..
magari hai provato con un flush sul printwriter?
In quel modo ti manda la request, altrimenti resta li' seduta nel buffer mi sa..
I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. And when it has gone past I will turn the inner eye to see its path. Where the fear has gone there will be nothing. Only I will remain.