Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Mac en 16 de Abril 2014, 03:38

Título: ecuación cuadrática en PHP (ecuación de segundo grado).
Publicado por: Mac en 16 de Abril 2014, 03:38
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 (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);
        
    
    }

    
}
?>
Título: Re:ecuación cuadrática en PHP (ecuación de segundo grado).
Publicado por: César Krall 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.
Título: Re:ecuación cuadrática en PHP (ecuación de segundo grado).
Publicado por: Mac 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;
        
    
    }

    
}
?>
Título: Re:ecuación cuadrática en PHP (ecuación de segundo grado).
Publicado por: César Krall 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,
Título: Re:ecuación cuadrática en PHP (ecuación de segundo grado).
Publicado por: Mac 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>
Título: Re:ecuación cuadrática en PHP (ecuación de segundo grado).
Publicado por: Mac 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>";

        
?>
Título: Re:ecuación cuadrática en PHP (ecuación de segundo grado).
Publicado por: César Krall 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;
    }
}
?>
Título: Re:ecuación cuadrática en PHP (ecuación de segundo grado).
Publicado por: Mac 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 !
--------------------------------------------------------------------------------
Título: Re:ecuación cuadrática en PHP (ecuación de segundo grado).
Publicado por: Mac 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 
    }

}

?>
Título: Re:ecuación cuadrática en PHP (ecuación de segundo grado).
Publicado por: Mac 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 ?¿ :-\
Título: Re:ecuación cuadrática en PHP (ecuación de segundo grado).
Publicado por: Mac 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 ?

Título: Re:ecuación cuadrática en PHP (ecuación de segundo grado).
Publicado por: César Krall 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,