Pages: [1]   Go Down
Print
Author Topic: Problema con la prova numero 1  (Read 1027 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« on: 21-03-2009, 15:51:11 »

Sto provando a fare l'esercizio della prova in itinere del prof, il numero 1 però non capisco come mettere i cicli for perchè è tutto sballato.....Mi potete guidare su come svolgerlo??


Code:
/**Scrivere un metodo che prenda come parametri formali un array di interi A e restituisca in output un
array di interi B in cui la posizione i-esima contiene l’indice della prima occorrenza di A[i] nel
sottovettore A[ i+1, …, A.length –1 ], oppure –1 se questa non esiste. Si veda l’esempio:
es.: A = [ 3, 2, 4, 3, 4, 3], B = [ 3, –1, 4, 5, –1, –1 ].**/

class Ex01
{
public static void main(String[]args)
{
int []A={3,2,4,3,4,3};
prendiarray(A);
int [] B=prendiarray(A);
for (int i=0; i<B.length; i++)
System.out.print(B[i]+" ");
}





    public static int[] prendiarray(int[] A)
{
A=new int[6];
int []B=new int[A.length];

int r,R,R1;

for (r=0; r<(A.length-2); r++)
{
for(R=1; R<A.length; R++)
{
for(R1=0; R1<B.length; R1++)
{
B[R1]=-1;
if (A[r]==A[R])
{
B[R1]=R;
break;
}
}

}

}


return B;
}
}
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
zElOtO
Forumista
***
Offline Offline

Gender: Male
Posts: 845



WWW
« Reply #1 on: 21-03-2009, 16:23:07 »

Code:
public class Esercizio1 {
public static int[] Metodo(int[] A) {
int[] B = new int[A.length];
for (int a = 0; a < A.length; a++) { B[a] = -1; }
for (int a = 0; a < A.length; a++) {
for (int b = (a + 1); b < A.length; b++) {
if (A[a] == A[b]) {
B[a] = b;
b = A.length;
}
}
}
return B;
}
public static void main (String args[]) {
int[] A = {3,2,4,3,4,3};
int[] C = Metodo(A);
for (int i = 0; i < C.length; i++) {
System.out.print(C[i] + " ");
}
}
}

 pc
Logged

I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. Insieme sono una potenza che supera l'immaginazione. (A. Einstein)

Damiano Cancemi
www.damianocancemi.com
www.nerdbren.com
www.nerdbren.com/blog
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #2 on: 21-03-2009, 16:30:55 »

Zeloto ma come mai nel codice bisogna mettere b=A.length??

Grazie.
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
zElOtO
Forumista
***
Offline Offline

Gender: Male
Posts: 845



WWW
« Reply #3 on: 21-03-2009, 16:56:23 »

Con quello sposta il puntatore b alla fine dell'array
Logged

I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. Insieme sono una potenza che supera l'immaginazione. (A. Einstein)

Damiano Cancemi
www.damianocancemi.com
www.nerdbren.com
www.nerdbren.com/blog
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #4 on: 21-03-2009, 17:13:34 »

Vediamo se ho capito, prima fai l'assegnamento, poi siccome a noi interessa che l'array B si riempia con l'indice del primo elemnto trovato, per non  fare andare avanti la scansione che porterebbe a risultati errati, la b la mettiamo alla fine dell'array così al successivo incremento la condizione è falsa e si passa a considerare gli altri elementi.


Nel frattempo vorrei approfittare per chiedere una cosa che non c'entra ,se io ho un array di float, gli elementi al suo interno come vanno scritti?

per esempio float [] A={3.4F, 5.6F, 8.8F)
oppure si deve scrivere solo {3.4, 5.6, 8.8}??

Grazie ragazzi, grazie Zeloto grazie a tutti!!!
« Last Edit: 21-03-2009, 17:18:52 by guitarplaying » Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
zElOtO
Forumista
***
Offline Offline

Gender: Male
Posts: 845



WWW
« Reply #5 on: 21-03-2009, 17:50:51 »

Esatto! Cmq così:
Code:
float [] A={3.4F, 5.6F, 8.8F}
Logged

I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. Insieme sono una potenza che supera l'immaginazione. (A. Einstein)

Damiano Cancemi
www.damianocancemi.com
www.nerdbren.com
www.nerdbren.com/blog
Pages: [1]   Go Up
Print
Jump to: