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

  • 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

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

Tre valori

Selezioni singole

  • 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

  • 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

Selezione multipla

  • 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

  • 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

  • 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

Selezione multipla

  • 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.