EserciziΒΆ

  1. Possiamo rappresentare un rettangolo conoscendo tre cose: la posizione del suo angolo a sinistra in basso, la sua base e la sua altezza. Creare una definizione di classe per la classe Rectangle usando questa idea. Per creare un oggetto Rectangle in posizione (4,5) con base 6 e altezza 5, scriviamo quanto segue:

    r = Rectangle(Point(4, 5), 6, 5)
    

    
    
    

    (classes_deeper_q1)


    
    
    

    (ch_cl2_answer1)

  2. Aggiungere i seguenti metodi accessori alla classe Rectangle: getWidth, getHeight, __str__.


    
    
    

    (ch_cl2_q2)

  3. Aggiungere il metodo area alla classe Rectangle che ritorna l’area di una qualsiasi istanza:

    r = Rectangle(Point(0, 0), 10, 5)
    testEqual(r.area(), 50)
    

    
    
    

    (classes_q3)


    
    
    

    (ch_cl2_q3answer)

  4. Scrivere una funzione perimeter nella classe Rectangle in modo da trovare il perimetro di un qualsiasi rettangolo:

    from test import testEqual
    
    r = Rectangle(Point(0, 0), 10, 5)
    testEqual(r.perimeter(), 30)
    

    
    
    

    (ch_cl2_q4)

  5. Scrivere un metodo transpose nella classe Rectangle che scambia la base con l’altezza:

    from test import testEqual
    
    r = Rectangle(Point(100, 50), 10, 5)
    testEqual(r.getWidth(), 10)
    testEqual(r.getHeight(), 5)
    r.transpose()
    testEqual(r.getWidth(), 5)
    testEqual(r.getHeight(), 10)
    

    
    
    

    (classes_q5)


    
    
    

    (ch_cl2_q5answer)

  6. Scrivere un metodo nella classe Rectangle per controllare se un Point cade all’interno del rettangolo. Per questo esercizio, assumere che il rettangolo in posizione (0,0) con base 10 e altezza 5, si estende nella direzione x da [0 a 10) e nella direzione y da [0 a 5), per cui non contiene il punto (10, 2). I seguenti test devono passare:

    from test import testEqual
    
    r = Rectangle(Point(0, 0), 10, 5)
    testEqual(r.contains(Point(0, 0)), True)
    testEqual(r.contains(Point(3, 3)), True)
    testEqual(r.contains(Point(3, 7)), False)
    testEqual(r.contains(Point(3, 5)), False)
    testEqual(r.contains(Point(3, 4.99999)), True)
    testEqual(r.contains(Point(-3, -3)), False)
    

    
    
    

    (classes_q6)

  7. Scrivere un nuovo metodo chiamato diagonal che ritorna la lunghezza della diagonale dall’angolo in basso a sinistra a quello in alto a destra.


    
    
    

    (classes_q7)


    
    
    

    (ch_cl2_answer7)

  8. Scrivere una funzione che determina se due rettangoli collidono, ovvero se le loro aeree si intersecano. Suggerimento: Considerare i diversi casi.


    
    
    

    (ch_cl2_q8)

Next Section - Copyright Notice