GLO-4002 - Site du cours 2023

Temps estimé: 20 minutes

Exercice: Exercices sur V(g)

Exercice 1

Considérez le code suivant :

public class GestionnaireEvenement {
    public Siege acheter(Evenement evenement) {
        Siege siegeTrouve = null;
        int places = evenement.getPlacesDisponibles();

        evenement.setPlacesDisponibles(places - 1);

        for (Siege siege: evenement.getSieges()) {
            if (siege.getStatus() == SiegeStatut.DISPONIBLE) {
                siege.setDisponible(false);
                siegeTrouve = siege;
            }
        }

        return siegeTrouve;
    }
}

Quel est la complexité cyclomatique v(g) de la méthode GestionnaireEvenement::acheter?

3

Question 2

Considérez le code suivant :


public class PereNoel {
    private static final int NB_CADEAUX = 3;

    public void distribuerAuClient(Client client) {
        Cadeau cadeau;
        if (client.getAge() < 18) {
            cadeau = new BoiteLego();
        } else {
            cadeau = new BouteilleVin();
        }

        for (int i = 0; i < NB_CADEAUX; i ++) {
            client.accepterCadeau(cadeau);
        }
    }
}

Quel est la complexité cyclomatique v(g) de la méthode PereNoel::distribuerAuClient?

3

Question 3

Considérez le code suivant :

public class Camera {
    public boolean allumer() {
        if (driver == null) {
            driver = DriverCamera.creer();

            if (drive == null) {
                return false;
            }
        }

        byte adresse = driver.obtenirAddresse();

        if (adresse.equals("0x00000")) {
            return false;
        }

        driver.ecrireAdresse(adresse, "0x000001");

        return true;
    }
}

Quel est la complexité cyclomatique v(g) de la méthode Camera::allumer?

4