Autor Tema: ecuación cuadrática en PHP (ecuación de segundo grado).  (Leído 21396 veces)

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Hola comunidad , Pidiéndoles un poco de su ayuda, estoy haciendo una operación en

PHP de la función cuadrática pero no me surge y la estoy necesitando con un poco de

urgencia aquí les pego el código para que me rectifiquen y me ayuden .


Les adjunto la imagen y también el link de la Función Cuadrática que necesito hacer.

http://www.profesorenlinea.cl/imagenmatematica/funcion_cuadr_graficar003.gif

----------------------------------------------------------------------------------------------------

Código: [Seleccionar]
<?php 



class Operaciones implements Calculos{
    
//put your code here

    
private $a;
    private 
$b;
    private 
$c;
    function 
__construct($a$b$c) {
        
$this->$a;
        
$this->$b;
        
$this->$c;
    }
    public function 
getA() {
        return 
$this->a;
    }

    public function 
getB() {
        return 
$this->b;
    }

    public function 
getC() {
        return 
$this->c;
    }

    public function 
setA($a) {
        
$this->$a;
    }

    public function 
setB($b) {
        
$this->$b;
    }

    public function 
setC($c) {
        
$this->$c;
    }

    public function 
cuadratica() {
        
    
$cuadratica= -$this->floatsqrt($this->b*$this->b);
        
    
    }

    
}
?>
« Última modificación: 16 de Abril 2014, 08:10 por César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:ecuación cuadrática en PHP (ecuación de segundo grado).
« Respuesta #1 en: 16 de Abril 2014, 08:23 »
Hola, siguiendo la lógica que se describe aquí: https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=326:pseudocodigo-y-diagrama-de-flujo-ecuacion-cuadratica-2o-grado-si-entonces-sino-if-then-else-cu00143a&catid=28:curso-bases-programacion-nivel-i&Itemid=59

El código de la función sería algo parecido a esto:

Código: [Seleccionar]
    public function cuadratica() {
       
$d = $b*$b -4*$a*$c;
$e = 2*$a;
if ($d==0) {
$cuadratica[0] = -$b/$e;
$cuadratica[1] = $cuadratica[0];

}
else {
if ($d>0) {
$cuadratica[0] = (-$b + sqrt($d))/$e;
$cuadratica[1] = (-$b - sqrt($d))/$e;
}
else {
$cuadratica[0] = NAN;
$cuadratica[1] = NAN;
}
}
   
return $cuadratica;
   
    }

Saludos.
Responsable de departamento de producción aprenderaprogramar.com

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:ecuación cuadrática en PHP (ecuación de segundo grado).
« Respuesta #2 en: 16 de Abril 2014, 17:31 »
Hola Cesar Gracias por tu ayuda esta excelente ! pero por que cundo armo todo el codigo me dice que las variables $b, $a, $c  seems to be uninitialized ? no entiendo ? si ya esta inicializadas con el private.
----------------------------------------------------------------------------------------------
Tambien quisiera saber que significa en el código NAN; 


-----------------------------------------------------------------------------------------------

Te pego el código.

Código: [Seleccionar]
<?php 

include_once 'Calculos.php';

class 
Operaciones implements Calculos{
    
//put your code here

    
private $a;
    private 
$b;
    private 
$c;
    
 
    function 
__construct($a$b$c) {
        
$this->$a;
        
$this->$b;
        
$this->$c;
    }
    public function 
getA() {
        return 
$this->a;
    }

    public function 
getB() {
        return 
$this->b;
    }

    public function 
getC() {
        return 
$this->c;
    }

    public function 
setA($a) {
        
$this->$a;
    }

    public function 
setB($b) {
        
$this->$b;
    }

    public function 
setC($c) {
        
$this->$c;
    }

    public function 
cuadratica() {
        
    
$d $b*$b -4*$a*$c;
$e 2*$a;
if ($d==0) {
$cuadratica[0] = -$b/$e;
$cuadratica[1] = $cuadratica[0];

}
else {
if ($d>0) {
$cuadratica[0] = (-$b sqrt($d))/$e;
$cuadratica[1] = (-$b sqrt($d))/$e;
}
else {
$cuadratica[0] = NAN;
$cuadratica[1] = NAN;
}
}
    
return $cuadratica;
        
    
    }

    
}
?>
« Última modificación: 16 de Abril 2014, 17:37 por JM »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:ecuación cuadrática en PHP (ecuación de segundo grado).
« Respuesta #3 en: 17 de Abril 2014, 08:39 »
Prueba a usar $this->a, $this->b y $this->c en vez de $a, $b y $c.

NAN significa "not a number". NAN viene siendo una operación matemática no permitida. Por ejemplo si escribes en una calculadora 0/0 te muestra un error porque esta operación no se puede calcular. En el caso de las ecuaciones cuadráticas hay valores de a, b, c que hacen que la ecuación no tenga solución debido a que se genera una raíz cuadrada negativa y una raíz cuadrada negativa no es una operación matemática permitida. Si la ecuación no tiene solución el resultado sería NAN. Saludos,
Responsable de departamento de producción aprenderaprogramar.com

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:ecuación cuadrática en PHP (ecuación de segundo grado).
« Respuesta #4 en: 17 de Abril 2014, 18:49 »
Gracias Cesar pude solucionarlo con el $this   :)

Pero Ahora me surge este pequeño problema, cuando quiero sacar los valores !  :(

Este es el código llamado probador.

Cuando lo ejecuto me sale error diciéndome :

Notice: Array to string conversion in C:\xampp\htdocs\FCuadratica\Probador.php on line 29
--> Array

-------------------------------------------------------------------------------------------------------------
Código: [Seleccionar]
<!DOCTYPE html>
<html>
    <head>
       
        <title> Programa  </title>
     <?php
           
        
        
include_once 'Operacion.php';

        include_once 
'Calculos.php';
        
        
?>

   
   
   
    </head>
    <body>
        <?php
       
     $a
=4;
     
$b=5;
     
$c=1;
     
     
$p = new Operacion ($a$b$c);
 
  
 
    echo 
"  --> " $p->Cuadratica()."</br>";

    




        
?>

    </body>
</html>

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:ecuación cuadrática en PHP (ecuación de segundo grado).
« Respuesta #5 en: 18 de Abril 2014, 01:53 »
-He colocado el codigo de esta manera y tampoco me realiza la operación!  :(

Tratando de encontrar la solución !
-----------------------------------------------------------------------------------------------
Código: [Seleccionar]
  <?php

        
array ($a=4$b=5$c=1);
     
        
$p = new Operacion ($a$b$c);
 

    echo 
" --> " $p->Cuadratica()."</br>";

        
?>

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:ecuación cuadrática en PHP (ecuación de segundo grado).
« Respuesta #6 en: 18 de Abril 2014, 12:44 »
Tienes que tener en cuenta que el método te devuelve dos resultados, en un array, el primer resultado con índice cero y el segundo resultado con índice 1:

Así me funciona a mí (tienes que poner el nombre de archivo que estés usando tú):

Código: [Seleccionar]
<?php 

include_once 'archivoPrueba.php';

$a = -2;
$b 1;
$c 1;

$p = new Operaciones($a$b$c);

echo 
'Valor de a: '.$a.'<br/>';
echo 
'Valor de b: '.$b.'<br/>';
echo 
'Valor de c: '.$c.'<br/><br/>';

echo 
'Solucion 1: '$p->Cuadratica()[0].'<br/>';
echo 
'Solucion 2: '$p->Cuadratica()[1];

?>

Código: [Seleccionar]
<?php 
class Operaciones{
    
//put your code here

    
private $a;
    private 
$b;
    private 
$c;
    function 
__construct($a$b$c) {
        
$this->$a;
        
$this->$b;
        
$this->$c;
    }
    public function 
getA() {
        return 
$this->a;
    }

    public function 
getB() {
        return 
$this->b;
    }

    public function 
getC() {
        return 
$this->c;
    }

    public function 
setA($a) {
        
$this->$a;
    }

    public function 
setB($b) {
        
$this->$b;
    }

    public function 
setC($c) {
        
$this->$c;
    }

    public function 
cuadratica() {
        
$d $this->b*$this->-4*$this->a*$this->c;
$e 2*$this->a;
if ($d==0) {
$cuadratica[0] = -$this->b/$e;
$cuadratica[1] = $cuadratica[0];
}
else {
if ($d>0) {
$cuadratica[0] = (-$this->sqrt($d))/$e;
$cuadratica[1] = (-$this->sqrt($d))/$e;
}
else {
$cuadratica[0] = NAN;
$cuadratica[1] = NAN;
}
}    
return $cuadratica;
    }
}
?>
Responsable de departamento de producción aprenderaprogramar.com

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:ecuación cuadrática en PHP (ecuación de segundo grado).
« Respuesta #7 en: 18 de Abril 2014, 17:59 »
Hola Cesar Krall  :)

Te comento que yo había escrito el código ha si con el array
Código: [Seleccionar]
echo 'X1: '. $p->Cuadratica()[0]; pero me salia error  y por ese error no me decidía a ejecutarlo!!

Te comento que el error que sigue saliendo en la instrucción es este que dice :

 < Language feature not compatible with PHP version indicated in project settings >

Por esta razon estaba un poco loco ! jaja y pues comencé a inventar y nada !

Pero lo puedo ejecutar bien con el error que sale mencionado !

Te adjunto un pantalla-so ! del error !
--------------------------------------------------------------------------------

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:ecuación cuadrática en PHP (ecuación de segundo grado).
« Respuesta #8 en: 19 de Abril 2014, 15:30 »
Cesar otra fora de hacerlo que e echo es esta pero no so por que me sale el
Código: [Seleccionar]
return $cuadratica; con este mensaje: Variable $cuadratica seems to be uninitialized  no entiendo ! por que esta variable no creo yo que sea necesario inicializarla.  :-\

------------------------------------------------------------------------------------------------------
Código: [Seleccionar]
    public function Cuadratica() {

       
            if($this->a != 0) {
        }
     
        $descriminante = ($this->b * $this->b) - 4 * $this->a * $this->c;
   
        if($descriminante >= 0) { //raices reales
       
         $raiz = sqrt($descriminante);
         $x1 = (-$this->b + $raiz)/(2*  $this->a);
         $x2 = (-$this->b - $raiz)/(2*  $this->a);
     
         
        } else { //raices reales
          $raiz = sqrt(-$descriminante)/(2*  $this->a);
          $real = -$this->b/(2*  $this->a);
          $x1 = $real.' + '.$raiz.'i';
          $x2 = $real.' - '.$raiz.'i';
      }
     

        return $cuadratica; // Variable $cuadratica seems to be uninitialized 
    }

}

?>

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:ecuación cuadrática en PHP (ecuación de segundo grado).
« Respuesta #9 en: 21 de Abril 2014, 00:34 »
Cesar otra Forma que e echo es esta pero no e podido hallar el problema del

Código: [Seleccionar]
return $cuadratica;
con este mensaje: Variable $cuadratica seems to be uninitialized no entiendo ! por que

esta variable no creo yo que sea necesario inicializarla.  o si ?¿ :-\

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:ecuación cuadrática en PHP (ecuación de segundo grado).
« Respuesta #10 en: 22 de Abril 2014, 16:13 »
No e podido encontrar el problema del
Código: [Seleccionar]
return $cuadratica;
Sale este mensaje  Variable $cuadratica seems to be uninitialized no entiendo ! por que ?


César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:ecuación cuadrática en PHP (ecuación de segundo grado).
« Respuesta #11 en: 22 de Abril 2014, 22:47 »
El mensaje dice que estás intentando devolver $cuadratica como resultado de una función cuando esa variable no existe (no ha sido inicializada, en realidad php es de tipado débil y la variable existe desde el momento en que la usas, pero devolver como resultado de una función una variable sin inicializar no tendría demasiado sentido).

He probado el código que te dejé en diferentes servidores y en todos ellos funciona correctamente, si te da problemas quizás se deba a que estés usando una versión de php anticuada. Revisa la versión de php que estés usando y si es anticuada actualízala, o si no puedes acceder al servidor, usa otro (hay servidores gratuitos que te permiten crear cuentas gratis). Saludos,
Responsable de departamento de producción aprenderaprogramar.com

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".