mapb_1990 0 Denunciar post Postado Janeiro 6, 2009 boas. é o seguinte: tenho um método que pede ao utilizador k insira uma função do 3º grau, mas nao está a validar. o que queria era criar uma função que testa-se, se o input estava no formato correcto, que retorna-se true ou false. /** * Método que lê uma função do 3º grau, no formato: * ax^3+bx^2+cx+d. <br /><br /> * * Autores: Miguel Borges <br /> * Data de criação: 06-01-2009 <br /> * Data da última actualização: 06-01-2009 <br /> * * @param msg Nome do que lê. */ public static String lerFuncao (String msg) { Scanner in = new Scanner(System.in); String funcao; do { System.out.println("Insira " + msg + ", no seguinte formato: ax^3+bx^2+cx+d"); funcao = in.next(); } while (!checaFuncao(funcao)); return funcao; } o a,b,c pode ser qualquer numero positivo ou negativo, inteiro ou decimal. o ideal era que se pudesse optar por não inserir os valores de a, b ou c, caso estes sejam 1, ou não inserir o polinómio caso sejam 0. exemplos: x^3+cx --> neste caso, podia-se omitir pk a=1, b=0 e d=0 depois, tb precisava de um metodo que recebia a função e que retornar-se um vector com os valores de a,b,c e d alguem ajuda? Compartilhar este post Link para o post Compartilhar em outros sites
mapb_1990 0 Denunciar post Postado Janeiro 7, 2009 boas, ja consegui fazer o metodo que recebe a função e que retornar-se um vector com os valores de a,b,c e d. só me falta validar se o utilizador inseriu a função direita. eu sei k isso se faz com regex, mas não sei fazer. :P :P :P alguem ajuda? Compartilhar este post Link para o post Compartilhar em outros sites
mapb_1990 0 Denunciar post Postado Janeiro 8, 2009 regex = "((\\-|\\+)?(\\d+|\\d+[\u002E|\u002C]\\d+)?x\\^3)?" + "((\\-|\\+)(\\d+|\\d+[\u002E|\u002C]\\d+)?x\\^2)?" + "((\\-|\\+)(\\d+|\\d+[\u002E|\u002C]\\d+)?x)?" + "((\\-|\\+)(\\d+|\\d+[\u002E|\u002C]\\d+)?)?"; fiz estr regex, mas tem um problema. kuando nao insiro a 1ª parte da função (ax^3), abrigatóriamente tenho que inserir o sinal nas outras. por exemplo: se inserir 2x^2+4x+65 nao passa, mas se for +2x^2+4x+65, já da. oro, eu queria que aceita-se com ou sem sinal, caso seja o primeio polinomio. Compartilhar este post Link para o post Compartilhar em outros sites