(New page: = Problema = Os elementos de uma colecção de nomes ('''String''') têm um conjunto de propriedades a verificar. Para tal, foi criado um verificador automático que faz uso de avaliadore...) |
(→Problema) |
||
Line 1: | Line 1: | ||
= Problema = | = Problema = | ||
− | Os elementos de uma colecção de nomes ('''String''') têm um conjunto de propriedades a verificar. Para tal, foi criado um verificador automático que faz uso de avaliadores booleanos representados por objectos. Cada avaliador booleano tem uma função '''ok''' que aceita uma String e devolve um valor booleano. Implemente os seguintes predicados e operadores: '''NonZeroLength''', ''' | + | Os elementos de uma colecção de nomes ('''String''') têm um conjunto de propriedades a verificar. Para tal, foi criado um verificador automático que faz uso de avaliadores booleanos representados por objectos. Cada avaliador booleano tem uma função '''ok''' que aceita uma String e devolve um valor booleano. Implemente os seguintes predicados e operadores: '''NonZeroLength''', '''LengthIsEven''', '''LengthIsOdd''', '''LengthGreaterThan''', '''LengthLesserThan''', '''LengthEqualTo''', '''And''' (operador binário que é verdadeiro quando dois elementos são verdadeiros), '''Or''' (operador binário que é falso quando dois elementos são falsos), '''Not''' (operador unário que é verdadeiro quando o seu argumento é falso). |
Exemplo: | Exemplo: |
Os elementos de uma colecção de nomes (String) têm um conjunto de propriedades a verificar. Para tal, foi criado um verificador automático que faz uso de avaliadores booleanos representados por objectos. Cada avaliador booleano tem uma função ok que aceita uma String e devolve um valor booleano. Implemente os seguintes predicados e operadores: NonZeroLength, LengthIsEven, LengthIsOdd, LengthGreaterThan, LengthLesserThan, LengthEqualTo, And (operador binário que é verdadeiro quando dois elementos são verdadeiros), Or (operador binário que é falso quando dois elementos são falsos), Not (operador unário que é verdadeiro quando o seu argumento é falso).
Exemplo:
<java5> String s1 = "batata"; String s2 = "oo"; String s3 = "xyz"; Verifier v = new Or(new And(new LengthGreaterThan(5), new LengthLesserThan(8)), new LengthEqualTo(2)); boolean b1 = v.ok(s1); // true boolean b2 = v.ok(s2); // true boolean b3 = v.ok(s3); // false </java5>