Visualizzazione dei risultati da 1 a 7 su 7

Visualizzazione discussione

  1. #2
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Quote Originariamente inviata da scretch Visualizza il messaggio
    codice:
        public Ostello() {
            //all inizio tutti i letti sono liberi
            for (int stanza=0; stanza<10; stanza++) {
                for (int letto=0; letto<5; letto++) {
                    lettoLibero[stanza][letto] = false; 
                }
            }
        }
    Intanto qui devi inizializzare la matrice lettoLibero prima di assegnare i valori alle singole celle.E poi da quello che dice il problema all'inizio i letti sono tutti liberi, devi assegnare true ad ogni cella non false.

    Quote Originariamente inviata da scretch Visualizza il messaggio
    Non riesco ad immaginare come scrivere il metodo ottimizzaOstello. Il ragionamento che ho fatto è il seguente:

    1. Se il letto è libero, cerca nella stanza successiva un letto occupato
    2. Spostalo nella prima stanza libera e imposta il letto occupato come libero
    3. Continua nella ricerca
    Il ragionamento sembra filare,nel punto 2 la prima stanza libera però la sai già, non devi mica rifare la ricerca

    Quote Originariamente inviata da scretch Visualizza il messaggio
    Quando cerco di trasformare questo ragionamento in codice, si trasforma solo in un paio di cicli for che si ripetono
    La soluzione può benissimo essere fatta con cicli annidati.
    Ad esempio crei due cicli annidati su stanza e letto in cui man mano verifichi se un letto è libero.

    Quando trovi un letto libero sarebbe una buona cosa non avere altri due cicli annidati in cui esegui la ricerca di un letto occupato con il quale fare lo scambio.
    Questo può provocare un po' di confusione sugli indici ed essere fonte di errori.

    Se possibile creati una funzione che va ad effettuare la ricerca di un letto occupato ed effettua lo scambio:
    alla funzione puoi passare gli indici del posto libero e cominci a cercare dall'indice di riga successivo.Poi devi solo ricordarti di ritornare appena effettuato lo scambio, altrimenti riempirai ogni letto.

    Prova a postare il codice a cui arrivi, e vediamo perché non va
    Ultima modifica di Ansharja; 11-12-2015 a 13:22

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.