Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [JAVA] Algoritmo selezione oggetti

    Raga mi potete dare una mano? Ho bisogno di implementare il seguente algoritmo:

    Algoritmo per selezionare tutti gli oggetti di una lista che soddisfano un dato criterio. L’implementazione deve favorire il riutilizzo del codice, nel senso che deve poter essere usata con una lista di oggetti di qualsiasi tipo e rispetto ad un criterio qualsiasi.
    Applicare l’implementazione ottenuta per scrivere un programma Java che:

    • legge un arrayList di posti di un cinema da un file,
    • prende in input da console un intervallo I di numeri di fila e un intervallo J di lettere
    di posizioni nella fila, e
    • visualizza nella console tutti i posti liberi che hanno numero di fila incluso in I e
    numero di posizione nella fila incluso in J.


    mi sapete aiutare? perlomeno a fare il primo dove parla in generale. L'applicazione da scrivere come programma Java me lo faccio io una volta avuto l'algoritmo generale.
    Grazie mille

  2. #2
    Comincia con il definire un'astrazione per posto cinema.

  3. #3
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    sembra un compito in classe, lo è?
    cmq diciamo che ti chiedono di implementare il polimorfismo praticamente. Non sò per "algoritmo" cosa vogliono intendere, ho provato a farlo e l'algoritmo che è uscito fuori è un loop
    Cmq è in c#, non conosco bene java ma sò che è simile a c# o meglio che c# è simile a java essendo + giovane ..
    Non sò se questo esempio soddisfi la tua richiesta, quindi non prenderla come verità assoluta, magari aspetta qualche altro utente.

    codice:
    class Program
        {
            public interface IAbstractObj
            {
                IAbstractObj Compute(string[] input);
            }
    
            public class Poltrona : IAbstractObj
            {
                public Poltrona(bool _occupata, int _numeroFila, char _letteraFila)
                {
                    occupata = _occupata;
                    numeroFila = _numeroFila;
                    letteraFila = _letteraFila;
                }
    
                private bool occupata = false;
                public bool Occupata
                {
                    get { return occupata; }
                    set { occupata = value; }
                }
    
                private int numeroFila = 0;
                public int NumeroFila
                {
                    get { return numeroFila; }
                    set { numeroFila = value; }
                }
    
                private char letteraFila = char.MinValue;
                public char LetteraFila
                {
                    get { return letteraFila; }
                    set { letteraFila = value; }
                }
    
    
                public IAbstractObj Compute(string[] input)
                {
                    IAbstractObj retObj = null;
                    input = input[0].Split(',');
                    if (!Occupata)
                    {
                        if((NumeroFila >= Convert.ToInt32(input[0]) && NumeroFila <= Convert.ToInt32(input[1])))
                        {
                            if(IsInRangeCaseInsensitive(LetteraFila, Convert.ToChar(input[2].ToLower()), Convert.ToChar(input[3].ToLower())))
                            {
                                retObj = this;
                            }
                        }
                    }
    
                    return retObj;
                }
    
    
    
                private bool IsInRangeCaseInsensitive(char testChar, char startOfRange, char endOfRange)
                {
                    testChar = char.ToUpper(testChar);
                    startOfRange = char.ToUpper(startOfRange);
                    endOfRange = char.ToUpper(endOfRange);
    
                    if (testChar >= startOfRange && testChar <= endOfRange)
                    {
                        return (true);
                    }
                    else
                    {
                        return (false);
                    }
                }
    
    
            }
    
    
    
    
            static void Main(string[] args)
            {
                //Oggetti in un file
                IList<IAbstractObj> oggettiAstrattiInUnFile = new List<IAbstractObj>();
    
                oggettiAstrattiInUnFile.Add(new Poltrona(true, 1, 'A'));
                oggettiAstrattiInUnFile.Add(new Poltrona(true, 1, 'B'));
                oggettiAstrattiInUnFile.Add(new Poltrona(true, 1, 'C'));
                oggettiAstrattiInUnFile.Add(new Poltrona(false, 1, 'D'));
                oggettiAstrattiInUnFile.Add(new Poltrona(true, 1, 'E'));
                oggettiAstrattiInUnFile.Add(new Poltrona(false, 1, 'F'));
                oggettiAstrattiInUnFile.Add(new Poltrona(false, 1, 'G'));
                oggettiAstrattiInUnFile.Add(new Poltrona(true, 1, 'H'));
    
                oggettiAstrattiInUnFile.Add(new Poltrona(true, 2, 'A'));
                oggettiAstrattiInUnFile.Add(new Poltrona(true, 2, 'B'));
                oggettiAstrattiInUnFile.Add(new Poltrona(false, 2, 'C'));
                oggettiAstrattiInUnFile.Add(new Poltrona(true, 2, 'D'));
                oggettiAstrattiInUnFile.Add(new Poltrona(true, 2, 'E'));
                oggettiAstrattiInUnFile.Add(new Poltrona(false, 2, 'F'));
                oggettiAstrattiInUnFile.Add(new Poltrona(true, 2, 'G'));
                oggettiAstrattiInUnFile.Add(new Poltrona(true, 2, 'H'));
    
                oggettiAstrattiInUnFile.Add(new Poltrona(true, 3, 'A'));
                oggettiAstrattiInUnFile.Add(new Poltrona(true, 3, 'B'));
                oggettiAstrattiInUnFile.Add(new Poltrona(true, 3, 'C'));
                oggettiAstrattiInUnFile.Add(new Poltrona(true, 3, 'D'));
                oggettiAstrattiInUnFile.Add(new Poltrona(false, 3, 'E'));
                oggettiAstrattiInUnFile.Add(new Poltrona(true, 3, 'F'));
                oggettiAstrattiInUnFile.Add(new Poltrona(true, 3, 'G'));
                oggettiAstrattiInUnFile.Add(new Poltrona(true, 3, 'H'));
    
    
                //supponendo che l'array in input sia: 1,3,c,g
                IList<IAbstractObj> returnList = new List<IAbstractObj>();
                foreach (IAbstractObj ao in oggettiAstrattiInUnFile)
                {
                    if (ao.Compute(args) != null)
                        returnList.Add(ao);
    
                }
    
                //qui visualizzi la lista "returnList" che contiene gli oggetti
            }
        }
    Ciao
    Voglio l'alt+s anche per FF

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.