Minimo / massimo

Come calcolare il valore più piccolo tra 2, 3, 4, … valori?

Criteri di valutazione del codice?

  • Quali selezioni? Quante selezioni?
  • Quanti confronti vengono effettivamente eseguiti?
  • Quante righe di codice?
  • Quale codice è più leggibile?

Due valori

  • Selezioni singole: 1
  • Confronti: 1
  • Righe di codice: 3
m2=a
if(b<m2):
    m2=b

  • Selezioni singole: 2
  • Confronti: 2
  • Righe di codice: 4
if(a<=b):
    m2=a
if(b<a):
    m2=b
  • Selezioni doppie: 1
  • Confronti: 1
  • Righe di codice: 4
if(a<=b):
    m2=a
else:
    m2=b

Tre valori

  • Selezioni singole: 2
  • Confronti: 2
  • Righe di codice: 5
m3=a
if(b<m3):
    m3=b
if(c<m3):
    m3=c

  • Selezioni singole: 3
  • Confronti: 3
  • Righe di codice: 6
if(a<=b):
    m3=a
if(b<a):
    m3=b
if(c<m3):
    m3=c
  • Selezioni doppie: 1
  • Selezioni singole: 1
  • Confronti: 2
  • Righe di codice: 6
if(a<=b):
    m3=a
else:
    m3=b
if(c<m3):
    m3=c

  • Selezioni doppie : 3
  • Confronti: 2
  • Righe di codice: 10
if(a<=b):
    if(a<=c):
        m3=a
    else:
        m3=c
else:
    if(b<=c):
        m3=b
    else:
        m3=c
  • Selezioni multiple: 1
  • Confronti: … 4
  • Righe di codice: 6
if(a<=b)and(a<=c):
    m3=a
elif(b<=a)and(b<=c):
    m3=b
else:
    m3=c

  • Selezioni multiple: 1
  • Confronti: … 3
  • Righe di codice: 6
if(a<=b)and(a<=c):
    m3=a
elif(b<=c):
    m3=b
else:
    m3=c

Quattro valori

  • Selezioni singole: 3
  • Confronti: 3
  • Righe di codice: 7
m4=a
if(b<m4):
    m4=b
if(c<m4):
    m4=c
if(d<m4):
    m4=d 
  • Selezioni doppie: 3
  • Confronti: 3
  • Righe di codice: 12
  • Variabili temporanee: 2
if(a<=b):
    m_ab=a
else:
    m_ab=b
if(c<=d):
    m_cd=c
else:
    m_cd=d
if(m_ab<=m_cd):
    m4=m_ab 
else:
    m4=m_cd

  • Selezioni doppie : 7
  • Confronti: 3
  • Righe di codice: 22
if(a<=b):
      if(a<=c):
          if(a<=d):
              m4=a
          else:
              m4=d
      else:
          if(c<=d):
              m4=c
          else:
              m4=d
else:
    if(b<=c):
        if(b<=d):
            m4=b
        else:
            m4=d
    else:
        if(c<=d):
            m4=c
        else:
            m4=d
  • Selezioni multiple: 1
  • Confronti: … 9
  • Righe di codice: 8
if(a<=b)and(a<=c)and(a<=d):
    m4=a
elif(b<=a)and(b<=c)and(b<=d):
    m4=b 
elif(c<=a)and(c<=b)and(c<=d):
    m4=c
else:
    m4=d

  • Selezioni multiple: 1
  • Confronti: … 6
  • Righe di codice: 8
if(a<=b)and(a<=c)and(a<=d):
    m4=a
elif(b<=c)and(b<=d):
    m4=b 
elif(c<=d): 
    m4=c 
else:
    m4=d

Ripeti tutti gli esercizi per calcolare il valore più grande.