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: jperales29 en 31 de Diciembre 2014, 16:35
-
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:
<?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!
-
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:
echo "El valor de a es : $inicio <br/>";
correctamente sería así:
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 !!
-
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.
-
Hola, logre realizar el ejercicio creando multiple variables auxiliares y asignandole el valor de a!
<?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
-
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)
<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
-
Hola Alex Buenos dias, Muchas Gracias por tu aclaracion, lo resolvi de la siguiente manera:
<?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:
<?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: " . $sub1." ". $sub3 ." ". $sub6;
echo " <br/> La primera palabra es $sub1 y tiene ". strlen($sub1) . " caracteres";
echo " <br/> La tercera palabra es $sub3 y tiene ". strlen($sub3) . " caracteres";
echo " <br/> La sexta palabra es $sub6 y tiene ". strlen($sub6) . " 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.
-
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