Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Validar polinomio

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico
Mensaje Mie May 03, 2006 2:29 pm
dacons
Perlero Nuevo
Perlero Nuevo
Registrado: 27 Feb 2006
Mensajes: 48
Validar polinomio Responder citando

Muy buenas a todos, estoy intentando validar un polinomio que puede tener dos estructuras:
Cita:
y=x3+25x+3 ó y=6x3-6x2+5x


lo he intentado asi:
Código:
if($pol=~/^[y]{1}[=]{1}[x]{1}[2]{1}[+]{1}[0-9]{1, }[x]{1}[+]{1}[0-9]{1, }$/ ||
    $pol=~/^[y]{1}[=]{1}[0-9]{1, }[x]{1}[3]{1}[-]{1}[0-9]{1, }[x]{1}[2]{1}[0-9]{1, }[x]{1}$/){
    print "Polinomio valido";
}else{
        print "Polinomio no valido";
}

pero al hacer la prueba con un polinomio válido no entra ¿por qué?
Mensaje Mie May 03, 2006 3:32 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4082
Ubicación: Valladolid, España
Responder citando

Código:
if( $pol=~/^[y]{1}[=]{1}[x]{1}[2]{1}[+]{1}[0-9]{1, }[x]{1}[+]{1}[0-9]{1, }$/ ||
    $pol=~/^[y]{1}[=]{1}[0-9]{1, }[x]{1}[3]{1}[-]{1}[0-9]{1, }[x]{1}[2]{1}[0-9]{1, }[x]{1}$/){
    print "Polinomio valido";
}else{
    print "Polinomio no valido";
}
Código:
if( $pol=~/^y=x2\+[0-9]{1, }x\+[0-9]{1, }$/ ||
    $pol=~/^y=[0-9]{1, }x3-[0-9]{1, }x2[0-9]{1, }x$/){
    print "Polinomio valido";
}else{
    print "Polinomio no valido";
}
Código:
if( $pol=~/^y=x2\+\d+x\+\d+$/ ||
    $pol=~/^y=\d+x3-\d+x2\d+x$/){
    print "Polinomio valido";
}else{
    print "Polinomio no valido";
}
Los dos polinomios de muestra tienen componente x3, por lo que la primera parte del if no coincidirá.
En cuanto a la segunda parte, falta un signo '+' entre el x2 y el x.

Este patrón reconoce los dos polinomios:
Código:
@polys = qw( y=x3+x+3 y=6x3-6x2+5x );
foreach $pol ( @polys ) {
    if ( $pol =~ /^y=\d*x3([-+]\d+x2)?\+\d+x(\+\d+)?$/ ) {
        print "Polinomio válido";
    } else {
        print "Polinomio no válido";
    }
}
Mensaje Mie May 03, 2006 4:07 pm
dacons
Perlero Nuevo
Perlero Nuevo
Registrado: 27 Feb 2006
Mensajes: 48
Responder citando

Lo siento era x2 y no x3 como puse arriba.
El último código es más eficiente pero el penúltimo es más comprensible para mis pequeños conocimientos.
Muchisimas gracias
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group