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

Do you need help?

[AVVISO] Homework 5 opzionale (senza scadenza)

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

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

    2 Answers

    AndreaGasparini (18850 points)
    7 12 120
    by (18.9k 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)
    3 4 172
    by (26.0k points)
    A me le coordinate risultano corrette, sono nel formato (x, y)
    AndreaGasparini (18850 points)
    7 12 120
    by (18.9k 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)
    3 4 172
    by (26.0k 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 (207920 points)
    750 1267 2373
    by (208k points)
    Nelle immagini l'origine è in alto a sinistra e la y cresce scendendo verso il basso.
    AndreaGasparini (18850 points)
    7 12 120
    by (18.9k 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
    by (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 (207920 points)
    750 1267 2373
    by (208k 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)
    s
    simone (25820 points)
    47 97 209
    by (25.8k points)
    Sistemati su tutte le pagine!
    andrea.sterbini (207920 points)
    750 1267 2373
    by (208k points)
    Grazie Simone!