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
-
Buen día me podrían decir si es correcta la primera parte del ejercicio #2.
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)
<?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>";
?>
-
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.
-
Gracias por la aclaración, corregido el código y con la segunda parte del ejercicio #2
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...
<?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>";
?>
-
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