[AVVISO] Homework 5 opzionale (senza scadenza)

andrea.sterbini (169260 points)
490 900 1734
asked Nov 14, 2019 in Avvisi by andrea.sterbini (169,260 points)
edited Nov 14, 2019 by andrea.sterbini

ATTENZIONE

  • 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
  • ATTENZIONE: DOVETE INSTALLARE LA LIBRERIA stopit usando il comando (nella finestra Anaconda Prompt)
    • conda install -c conda-forge stopit
    • Questo per permettere di spostare la misura del tempo attorno alla chiamata della vostra funzione.
  • eventuali correzioni verranno inserite qui
  • NOTA: Per riattivare le stampe e disattivare il timeout cambiate la variabile DEBUG all'inizio di test_01.py

Istruzioni

Per svolgere l'homework:

  • Installate le librerie necessarie compreso stopit
  • Scaricate il file HW5opz.zip e scompattatelo in una directory
    • Lo zip contiene
      • l'esercizio da svolgere, descritto all'inizio del file program01.py
        • 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 HW5opz creata unzippando l'archivio ed editate il file program01.py completando la funzione indicata
  • 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: E' VIETATO copiare codice dalle librerie di sistema.
  • 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 HW1opz ottenuta scompattando lo zip
    • NOTA: i test ora vengono sempre eseguiti con il timeout, per disattivarlo eliminate il blocco with nel metodo do_test
    • 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 che stampa dei tempi spesi dal programma nelle 20 funzioni complessivamente più lente)
      • pytest test_01.py -v -rA --profiling
    • 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++

Consegna (senza scadenza)

Dovrete consegnare:

  • program01.py: il programma da voi realizzato

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

    1,501 views

    2 Answers

    AndreaGasparini (18730 points)
    6 11 118
    answered Nov 15, 2019 by AndreaGasparini (18,730 points)

    Professore mi sembra che nella traccia la seguente frase non sia corretta:

       In ciascuna  riga ci sono le coordinate intere del vertice in basso a sinistra e del vertice
       in alto a destra del poster.

    Andando a controllare i file di testo credo che siano state invertite e che le coordinate siano del vertice in alto a sinistra e del vertice in alto a destra. Mi corregga se ho frainteso io.

    E
    Edward (25950 points)
    2 4 172
    commented Nov 15, 2019 by Edward (25,950 points)
    A me le coordinate risultano corrette, sono nel formato (x, y)
    AndreaGasparini (18730 points)
    6 11 118
    commented Nov 15, 2019 by AndreaGasparini (18,730 points)
    Sì ma la y del vertice in basso a sinistra è maggiore rispetto alla y del vertice in alto a destra nei vari file
    E
    Edward (25950 points)
    2 4 172
    commented Nov 15, 2019 by Edward (25,950 points)
    Forse non ti trovi perché stai pensando come un piano cartesiano?
    Calcola che il vertice in alto a sinistra dell'immagine è il punto (0, 0). Mentre quello in basso a destra è (w-1, h-1)
    andrea.sterbini (169260 points)
    490 900 1734
    commented Nov 15, 2019 by andrea.sterbini (169,260 points)
    Nelle immagini l'origine è in alto a sinistra e la y cresce scendendo verso il basso.
    AndreaGasparini (18730 points)
    6 11 118
    commented Nov 15, 2019 by AndreaGasparini (18,730 points)
    ok, stavo pensando ad un piano cartesiano e non in questo modo, ora mi è chiaro thanks
    m
    maurizio.tranquilli (390 points)
    0 0 3
    answered Nov 15, 2019 by maurizio.tranquilli (390 points)

    Buonasera professore, durante l'esecuzione dei test la VM riporta questo errore. Ho per sbaglio modificato il file in modo da generare la problematica?

    ImportError while importing test module '/home/travis/build/Fondamenti18/AA19-HW2bis-rec/master/test_01.py'. Hint= make sure your test modules/packages have valid Python names. 

    Traceback= ../../../master/test_01.py=8= in import program01 as program program01.py=48= in import immagini E ModuleNotFoundError= No module named 'immagini'

    andrea.sterbini (169260 points)
    490 900 1734
    commented Nov 15, 2019 by andrea.sterbini (169,260 points)
    Hai consegnato il file nello HW sbagliato.
    Dal messaggio di errore si vede che l'hai consegnato nello HW2 di recupero.
    Lo HW5opz ha il numero 6 (sì, lo so, dovremmo sistemarlo)
    simone (25820 points)
    34 97 209
    commented Nov 16, 2019 by simone (25,820 points)
    Sistemati su tutte le pagine!
    andrea.sterbini (169260 points)
    490 900 1734
    commented Nov 16, 2019 by andrea.sterbini (169,260 points)
    Grazie Simone!