Vedi la discussione: Esame di Stato – Seconda prova di Informatica – 1987
Osserva le soluzioni proposte
- selezioni singole
- selezioni doppie
- selezioni doppie + selezioni annidate
- selezioni doppie + operatori logici
- selezioni multiple
- 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…
- Se equilatero è anche isoscele?
- Raggruppa nello stesso codice più caratteristiche: equilatero -> isoscele -> scaleno.
- Triangolo Rettangolo (a^2+b^2 = c^2, …)
- Triangolo Rettangolo -> Ottusangolo -> Acutangolo?
- Controlla che i valori in ingresso siano > 0.
- Controlla che sia un vero triangolo (a < b+c, …).