Autor Tema: Ejercicio CU00819B curso de PHP desde cero operadores aritméticos y módulo mod  (Leído 8013 veces)

jperales29

  • Sin experiencia
  • *
  • Mensajes: 7
    • Ver Perfil
    • The Traveler's City
Buenos dias mi gente de aprenderaprogramar.com, Feliz Navidad ante todos y espero que todos reciban el nuevo año cargado de energia para seguir aprendiendo mucho más, asi como lo hago yo, que vengo con una nueva pregunta.

estoy en la entrega N° 19 del curso de php desde cero, me ha ido muy bien hasta el momento y he aprendido bastante, sin embargo me estanque en el segundo ejercicio para el cual me piden lo siguiente:

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)

 

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)


Este es el codigo que yo he desarrollado sin embargo me detuve debido a que si seguia haciendolo los resultados no me darian los correctos:

Código: [Seleccionar]
<?php
$a 
4;
$b 2;
$inicio $a;
echo 
" Operadores de Incremento <br/>";
echo 
" Valores iniciales a= $a, b= $b <br/>";
echo 
" ++a*b==10 <br/>";
++
$inicio*$b ==10;
echo 
"El valor de a es : $inicio <br/>";
echo 
" a++*b==8 <br/>";
$inicio++*$b ==8;
echo 
"El valor de a es : $inicio <br/>";
echo 
" --a*b==10 <br/>";
--
$inicio*$b ==6;
echo 
"El valor de a es : $inicio <br/>";

?>

Mi pregunta es la siguiente:

cómo hago que el valor de $a o en su caso $inicio como lo asigne $inicio=$a; no cambie a medida que realizo las operaciones, como haría para mantenerlo constante, digo en el ejercicio me pide que utilice variables auxiliares para realizar el código y siempre mantener el valor inicial, sin embargo siendo  $inicio=$a; cuando se utiliza en la siguiente operación es obvio que inicio ya viene aumentado o decrecido según la operación anterior, y so quiero que tenga el valor inicial.

Les agradecería que me ayudaran a aclarar esta duda.

Muchas Gracias y que tengan Feliz Navidad!
« Última modificación: 02 de Enero 2015, 17:54 por Alex Rodríguez »

Príncipe_Azul

  • Principiante
  • **
  • Mensajes: 71
    • Ver Perfil
    • Foro ArgentinaIRC - Ayuda de Programación General, IRC y mIRC Scripting!
Re:Ejercicio N° 2 del curso de PHP desde cero
« Respuesta #1 en: 31 de Diciembre 2014, 17:22 »
Hola, en primer lugar, las variables en PHP no pueden ser tomadas como texto plano y vos las estás usando en texto plano, ¿entónces cómo es la forma correcta?.

Por ejemplo esto:

Código: [Seleccionar]
echo "El valor de a es : $inicio <br/>";
correctamente sería así:

Código: [Seleccionar]
echo 'El valor de a es : ' . $inicio . '<br/>';
En segundo lugar, las variables no necesitan estar entrecomilladas, justamente porque son variables, lo que está entre las comillas siempre es un texto.

Y en tercer lugar, para concatenar variables a cadenas string, lo que se necesita es usar el operador punto.

Saludos !!

jperales29

  • Sin experiencia
  • *
  • Mensajes: 7
    • Ver Perfil
    • The Traveler's City
Re:Ejercicio N° 2 del curso de PHP desde cero
« Respuesta #2 en: 02 de Enero 2015, 15:25 »
Hola Feliz Dia, y Feliz año, Gracias por responder, tu respuesta me acloro una duda sin embargo no fue exactamente la respuesta a la pregunta que hice, lo que quiero es que mi ejercicio utilice la misma variable con el mismo n umero y que no cambie sin importar que la imprima en pantalla.

jperales29

  • Sin experiencia
  • *
  • Mensajes: 7
    • Ver Perfil
    • The Traveler's City
Re:Ejercicio N° 2 del curso de PHP desde cero
« Respuesta #3 en: 02 de Enero 2015, 15:58 »
Hola, logre realizar el ejercicio creando multiple variables auxiliares y asignandole el valor de a!

Código: [Seleccionar]
<?php
$a 
4;
$b 2;
$inicio $a;
$inicio2 $a;
$inicio3 $a;
$inicio4 $a;
$inicio5 $a;
$inicio6 $a;
$inicio7 $a;

echo 
" Operadores de Incremento <br/>";
echo 
" Valores iniciales a= $a, b= $b <br/>";
echo 
" ++a*b==10 <br/>";
++
$a*$b ==10;
echo 
"El valor de a es : $a <br/>";
echo 
" a++*b==8 <br/>";
$inicio++*$b ==8;
echo 
"El valor de a es : $inicio <br/>";
echo 
" --a*b==6 <br/>";
--
$inicio2*$b ==6;
echo 
"El valor de a es : $inicio2 <br/>";
echo 
" a--*b==8 <br/>";
$inicio3--*$b ==8;
echo 
"El valor de a es : $inicio3 <br/>";
echo 
"<br/>";
echo 
"<br/>";
echo 
" Operadores de Asignacion <br/>";
echo 
" Valores iniciales a= $a, b= $b <br/>";
echo 
" a+= equivale a = a + b <br/>";
$inicio4+=$b;
echo 
"El valor de a es : $inicio4 <br/>";
echo 
" a-= equivale a = a - b <br/>";
$inicio5-=$b;
echo 
"El valor de a es : $inicio5 <br/>";
echo 
" a*= equivale a = a * b <br/>";
$inicio6*=$b;
echo 
"El valor de a es : $inicio6 <br/>";
echo 
" a/= equivale a = a / b <br/>";
$inicio7/=$b;
echo 
"El valor de a es : $inicio7 <br/>";
echo 
" a%= equivale a = a % b <br/>";
$inicio8%=$b;
echo 
"El valor de a es : $inicio8 <br/>";

?>



aqui esta el link de acceso

http://cursophp.thetravelerscity.com/ejemplo19_e2.php

Muchas Gracias
« Última modificación: 02 de Enero 2015, 18:20 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola, he revisado tu ejercicio y tengo algunas cosas que apuntarte:

- Como solemos recordar, cuando pegues código hazlo como se indica aquí: https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0

- No hace falta que utilices tantas variables auxiliares, en el código que te pongo abajo como ejemplo te doy la idea de cómo hacerlo usando sólo una variable auxiliar

- En el código que has escrito hay algunas líneas que carecen de sentido. En el código que te doy como ejemplo te pongo un comentario sobre esto.

Esto no tiene sentido (o no tiene demasiado sentido):

echo " ++a*b==10 <br/>"; //MUESTRAS UN MENSAJE CUALQUIERA
++$a*$b ==10; // HACES UNA COMPARACIÓN ¿PARA QUÉ?

- Te adjunto el código de ejemplo (no está terminado, sería un buen ejercicio que lo terminaras tú mismo)

Código: [Seleccionar]
<meta charset="utf-8" />

<?php
$a 
4;
$b 2;
$inicio $a;

echo 
" Operadores de Incremento <br/><br/>";
echo 
" Valores iniciales a= $a, b= $b <br/>";

echo 
" ++a*b==".++$a*$b." (resultado obtenido) <br/>";
echo 
"El valor de a es : $a <br/>";
echo 
'Pasamos a otra operación partiendo del valor inicial de a y b <br/><br/>';

$a=$inicio;
echo 
" a++*b==".$a++*$b ." (resultado obtenido) <br/>";
echo 
"El valor de a es : $a <br/>";
echo 
'Pasamos a otra operación partiendo del valor inicial de a y b<br/><br/>';
// $inicio++*$b ==8; UNA LÍNEA COMO ESTA CARECE DE SENTIDO

$a=$inicio;
echo 
" --a*b==".--$a*$b." <br/>";
echo 
"El valor de a es : $a <br/>";
echo 
'Pasamos a otra operación partiendo del valor inicial de a y b<br/><br/>';


?>

Como ves, cada vez que quiero recuperar el valor original de $a simplemente escribo $a=$inicio;

Saludos

jperales29

  • Sin experiencia
  • *
  • Mensajes: 7
    • Ver Perfil
    • The Traveler's City
Hola Alex Buenos dias, Muchas Gracias por tu aclaracion, lo resolvi de la siguiente manera:

Código: [Seleccionar]
<?php

$a 
4;
$b 2;
$inicio $a;


echo 
" Operadores de Incremento <br/>";

echo 
" Valores iniciales a= $a, b= $b <br/>";

echo 
" ++a*b==10 <br/>";

++
$a*$b ==10;

echo 
"El valor de a es : $a <br/>";

$a=$inicio;

echo 
" a++*b==8 <br/>";

$a++*$b ==8;

echo 
"El valor de a es : $a <br/>";


$a=$inicio;

echo 
" --a*b==6 <br/>";

--
$a*$b ==6;

echo 
"El valor de a es : $a <br/>";

$a=$inicio;

echo 
" a--*b==8 <br/>";

$a--*$b ==8;

echo 
"El valor de a es : $a <br/>";

echo 
"<br/>";
echo 
"<br/>";


echo 
" Operadores de Asignacion <br/>";

echo 
" Valores iniciales a= $a, b= $b <br/>";

$a=$inicio;

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

$a+=$b;

echo 
"El valor de a es : $a <br/>";

$a=$inicio;

echo 
" a-= equivale a = a - b <br/>";

$a-=$b;

echo 
"El valor de a es : $a <br/>";

$a=$inicio;

echo 
" a*= equivale a = a * b <br/>";

$a*=$b;

echo 
"El valor de a es : $a <br/>";

$a=$inicio;

echo 
" a/= equivale a = a / b <br/>";

$a/=$b;

echo 
"El valor de a es : $a <br/>";

$a=$inicio;

echo 
" a%= equivale a = a % b <br/>";

$inicio1%=$b;

echo 
"El valor de a es : $q <br/>";

?>



pero tengo otra duda, estoy en la entrega 21 donde hay que usar el substr y el strlen, pero tengo un problema con el ejercicio.

Se me pide lo siguiente:

EJERCICIO

Crea el código PHP que cumpla con lo que se indica a continuación:

a) Declara una variable cuyo contenido sea la cadena "Didáctica y divulgación de la programación"

b) Usando la función substr extrae cada una de las palabras de la cadena anterior a una variable. Como tenemos 6 palabras, debes tener 6 variables con las subcadenas.

c) Usando la concatenación muestra por pantalla lo siguiente: <<Las palabras primera, tercera y sexta son: Didáctica, divulgación, programación>>

d) Usando strlen muestra por pantalla lo siguiente: <<La palabra primera es Didáctica y tiene 9 caracteres, la palabra tercera es divulgación y tiene 11 caracteres. La palabra sexta es programación y tiene 12 caracteres>>   


y lo hice asi:

Código: [Seleccionar]
<?php

$cadena 
"Didáctica y divulgacion de la programación";
$sub1 substr($cadena,0,9);
$sub2 substr($cadena,10,11);
$sub3 substr($cadena,12,23);
$sub4 substr($cadena,24,26);
$sub5 substr($cadena,27,29);
$sub6 substr($cadena,30,41);

echo 
" Las palabras primera, tercera y sexta son:&nbsp;" $sub1."&nbsp;"$sub3 ."&nbsp;"$sub6;

echo 
" <br/> La primera palabra es $sub1 y tiene &nbsp;"strlen($sub1) . "&nbsp; caracteres";

echo 
" <br/> La tercera palabra es $sub3 y tiene &nbsp;"strlen($sub3) . "&nbsp; caracteres";

echo 
" <br/> La sexta palabra es $sub6 y tiene &nbsp;"strlen($sub6) . "&nbsp; caracteres";




?>


donde el valor de la variable $sub1 y la $sub 6 me dan lo que dice el ejercicio, pero la $sub3 me da una cantidad de caracteres que no es, esto me imprime por pantalla


Las palabras primera, tercera y sexta son: Didáctica divulgacion de la progr programación
La primera palabra es Didáctica y tiene  9  caracteres
La tercera palabra es divulgacion de la progr y tiene  23  caracteres
La sexta palabra es programación y tiene  12  caracteres


puedes verificarlo a través del siquiente link:

http://cursophp.thetravelerscity.com/ejemplo21_e1.php

Muchas Gracias Por su tiempo y atención, que tengas un feliz día.

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola, el ejercicio CU00819B lo sigues teniendo mal. Como te he comentado escribir esto:

echo " ++a*b==10 <br/>";
++$a*$b ==10;

No tiene lógica.

Esta línea echo " ++a*b==10 <br/>"; muestra algo por pantalla, pero también podría haber escrito echo " ++a*b==22 <br/>"; y también lo mostraría por pantalla, es decir, yo muestro lo que yo quiero.

Esta línea:

++$a*$b ==10;

No tiene lógica. El efecto es el mismo que si escribimos ++a;

Fíjate en el código que te indicaba como modelo de solución para que veas que lo que muestro como resultado no es lo que yo quiero, sino el resultado de ejecutar una operación.

Sobre el ejercicio de la entrega CU00821B: abre un nuevo tema del foro con un título como "Ejercicio CU00821B curso php manejo de cadenas con substr y strlen". De esa manera mantenemos el foro ordenado, para cada ejercicio un tema o hilo distinto, no mezclar los temas dentro de un hilo.

Saludos

 

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