3. Diferències

  1. Definim una llista de diferències per parells d’una llista com la llista formada per les diferències entre cada parell d’elements consecutius agafats de dos en dos. Per exemple, per [a, b, c, d] seria [b−a, d−c].

    Dissenya la següent funció i desa-la al fitxer diferencies.py:

    diferencies(ln, linf, lsup)

    Retorna la llista de diferències de la llista ln. Si algun dels nombres de la parella no està dins l’interval tancat delimitat per linf i lsup, la diferència serà zero.

    Paràmetres:
    • ln (list[int]) – Llista d’enters.

    • linf (int) – Límit inferior de l’interval.

    • lsup (int) – Límit superior de l’interval.

    Retorna:

    Llista diferències de ln tenint en compte les restriccions pels nombres fora de l’interval.

    Els següents doctests mostren exemples del que ha de fer la funció:

    >>> ln1 = [1, 3, 5, 8]
    >>> diferencies(ln1, 0, 10)
    [2, 3]
    
    >>> ln2 = [-1, 2, 7, 20, 3, 4]
    >>> diferencies(ln2, 0, 10)
    [0, 0, 1]
    
    >>> ln3 = []
    >>> diferencies(ln3, 0, 10)
    []
    

    Disposes de més tests al fitxer test-diferencies.txt

  2. En un sistema de control industrial, un sensor pren lectures de dues en dues, amb valors consecutius que representen dues mesures d’un mateix paràmetre físic i que s’emmagatzemen en una llista de mesures.

    Dissenya la següent funció i desa-la al fitxer diferencies.py:

    classifica_difs(lmes,linf,lsup):

    Retorna el nombre de diferències positives o zero, i el nombre de diferències negatives de la llista lmes per les parelles dins de l’interval tancat delimitat per linf i lsup.

    Paràmetres:
    • lmes (list[int]) – Llista de mesures.

    • linf (int) – Límit inferior de l’interval.

    • lsup (int) – Límit superior de l’interval.

    Retorna:

    Retorna dos enters, el nombre de diferències positives o zero de lmes i el nombre de diferències negatives de lmes.

    Els següents doctests mostren exemples del que ha de fer la funció:

    >>> lm1 = [1, 3, 5, 8]
    >>> classifica_difs(lm1, 0, 10)
    (2, 0)
    
    >>> lm2 = [0, 10, 10, 0, 5, 5]
    >>> classifica_difs(lm2, 0, 10)
    (2, 1)
    
    >>> lm3 = []
    >>> classifica_difs(lm3, 0, 10)
    (0, 0)
    

    Disposes de més tests al fitxer test-classifica-difs.txt

    Disposes de solucions al fitxer diferencies.py