|
|
|
![]() |
|
Strumenti |
![]() |
#1 | |
Senior Member
Iscritto dal: Jan 2009
Città: SkyHeart
Messaggi: 3837
|
Esercizio java. Mi aiutate a spiegarlo?
Ciao Ragazzi sto seguendo un corso java via Web. Sono arrivato al punto delle esercitazioni. Questo è l'esercizio
Quote:
Codice:
import javax.swing.JOptionPane; import java.util.Calendar; public class CalcolaEta { public static void main(String[] args){ String annoInput = JOptionPane.showInputDialog("inserisci il tuo anno di nascita:"); int eta = calcolaEta(annoInput); String msg = "La tua età è di "+eta+" anni"; JOptionPane.showMessageDialog(null, msg); } public static int calcolaEta(String anno){ int annoNascita = Integer.parseInt(anno); Calendar oggi = Calendar.getInstance(); int annoCorrente = oggi.get(Calendar.YEAR); if(annoCorrente>=annoNascita){ return annoCorrente - annoNascita; } else {return 0;} } } Grazie.
__________________
Madre: Asus M4A785TD-V EVO; CPU: Amd Phenom X4 955BE Controlled by K10STAT; VGA: Gainward GTX260GS 896mb OC; HDD WD500AAKS; PSU: Corsair VX550W; RAM: Kinghstone hyper X 1600Mhz 1600mhz CL9 8Gb Reflex Canon Eos 6D + HELIOS44 M-6 50mm f2 + Canon 50mm f1.4 + Samyang 14mm f2.8 + Canon 28mm f2.8 IS Flickr |
|
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
Codice:
public static int calcolaEta(String anno){ //"trasforma" la stringa anno in un numero intero int annoNascita = Integer.parseInt(anno); //Oggetto calendario Calendar oggi = Calendar.getInstance(); //restituisce l'anno corrente int annoCorrente = oggi.get(Calendar.YEAR); //se l'anno corrente è maggiore uguale all'anno di nascita if(annoCorrente>=annoNascita){ //ti stituisce la loro differenza, quindi l'età return annoCorrente - annoNascita; } //altrimenti ritorna 0 else {return 0;} |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jan 2009
Città: SkyHeart
Messaggi: 3837
|
E' normale che io non abbia mai potuto sapere inserire questi due comandi?
Calendar oggi = Calendar.getInstance(); int annoCorrente = oggi.get(Calendar.YEAR); Un'altra cosa questa è una super classe che poi dovra contenere sotto classi Leone, lupo gatto cane. A che cosa serve il this.?? public class Animale { private boolean domestico; private int numero zampe; private String famiglia; public animale (boolean domestico, int numero zampe, String famiglia); { This.domestico = domestico; this.numerozampe = numeroZampe; this.famiglia = famiglia; P.s ce ne vuole di tempo per entrare nella logica del linguaggio java vero? Grazie.. userò questo thread per postare altri dubbi.. Grazie dell aiuto.
__________________
Madre: Asus M4A785TD-V EVO; CPU: Amd Phenom X4 955BE Controlled by K10STAT; VGA: Gainward GTX260GS 896mb OC; HDD WD500AAKS; PSU: Corsair VX550W; RAM: Kinghstone hyper X 1600Mhz 1600mhz CL9 8Gb Reflex Canon Eos 6D + HELIOS44 M-6 50mm f2 + Canon 50mm f1.4 + Samyang 14mm f2.8 + Canon 28mm f2.8 IS Flickr |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Quote:
|
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jan 2009
Città: SkyHeart
Messaggi: 3837
|
Ok chiaro. Grazie.
Tornerò con altri esercizi. ![]()
__________________
Madre: Asus M4A785TD-V EVO; CPU: Amd Phenom X4 955BE Controlled by K10STAT; VGA: Gainward GTX260GS 896mb OC; HDD WD500AAKS; PSU: Corsair VX550W; RAM: Kinghstone hyper X 1600Mhz 1600mhz CL9 8Gb Reflex Canon Eos 6D + HELIOS44 M-6 50mm f2 + Canon 50mm f1.4 + Samyang 14mm f2.8 + Canon 28mm f2.8 IS Flickr |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Jan 2009
Città: SkyHeart
Messaggi: 3837
|
Avviare un processo
Quote:
Qui c'è il blocco try catch, a che cosa serve qui? Avviandolo da prompt, mi apre il blocco note.
__________________
Madre: Asus M4A785TD-V EVO; CPU: Amd Phenom X4 955BE Controlled by K10STAT; VGA: Gainward GTX260GS 896mb OC; HDD WD500AAKS; PSU: Corsair VX550W; RAM: Kinghstone hyper X 1600Mhz 1600mhz CL9 8Gb Reflex Canon Eos 6D + HELIOS44 M-6 50mm f2 + Canon 50mm f1.4 + Samyang 14mm f2.8 + Canon 28mm f2.8 IS Flickr Ultima modifica di Frenky-90 : 06-01-2012 alle 13:04. |
|
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Jul 2011
Messaggi: 246
|
L'istruzione proc = rt.exec("notepad"); provoca l'esecuzione del programma notepad (che è appunto il blocco note di win).
L'istruzione proc.waitFor(); è usata per mettere in attesa il thread corrente della terminazione del processo prima avviato (il notepad). Il try-catch serve ad intercettare eccezioni di run-time. Ad esempio se il notepad non viene trovato o, per qualche motivo, non è possibile lanciarlo, ecc... P.S. Il programma passato per l'esecuzione (in questo caso notepad) viene cercato nel tuo PATH di sistema.
__________________
Non c'è cosa peggiore nella vita di un programmatore di un errore che si presenta solo ogni tanto. CONCLUSO POSITIVAMENTE CON: oldfield Ultima modifica di Mettiu_ : 06-01-2012 alle 13:34. |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Jan 2009
Città: SkyHeart
Messaggi: 3837
|
Quote:
![]() e se io invece del notepad avessi voluto avviare una qualsiasi altra applicazione di windows come sarebbe dovuta essere la sintassi? Grazie mille.
__________________
Madre: Asus M4A785TD-V EVO; CPU: Amd Phenom X4 955BE Controlled by K10STAT; VGA: Gainward GTX260GS 896mb OC; HDD WD500AAKS; PSU: Corsair VX550W; RAM: Kinghstone hyper X 1600Mhz 1600mhz CL9 8Gb Reflex Canon Eos 6D + HELIOS44 M-6 50mm f2 + Canon 50mm f1.4 + Samyang 14mm f2.8 + Canon 28mm f2.8 IS Flickr |
|
![]() |
![]() |
![]() |
#9 |
Member
Iscritto dal: Jul 2011
Messaggi: 246
|
La sintassi è la stessa, cambia solo ciò che scrivi tra parentesi:
proc = rt.exec("eseguibileCheVuoiAvviare"); Se l'eseguibile è sito in una cartella inclusa nel path di sistema ti basta il nome dell'eseguibile. Diversamente, devi specificare il percorso (relativo o assoluto) dell'applicazione quindi ad es. C:\Programmi\miaCartella\mioprog.exe.
__________________
Non c'è cosa peggiore nella vita di un programmatore di un errore che si presenta solo ogni tanto. CONCLUSO POSITIVAMENTE CON: oldfield |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Jan 2009
Città: SkyHeart
Messaggi: 3837
|
cioè in proc = rt.exec("C:\Program Files\Speccy.exe") ??
Così?
__________________
Madre: Asus M4A785TD-V EVO; CPU: Amd Phenom X4 955BE Controlled by K10STAT; VGA: Gainward GTX260GS 896mb OC; HDD WD500AAKS; PSU: Corsair VX550W; RAM: Kinghstone hyper X 1600Mhz 1600mhz CL9 8Gb Reflex Canon Eos 6D + HELIOS44 M-6 50mm f2 + Canon 50mm f1.4 + Samyang 14mm f2.8 + Canon 28mm f2.8 IS Flickr |
![]() |
![]() |
![]() |
#11 | |
Member
Iscritto dal: Jul 2011
Messaggi: 246
|
Quote:
proc = rt.exec("C:\\Program Files\\Speccy.exe");
__________________
Non c'è cosa peggiore nella vita di un programmatore di un errore che si presenta solo ogni tanto. CONCLUSO POSITIVAMENTE CON: oldfield |
|
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Jan 2009
Città: SkyHeart
Messaggi: 3837
|
Ho provato ma se per esempio metto questa estensione, mi fà lo javac, ma allo java mi dice speccy un comando sconosciuto. Entra in atto il try Catch xke non riesce a trovare l'exe.
__________________
Madre: Asus M4A785TD-V EVO; CPU: Amd Phenom X4 955BE Controlled by K10STAT; VGA: Gainward GTX260GS 896mb OC; HDD WD500AAKS; PSU: Corsair VX550W; RAM: Kinghstone hyper X 1600Mhz 1600mhz CL9 8Gb Reflex Canon Eos 6D + HELIOS44 M-6 50mm f2 + Canon 50mm f1.4 + Samyang 14mm f2.8 + Canon 28mm f2.8 IS Flickr |
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
Quote:
Il tuo errore è dunque a runtime e l'eseguibile da te indicato non c'è |
|
![]() |
![]() |
![]() |
#14 | |
Senior Member
Iscritto dal: Jan 2009
Città: SkyHeart
Messaggi: 3837
|
Quote:
__________________
Madre: Asus M4A785TD-V EVO; CPU: Amd Phenom X4 955BE Controlled by K10STAT; VGA: Gainward GTX260GS 896mb OC; HDD WD500AAKS; PSU: Corsair VX550W; RAM: Kinghstone hyper X 1600Mhz 1600mhz CL9 8Gb Reflex Canon Eos 6D + HELIOS44 M-6 50mm f2 + Canon 50mm f1.4 + Samyang 14mm f2.8 + Canon 28mm f2.8 IS Flickr |
|
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
Potresti indentare il codice per piacere?
Codice indentato Codice:
public static void main(String args[]){ System.out.println("Ciao"); } Codice non indentato Codice:
public static void main(String args[]){ System.out.println("Ciao"); } ![]() |
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Jan 2009
Città: SkyHeart
Messaggi: 3837
|
Il fatto è che non lo sò.
Questa è la soluzione dell esercizio proposta da loro. Il tema è questo Codice:
Scrivere un programma che, dato il nome di un file, scrive su questo file il testo che l'utente digita a console, quindi rilegge il contenuto e lo stampa sull'output ![]()
__________________
Madre: Asus M4A785TD-V EVO; CPU: Amd Phenom X4 955BE Controlled by K10STAT; VGA: Gainward GTX260GS 896mb OC; HDD WD500AAKS; PSU: Corsair VX550W; RAM: Kinghstone hyper X 1600Mhz 1600mhz CL9 8Gb Reflex Canon Eos 6D + HELIOS44 M-6 50mm f2 + Canon 50mm f1.4 + Samyang 14mm f2.8 + Canon 28mm f2.8 IS Flickr |
![]() |
![]() |
![]() |
#17 | |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Codice:
import java.io.*; /** * Dato il nome di un file, scrive su questo file il testo che l'utente digita * a console, quindi rilegge il contenuto e lo stampa sull'output */ public class SimpleEditor { /** * Scrive su file il contenuto del buffered reader fino a che non trova * una riga vuota */ static void scriviSuFile(BufferedReader input, String file) throws FileNotFoundException, IOException { BufferedWriter bw = null; try { bw = new BufferedWriter(new FileWriter(file)); String line = null; while (!(line = input.readLine()).equals("")) { bw.write(line); bw.newLine(); } } finally { if (bw != null) try { bw.close(); // questo implica la flush } catch (Exception e) {} } } /** * Stampa sull'output fornito il contenuto del file */ static void stampaSuOutput(PrintStream out, String file) throws FileNotFoundException, IOException { BufferedReader br = null; try { br = new BufferedReader(new FileReader(file)); String line = null; while ((line = br.readLine()) != null) { out.println(line); } } finally { if (br != null) try { br.close(); } catch (Exception e) {} } } public static void main(String[] args) { try { BufferedReader in = new BufferedReader(newInputStreamReader(System.in)); System.out.println("Indica il nome del file di testo da creare: "); String file = in.readLine(); System.out.println("Ora digita il contenuto del file di testo." + "\nPremi due volte invio per terminare"); scriviSuFile(in, file); System.out.println("Il file e' stato scritto. " + "Ora lo rileggo e ti mostro il contenuto"); stampaSuOutput(System.out, file); } catch (FileNotFoundException fnfe) { System.out.println("Non ho trovato il file specificato"); fnfe.printStackTrace(); } catch (IOException e) { System.out.println("Errore di io generico riscontrato " + "durante l'operazione."); e.printStackTrace(); } } }
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) Ultima modifica di banryu79 : 17-01-2012 alle 14:42. |
|
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Jan 2009
Città: SkyHeart
Messaggi: 3837
|
aaaa ok ecco cos'è l'indentazione. !! Scusatemi , ma visto che sono ipernuovo non capivo che dovevo scalare il testo nel blocco note.
Nel blocco note è indentato, solo che con il copia incolla si è levato. Sorry. Potreste spigarmi? Sono ad un punto in java, dove vengono spiegate le eccezioni, con try catch, throw e finally, ma non troppo le ho intese nella teoria, o meglio, il blocco try catc in se per se si, ma throw finally no! Spero che con gli esercizi mi entri bene i mente. Spero anche di confidare nel vostro aiuto. Grazie
__________________
Madre: Asus M4A785TD-V EVO; CPU: Amd Phenom X4 955BE Controlled by K10STAT; VGA: Gainward GTX260GS 896mb OC; HDD WD500AAKS; PSU: Corsair VX550W; RAM: Kinghstone hyper X 1600Mhz 1600mhz CL9 8Gb Reflex Canon Eos 6D + HELIOS44 M-6 50mm f2 + Canon 50mm f1.4 + Samyang 14mm f2.8 + Canon 28mm f2.8 IS Flickr Ultima modifica di Frenky-90 : 17-01-2012 alle 16:17. |
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
|
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Jan 2009
Città: SkyHeart
Messaggi: 3837
|
si si..
Ho aggiornato il post sopra, xke ci sono arrivato in ritardo ![]()
__________________
Madre: Asus M4A785TD-V EVO; CPU: Amd Phenom X4 955BE Controlled by K10STAT; VGA: Gainward GTX260GS 896mb OC; HDD WD500AAKS; PSU: Corsair VX550W; RAM: Kinghstone hyper X 1600Mhz 1600mhz CL9 8Gb Reflex Canon Eos 6D + HELIOS44 M-6 50mm f2 + Canon 50mm f1.4 + Samyang 14mm f2.8 + Canon 28mm f2.8 IS Flickr |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:40.