Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 30
  1. #1

    algoritmo di inserimento

    ciao, stavo provando a scrivere un programmino in java che mi faccia una cosa e
    cioè: ho prelevato da una tabella di un database i valori che stanno sotto la
    colonna "dimensione"(sono tutti interi) e li ho messi in un array.
    es:[600][100][100][90] ecc
    ora io devo cercare di farmi stampare a video la seguente cosa:
    il mio programma ha al suo interno un capo dimensioneMax che è fissa es 700,
    poi io devo scorrere l'array sopra dove sono le mie dimensioni e ad una ad una
    le devo inserire in dimMax, se non ci entra un valore continuo a scorrere, a
    questo punto ho trovato che ci sono entrati i primi due valori in dimmax,
    adesso devo continuare a riempire un'altra dimMax e così via fino a quando non
    consumo tutti i valori di partenza..quindi come output dovrei avrere:nel primo
    cd ci sono i valori 600 e 100 nel secondo ci sono gli altri e così via, solo
    non sono tanto bravo con java e non riesco a fargli fare la seconda scansione,
    perchè mi ritrovo sempre con l'array di partenza invece io devo scorrere
    l'array privato degli elementi che sono entrati nella prima dimMax, non so se
    sono stato chiaro.
    si trova qualcosa di simile che faccia queste cose?
    grazie ciao

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Prova a rispiegare per bene cosa intendi fare, perchè io, sinceramente, non ho capito proprio nulla.

    Magari cerca di usare bene gli esempi...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    ciao lele, scusami se sono stata poco chiara, ho problemi a spiegarmi figuariamoci a fare un programmino in java eh eh.
    ascolta io ho fatto un'interfaccia dove inserisco in un database delle voci: titolo:film1 dimensione1:600 mega titolo:video2 dimensione2:100 mega e così via..
    ora io devo fare in modo che il mio programmino mi selezioni le dimensioni e le metta in un array o vettore e quello io l'ho fatto..
    ti faccio adesso un esempio: io quei contenuti li devo masterizzare su un numero arbitrario di cd e quindi devo fare in modo che il mio programma mi deve dire conoscendo le dimensioni, cosa può entrare in un cd, cosa nel secondo cd e così via..avevo visto un pò una cosa simile che è l'algoritmo di knapsack ma sinceramente non ci ho capito molto anche perchè io qui non ho detto che i miei oggetti oltre alla dimensione hanno un valore o priorità..
    allora volevo fare una cosa più semplice e cioè avendo da un array di partenza con le mie dimensioni in ordine decrescente, volevo che il mio programma facendo una scansione di questo array mi dicesse: es guarda che in 700 mega di cd ci entrano i primi due elementi dell'array, nel secondo cd solo 1 e così via..mi sono spiegata meglio adesso?
    ciao lele e grazie

  4. #4
    Se ho capito bene supponendo che l'array delle dimensioni sia {600,600,500,210,100,90,80} tu vuoi uraggiungere una situazione del genere:

    600
    600
    500
    210 100 90 80

    Se è così, io ho ragionato in questo modo. Innanzitutto utlizzo la classe Vector che ti consente di lavorare con "array" a dimensioni variabili. Ho un Vector (chiamato cd) che contiene come elementi a sua volta dei Vector. Questi vector interni contengono le dimensioni che vanno a comporre un singolo cd.

    Forse un pò di codice è più chiaro...

    codice:
    import java.util.Vector;
    
    public class EsercizioDimensioni {
        
        static Vector cd = new Vector();
        static int[] dimensioni = {600,600,500,210,100,90,80};
        static final int DIM_MAX = 700;
        public static void main(String[] args){
            for (int i=0;i<dimensioni.length;){
               int dimensioneTotale = 0;
               Vector array_cd = new Vector();
               while(dimensioneTotale+dimensioni[i]<=DIM_MAX){
                   array_cd.add(dimensioni[i]);
                   dimensioneTotale+=dimensioni[i];
                   i++;
                   if(i==dimensioni.length){
                       break;
                   }
    
               }
               cd.add(array_cd);
            }
            
            for(int i=0;i<cd.size();i++){
                Vector cdTemp = (Vector)cd.get(i);
                for(int j=0;j<cdTemp.size();j++){
                    System.out.print(cdTemp.get(j)+" ");
                }
                System.out.println();
            }
            
        }
    }
    Spero di aver capito cosa cercavi... per chiarimenti sono qui
    Al mio segnale... scatenate l'inferno!

  5. #5
    ciao R@ve M@ster, il programma che hai postato da un errore qui:

    EsercizioDimensioni.java:13: cannot resolve symbol
    symbol : method add (int)
    location: class java.util.Vector
    array_cd.add(dimensioni[i]);

    1 error

    ciao

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Questo succede perchè Vector vuole degli oggetti, mentre il nostro buon R@ve M@ster ha erroneamente passato un intero.

    Questo errore si poteva facilmente correggere andando a dare un'occhiatina veloce alla documentazione... non è difficile correggerlo...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Ciao Lele, una curiosità, ho visto che in questo programma fatto da R@ve M@ster viene passato esplicitamente static int[] dimensioni = {600,600,500,210,100,90,80};
    ecco se io adesso voglio farlo passare come parametro devo aggiungere il costruttore che mi prende l'array con i miei dati?
    ciao

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Sì, è una soluzione...
    Quello di R@ve M@ster era un esempio di algoritmo, i dati, poi, ce li hai tu...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    ma avevondo un array con i miei dati che si chiama W, tipo devo fare così:
    public void prova(int [] W){

    int[] dimensioni []=W;
    ecc ecc
    si può fare?

    cmq lele per quanto riguarda quello che hai scritto:

    Questo succede perchè Vector vuole degli oggetti, mentre il nostro buon R@ve M@ster ha erroneamente passato un intero.

    Questo errore si poteva facilmente correggere andando a dare un'occhiatina veloce alla documentazione... non è difficile correggerlo...

    ecco io ci sto provando ma mi da sempre lo stesso errore..

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da superpisu
    ma avevondo un array con i miei dati che si chiama W, tipo devo fare così:
    public void prova(int [] W){
    int[] dimensioni []=W;
    ecc ecc
    si può fare?
    No: non ha alcun senso.

    Al massimo puoi fare così:
    codice:
    public void prova(int [] W){
       int[] dimensioni = W;
    cmq lele per quanto riguarda quello che hai scritto:
    ...
    ecco io ci sto provando ma mi da sempre lo stesso errore..
    Forse non hai letto bene la documentazione: add() vuole degli oggetti. Se tu gli passi un intero (tipo di dati primitivo) lui non lo accetta.
    Devi utilizzare una classe Wrapper...

    Comunque, ripeto: la documentazione prima di tutto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.