Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

[HOMEWORK] Homework 5 opzionale

andrea.sterbini (207920 points)
750 1267 2373
in Avvisi by (208k points)
edited by

ATTENZIONE

  • eventuali correzioni verranno inserite qui
    • attenzione, i file PNG li dovete creare voi
    • Per una svista il testo indica h come massima x e w come massima y. Vanno invece intese come h=massima y e w=massima x
  • NOTA: per eseguire i test SENZA i controlli ed il timeout modificate test_01.py settando la variabile DEBUG=True

Istruzioni

Per svolgere l'homework:

  • Installate le librerie necessarie (compreso stopit)
  • Scaricate il file HW5opt.zip e scompattatelo in una directory
    • Lo zip contiene
      • l'esercizio da svolgere, descritto all'inizio del file program01.ita.py (in italiano) oppure program01.eng.py (in inglese)
        • l'esercizio consiste nel realizzare, se necessario definendo funzioni ausiliarie, la funzione descritta all'inizio del file, completandone il codice
        • altre librerie e file necessari ad eseguire i test sulla vostra macchina
    • Posizionatevi nella directory HW3opt creata unzippando l'archivio ed rinominate il file program01.ita/eng.py che preferite con il nome program01.py
    • Editate il file program01.py implementando le funzioni necessarie a risolvere l'esercizio.
    • ATTENZIONE: nel file program01.txt NON inserite nè codice nè il vostro nome/id, deve restare anonimo.
    • ATTENZIONE: il programma NON DEVE eseguire nessun input() o print(), infatti riceve tutte le informazioni di cui ha bisogno tramite i parametri della funzione che dovete completare e torna il risultato con return.
    • ATTENZIONE: SONO VIETATE le variabili globali.
    • ATTENZIONE: SONO VIETATE tutte le altre librerie a parte quelle già importate nel testo.
    • ATTENZIONE: i vostri programmi NON DEVONO sfruttare eventuali periodicità o caratteristiche strutturali degli input, ma devono essere applicabili a qualsiasi input valido.
    • ATTENZIONE: NON LASCIATE ISTRUZIONI DI TEST NEL PROGRAMMA, A MENO CHE NON SIANO DOPO UNA RIGA
      • if __name__ == '__main__':
        • vostre istruzioni di test che in questo modo non vengono eseguite durante l'import del file
    • Per eseguire i test
      • aprite una finestra "Anaconda Prompt" e posizionatevi nella directory ottenuta scompattando lo zip
      • eseguite il comando
        • pytest test_01.py -v -rA
      • oppure (test con una stampa dei tempi impiegati per eseguire ciascun test)
        • pytest test_01.py -v -rA --durations 0
      • oppure (test con stampa dei tempi spesi dal programma nelle 20 funzioni complessivamente più lente)
        • pytest test_01.py -v -rA --profile
      • Per far fermare i test al primo errore aggiungete l'opzione -x
      • Per chi usa Spyder:
        • è possibile eseguire i test direttamente da dentro Spyder installando il plugin spyder-unittest (ma senza timeout o parametri aggiuntivi)
        • è possibile ottenere i tempi spesi in ciascuna funzione direttamente da dentro Spyder installando il plugin spyder-line-profiler

    NOTA: per aprire i file di testo in formato utf8 NON usate Notepad che non riconosce gli accapi Unix ('\n') ma usate Spyder o Notepad++

    Scadenze: questo homework non ha scadenza

    La pagina di consegna è https://q2a.di.uniroma1.it/homeworks/delivery?homework=6

    Potete consegnare più volte, vale l'ultima.

    2 Answers

    lwcs (1380 points)
    6 16 26
    by (1.4k points)
    Buonasera prof.,

    nella traccia del problema quando dobbiamo creare lo sfondo nero c è scritto che dobbiamo prendere come riferimento l altezza massima di un poster +10 e la larghezza massima di un poster +10; a queste coordinate attribuisce ad h la X,mentre alla w la Y.

    Per quanto riguarda invece il fileDiTesto da dare in pasto al nostro programma le coordinate sono date come X la larghezza e Y l altezza. (es. 10, 140 il vertice in basso a sinistra del poster; invece 80, 90 del vertice in alto a destra).

    Quindi mi chiedevo se lo sfondo nero dovremmo farlo di misure con l altezza = alla larghezza massima dei poster e viceversa.
    F
    Federico Rossi (710 points)
    1 2 5
    by (710 points)
    Buonasera prof.,

    Ho trovato un errore nel file test_01.py ovvero: self.check_open(allowed_filenames_modes={fimm: ['r'], fout:['wb'] }) dovrebbe essere -> self.check_open(allowed_filenames_modes={fimm: ['r'], fout:['wb', 'rb'] }).

    Poiche' avendo solo wb si puo' utilizzare il metodo save ma non il metodo load del file images.
    andrea.sterbini (207920 points)
    750 1267 2373
    by (208k points)
    e perchè dovresti usare il load della immagine se sei tu a doverla creare?