GTA-Center.com » Forum http://www.gta-center.com/forums/ |
|
[GUIDA]Lezioni di java - Lezione 3 http://www.gta-center.com/forums/viewtopic.php?f=40&t=167 |
Pagina 1 di 1 |
Autore: | Giuseppe_Mazzei [ 31/10/2010, 21:39 ] |
Oggetto del messaggio: | [GUIDA]Lezioni di java - Lezione 3 |
il codice visto nella lezione 2 rappresenta la "successione di Fibonacci", cioè ogni elemento è la somma dei due elementi precedenti, cioè: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 e cosi via. Nel caso avessi inserito dalla tastiera il numero 6, il numero restituito sarebbe stato l'8. I metodi Capita a volte di aver bisogno di compiere uno script piu volte, al posto di copiarlo ed incollarlo è possibile usufruire dei metodi. I metodi non sono altro che dei codici appartenenti alla classe ed esterni dal main (Il main in sè è un metodo). Come creare un metodo? il codice è questo: public static [[il tipo di variabile che restituisce]] [[nome del metodo]] ([[i tipi di variabili che il metodo riceve]]) Ad esempio se voglio che un metodo mi prenda 3 numeri int e veda se la loro somma è = 0, il tipo di variabile che restituisce sarà di tipo booleano, cioè restituirà true se la somma è uguale a 0, altrimenti restituirà false. Diciamo che il metodo lo chiamiamo verificatore. Quindi lo script del metodo sarà: public static boolean verificatore(int a, int b, int c) { if(a+b+c == 0) return true; else return false; } cosa significa return? return praticamente è quello che restituisce, il return interrompe ogni ciclo e fa uscire immediatamente dal metodo in cui ci troviamo. se invece vogliamo che il metodo non restituisca niente scriveremo "void" che significa vuoto, quindi non avremo bisogno di mettere alcun tipo di return. Facciamo un esempio, diciamo di non conoscere l'oggetto Math del topic precedente e vogliamo creare un metodo che elevi un numero al quadrato: public static void Quadrato(int numero) { numero*=numero; } ma come facciamo dal main a far capire al programma che vogliamo utilizzare il metodo creato? import Java.Scanner; public class Programma { Scanner sc = new Scanner(System.in); public static void main(String []args) { System.out.println("Scrivi il numero di cui vuoi fatto il quadrato"); int a = sc.nextInt(); Quadrato(a); } public static void Quadrato(int numero) { numero*=numero; } } Come vedete il nome della variabile del metodo non deve per forza essere uguale al nome della variabile che noi diamo quando invochiamo il metodo, ma deve essere sempre uguale il tipo di variabile. Prendiamo n esame il primo metodo proposto e immaginiamo di creare un programma: import Java.Scanner; public class Programma { Scanner sc = new Scanner(System.in); public static void main(String []args) { System.out.println("Inserisci tre numeri per verificare se la loro somma è uguale a 0"); int num1 = sc.nextInt(); int num2 = sc.nextInt(); int num3 = sc.nextInt(); if(verificatore(num1, num2, num3))//se il booleano restituito sarà true System.out.println("La somma dei tre numeri è uguale a 0); else System.out.println("La somma dei tre numeri è diversa da 0"); } public static boolean verificatore(int a, int b, int c) { if(a+b+c == 0) return true; else return false; } } Ora credo che abbiate capito come implementare un metodo in un programma, adesso passiamo ai metodi ricorsivi. Si chiamano metodi ricorsivi quelli che, a determinate condizioni, invocano nuovamente se stessi, cioè se una condizione è verificata, al posto di terminare, il metodo ricomincia da capo, vediamo un esempio. Come prima immaginiamo di non conoscere l'oggetto Math e proviamo a realizzare un metodo che elevi un numero ad un altro utilizzando un metodo ricorsivo che riceva quindi le seguenti variabili: -una base -un esponente -un risultato gia inizializzato prima di invocare il metodo che ha valore 1, altrimenti questo non si potrebbe fare con il metodo ricorsivo public static int Eleva(int base, int esponente, int risultato) { if(esponente > 0) { risultato *= base; esponente --; Eleva(base, esponente, risultato); } else return risultato; } Come vedete da un metodo si possono anche richiamare altri metodi oppure, se occorre, se stessi. Conclusione Spero e credo di aver detto tutto sui metodi, ma se necessitate di ulteriori spiegazioni chedete pure. Piu avanti capiremo perchè i metodi sono molto utilizzati e costituiscono una parte essenziale di pawno. Nel prossimo topic parleremo di array monodimensionali, bubble sort e selection sort Per esercitarvi, se volete, provate a realizzare due metodi che: il primo lo chiamiamo Verifica che riceve in ingresso 3 int A, B e C e restituisca true se A è il minore di essi e C è il maggiore, altrimenti restituisce false. Il secondo riceva in ingresso tre numeri int A, B e C e, giocando con l'aliasing, associ ad A il valore minimo tra le 3 variabili, a B il valore medio tra le tre variabili e a C il valore massimo tra le tre variabili. Ad esempio: I metodi ricevono i numeri: A = 6; B = 3; C = 7; naturalmente vedete che A non è il minimo di essi e quindi il primo metodo restituirà false il secondo metodo non deve restituire niente, ma farà cambiare i valori di A, B e C in questo modo: A = 3; B = 6; C = 7; Questo esercizio puo sembrare difficile a prima vista, ma se ci ragionate di sopra dovreste riuscire a farcela senza problemi. Se riuscite bene, nel prossimo topic assimilerete quelle conoscenze che vi potranno permettere anche di fare alcuni esercizi di alcuni appelli di Fondamenti Di Informatica. Postate pure il codice come risposta a questa discussione e sarò felice di correggervi o darvi dei consigli. Commenti, dubbi, proposte e altro in questo post, cosi che tutti potranno apprendere le basi da questo forum. Se volete ulteriori spiegazioni chiedete pure, Tanti saluti, Giuseppe Mazzei |
Pagina 1 di 1 | Tutti gli orari sono UTC + 1 ora [ ora legale ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |