Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Fondamenti di architettura e programmazione (http://www.dsy.it/forum/forumdisplay.php?forumid=234)
-- ORALE HAUS: aiuto (http://www.dsy.it/forum/showthread.php?threadid=940)
ORALE HAUS: aiuto
Chi mi risponde a queste due domande?
- Descrivete la gestione della memoria, così come è implementata nella JVM, durante l'esecuzione di un programma Java
- Sviluppate una applicazione Java che legga da tastiera una serie di lunghezza non determinata di parole; ordini in modo crescente tali parole e visualizzi sullo schermo l'elenco ordinato.
Grazie mille...
:-)
il programma ORDINAPAROLE già esiste nell'area files, l'unica differenza è che in questo caso non sono 100 ma X parole da inserire, quindi invece di dichiarare l'array in questo modo:
code:
String[] parole = new String[100];
code:
int quante = Integer.parseInt(JOptionPane.showInputDialog("Quante parole?")); String parole[] = new String[quante];
code:
for (int i = 0; int < parole.length; i++) { // lettura dati da tastiera }
__________________
» Collect some stars to shine for you, and start today ‘cause there are only a few. _ (In Flames)
» Don't stop for nothing, it's full speed or nothing! I'm taking down, you know, whatever is in my way! _ ('tallica)
» I am my own god, I do as I please. _ (Pain)
» Ninetynine, ninetynine knives! Ninetynine knives inside! Nobody gets out alive! _ (The Haunted)
Web: http://www.negativesignal.com - ICQ# 171585477 - Death to software patents! And TCPA too! "e uno!", diceva il boia.
Programmino
Così può funzionare?
import javax.swing.*;
class applicazione {
public static void main(String[] args) {
String vettore[] = creaArray (); //invocazione del metodo per la creazione del vettore
for ( int i=0; i<vettore.length; i++ ) //lettura da tastiera delle parole
vettore[i] = Double.parseDouble(JOptionPane.showInputDialog( null, "Scrivi la "+(i+1)+" parola"));
bubbleSort ( vettore ); //invocazione del metodo per l'ordinamento degli elementi
System.out.println ("Parole ordinate in senso crescente");
for ( int i=0; i<vettore.length ; i++ )
System.out.println ( vettore [i] );
System.exit ( 0 ); // termina il programma
}
//metodo che crea un array di n elementi di tipo double (numeri frazionari a doppia precisione)
public static double[] creaArray( int size ) {
String vettore[];
vettore = new String[size];
for ( int i=0; i<size ; i++ )
vettore[i] = 0; //inizializzazione di tutti gli elementi a zero
return vettore;
}
// ordina gli elementi dell'array utilizzando un algoritmo di ordinamento a bolle
public static void bubbleSort( double b[] ) {
for ( int pass = 1; pass < b.length; pass++ ) // primo ciclo for
for ( int i = 0; i < b.length - 1; i++ ) // secondo ciclo for
if ( ( b[ i ] > b[ i + 1 ] ) ) // confronto
swap( b, i, i + 1 ); // scambio
}
// metodo per lo scambio dei 2 elementi
public static void swap( double c[], int primo, int secondo ) {
double hold; // variabile temporanea per lo swap
hold = c[ primo ];
c[ primo ] = c[ secondo ];
c[ secondo ] = hold;
} }
: :wink:
eh, temo proprio di no!!!!
hai cercato di fondere DoubleSort e OrdinaParole eh????
ok, ti dò la soluzione, ma prima:
DOVUTA PRECISAZIONE: il seguente programma non è opera mia, l'autore originale è WEBNOISE! io l'ho solo modificato per accettare un numero indefinito di parole e non 100 fisse come in origine.
ecco il risultato:
code:
import javax.swing.*; public class Ordinaparole { public static void main(String[] args) { // creiamo il nostro array int quante = Integer.parseInt(JOptionPane.showInputDialog("Quante parole vuoi inserire?")); String a[] = new String [quante]; //vettore di 100 elementi di tipo Stringa //ciclo for per l'input delle x parole da tastiera for (int i=0; i<a.length ; i++ ) a[i] = JOptionPane.showInputDialog( null, "Inserisci la " + (i+1) + " parola"); //richiama il metodo per l'ordinamento a bolle ( bubbleSort ) //input il vettore (array) da ordinare bubbleSort( a ); String output =""+ "\n\nParole ordinate lessicograficamente\n"; // buffer stringa: inizializzazione e titolazione // **************** FILTRO ELIMINAZIONE DUPLICATI ***************************** for ( int i = 0; i < a.length; i++ ) if (a[i]!="~") output += "\n" + a[ i ]; //concatena le parole e le mette nel //buffer stringa: se trova il carattere ~ (duplicati) li ignora System.out.println(output); //visualizza le parole ordinate lessicograficamente System.exit (0); //esce } // ordina gli elementi dell'array utilizzando un algoritmo di ordinamento // a bolle (BubbleSort). //Vedi capitolo 7 libro Java - Fondamenti di programmazione Deitel&Deitel public static void bubbleSort( String b[] ) { for ( int pass = 1; pass < b.length; pass++ ) // primo ciclo for for ( int i = 0; i < b.length - 1; i++ ) // secondo ciclo for if ( (b[ i ].compareTo(b[ i + 1 ])==0)) // primo confronto: se esistono //parole uguali le contrassegna con ~ b [ i ] = "~" ; else { if ( (b[ i ].compareTo(b[ i + 1 ])>0) ) // confronto e ordinamento lessicografico swap( b, i, i + 1 ); // scambio } } // metodo che scambia due stringhe nell'array di stringhe public static void swap( String c[], int primo, int secondo ) { String temp; // variabile String temporanea per effettuare lo scambio temp = c[ primo ]; c[ primo ] = c[ secondo ]; c[ secondo ] = temp; } }
__________________
» Collect some stars to shine for you, and start today ‘cause there are only a few. _ (In Flames)
» Don't stop for nothing, it's full speed or nothing! I'm taking down, you know, whatever is in my way! _ ('tallica)
» I am my own god, I do as I please. _ (Pain)
» Ninetynine, ninetynine knives! Ninetynine knives inside! Nobody gets out alive! _ (The Haunted)
Web: http://www.negativesignal.com - ICQ# 171585477 - Death to software patents! And TCPA too! "e uno!", diceva il boia.
ringraziamenti
Ok ti ringrazio veramente tanto...
Java sarà il mio incubo!
All times are GMT. The time now is 12:57. | Show all 5 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.