Esercizi

  1. Quanto valgono le seguenti espressioni?

    1. 3 == 3
    2. 3 != 3
    3. 3 >= 4
    4. not (3 < 4)
    1. True
    2. False
    3. False
    4. False
  2. Qual’è il contrario di queste condizioni? Non è possibile usare il not.

    1. a > b
    2. a >= b
    3. a >= 18  and  day == 3
    4. a >= 18  or  day != 3
  3. Scrivere una funzione che dato un punteggio, ritorna una stringa — il voto del punteggio — seguendo questo schema:

    Punteggio Voto
    >= 90 A
    [80-90) B
    [70-80) C
    [60-70) D
    < 60 F

    La parentesi quadrata vuol dire estremo incluso, la tonda estremo escluso. Dunque 79.99999 corrisponde al voto C , ma 80 corrisponde al voto B.

    Provare la funzione stampando il voto per diversi punteggi.


    
    
    

    (ex_6_3)


    
    
    

    (q3_question)

  4. Scrivere una funzione findHypot che, data la lunghezza dei due cateti ritorna la lunghezza dell’ipotenusa. (Suggerimento: usare x ** 0.5 per ritornare la radice quadrata, oppure sqrt del modulo math)


    
    
    

    (ex_6_6)

  5. Scrivere una funzione chiamata is_even(n) che prende un intero come argomento e ritorna True se l’argomento è un numero pari and False se è dispari odd.


    
    
    

    (ex_6_7)


    
    
    

    (q7_answer)

  6. Scrivere la funzione is_odd(n) che ritorna True quando n is è dispari e False altrimenti.


    
    
    

    (ex_6_8)

  7. Modificare is_odd in modo che usi la chiamata a is_even.


    
    
    

    (ex_6_9)


    
    
    

    (q9_answer)

  8. Scrivere la funzione is_rightangled che, data la lunghezza di tre lati di un triangolo, determina se il triangolo è rettangolo. Assumiamo che il terzo argomento è sempre il lato più lungo. La funzione deve ritornare True se il triangolo è rettangolo e False altrimenti.

    Suggerimento: l’aritmetica dei numeri in floating point non è sempre accurata per cui non è sicuro controllare l’uguaglianza tra due numeri con ==. Piuttosto, è meglio controllare se x è abbastanza vicino a y, come segue.

    if  abs(x - y) < 0.001:      # if x is approximately equal to y
        ...
    

    
    
    

    (ex_6_10)

  9. Estendere il programma sopra in modo che i lati possano essere dati in qualsiasi ordine.


    
    
    

    (ex_6_11)


    
    
    

    (q11_answer)

  10. Scrivere la funzione is_prime(n) che ritorna True quando n è primo e False altrimenti.


    
    
    

    (ex_6_11b)

  11. Un anno è detto bisestile se è divisibile per 4 a meno che non sia un secolo che non è divisibile per 400. Scrivere una funzione che prende un anno come parametro e ritorna True se l’anno è bisestile, False altrimenti.


    
    
    

    (ex_6_12)

  12. Implementare il calcolo della Pasqua.

    L’algoritmo seguente calcola la data della Pasqua dal 1900 e il 2099.

    Chiedere all’utente di inserire un anno. Calcolare quanto segue:

    1. a = year % 19
    2. b = year % 4
    3. c = year % 7
    4. d = (19 * a + 24) % 30
    5. e = (2 * b + 4 * c + 6 * d + 5) % 7
    6. dateofeaster = 22 + d + e

    Nota: L’algoritmo può ritornare una data in Aprile. Inoltre, nel caso in cui l’anno è uno degli anni speciali (1954, 1981, 2049, or 2076), bisogna sottrarre 7 dalla data.

    Your program should print an error message if the user provides a date that is out of range.


    
    
    

    (ex_6_13)


    
    
    

    (answer_ex_6_13)

  13. Generare un numero casuale intero nell’intervallo [25,30] o [35,55) in modo che ogni numero tra quelli estraibili abbia la stessa probabilità di uscita.


    
    
    

    (ex_mod_4)

  14. Generare un numero casuale reale nell’intervallo [25,30] o [35,55) in modo che ogni numero tra quelli estraibili abbia la stessa probabilità di uscita.


    
    
    

    (ex_mod_5)

Next Section - Iterazioni Riviste