| Autore |
Discussione  |
|
|
Nilio88
Utente giovane

Regione: Puglia
Prov.: Bari
Città: Bisceglie
|
Inserito il - 10/10/2009 : 12:10:01
|
|
Dove posso trovare l'esercitazione di laboratorio del 9 Ottobre di ASD? Sul sito di Malerba non c'è...
|
 |
|
|
dunerpenpo
Moderatore ITPS
 

Regione: Puglia
Prov.: Bari
Città: Gioia del Colle
|
Inserito il - 10/10/2009 : 12:59:17
|
| Devi aspettare che le pubblica, oppure te la fai dare da qualcuno che c'era il 9 e che con una penna USB se l'è salvata. |
PER ESSERE SEMPRE AGGIORNATI Sottoscriviti alla discussione ITPS/Generale/INFORMAZIONI Oppure Iscriviti al gruppo su Facebook Informatica T.P.S. Bari
Se nessuno risponde ai vostri interventi per più di 5 giorni, contattatemi via email (I PM potrei non leggerli in tempo) e proveremo a trovare una risposta alla vostra domanda.
|
 |
|
|
salsx
Utente giovane

Regione: Puglia
Prov.: Brindisi
Città: Fasano
|
|
|
dunerpenpo
Moderatore ITPS
 

Regione: Puglia
Prov.: Bari
Città: Gioia del Colle
|
Inserito il - 10/10/2009 : 14:47:19
|
Citazione: Messaggio inserito da salsx
ecco il link dell'assistente che spiega in Laboratorio. http://www.di.uniba.it/~appice/courses/0910/asd/index.htm li trovi l'esercizio. Ciao
ok pardon, l'anno scorso non c'era il sito dell'assistente... |
PER ESSERE SEMPRE AGGIORNATI Sottoscriviti alla discussione ITPS/Generale/INFORMAZIONI Oppure Iscriviti al gruppo su Facebook Informatica T.P.S. Bari
Se nessuno risponde ai vostri interventi per più di 5 giorni, contattatemi via email (I PM potrei non leggerli in tempo) e proveremo a trovare una risposta alla vostra domanda.
|
 |
|
|
piter85
Nuovo Utente
|
Inserito il - 11/10/2009 : 13:29:05
|
| Ciao ragazzi c'è qualcuno che può postare gentilmente la soluzione della prima esercitazione in laboratorio? Grazie |
 |
|
|
Nalim
Utente medio
 

Regione: Puglia
Prov.: Bari
Città: Bari
|
Inserito il - 12/10/2009 : 13:18:25
|
| mi unisco a piter85 riguardo la soluzione dell'esercitazione |
Nalim |
 |
|
|
pier_IP
Utente giovane

Regione: Puglia
Prov.: Bari
Città: Triggiano
|
Inserito il - 12/10/2009 : 21:15:20
|
Eccoti il copia incolla direttamente da Eclipse
public class asd_OrdinaArray {
/*
* Algoritmo bubblesort per l'ordinamento di un array di interi A
* usando come relazione d'ordine totale "<="
* @param A
*/
static int bubblesort(int A[]){
int numeroConfronti=0;
boolean ordinato = false;
while (!ordinato) {
ordinato = true;
for (int j=0; j<A.length-1; j++) {
numeroConfronti++;
if (A[j]>A[j+1]) {
int dep = A[j];
A[j] = A[j+1];
A[j+1] = dep;
ordinato = false;
}
}
}
return numeroConfronti;
}
/*
* Inizializza l'array di interi A con numeri interi generati in maniera casuale
* con valore tra 1 e A.length
* @param A
*/
static void inizializzaArrayCasuale(int A[]){
Random numCasuali = new Random();
for(int i=0; i<A.length; i++) {
A[i] = numCasuali.nextInt(A.length);
}
}
/*
* Inizializza l'array di interi A con i numeri interi 1, 2, 3,..., A.length
* @param A
*/
static void inizializzaArrayCrescente(int A[]){
for(int i=0; i<A.length; i++) {
A[i] = i+1;
}
}
/*
* Inizializza l'array di interi A con numeri interi A.length, A.length-1,...,2, 1
* @param A
*/
static void inizializzaArrayDecrescente(int A[]){
for(int i=0; i<A.length; i++) {
A[i] = A.length-i;
}
}
/*
* Stampa gli elementi contenuti nell'array A
* @param A
*/
static void stampaArray(int A[]){
for(int i=0; i<A.length; i++) {
System.out.print(A[i]+" ");
}
}
/**
* @param args
*/
public static void main(String[] args) {
int maxDim, step;
maxDim=new Integer(args[0]).intValue();
step=new Integer(args[1]).intValue();
int iniziale = 0, finale = maxDim/step-1, i=0;
int[] contCasuali = new int[maxDim/step];
int[] contCrescente = new int[maxDim/step];
int[] contDecrescente = new int[maxDim/step];
int[] dimensioni = new int[maxDim/step];
int k = 0;
for(int j=step; j<=maxDim; j+=step) {
int A[]=new int[j];
dimensioni[k] = j;
System.out.println("Array di dimensione " + j);
System.out.println("***************************************************");
System.out.println("Uso del generatore di numeri casuali");
inizializzaArrayCasuale(A);
stampaArray(A);
contCasuali[k]=bubblesort(A);
System.out.print(": " + contCasuali[k] + " confronti per ottenere\n");
stampaArray(A);
System.out.println("");
inizializzaArrayCrescente(A);
stampaArray(A);
contCrescente[k]=bubblesort(A);
System.out.print(": " + contCrescente[k] + " confronti per ottenere\n");
stampaArray(A);
System.out.println("");
inizializzaArrayDecrescente(A);
stampaArray(A);
contDecrescente[k]=bubblesort(A);
System.out.print(": " + contDecrescente[k] + " confronti per ottenere\n");
stampaArray(A);
System.out.println();
k++;
}
try {
int j = 0;
FileOutputStream file = new FileOutputStream(
"statistica.csv");
PrintStream output = new PrintStream(file);
output.println("DimArray;NroConfrontiCasuali;NroConfrontiCrescenti;NroConfrontiDecrescenti");
while(iniziale<=finale) {
output.println(dimensioni[j]+";"+contCasuali[j]+";"+contCrescente[j]+";"+
contDecrescente[j]);
i++;
iniziale++;
j++;
}
output.close();
}catch(IOException e) {
System.out.println("Errore: "+e); //specifica l'errore
System.exit(1); //esce con codice di errore pari a 1
}
}
}
Spero che sia giusto  |
Aiuto Ubuntu per neofiti http://piersprogramming.blogspot.com |
Modificato da - pier_IP in data 12/10/2009 21:16:34 |
 |
|
|
pier_IP
Utente giovane

Regione: Puglia
Prov.: Bari
Città: Triggiano
|
Inserito il - 15/10/2009 : 15:10:24
|
Dimenticavo:
maxDim=new Integer(args[0]).intValue(); step=new Integer(args[1]).intValue();
Da queste due righe è evidente che è necessario mandare in run il programma con 2 argomenti. Da Eclipse: Run->Run Configurations...->scheda Arguments->Program Arguments Inserite gli interi (tra virgolette "" separati da spazi) che andranno nelle variabili maxDim e step. Altrimenti lancia l'exception ArrayIndexOutOfBoundsException |
Aiuto Ubuntu per neofiti http://piersprogramming.blogspot.com |
 |
|
|
BaSh
Utente giovane

|
Inserito il - 19/10/2009 : 15:41:28
|
Pier_IP sinceramente non mi piace il sistema che hai utilizzato per memorizzare i risultati nel file .cvs. Questo è il mio main:
public static void main(String[] args) {
// TODO Auto-generated method stub
int i, maxDim, step;
int contatore,contatoreC,contatoreD;
maxDim=new Integer(args[0]).intValue();
step=new Integer(args[1]).intValue();
try {
FileOutputStream file = new FileOutputStream("statistica.csv");
PrintStream Output = new PrintStream(file);
Output.println("dimArray,nroConfrontiCasuale,nroConfrontiCrescente,nroConfrontiDecrescente");
for(i=step; i<=maxDim; i+=step) {
int A[]=new int[i];
System.out.println("Array di dimensione " + i);
System.out.println("***************************************************");
System.out.println("Uso del generatore di numeri casuali");
inizializzaArrayCasuale(A);
stampaArray(A);
// contatore=bubblesort(A);
// contatore=selectionsort(A);
// contatore=insertionsort(A);
contatore=quicksort(A, 0, A.length-1);
System.out.print(": " + contatore + " confronti per ottenere ");
stampaArray(A);
System.out.println("");
inizializzaArrayCrescente(A);
stampaArray(A);
// contatoreC=bubblesort(A);
// contatoreC=selectionsort(A);
// contatoreC=insertionsort(A);
contatoreC=quicksort(A, 0, A.length-1);
System.out.print(": " + contatoreC + " confronti per ottenere ");
stampaArray(A);
System.out.println("");
inizializzaArrayDecrescente(A);
stampaArray(A);
// contatoreD=bubblesort(A);
// contatoreD=selectionsort(A);
// contatoreD=insertionsort(A);
contatoreD=quicksort(A, 0, A.length-1);
System.out.print(": " + contatoreD + " confronti per ottenere ");
stampaArray(A);
System.out.println("");
Output.println(A.length+","+contatore+","+contatoreC+","+contatoreD);
}
Output.close();
System.out.println("Il risultato è stato memorizzato in statistica.csv");
} catch (IOException e) {
System.out.println("Errore: "+ e);
System.exit(1);
}
}
|
 |
|
|
pier_IP
Utente giovane

Regione: Puglia
Prov.: Bari
Città: Triggiano
|
Inserito il - 20/10/2009 : 14:32:06
|
Citazione: Messaggio inserito da BaSh
Pier_IP sinceramente non mi piace il sistema che hai utilizzato per memorizzare i risultati nel file .cvs
BaSh il sistema per la scrittura in un file è quello che ha fatto vedere la prof in laboratorio, guarda le slide... http://www.di.uniba.it/~appice/courses/0910/asd/asd1.pdf E' ovvio che esistono 100 mila modi per risolverlo... |
Aiuto Ubuntu per neofiti http://piersprogramming.blogspot.com |
Modificato da - pier_IP in data 20/10/2009 14:38:46 |
 |
|
|
BaSh
Utente giovane

|
Inserito il - 20/10/2009 : 17:33:08
|
Citazione: Messaggio inserito da pier_IP BaSh il sistema per la scrittura in un file è quello che ha fatto vedere la prof in laboratorio, guarda le slide... http://www.di.uniba.it/~appice/courses/0910/asd/asd1.pdf E' ovvio che esistono 100 mila modi per risolverlo...
...e infatti la critica era al tuo codice |
 |
|
|
Nalim
Utente medio
 

Regione: Puglia
Prov.: Bari
Città: Bari
|
Inserito il - 31/10/2009 : 00:24:23
|
raga ho qualche problema con lo shell sort, riesco ad ordinare l'array ma il mio problema è il contatore di numero confronti che quando esce dal metodo OrdinaSingolaCatena perde il valore di numero confronti. Qualcuno potrebbe darmi una mano?
static int shellsort(int A[]) { int inc = A.length/2; int numeroconfronti=0; while (inc>= 1) { for (int i = 0; i < inc; i++) { OrdinaSingolaCatena(A, i, inc, numeroconfronti); } inc = inc/2; } return numeroconfronti; } static void OrdinaSingolaCatena(int A[],int i, int inc, int numeroconfronti) { int k= i+inc; while (k<A.length) { boolean inserito= false; int x = A[k]; int corrente= k; int precedente= corrente-inc; while (precedente>=i && !inserito) { numeroconfronti++; if (x<A [precedente]) { A[corrente]= A[precedente]; corrente = precedente; precedente= precedente-inc; } else inserito=true; } A[corrente]=x; k=k+inc; } }
Avrei anche un problema nel main ma ve lo posto dopo aver risolto questo primo problema |
Nalim |
Modificato da - Nalim in data 31/10/2009 00:27:14 |
 |
|
| |
Discussione  |
|