Prozac

Utenti
  • Numero contenuti

    2,152
  • Iscritto

  • Ultima visita

Tutti i contenuti di Prozac

  1. Adesso il metodo ordina sta prendendo la forma corretta Un solo accorgimento: Quando si richiamano dei metodi, a differenza di quando si dichiarano, si deve passare solo la variabile che viene richiesta come parametro e non serve passare tutta la definizione della variabile stessa public static void ordina(int[] a, int algoritmo) { switch(algoritmo) { case Esercizio.BUBBLE_SORT: bubbleSort(a); break; case Esercizio.QUICK_SORT: quickSort(a); break; case Esercizio.INSERCTION_SORT:inserctionSort(a); break; default: System.out.println("E' stato scelto un algoritmo non ancora implementato"); } } Per rispondere alla tua seconda domanda basta che controlli come ho modificato la riga dello switch. Allo switch si deve passare una variabile che, in base al suo valore, farà eseguire il caso (case) corretto. Per come abbiamo creato il metodo ordina, abbiamo deciso che il primo parametro sarà l'array da ordinare; ed infatti dentro il corpo dello switch non facciamo altro che passare, al metodo di ordinamento scelto (sia esso bubbleSort, quickSort o insertionSort), lo stesso array che abbiamo avuto in ingresso come primo parametro del metodo ordina. Il secondo parametro, invece, serve per specificare quale algoritmo utilizzare per eseguire l'ordinamento. Ed, infatti, noi utiliziamo quel parametro (algoritmo) proprio per selezionare il caso (case) adatto. Se il programmatore che utilizzerà il nostro metodo passerà un intero non contemplato (diverso da Esercizio.BUBBLE_SORT, Esercizio.QUICK_SORT ed Esercizio.INSERTION_SORT) lo switch se ne accorgerà (si entra nel caso di default) e stamperà sulla console do output un messaggio di informazione. Ok, aspetto i tuoi algoritmi di ordinamento per assemblare il tutto P.S. Cosa usi come ambiente per creare il tuo codice Java?
  2. No All'interno del costrutto switch non puoi inserire un array (nel tuo caso a[]) come selettore. Quel costrutto accetta solo valori discreti (boolean, int, float, char, double). Il costrutto switch, poi, serve solamente per selezionare quale algoritmo utilizzare. Come hai giustamente messo tu, i casi (case) di utilizzo sono 3. Al posto di utilizzare dei valori numerici: case 1: ... case2: ... case3: ... è più leggibile utilizzare delle COSTANTI (che poi sono esattamente quelle che abbiamo creato noi all'inizio. Queste costanti servono solamente per rendere più leggibile il codice: case Esercizio.BUBBLE_SORT: ... case Esercizio.QUICK_SORT: ... case Esercizio.INSERTION_SORT: ... Al posto dei puntini puoi fare due cose: o richiamare il metodo che esegue l'algoritmo relativo (che potrai chiamare bobbleSort(int[] a), quickSort(int[] a) e insertionSort(int[] a) ) oppure scrivere direttamente le tre implementazioni dei tre algoritmi...
  3. Io comunque, appena ho un po' di tempo, provo a cercare le API (o la parte di framework.NET) che permettono di lavorare con ADFS, in modo da risolvere il problema anche attraverso un'applicazione
  4. Certo, sto parlando di java pure io Allora, il compito che ti viene chiesto è il seguente: Scrivere un metodo statico (quei metodi che non sono legati ad instanze di oggetti ma che possono essere richiamati senza creare un nuovo oggetto ma direttamente facendo riferimento alla classe). Ad esempio se io scrivessi: public class Esempio { public static void metodoStatico() { System.out.println("Questo metodo non è legato ad alcun oggetto"); } public static void main(String[] args) { Esempio.metodoStatico(); } } Verrebbe stampato in console la frase "Questo metodo non è legato ad alcun oggetto". Come vedi, nel metodo main non è stato creato nessun oggetto. Le costanti sono quelle particolari variabili il cui valore viene definito in fase di dichiarazione e non può mai essere modificato. Per crearle si usa il modificatore final. Per renderle indipendenti dagli oggetti (e quindi utilizzabili come "flag" da passare al metodo per ordinare i vettori) si usa il modificatore static: public class Esercizio { public static final int BUBBLE_SORT = 1; public static final int QUICK_SORT = 2; public static final int INSERTION_SORT = 3; public static void main(String[] args) { } } Come si vede dal codice, abbiamo creato 3 costanti. Le abbiamo create di tipo int perchè il metodo per l'ordinamento, oltre che accettare in ingresso l'array da ordinare, accetta come parametro anche un intero che serve per dire al metodo quale dei tre algoritmi utilizzare. Attraverso queste tre costanti, il programmatore, che in futuro utilizzerà il nostro metodo di ordinamento, potrà decidere quale algoritmo utilizzare passando come parametri l'array da ordinare ed una di queste costanti in modo tale che ad una futura rilettura, il codice sia subito comprensibile: ... ordina(vett, Esercizio.BUBBLE_SORT); ordina(vett1, Esercizio.INSERTION_SORT); ordina(vett2, 3); ... Come si può vedere da questo stralcio di codice è più immediata la lettura delle prime due righe di codice piuttosto che la terza. Nell'esempio, la seconda riga e la terza si comporteranno allo stesso modo, ordinando i rispettivi array attraverso l'insertion sort. Solo che il secondo metodo si capisce subito quale algoritmo utilizza, mentre per il terzo bisogna andare a spulciare l'implementazione del metodo stesso per cercare di capire cosa il programmatore ha deciso che succeda quando si passa come secondo parametro un intero di valore 3. Visto che le nostre tre costanti sono degli interi è possibile utilizzarle all'interno di un costrutto switch in modo da scegliere quale tipo di algoritmo utilizzare in base al valore del parametro algoritmo del metodo ordina. public class Esercizio { public static final int BUBBLE_SORT = 1; public static final int QUICK_SORT = 2; public static final int INSERTION_SORT = 3; public static void ordina(int[] a, int algoritmo) { //TODO: Implementare il metodo } public static void main(String[] args) { int[] vettore = { 5, 8, 2, 1, 0, 9, 6, 5, 7, 3, 8, 8, 8 }; Esercizio.ordina(vettore, Esercizio.INSERTION_SORT); } } Bene. Ora tocca a te... Devi sostituire il mio commento "//TODO" con il codice del metodo ordina In pratica dovrai applicare il costrutto switch per scegliere quale algoritmo utilizzare. Implementare i tre algorimti. Puoi decidere se metterli direttamente all'interno del metodo ordina, oppure se creare (MEGLIO) tre metodi separati da richiamare all'interno del metodo ordina. Buon lavoro!!!
  5. Ehm... Cado dalle nuvole Non ho mai scritto programmi che abbiano a che fare con "Active Directory Federation Services" per Windows 2003 Server (anche perché non ho mai utilizzato questo sistema operativo). Penso che la domanda sia più adatta ad un Sistemista Windows 2003 Server
  6. Li conosci i 3 algoritmi? Sai cosa sono i valori costanti? Sai cos'è il costrutto switch? Dai che lo facciamo assieme ;-)
  7. CMS è l'acronimo di Content Management System (Sistema di Gestione dei Contenuti). Tecnicamente i CMS sono delle applicazioni Web scritte nelle più disparate tecnologie dinamiche (PHP, ASP, ASP.NET, Java, ecc...) che permettono sia di amministrare un "portale" di contenuti che di renderlo disponibile al pubblico. La differenza principale con un sito tradizionale è che il sito tradizionale deve essere scritto da zero mentre un CMS è già stato scritto da altri. In pratica, quando si installa un CMS, viene installato un sito web diviso in due parti: Front-End: Ciò che viene visto dall'utente che naviga il sito (per fare un esempio, questo forum ha come front-end tutto quello che vedi tu) Back-End: Ciò che permette all'aministratore di gestire i contenuti: Inserire articoli, creare sezioni, modificare il layout grafico ecc... Tutto questo, se si dovesse creare da zero (sito tradizionale) porterebbe via un sacco di tempo: Il programmatore dovrebbe scrivere per lo meno il front-end e, se a gestire i contenuti del portale non sarà un programmatore ma un giornalista (o chicchessia non tecnico), dovrebbe scrivere anche il back-end. Joomla è sicuramente un ottimo CMS. Puoi dare un'occhiata anche a Drupal (scritto in PHP come Joomla), o Plone (scritto in Python).
  8. Se ti va, puoi anche postare la tua versione di codice in modo da capire insieme gli errori che fai ;-)
  9. Non puoi Non esiste il concetto di pagina in html... Una pagina html non ha dimensioni standard... Quello che puoi fare è simulare la cosa attraverso javascript o i css (o entrambi). Devi decidere se vuoi che la pagina abbia sempre le stesse dimensioni minime e allora puoi utilizzare solo i css. Se invece vuoi che la pagina si adatti alle dimensioni dello schermo, usi javascript per farti restituire quei valori e i css per impostare la dimensione minima della pagina (dei div che conterranno la pagina).
  10. http://www.ehartwell.com/TechNotes/MediaWikiOnASPnix.htm Qui trovi la soluzione proposta da Eric Hartwell per installare mediawiki su di una macchina Windows. Che ha, quindi, IIS come web server al posto di Apache. Naturalmente la macchina deve avere configurato e funzionante sia PHP che MySQL.
  11. No... mai usato. E, sinceramente, di documentazione in italiano non ne ho trovata... In inglese no?
  12. Di quale software parli? MySQL, PostgreSQL o MediaWiki?
  13. Bene Come hai risolto alla fine?
  14. Odio Calcolo delle Probabilità
  15. Allora, se li decommenti tutti quanti, attivi i moduli sia di mysql che di postgres. Tutto dipende da quale db utilizzi... Se utilizzi solamente mysql basta che decommenti i suoi moduli e non anche quelli di postgres In teoria per MySQL dovrebbe bastare decommentare la prima estensione e basta... Adesso non so come è stato compilato PHP, ma se il collegamento a quei moduli è già previsto basta che decommenti la linea e riavvi il servizio (o il pc se ti viene più facile). Altrimenti devi proprio compilare l'eseguibile... Per questo dovresti trovare della documentazione assieme alla tua distribuzione di PHP...
  16. Sai com'è i computer saranno anche stupidi ma sono velocissimi ad eseguire gli ordini Il loro motto è: "Tu dimmi quello che devo fare, e io... lo faccio"
  17. Bravo MiG ;-) Ieri sera mi ci ero messo pure io... E per chi volesse cimentarsi, qui trovate un piccolo programmino Java che fa brute-force sul problema e trova sia i 6 mesi che la chiave ;-) P.S. Il file contiene il progetto da aprire con NetBeans 5.5.1 Chi non avesse questo IDE può guardare i sorgenti del programma direttamente nella cartella src Per provarlo basta che aprite una shell di sistema (Windows o Linux è indifferente) andate nella cartella dist (cercatela, c'è ) ed eseguite il comando: java -jar Decritter.jar se volete salvare i risultati su di un file di testo eseguite il comando: java -jar Decritter.jar > soluzione.txt Vi troverete il file soluzione.txt (da aprire con un qualsiasi editor di testo) all'interno della cartella dist Decritter.zip
  18. Che a quanto pare ha i moduli per la gestione di un database disattivati
  19. Esatto Io pure arrivo da un IDE che mi aveva letteralmente fatto innamorare (JDeveloper della Oracle). Ma NetBeans (dalla 5.5 in poi) è davvero fantastico... Semplice da utilizzare ma molto potente (e professionale). Unico neo l'impossibilità di "dividerlo" in moduli in modo da spalmarlo per bene su più monitor
  20. volete dirmi il perchè? Perchè la barca galleggia e sale assieme alla marea, quindi nessun gradino verrà mai sommerso dall'acqua
  21. Ah, ok... quindi alla fine è un'altra tabella con relazione 1:N... (se non addirittura N:M quando persone diverse possono avere lo stesso numero di telefono).