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
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

Nilio88
Utente giovane


Regione: Puglia
Prov.: Bari
Città: Bisceglie


Inserito il - 10/10/2009 : 12:10:01  Mostra Profilo  Visita l'Homepage di Nilio88 Invia a Nilio88 un Messaggio Privato  Rispondi Quotando
Dove posso trovare l'esercitazione di laboratorio del 9 Ottobre di ASD? Sul sito di Malerba non c'è...

dunerpenpo
Moderatore ITPS

Linkin_park


Regione: Puglia
Prov.: Bari
Città: Gioia del Colle


Inserito il - 10/10/2009 : 12:59:17  Mostra Profilo  Visita l'Homepage di dunerpenpo  Clicca per vedere l'indirizzo MSN di dunerpenpo Invia a dunerpenpo un Messaggio Privato  Rispondi Quotando
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.
Torna all'inizio della Pagina

salsx
Utente giovane


Regione: Puglia
Prov.: Brindisi
Città: Fasano


Inserito il - 10/10/2009 : 13:31:52  Mostra Profilo  Visita l'Homepage di salsx  Clicca per vedere l'indirizzo MSN di salsx Invia a salsx un Messaggio Privato  Rispondi Quotando
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

S@lsx
Torna all'inizio della Pagina

dunerpenpo
Moderatore ITPS

Linkin_park


Regione: Puglia
Prov.: Bari
Città: Gioia del Colle


Inserito il - 10/10/2009 : 14:47:19  Mostra Profilo  Visita l'Homepage di dunerpenpo  Clicca per vedere l'indirizzo MSN di dunerpenpo Invia a dunerpenpo un Messaggio Privato  Rispondi Quotando
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.
Torna all'inizio della Pagina

piter85
Nuovo Utente



Inserito il - 11/10/2009 : 13:29:05  Mostra Profilo  Visita l'Homepage di piter85 Invia a piter85 un Messaggio Privato  Rispondi Quotando
Ciao ragazzi c'è qualcuno che può postare gentilmente la soluzione della prima esercitazione in laboratorio? Grazie
Torna all'inizio della Pagina

Nalim
Utente medio

Diavolo rossonero


Regione: Puglia
Prov.: Bari
Città: Bari


Inserito il - 12/10/2009 : 13:18:25  Mostra Profilo  Visita l'Homepage di Nalim  Clicca per vedere l'indirizzo MSN di Nalim Invia a Nalim un Messaggio Privato  Rispondi Quotando
mi unisco a piter85 riguardo la soluzione dell'esercitazione

Nalim
Torna all'inizio della Pagina

pier_IP
Utente giovane


Regione: Puglia
Prov.: Bari
Città: Triggiano


Inserito il - 12/10/2009 : 21:15:20  Mostra Profilo  Visita l'Homepage di pier_IP Invia a pier_IP un Messaggio Privato  Rispondi Quotando
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
Torna all'inizio della Pagina

pier_IP
Utente giovane


Regione: Puglia
Prov.: Bari
Città: Triggiano


Inserito il - 15/10/2009 : 15:10:24  Mostra Profilo  Visita l'Homepage di pier_IP Invia a pier_IP un Messaggio Privato  Rispondi Quotando
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
Torna all'inizio della Pagina

BaSh
Utente giovane



Inserito il - 19/10/2009 : 15:41:28  Mostra Profilo  Visita l'Homepage di BaSh Invia a BaSh un Messaggio Privato  Rispondi Quotando
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);
		}
	}
Torna all'inizio della Pagina

pier_IP
Utente giovane


Regione: Puglia
Prov.: Bari
Città: Triggiano


Inserito il - 20/10/2009 : 14:32:06  Mostra Profilo  Visita l'Homepage di pier_IP Invia a pier_IP un Messaggio Privato  Rispondi Quotando
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
Torna all'inizio della Pagina

BaSh
Utente giovane



Inserito il - 20/10/2009 : 17:33:08  Mostra Profilo  Visita l'Homepage di BaSh Invia a BaSh un Messaggio Privato  Rispondi Quotando
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
Torna all'inizio della Pagina

Nalim
Utente medio

Diavolo rossonero


Regione: Puglia
Prov.: Bari
Città: Bari


Inserito il - 31/10/2009 : 00:24:23  Mostra Profilo  Visita l'Homepage di Nalim  Clicca per vedere l'indirizzo MSN di Nalim Invia a Nalim un Messaggio Privato  Rispondi Quotando
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
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,25 secondi.

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