Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 ITPS - Secondo Anno
 Algoritmi e Strutture Dati + Lab.
 Esercitazione di Laboratorio del 9/10

Nota: Devi essere registrato per poter inserire un messaggio.
Per registrarti, clicca qui. La Registrazione è semplice e gratuita!

Larghezza finestra:
Nome Utente:
Password:
Modo:
Formato: GrassettoCorsivoSottolineatoBarrato Aggiungi Spoiler Allinea a  SinistraCentraAllinea a Destra Riga Orizzontale Inserisci linkInserisci EmailInserisci FlashInserisci Immagine Inserisci CodiceInserisci CitazioneInserisci Lista Inserisci Faccine
   
Icona Messaggio:              
             
Messaggio:

  * Il codice HTML è OFF
* Il Codice Forum è ON

Smilies
Approvazione [^] Arrabbiato [:(!] Bacio [:X] Bevuta [:273]
Caldo [8D] Compiaciuto [8)]    
compleanno [:269]
Davvero Felice [:D] Diavoletto [}:)] Disapprovazione [V] Domanda [?]
Felice [:)] Fumata [:29] Goloso [:P] Imbarazzato [:I]
Infelice [:(] Morte improvvisa da [:62]
Morto [xx(] Occhio Nero [B)] Occhiolino [;)] Palla 8 [8]
pc [:205]    
Riproduzione [:76]
Scioccato [:O]      

   Allega file
  Clicca qui per inserire la tua firma nel messaggio.
Clicca qui per sottoscrivere questa Discussione.
    

V I S U A L I Z Z A    D I S C U S S I O N E
Nilio88 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'è...
11   U L T I M E    R I S P O S T E    (in alto le più recenti)
Nalim 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
BaSh 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
pier_IP 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...
BaSh 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 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
pier_IP 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
Nalim Inserito il - 12/10/2009 : 13:18:25
mi unisco a piter85 riguardo la soluzione dell'esercitazione
piter85 Inserito il - 11/10/2009 : 13:29:05
Ciao ragazzi c'è qualcuno che può postare gentilmente la soluzione della prima esercitazione in laboratorio? Grazie
dunerpenpo 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...
salsx Inserito il - 10/10/2009 : 13:31:52
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
dunerpenpo 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.

Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,08 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000