Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: [java] ricerca min

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    75

    [java] ricerca min

    Nella ricerca del numero minimo in un array.....

    supponiamo che il num max di elementi di un array sia 5,e attualmente sono contenuti solo 3 elementi.
    Ecco il mio array

    5,2,3,_,_

    ora vorrei calcolare il min di questi elementi..quindi:

    (cito da parte del mio codice)

    for (int i=0; i<MaxArray; i++){
    if (number[i] <= number[indexOfMin]) {
    indexOfMin = i;
    nMin = number[indexOfMin];
    }
    }
    jLabelMin.setText("Il min è " + nMin + " di posizione " + indexOfMin);
    }

    ..il problema è che l'array non essendo completo mi da ovviamente come numero minimo quello alla posizione nuemro 4 e mi indica tale numero come 0.Come posso fare?
    Ulteriore domanda:se in un array non inserisco tutti i numeri sino al num max di elementi contenuti,il resto degli elementi mancanti è 0 per default?

    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    prova così
    codice:
    for (int i=0; i<MaxArray; i++){ 
    if (number[i] <= number[indexOfMin])&&(number[i]!=null)) { 
    indexOfMin = i; 
    nMin = number[indexOfMin];

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    75
    Ciao,
    nel codice posto da te mi da un errore di compilazione!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    manca una parentesi tonda aperta.
    if ((
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    75
    Non è la parentesi...mi da il seguente errore:

    operator != cannot be applied to int,<nulltype>

    Vi poso il code:

    ....................

    public void jMin_actionPerformed(ActionEvent e) {

    for (int i=0; i<MaxArray; i++){

    if ((number[i] <= number[indexOfMin])&&(number[i]!=null)) { //trovato elemento più piccolo
    indexOfMin = i;
    nMin = number[indexOfMin];
    }
    }

    jLabelMin.setText("Il min è " + nMin + " di posizione " + indexOfMin);
    }


    .............................


  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    non puoi usare != per gli int prova con questo <>

  7. #7
    in java esiste il metodo lenght applicato agli array ti la la lunghezza occupata non la dimensione max, se non ricordo male!

    percui cosi dovrebbe funzionare


    public void jMin_actionPerformed(ActionEvent e) {

    //supponendo il nome dello array seqNum
    int curr = seqNum[0];
    int index=0;
    for (int i=1; i<= seqNum.length()-1; i++){
    if (seqNum[i] <= curr) {
    curr = seqNum[i];
    index=i;
    }
    }

    jLabelMin.setText("Il min è " + curr + " di posizione " + index);
    }


    bye

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    BlueJ, c'è da rivedere un po' la struttura del programma: da quel che ho capito, stai implementando uno Stack di interi di dimensione massima fissata, giusto?

    Conviene allora, piuttosto che fare affidamento sulla lunghezza del supposto vettore di interi, definire una variabile "testa" tipo int che tenga traccia di quelle che sono state le operazioni sullo stack.

    testa = -1 --> stack vuoto, non è possibile eliminare elementi
    testa = lunghezzavettore - 1 --> stack pieno, non è possibile aggiungere altri elementi

    ogni volta che aggiungi un elemento al tuo stack, incrementi testa, viceversa, ogni volta che elimini un elemento decrementi testa.

    I cicli for andranno di conseguenza fino a testa (con l'unica eccezione che lo stack sia vuoto, per cui non avrebbe senso trovare massimi, minimi e medie dei valori).

    Saluti.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    75
    Andrea io sto cercando di trovare il min di una serie di interi inseriti in un array di (es) lunghezza max 10 contenente 7 elementi...


  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    codice:
    public class arrayOperation {
      
      private int[] array;
      
      public arrayOperation(int a[]) {
        array = a;
      }
    
      public int findMin() {
        int min = array[0];
        for (int i=1; i < array.length; i++) {
          min = Math.min(min, array[i]);
        }
        return min;
      }
      
      public int findMinIndex() {
        int min = findMin();
        int minindex=0;
        while (array[minindex] != min) {
          minindex++;
        }
        return minindex;
      }
    }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.