Qualificatore di triangoli

Vedi la discussione: Esame di Stato – Seconda prova di Informatica – 1987

Osserva le soluzioni proposte

  1. selezioni singole
  2. selezioni doppie
  3. selezioni doppie + selezioni annidate
  4. selezioni doppie + operatori logici
  5. selezioni multiple
  6. selezioni multiple + operatori logici

Equilatero?

Selezioni singole

  • Righe di codice: 9
  • Selezioni singole: 4
  • Confronti: 4
test=0
if(a == b):
    test+=1
if(b == c):
    test+=1
if(test == 2):
    print("Equilatero")
if(test != 2):
    print("NO equilatero")
  • Righe di codice: 11
  • Selezioni singole: 5
  • Confronti: 5
test=0
if(a != b):
    test+=1
if(a != c):
    test+=1
if(b != c):
    test+=1
if(test == 0):
    print("Equilatero")
if(test != 0):
    print("NO equilatero")

Selezioni doppie

  • Righe di codice: 7
  • Selezioni doppie: 2
  • Confronti: 1 | 2
if(a == b):
    if(b == c):
        print("Equilatero")
    else:
        print("NO equilatero")
else:
    print("NO equilatero")
  • Righe di codice: 10
  • Selezioni doppie: 3
  • Confronti: 1 | 2 | 3
if(a != b):      
    print("NO equilatero")
else:
    if(a != c):
        print("NO equilatero")
    else:
        if(b != c):
            print("NO equilatero")
        else:
            print("Equilatero")

Selezioni doppie + Operatori logici

  • Righe di codice: 4
  • Selezioni doppie: 1
  • Confronti: 1 | 2
if(a == b) and (b == c):
    print("Equilatero")
else:
    print("NO equilatero")
  • Righe di codice: 4
  • Selezioni doppie: 1
  • Confronti: 1 | 2 | 3
if(a != b) or (a != c) or (b != c):
    print("NO Equilatero")
else:
    print("Equilatero")

Scaleno?

Selezioni singole

  • Righe di codice: 11
  • Selezioni singole: 5
  • Confronti: 5
test=0
if(a != b):
    test+=1
if(a != c):
    test+=1
if(b != c):
    test+=1
if(test == 3):
    print("Scaleno")
if(test != 3):
    print("NO scaleno")
  • Righe di codice: 11
  • Selezioni singole: 5
  • Confronti: 5
test=0
if(a==b):
    test+=1
if(a==c):
    test+=1
if(b==c):
    test+=1
if(test==0):
    print("Scaleno")
if(test!=0):
    print("NO scaleno")

Selezioni doppie

  • Righe di codice: 10
  • Selezioni doppie: 3
  • Confronti: 1 | 2 | 3
if(a != b):
    if(a != c):
        if( b!= c)
            print("Scaleno")
        else:
            print("NO scaleno")
    else:
        print("NO scaleno")
else:
    print("NO scaleno")
  • Righe di codice: 10
  • Selezioni doppie: 3
  • Confronti: 1 | 2 | 3
if(a == b):      
    print("NO scaleno")
else:
    if(a == c):
        print("NO scaleno")
    else:
        if(b == c):
            print("NO scaleno")
        else:
            print("Scaleno")

Selezioni doppie + Operatori logici

  • Righe di codice: 4
  • Selezioni doppie: 1
  • Confronti: 1 | 2 | 3
if(a != b) and (a != c) and (b != c):
    print("Scaleno")
else:
    print("NO scaleno")
  • Righe di codice: 4
  • Selezioni doppie: 1
  • Confronti: 1 | 2 | 3
if(a == b) or (a == c) or (b == c):
    print("NO scaleno")
else:
    print("Scaleno")

Isoscele?

Selezioni singole

  • Righe di codice: 11
  • Selezioni singole: 5
  • Confronti: 5
test=0
if(a == b):
    test+=1
if(a == c):
    test+=1
if(b == c):
    test+=1
if(test == 1):
    print("Isoscele")
if(test != 1):
    print("NO isoscele")

Operatori logici

  • Righe di codice: 8
  • Selezione multipla: 1
  • Confronti: 2 | 3 | 4 | 5 | 6
if(a == b) and (a != c):
    print("Isoscele")
elif(a != b) and (a == c):
    print("Isoscele")
elif(a != b) and (b == c):
    print("Isoscele")
else:
    print("NO isoscele")
  • Righe di codice: 4
  • Selezione doppia: 1
  • Confronti: 2 | 3 | 4 | 5 | 6
if(a == b) and (a != c) or \
  (a != b) and (a == c) or \
  (a != b) and (b == c):
    print("Isoscele")
else:
    print("NO isoscele")

Continua…

  1. Se equilatero è anche isoscele?
  2. Raggruppa nello stesso codice più caratteristiche: equilatero -> isoscele -> scaleno.
  3. Triangolo Rettangolo (a^2+b^2 = c^2, …)
  4. Triangolo Rettangolo -> Ottusangolo -> Acutangolo?
  5. Controlla che i valori in ingresso siano > 0.
  6. Controlla che sia un vero triangolo (a < b+c, …).