Due problemi con Java... HELP!!!
Esercizio 01
Si costruisca una classe Vettore con un main.
La classe deve mantenere un array di int
------------
Definire poi
1) un metodo che prende come parametro l'array e restituisce true se l'array di interi contiene tutti pari. false altrimenti.
2) un metodo che prende come parametro l'array e restituisce la somma degli elementi
3) un metodo che restituisce l'elemento massimo dell'array
4) un metodo che prende come parametro l'array ed un intero e controlla che tutti gli elementi siano minori del secondo parametro
5) un metodo void che incrementa di uno tutti gli elementi dell'array
6) un metodo che restituisce int[] che crea un nuovo array con tutti gli elementi dell'array incrementati di uno.
Nel main stampo l'array restituito in output e quello in input.
7) un metodo che restituisce un nuovo array che è la somma elemento per elemento di due array passati come parametri.
------------
Nel main si chieda all'utente quanto deve essere lungo l'array e si crei l'array di interi ricevendo un elemento alla volta. Si riempia l'array chiedendo all'utente i valori di tipo opportuno..
Esercizio 02
Si definisca una classe PuntoSuPiano che rappresenta un punto sul piano (chiaramente avrà due coordinate x e y).
Si definisca un metodo di classe che presi due oggetti PuntoSuPiano restituisce l'oggetto più vicino all'origine 0,0.
-------------
Si definisca una classe Vettore che rappresenta un vettore sul piano (chiaramente avrà due PuntoSuPiano come estremi).
Si definiscano per tale classe:
1) un metodo di classe che restituisce la somma di due oggetti Vettore passati come argomento;
2) un metodo di istanza che restituisce la somma della presente istanza con un oggetto Vettore passato come argomento;
3) un metodo di istanza che prende un intero come argomento e restituisce il vettore prodotto dello scalare per il vettore.
Si costruisca una classe Vettore con un main.
La classe deve mantenere un array di int
------------
Definire poi
1) un metodo che prende come parametro l'array e restituisce true se l'array di interi contiene tutti pari. false altrimenti.
2) un metodo che prende come parametro l'array e restituisce la somma degli elementi
3) un metodo che restituisce l'elemento massimo dell'array
4) un metodo che prende come parametro l'array ed un intero e controlla che tutti gli elementi siano minori del secondo parametro
5) un metodo void che incrementa di uno tutti gli elementi dell'array
6) un metodo che restituisce int[] che crea un nuovo array con tutti gli elementi dell'array incrementati di uno.
Nel main stampo l'array restituito in output e quello in input.
7) un metodo che restituisce un nuovo array che è la somma elemento per elemento di due array passati come parametri.
------------
Nel main si chieda all'utente quanto deve essere lungo l'array e si crei l'array di interi ricevendo un elemento alla volta. Si riempia l'array chiedendo all'utente i valori di tipo opportuno..
Esercizio 02
Si definisca una classe PuntoSuPiano che rappresenta un punto sul piano (chiaramente avrà due coordinate x e y).
Si definisca un metodo di classe che presi due oggetti PuntoSuPiano restituisce l'oggetto più vicino all'origine 0,0.
-------------
Si definisca una classe Vettore che rappresenta un vettore sul piano (chiaramente avrà due PuntoSuPiano come estremi).
Si definiscano per tale classe:
1) un metodo di classe che restituisce la somma di due oggetti Vettore passati come argomento;
2) un metodo di istanza che restituisce la somma della presente istanza con un oggetto Vettore passato come argomento;
3) un metodo di istanza che prende un intero come argomento e restituisce il vettore prodotto dello scalare per il vettore.
Risposte
Ti faccio sempre la stessa domanda: Dove trovi difficoltà? Hai scritto qualcosa?
Cerca di postare, quando c'è, una tua possibile soluzione...così puoi anche aiutare chi ti risponde nel spiegarti i tuoi eventuali errori e le tecniche da utilizzare.
Saluti, Ermanno.
Cerca di postare, quando c'è, una tua possibile soluzione...così puoi anche aiutare chi ti risponde nel spiegarti i tuoi eventuali errori e le tecniche da utilizzare.
Saluti, Ermanno.
Questa volta non ho so neanche da dove iniziare...

Ti faccio vedere un esempio di risoluzione del primo esercizio:
Salvo errori...
Questo qui l'ho risolto io, per farti vedere un possibile template su cui basarti. Spero di esserti stato d'aiuto!
A presto, Ermanno.
import java.io.*; public class Vettore { // metodo (1) public static boolean containsEvenNumber(int A[]) { for(int i = 0 ; i < A.length ; i++) if (A[i]%2 != 0) // se la divisione fra A[i] e 2 da resto diverso da zero return false; // A[i] è dispari e quindi il metodo ritorna false return true; // altrimenti ritorna true perchè tutti gli elementi sono pari } // metodo (2) public static int sumElements(int A[]) { int sum = 0; for(int i = 0 ; i < A.length ; i++) sum+=A[i]; return sum; } // metodo (3) public static int maxElement(int A[]) { int max = A[0]; // assumo che il massimo sia il primo elemento for(int i = 1 ; i < A.length ; i++) // per ogni elemento if(max < A[i]) //verifico se è maggiore del massimo (parziale) max = A[i]; // se sì assegno al massimo parziale l'elemento return max; } // metodo (4) public static boolean isTheBiggest(int A[], int k) { for(int i = 0 ; i < A.length ; i++) if (A[i] >= k) // se l'elemento è maggiore o uguale di k return false; // ritorno false return true; } // metodo (5) public static void incElements(int A[]) { for(int i = 0 ; i < A.length ; i++) A[i]++; } // metodo (6) public static int[] arrayIncremented(int A[]) { int[] ai = new int[A.length]; // devo copiare tutti gli elementi di un array in un altro // l'istruzione int[] ai = A non è utilizzabile in quanto copia soltanto il riferimento // e dopo questa istruzione i due array faranno riferimento entrambi ad A!!! // quindi utilizzo il metodo arraycopy della classe System // ovviamente questo metodo si può "rimpiazzare" con un ciclo for System.arraycopy(A, 0, ai, 0, A.length); incElements(ai); return ai; } // metodo (7) public static int[] sumByElements(int A[], int B[]) { int k; // determino la dimensione dell'array Sum if(A.length<=B.length) k=A.length; else k=B.length; // gli elementi di A o di B che si trovano in una posizione p>k non verranno considerati int[] Sum = new int[k]; for(int j = 0; j < k ; j++) Sum[j]=A[j]+B[j]; return Sum; } // metodo per il caricamento di un array public static int[] loadArray() throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Quanti elementi vuoi caricare? "); int dim = Integer.parseInt(br.readLine()); System.out.println("Ok, inserisci "+dim+" numeri interi..."); int[] v = new int[dim]; // caricamento array for(int i = 0 ; i < dim ; i++) { System.out.print((i+1)+"° elemento: "); v[i]=Integer.parseInt(br.readLine()); } return v; } // metodo main public static void main(String[] args) throws IOException { int[] v = loadArray(); int scelta; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); do { System.out.println("\n Metodi disponibili: "); System.out.println("(1) Verifica se l'array contiene o meno tutti numeri pari"); System.out.println("(2) Somma degli elementi dell'array"); System.out.println("(3) Elemento massimo dell'array"); System.out.println("(4) Verifica se utti elementi dell'array sono minori di un intero k"); System.out.println("(5) Incremento unitario degli elementi dell'array"); System.out.println("(6) Creazione di un nuovo array con gli elementi dell'array incrementati di 1"); System.out.println("(7) Somma elemento per elemento di due array"); System.out.print("Scelta: "); scelta = Integer.parseInt(br.readLine()); System.out.println(); switch(scelta) { case 0:System.out.println("Elaborazione terminata!"); break; case 1:if(containsEvenNumber(v)) System.out.println("L'array contiene tutti numeri pari"); else System.out.println("L'array non contiene tutti numeri pari"); break; case 2:System.out.println("La somma degli elementi dell'array è "+sumElements(v)); break; case 3:System.out.println("L'elemento massimo dell'array è "+maxElement(v)); break; case 4:System.out.println("Inserisci un numero intero k"); int k = Integer.parseInt(br.readLine()); if(isTheBiggest(v,k)) System.out.println("L'array contiene tutti numeri minori di "+k); else System.out.println("L'array non contiene tutti numeri minori di "+k); break; case 5:incElements(v); break; case 6:System.out.println("L'array dato in input è: "); for(int i = 0; i < v.length ; i++) System.out.println("v["+i+"] = "+v[i]); int[] newArray = arrayIncremented(v); System.out.println("L'array modificato è: "); for(int i = 0; i < v.length ; i++) System.out.println("newArray["+i+"] = "+newArray[i]); break; case 7:System.out.println("Caricamento Array A"); int[] A = loadArray(); System.out.println("Caricamento Array B"); int[] B = loadArray(); int[] S = sumByElements(A, B); System.out.println("L'array somma elemento per elemento degli array A e B è"); for(int i = 0; i < S.length ; i++) System.out.println("ArraySomma["+i+"] = "+S[i]); break; default:System.out.println("Scelta errata!"); break; } }while(scelta!=0); } }
Salvo errori...
Questo qui l'ho risolto io, per farti vedere un possibile template su cui basarti. Spero di esserti stato d'aiuto!
A presto, Ermanno.
Grazie... domani lo studio attentamente e poi ti faccio sapere se ho domande...
Per il secondo hai qualche idea da darmi???
Per il secondo hai qualche idea da darmi???
"maalla":
Per il secondo hai qualche idea da darmi???
Puoi crearti un metodo distance che determina la distanza fra due punti, e utilizzarlo nel metodo che restituisce il punto più vicino all'origine.
Saluti, Ermanno.
Psso mandarti una mail al tuo indirizzo MSN per porti una domanda di java in "privato"?