Forum Informatica Unict

LAUREA TRIENNALE (D.M. 270/04) => Programmazione 1, 9 CFU => Topic started by: Daréios89 on 21-03-2009, 15:51:11



Title: Problema con la prova numero 1
Post by: Daréios89 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;
}
}


Title: Re:Problema con la prova numero 1
Post by: zElOtO 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] + " ");
}
}
}

 :[Emoticon] PC Asd:


Title: Re:Problema con la prova numero 1
Post by: Daréios89 on 21-03-2009, 16:30:55
Zeloto ma come mai nel codice bisogna mettere b=A.length??

Grazie.


Title: Re:Problema con la prova numero 1
Post by: zElOtO on 21-03-2009, 16:56:23
Con quello sposta il puntatore b alla fine dell'array


Title: Re:Problema con la prova numero 1
Post by: Daréios89 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!!!


Title: Re:Problema con la prova numero 1
Post by: zElOtO on 21-03-2009, 17:50:51
Esatto! Cmq così:
Code:
float [] A={3.4F, 5.6F, 8.8F}