Qualificatore di triangoli

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

Osserva le soluzioni proposte

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

Equilatero?

  • 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")
  • 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")
  • 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?

  • 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")
  • 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")
  • 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?

  • 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")

  • 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, …).