Exercicis d'Abstract

(*) elteuusuari correspon a la direcció de correu eltectrònic del centre, sense punts, fins a @itb.cat

Sumari

  1. Exercicis
    1. Inheritance - Abstract
    2. ListOfFigurePainter
      1. Versió 1
      2. Versió 2
      3. Versió 3 (extra)
    3. VehicleShop
      1. InstrumentSimulator
    4. Quiz

Exercicis

Inheritance - Abstract

ListOfFigurePainter

Volem fer un programa que sigui capaç de pintar una llista de figures.

Versió 1

classDiagram class Figure Figure : +String color Figure : +paint ()* Figure : prepareColor() Figure : clearColor() Figure <|-- LeftPiramidFigure LeftPiramidFigure : +int base Figure <|-- RectangleFigure RectangleFigure : +int width RectangleFigure : +int height

Versió 2

classDiagram class Figure Figure : +String color Figure : +paint () Figure : +paintText ()* Figure : prepareColor() Figure : clearColor() Figure <|-- LeftPiramidFigure LeftPiramidFigure : +int base Figure <|-- RectangleFigure RectangleFigure : +int width RectangleFigure : +int height

Versió 3 (extra)

Crea noves figures a pintar (piramide, cercle, línia, punt, …).

VehicleShop

Modifica les classes dels vehicles per a poder utilitzar data classes i no haver d'implementar els mètodes toString manualment

InstrumentSimulator

Usa el subpackage uf4.exercices.instrumentsimulator

Volem fer un petit programa d'emulació d'instruments.
Tenim els següents instruments.

  1. Tambor
  2. Triangle

Cada tambor té un to que pot ser A, O, U.
Els tambors amb A fan TAAAM, els tambors amb O fan TOOOM i els tambors amb U fan TUUUM.

Els tirangles tenen una resonancia que va del 1 al 5.
Els triangles amb resonancia1 fan TINC, els de dos TIINC, … i els de 5 TIIIIINC.

Fes les classes necessaries per poder executar el següent programa

fun main(args: Array<String>) {
    val instruments: List<Instrument> = listOf(
        Triangle(5),
        Drump("A"),
        Drump("O"),
        Triangle(1),
        Triangle(5)
    )
    play(instruments)
}

private fun play(instruments: List<Instrument>) {
    for (instrument in instruments) {
        instrument.makeSounds(2) // plays 2 times the sound
    }
}

Quiz

package: uf4.exercices.quiz

Volem fer un petit programa de preguntes.
Tenim dos tipus de preguntes:

Necessitaràs les següents classes

  1. Question
  2. FreeTextQuestion
  3. MultipleChoiseQuestion
  4. Quiz (conté una llista de preguntes)

Pas 1: Fes l'estructura de dades que et permeti guardar aquestes preguntes.
Pas 2: Fes un programa que, donat un quiz creat per codi, imprimeixi les preguntes.
Pas 3: Permet que l'usuari pugui respondre les preguntes.
Pas 4: Un cop acabat, imprimeix quantes respostes són correctes.