class Cifra2 { /* 7 led permettono di formare tutte le cifre disponendoli come segue: led1 led2 led3 led4 led5 led6 led7 */ hidden field Led led1 hidden field Led led2 hidden field Led led3 hidden field Led led4 hidden field Led led5 hidden field Led led6 hidden field Led led7 hidden field int cifra constructor() { led1 := new Led(); led2 := new Led(); led3 := new Led(); led4 := new Led(); led5 := new Led(); led6 := new Led(); led7 := new Led(); componiCifra(0) } /* accende o spegne i led in modo da formare la cifra indicata */ method void componiCifra(int cifra) { /* inizializziamo la cifra */ this.cifra := cifra; switch (cifra) { case (0) { led1.on(); led2.on(); led3.on(); led4.off(); led5.on(); led6.on(); led7.on(); break } case (1) { led1.off(); led2.off(); led3.on(); led4.off(); led5.off(); led6.on(); led7.off(); break } case (2) { led1.on(); led2.off(); led3.on(); led4.on(); led5.on(); led6.off(); led7.on(); break } case (3) { led1.on(); led2.off(); led3.on(); led4.on(); led5.off(); led6.on(); led7.on(); break } case (4) { led1.off(); led2.on(); led3.on(); led4.on(); led5.off(); led6.on(); led7.off(); break } case (5) { led1.on(); led2.on(); led3.off(); led4.on(); led5.off(); led6.on(); led7.on(); break } case (6) { led1.on(); led2.on(); led3.off(); led4.on(); led5.on(); led6.on(); led7.on(); break } case (7) { led1.on(); led2.off(); led3.on(); led4.off(); led5.off(); led6.on(); led7.off(); break } case (8) { led1.on(); led2.on(); led3.on(); led4.on(); led5.on(); led6.on(); led7.on(); break } case (9) { led1.on(); led2.on(); led3.on(); led4.on(); led5.off(); led6.on(); led7.on(); break } } default "Una cifra deve essere compresa fra 0 e 9".output() } method boolean incrementa() { cifra++; if (cifra = 10) then cifra := 0; componiCifra(cifra); return cifra = 0 } method String toString() { String risultato := ""; if (led1.isOn()) then risultato := risultato.concat(" _\n") else risultato := risultato.concat(" \n"); if (led2.isOn()) then risultato := risultato.concat("|") else risultato := risultato.concat(" "); if (led4.isOn()) then risultato := risultato.concat("_") else risultato := risultato.concat(" "); if (led3.isOn()) then risultato := risultato.concat("|\n") else risultato := risultato.concat(" \n"); if (led5.isOn()) then risultato := risultato.concat("|") else risultato := risultato.concat(" "); if (led7.isOn()) then risultato := risultato.concat("_") else risultato := risultato.concat(" "); if (led6.isOn()) then risultato := risultato.concat("|") else risultato := risultato.concat(" "); return risultato } /* un main di test */ method void main() { Cifra cifra := new Cifra(); int i; for (i := 0; i <= 9; i++) { cifra.componiCifra(i); cifra.toString().output(); "\n".output() } } }