Foros del Web » Programando para Internet » PHP »

como lo ago????

Estas en el tema de como lo ago???? en el foro de PHP en Foros del Web. hola compañeros soy nuevo en el foro y necesito su ayuda en realidad soy novato en php y tengo no se como puedo lograr implementar ...
  #1 (permalink)  
Antiguo 01/06/2010, 16:02
 
Fecha de Ingreso: junio-2010
Mensajes: 5
Antigüedad: 14 años, 5 meses
Puntos: 0
como lo ago????

hola compañeros soy nuevo en el foro y necesito su ayuda en realidad soy novato en php y tengo no se como puedo lograr implementar un codigo ya echo en php

la idea es que ingrese 2 fracciones y con estas 2 fracciones realize las 4 operaciones matematicas basicas es decir si ingreso 3/4 y 2/1 aga la suma, resta , multiplicacion y division de esos numeros


este es el codigo que quiero implementar para php... esta escrito en java (el codigo no es mio pero lo comprendo) muchas gracias ojala alguien pueda implementar ese codigo en php!!!!


public class Fraccion {
private int num;
private int den;
public Fraccion() {
num=0;
den=1;
}
public Fraccion(int x, int y) {
num=x;
den=y;
}
public static Fraccion sumar(Fraccion a, Fraccion b){
Fraccion c=new Fraccion();
c.num=a.num*b.den+b.num*a.den;
c.den=a.den*b.den;
return c;
}
public static Fraccion restar(Fraccion a, Fraccion b){
Fraccion c=new Fraccion();
c.num=a.num*b.den-b.num*a.den;
c.den=a.den*b.den;
return c;
}
public static Fraccion multiplicar(Fraccion a, Fraccion b){
return new Fraccion(a.num*b.num, a.den*b.den);
}
public static Fraccion dividir(Fraccion a, Fraccion b){
return multiplicar(a, inversa(b));
}

}
  #2 (permalink)  
Antiguo 01/06/2010, 16:19
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 17 años, 5 meses
Puntos: 49
Respuesta: como lo ago????

Que tal elpate , dices que entiendes el codigo que expones pues bien antes que nada debes leer el manual de PHP pasa saber como se implementan funciones, lo que necesitas no es tan complicado pero es bueno que primero vayas al manual
PHP - Functions


Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #3 (permalink)  
Antiguo 01/06/2010, 16:46
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 8 meses
Puntos: 10
Respuesta: como lo ago????

Lo que tienes en tu java seria asi con php:

Código PHP:

//esto, en php, seria una variable: $a (que no presisa ser declarada antes)

//esta seria la funcion sumar() ...y asi
function sumar($a,$b){
return 
$a+$b;
}

function 
restar($a,$b){
return 
$a-$b;
}

function 
multiplicar($a,$b){
return 
$a*$b;
}

function 
dividir($a,$b){
return 
$a/$b;
}

//cambiando sumar por restar, restara 
//entre los parentesis, pones los valores
echo sumar(2,2); 
NOTA: lo correcto es hacer una clase con sus metodos, con esas funciones dentro -que alli se llamarian metodos ...si tengo ganas la hago...

Saludos...!
  #4 (permalink)  
Antiguo 01/06/2010, 17:01
 
Fecha de Ingreso: junio-2010
Mensajes: 5
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: como lo ago????

gracias por sus respuestas!!!!!!!!!!

se supone que la variable $a y $b son por ejemplo $a=2/4 y $b=3/5 y el resultado de la suma tiene que ser numerador + numerador y denominador mas denominador seria

2+3=5
4+5=9

seria 5/9 el resultado se entiende¿?

wiwi74 puedes poner de ejemplo como se implementaria una clase con un metodo es decir creas la clase fraccion y el metodo "suma de fraccion" para comprender el uso de clases en y metodos en php... lo de mas es facil yo lo puedo hacer entiendo la logica matematica de las fracciones, es que nunca e trabajado con clases en php solo en java y creo que son un poco diferente

estaria muy agredecido de ustedes si me echan una mano!!!!

gracias y saludos :)
  #5 (permalink)  
Antiguo 01/06/2010, 17:27
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 8 meses
Puntos: 10
Respuesta: como lo ago????

Te paso una funcion que cree recien (con todo sus defectos y virtudes)


Código PHP:


function operacion($param){

switch (
$param[0]) {

    case 
"sumar":
        echo (
$param[1]+$param[2]);
        break;
    case 
"restar":
        echo (
$param[1]-$param[2]);
        break;
    case 
"multiplicar":
        echo (
$param[1]*$param[2]);
        break;
    case 
"dividir":
        echo (
$param[1]/$param[2]);
        break;
    case 
"":
        echo 
"introduzca los valores";
        break;

}
}



$valores = array("dividir",3/4,1/2);

operacion($valores); 
Se me complico la clase...

Mañana sera otro dia... quiza el sol ilumine mi mente...
  #6 (permalink)  
Antiguo 01/06/2010, 17:40
 
Fecha de Ingreso: junio-2010
Mensajes: 5
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: como lo ago????

gracias probare la funcion... espero que mañna puedas poner la clase y el metodo saludos!!!!!
  #7 (permalink)  
Antiguo 01/06/2010, 19:11
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 8 meses
Puntos: 10
Respuesta: como lo ago????

Al final salio...

Bueno es una clase normalita:

Código PHP:


class operaciones{

//declaramos las variables a usar (que dentro de la clase son atributos de la clase)
var $n1;
var 
$n2;
var 
$signo;
var 
$result;

//metodo costructor, llamado igual que la clase
//el cual asigna valor (en este caso a la variable $result)
function operaciones($n1$signo ,$n2){
//condicional
switch($signo){

case 
"sumar":
$this->result = ($n1 $n2);
break;

case 
"restar":
$this->result = ($n1 $n2);
break;

case 
"multiplicar":
$this->result = ($n1 $n2);
break;

case 
"dividir":
$this->result = ($n1 $n2);
break;

}


//metodo encargado de mostrar el resultado
function mostrarResultado(){
//apuntamos a la variable $result, resuelta en el metodo operaciones()
return $this->result;
}


}
//end calss



//creamos una instancia de la clase operaciones(), y aqui mismo le pasamos los valores
$newClass = new operaciones(12,"multiplicar",2);

//llamamos al metodo mostrarResultado() que mostrara el valor de $result
echo $newClass->mostrarResultado(); 

Última edición por wiwi74; 01/06/2010 a las 19:18
  #8 (permalink)  
Antiguo 01/06/2010, 21:31
 
Fecha de Ingreso: junio-2010
Mensajes: 5
Antigüedad: 14 años, 5 meses
Puntos: 0
gracias wiwi74 estoy implementando el codigo con la funcion que creaste (la primera que postiastes) cuando lo termine lo subo y lo trato de implementar en la clase y en el metodo!!!!!!!

gracias saludos!!!!!!

holaa de nuevo estoy implementando la funcion de wiwi74 pero quiero agregarle una funcion para que la fraccion me la muestre simplificada a su maxima expresion posible estube leyendo y encontre esta

<?php
function gmp_gcd($a, $b)
{
if ($a == 0 || $b == 0)
return abs( max(abs($a), abs($b)) );

$r = $a % $b;
return ($r != 0) ?
gmp_gcd($b, $r) :
abs($b);
}
$numerador = 20;
$denominador = 10;
$mcd = gmp_gcd($numerador, $denominador);
echo $mcd . '<br>';
$arriba = $numerador / $mcd;
$abajo = $denominador / $mcd;

$resultado = $arriba . '/' . $abajo;

echo $resultado; // devuleve 2/1

?>

pro me entrega la fraccion simplificada al maximo!!!!

gracias y saludos!!!!!

Última edición por GatorV; 02/06/2010 a las 20:45
  #9 (permalink)  
Antiguo 07/06/2010, 20:02
 
Fecha de Ingreso: junio-2010
Mensajes: 5
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: como lo ago????

volvi de nuevo!!!!!!! disculpen por no haberme aparecido pero estaba muy ocupado... les cuento que ya logre implemetar la funcion de wiwi74 ahora lo que tengo que hacer es implementar una clase con sus metodos (suma, resta, multiplicacion y division) obiamente para las fracciones voy a dejar la funcion que implemente en php (programacion estructurada) haber si alguien me ayuda implementarla a prog orientada a objetos con clases y metodos en php aca les va el codigo


son 2 pag php el main que es donde ago el ingreso de numeros


este es el main.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
<body>

<form id="form1" name="form1" method="post" action="ene.php">
<p>&nbsp;</p>
<label>
<input type="text" name="nom1" onkeypress="if (event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;"/>
______
<input type="text" name="nom2" onkeypress="if (event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;"/>
<br />
<input type="text" name="den1" onkeypress="if (event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;"/>
______
<input type="text" name="den2" onkeypress="if (event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;"/>
<br />
<br />
<input type="submit" name="Submit" value="calcula" />
<br />
</label>
<p>&nbsp;</p>
</form>
</body>
</html>

y este de abajo es el que realiza los calculos se llama ene.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>
<body>
<form name="dos" method="post" action="">
<?
for ($stan=0;$stan<1;$stan++){

if ($_POST["nom1"] =="" || $_POST["nom2"] =="" || $_POST["den1"] == "" || $_POST["den2"] == ""){
echo " LLENE TODOS LOS CAMPOS ";
echo "<a href=main.php>Volver</a>";break;
}else
if ($_POST["nom1"] < 1 || $_POST["nom2"] < 1 || $_POST["den1"] < 1 || $_POST["den2"] < 1 ){
echo " INGRESE NUMEROS SUPERIORES A 1 TODOS LOS CAMPOS";
echo "<a href=main.php>Volver</a>";break;
}else
$stan++;




$_POST["nom1"];
$_POST["nom2"];
$_POST["den1"];
$_POST["den2"];


$nom1=$_POST["nom1"];
$nom2=$_POST["nom2"];
$den1=$_POST["den1"];
$den2=$_POST["den2"];

$nom1;
$nom2;
$den1;
$den2;

function gmp_gcd($a, $b)
{
if ($a == 0 || $b == 0)
return abs( max(abs($a), abs($b)) );

$r = $a % $b;
return ($r != 0) ?
gmp_gcd($b, $r) :
abs($b);
}


function mcd($a,$b) {
while (($a % $b) != 0) {
$c = $b;
$b = $a % $b;
$a = $c;
}
return $b;
}

function mcm($a,$b) {
return ($a * $b) / mcd($a,$b);

}

$maximo=mcd($den1,$den2);
$minimo=mcm($den1,$den2);


echo " el maximo comun divisor es ";
echo $maximo;
echo " el minimo comun multiplo es ";
echo $minimo;
echo "<br />";
echo "<br />";


function operacion0($param0){
global $maximo;
global $minimo;

switch ($param0[0]) {
case "nada":

$arg9=($param0[1]);
$arg10=($param0[2]);
echo $arg9;
echo "/";
echo $arg10;
$numerador = $arg9;
$denominador = $arg10;
$mcd = gmp_gcd($numerador, $denominador);
$arriba = $numerador / $mcd;
$abajo = $denominador / $mcd;
if ($abajo==1){
echo " simplificada = ";
$resultado=$arriba;
echo $arriba;
}else{
echo " simplificada = ";
$resultado = $arriba . '/' . $abajo;
echo $resultado;
}
echo "<br />";
$arg11=($param0[3]);
$arg12=($param0[4]);
echo $arg11;
echo "/";
echo $arg12;
$numerador1 = $arg11;
$denominador1 = $arg12;
$mcd = gmp_gcd($numerador1, $denominador1);
$arriba1 = $numerador1 / $mcd;
$abajo1 = $denominador1 / $mcd;
if ($abajo1==1){
echo " simplificada = ";
$resultado1= $arriba1;
echo $arriba1;
}else{
echo " simplificada = ";
$resultado1 = $arriba1 . '/' . $abajo1;
echo $resultado1;
}

}
}

function operacion1($param1){
echo "<br />";
global $maximo;
global $minimo;

switch ($param1[0]) {
case "sumar":
echo "<br />";
echo "la suma es ";
if($param1[2]==$param1[4]){
$arg=($param1[1]+$param1[3]);
//echo ("/");
$arg0=($param1[2]);
$numerador = $arg;
$denominador = $arg0;
$mcd = gmp_gcd($numerador, $denominador);
// echo $mcd . '<br>';
$arriba = $numerador / $mcd;
$abajo = $denominador / $mcd;
if ($abajo==1){
$resultado= $arriba;
echo $arriba;
}else{
$resultado = $arriba . '/' . $abajo;
echo $resultado;
}
}else{
$arg1=($param1[1]*$param1[4])+($param1[2]*$param1[3]);
// echo("/");
$arg2=($param1[2]*$param1[4]);
$numerador = $arg1;
$denominador = $arg2;
$mcd = gmp_gcd($numerador, $denominador);
// echo $mcd . '<br>';
$arriba = $numerador / $mcd;
$abajo = $denominador / $mcd;
if ($abajo==1){
$resultado= $arriba;
echo $arriba;
}else{
$resultado = $arriba . '/' . $abajo;
echo $resultado;
}

}

}
}

function operacion2($param2){
echo "<br />";
global $maximo;
global $minimo;

switch ($param2[0]) {
case "restar":
echo "<br />";
echo "la resta es ";
if($param2[2]==$param2[4]){
$arg3=($param2[1]-$param2[3]);
//echo ("/");
$arg4=($param2[2]);
$numerador = $arg3;
$denominador = $arg4;
$mcd = gmp_gcd($numerador, $denominador);
// echo $mcd . '<br>';
$arriba = $numerador / $mcd;
$abajo = $denominador / $mcd;
if ($abajo==1){
$resultado= $arriba;
echo $arriba;
}else{
$resultado = $arriba . '/' . $abajo;
echo $resultado;
}
}else{
$arg3=($param2[1]*$param2[4])-($param2[2]*$param2[3]);
// echo("/");
$arg4=($param2[2]*$param2[4]);
$numerador = $arg3;
$denominador = $arg4;
$mcd = gmp_gcd($numerador, $denominador);
// echo $mcd . '<br>';
$arriba = $numerador / $mcd;
$abajo = $denominador / $mcd;
if ($abajo==1){
$resultado= $arriba;
echo $arriba;
}else{
$resultado = $arriba . '/' . $abajo;
echo $resultado;
}
}
}
}



/*
function operacion2($param2){

switch ($param2[0]) {
case "restar":
echo "<br />";

if($param2[2]==$param2[4]){
echo ($param2[1]-$param2[3]);
echo ("/");
echo ($param2[2]);
}else{
echo(($param2[1]*$param2[4])-($param2[2]*$param2[3]));
echo("/");
echo($param2[2]*$param2[4]);
}

}
}
*/

function operacion3($param3){

switch ($param3[0]) {

case "multiplicar":
echo "<br />";
echo "la multiplicacion es ";
$arg5=($param3[1]*$param3[3]);
// echo ("/");
$arg6=($param3[2]*$param3[4]);
$numerador = $arg5;
$denominador = $arg6;
$mcd = gmp_gcd($numerador, $denominador);
// echo $mcd . '<br>';
$arriba = $numerador / $mcd;
$abajo = $denominador / $mcd;
if ($abajo==1){
$resultado= $arriba;
echo $arriba;
}else{
$resultado = $arriba . '/' . $abajo;
echo $resultado;
}
}
}

function operacion4($param4){

switch ($param4[0]) {

case "dividir":
echo "<br />";
echo "la division es es ";
$arg7=($param4[1]*$param4[4]);
// echo ("/");
$arg8=($param4[2]*$param4[3]);
$numerador = $arg7;
$denominador = $arg8;
$mcd = gmp_gcd($numerador, $denominador);
// echo $mcd . '<br>';
$arriba = $numerador / $mcd;
$abajo = $denominador / $mcd;
if ($abajo==1){
$resultado= $arriba;
echo $arriba;
}else{
$resultado = $arriba . '/' . $abajo;
echo $resultado;
}
}
}




$valores0 = array("nada",$nom1,$den1,$nom2,$den2);
$valores1 = array("sumar",$nom1,$den1,$nom2,$den2);
$valores2 = array("restar",$nom1,$den1,$nom2,$den2);
$valores3 = array("multiplicar",$nom1,$den1,$nom2,$den2);
$valores4 = array("dividir",$nom1,$den1,$nom2,$den2);


operacion0($valores0);
operacion1($valores1);
operacion2($valores2);
operacion3($valores3);
operacion4($valores4);
}
?>
</form>
</body>
</html>

si alguien sabe como puedo implementar mi codigo a 1 clase con metodos estaria muy agradecido si no quieren implemetar el codigo completo pueden crear la clase y 1 metodo y yo implemento los demas gracias por su ayuda!!!!!!

Etiquetas: ago
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 12:49.