Foros del Web » Programando para Internet » PHP »

orden de una cadena

Estas en el tema de orden de una cadena en el foro de PHP en Foros del Web. Hola amigos, tengo dudas y quiero que me ayuden a orientarme sobre el tema, lo que yo quiero lograr es hacer un sistema que ayude ...
  #1 (permalink)  
Antiguo 07/06/2014, 20:49
 
Fecha de Ingreso: junio-2014
Mensajes: 3
Antigüedad: 10 años, 6 meses
Puntos: 0
Pregunta orden de una cadena

Hola amigos, tengo dudas y quiero que me ayuden a orientarme sobre el tema, lo que yo quiero lograr es hacer un sistema que ayude a detectar el orden correcto de una cadena, por ejemplo si quiero resolver una ecuación de primer grado agrego al input la ecuación completa (2*x+3=0 y todas sus derivadas) y que al querer resolverla me exiga escribirlo de buena manera, yo tengo esto:

if(preg_match('~[^a-z0-9\-_\+\*\=]+~i', $ecuacion)){
echo'<div class="pa5 uiBoxRed">Has ingresado caracteres inv&aacute;lidos.</div>';}

pero quiero que verifique que este posea un solo signo igual (=), una sola letra y eso. Agradeceria su ayuda muchisimas gracias de antemano :)
  #2 (permalink)  
Antiguo 08/06/2014, 11:54
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 7 meses
Puntos: 320
Respuesta: orden de una cadena

Quizas te interese este codigo, aunque lo ideal es que si no entiendes algo de su funcionamiento preguntes, no que copies y pegues solamente.

Código PHP:
Ver original
  1. <?php
  2.     // Pre-requisito de las ecuacion: el termino con la variable va primero.
  3.  
  4.     $ecuaciones = array (
  5.                      "3x + 20 = 26"
  6.                    , "5*z - 6 = 9"
  7.                    , "2W + 20 = 34"
  8.                    , "30+20=3"
  9.                    , "30-20=3"
  10.                         );
  11.  
  12.     // Validar.
  13.     foreach($ecuaciones as $ecuacion)
  14.     {
  15.         if(preg_match('/^([0-9]+)( *)[*]{0,1}( *)([A-Za-z]){1,1}( *)(\+|\-)( *)([0-9]+)( *)=( *)([0-9]+)$/', $ecuacion, $partes))
  16.         {
  17.             // Es correcta, resolver.
  18.             echo("La ecuacion '$ecuacion' es valida y su resolucion es:
  19.                    <b>$partes[4] = ".(($partes[11]+(($partes[6] == "+" ? -1 : 1)*$partes[8]))/$partes[1])."</b><br>");
  20.         }
  21.         else
  22.         {
  23.             echo("La ecuacion '$ecuacion' es invalida.<br>");
  24.         }
  25.     }

La salida es:
Cita:
La ecuacion '3x + 20 = 26' es valida y su resolucion es: x = 2
La ecuacion '5*z - 6 = 9' es valida y su resolucion es: z = 3
La ecuacion '2W + 20 = 34' es valida y su resolucion es: W = 7
La ecuacion '30+20=3' es invalida.
La ecuacion '30-20=3' es invalida.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: cadena, ecuacion, orden
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:42.