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: Mangel133 en 01 de Junio 2015, 19:15

Título: PHP Operadores de incremento anterior ++ y posterior diferencias Tarea CU00819B
Publicado por: Mangel133 en 01 de Junio 2015, 19:15
Buen día me podrían decir si es correcta la primera parte del ejercicio #2.

Citar
EJERCICIO 2

Crea un código PHP donde crees las variables $a y $b y usando los operadores adecuados haz que se muestren los siguientes mensajes por pantalla. Nota: para mantener los valores iniciales de las variables y poder volver a emplearlos usa variables auxiliares, por ejemplo $inicio = $a; te permitirá mantener en $inicio el valor original de $a y volver a recuperar el valor inicial de $a antes de hacer una nueva operación.

Mensajes a mostrar por pantalla:

Operadores de incremento

Valores iniciales: a = 4, b = 2
Operador ++ (anterior): ++a * b == 10
(Ahora el valor de a es: 5)
Operador ++ (posterior): a++ * b == 8
(Ahora el valor de a es: 5)
Operador -- (anterior): --a * b == 6
(Ahora el valor de a es: 3)
Operador -- (posterior): a-- * b == 8
(Ahora el valor de a es: 3)

Código: [Seleccionar]
<?php
$a
=4$b=2;
$inicio=$a;

echo 
"Operadores de incremento</br>";

echo 
"Valores iniciales: a = 4, b = 2</br>";

echo 
"Operador ++ (anterior): ++a * b ==",++$a $b,"</br>";

echo 
"(Ahora el valor de a es:"$a ,")</br>";
$a=$inicio;
echo 
"Operador ++ (posterior): a++ * b ==",$a++ * $b,"</br>";

echo 
"(Ahora el valor de a es:",$a,")</br>";
$a=$inicio;
echo 
"Operador -- (anterior): --a * b ==",--$a*$b,"</br>";

echo 
"(Ahora el valor de a es:",$a,")</br>";
$a=$inicio;
echo 
"Operador -- (posterior): a-- * b ==",$a--*$b,"</br>";

echo 
"(Ahora el valor de a es:",$a,")</br>";

?>
Título: Re:PHP Operadores de incremento anterior ++ y posterior diferencias Tarea CU00819B
Publicado por: Ogramar en 02 de Junio 2015, 08:39
Hola, el ejercicio está correcto. Unicamente indicarte que es más habitual usar el punto que la coma para concatenar texto con variables, por ejemplo

echo "Operador ++ (anterior): ++a * b ==".++$a * $b."</br>";

En lugar de

echo "Operador ++ (anterior): ++a * b ==",++$a * $b,"</br>";

Lo interesante en este ejercicio es ver cómo funcionan los operadores y las diferencias entre unas formas y otras.
Título: Re:PHP Operadores de incremento anterior ++ y posterior diferencias Tarea CU00819B
Publicado por: Mangel133 en 02 de Junio 2015, 19:11
Gracias por la aclaración, corregido el código y con la segunda parte del ejercicio #2

Citar
EJERCICIO 2

Crea un código PHP donde crees las variables $a y $b y usando los operadores adecuados haz que se muestren los siguientes mensajes por pantalla. Nota: para mantener los valores iniciales de las variables y poder volver a emplearlos usa variables auxiliares, por ejemplo $inicio = $a; te permitirá mantener en $inicio el valor original de $a y volver a recuperar el valor inicial de $a antes de hacer una nueva operación.

Mensajes a mostrar por pantalla:

Operadores de asignación compuestos

Valores iniciales: a = 4, b = 2
Asignación compuesta de suma: a += b equivale a = a + b
(Ahora el valor de a es: 6)
Asignación compuesta de resta: a -= b equivale a = a - b
(Ahora el valor de a es: 2)
Asignación compuesta de multiplicación: a *= b equivale a = a * b
(Ahora el valor de a es: 8 )
Asignación compuesta de división: a /= b equivale a = a / b
(Ahora el valor de a es: 2)
Asignación compuesta de módulo: a %= b equivale a = a % b
(Ahora el valor de a es: 0)

 me quedaría así... Solo un detalle en la segunda parte del ejercicio al momento de visualizarlo esta parte no me la muestra: echo "Asignación compuesta de suma: \$a+=\$b==" me muestra de la variable en adelante... y en todas estas secciones:echo "(Ahora el valor de a es:". $a .")</br></br>"; el paréntesis que cierra me lo muestra un renglon abajo...
Código: [Seleccionar]
<?php
$a
=4$b=2;
$inicio=$a;

echo 
"<h4>Operadores de incremento</h4>";

echo 
"Valores iniciales: a = 4, b = 2</br></br>";

echo 
"Operador ++ (anterior): ++a * b ==".++$a $b."</br>";

echo 
"(Ahora el valor de a es:"$a .")</br></br>";
$a=$inicio;
echo 
"Operador ++ (posterior): a++ * b ==".$a++ * $b."</br>";

echo 
"(Ahora el valor de a es:".$a.")</br></br>";
$a=$inicio;
echo 
"Operador -- (anterior): --a * b ==".--$a*$b."</br>";

echo 
"(Ahora el valor de a es:".$a.")</br></br>";
$a=$inicio;
echo 
"Operador -- (posterior): a-- * b ==".$a--*$b."</br>";

echo 
"(Ahora el valor de a es:".$a.")</br></br></br></br></br>";
?>

<?php
$a
=4$b=2;
$inicio=$a;
echo 
"<h4>Operadores de asignación compuestos</h4>";
echo 
"Valores iniciales: a = 4, b = 2</br></br>";

echo 
"Asignación compuesta de suma: \$a+=\$b==" .$a+$b
$a=$inicio;
echo 
" equivale \$a=\$a+\$b==" .$a=$a+$b"</br>";
echo 
"(Ahora el valor de a es:".$a.")</br></br></br>";
$a=$inicio;
echo 
"Asignación compuesta de resta: a-=b==".$a-=$b;
$a=$inicio;
echo 
" equivale a = a - b==".$a=$a-$b."</br>";

echo 
"(Ahora el valor de a es:".$a.")</br></br></br>";
$a=$inicio;
echo 
"Asignación compuesta de multiplicación: \$a*=\$b==".$a*=$b;
$a=$inicio;
echo 
" equivale \$a=\$a*\$b==".$a=$a*$b."</br>";
echo 
"(Ahora el valor de a es:".$a.")</br></br></br>";
$a=$inicio;
echo 
"Asignación compuesta de división: \$a/=\$b==".$a/=$b;
$a=$inicio;
echo 
" equivale \$a=\$a/\$b==".$a=$a/$b."</br></br></br>";
echo 
"(Ahora el valor de a es:".$a.")";
$a=$inicio;
echo 
"Asignación compuesta de módulo: \$a%=\$b==".$a%=$b
$a=$inicio;
echo 
" equivale \$a=\$a%\$b==".$a=$a%$b."</br>";
echo 
"(Ahora el valor de a es:".$a.")</br>";
?>
Título: Re:PHP Operadores de incremento anterior ++ y posterior diferencias Tarea CU00819B
Publicado por: Ogramar en 02 de Junio 2015, 22:13
Hola todos los </br> debes sustituirlos por <br/>


Tienes un problema en la línea echo "Asignación compuesta de suma: \$a+=\$b==" .$a+$b;

El intérprete lo que está haciendo es sumando

"Asignación compuesta de suma: \$a+=\$b==" .$a

con

$b.

El resultado que muestra es el resultado de sumar una cadena con 2, y eso lo está resolviendo como 2.

Para que haga la operación aritmética de suma y lo concatene con la cadena tendrías que escribir

echo "Asignación compuesta de suma: \$a+=\$b==" .($a+$b);


Los saltos de línea los estás obteniendo por cosas como esta:

echo " equivale \$a=\$a+\$b==" .$a=$a+$b. "<br/>";

Al ejecutar esto te está transformando $a en una cadena que lleva concatenado <br/> y esto te genera un salto de línea donde no te lo esperas.

PHP es extremadamente "relajado" en el control de tipos, de modo que estás alterando el tipo de la variable de numérico a cadena casi sin darte cuenta.

Mi consejo: reorganiza el código y escríbelo de forma más limpia. Utiliza variables intermedias si es necesario. Si no lo haces así, estás haciendo operaciones indebidas y conversiones de tipo indebidas.

Salu2