|
|||||||
|
|
|
![]() |
|
|
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 14: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 14: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 15: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 17: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: 10:22.




















