Autor Tema: PHP Operadores de incremento anterior ++ y posterior diferencias Tarea CU00819B  (Leído 3533 veces)

Mangel133

  • Sin experiencia
  • *
  • Mensajes: 2
    • Ver Perfil
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>";

?>
« Última modificación: 02 de Junio 2015, 08:37 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
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.

Mangel133

  • Sin experiencia
  • *
  • Mensajes: 2
    • Ver Perfil
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>";
?>
« Última modificación: 02 de Junio 2015, 21:43 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
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

 

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".