En esta página se muestran una parte de las soluciones de los ejercicios Variables (0), concretamente el fragmento PHP, sin el principio ni el final de la página que se pueden dejar en fragmentos HTML.
Si lo prefiere, puede descargar unas posibles soluciones completas de estos ejercicios.
Podemos resolver este ejercicio usando tres variables, dos para cada uno de los valores aleatorios y otra para la media.
<?php
$a = rand(0, 100);
$b = rand(0, 100);
$media = ($a + $b) / 2;
print " <p>La media aritmética de $a y $b es $media.</p>\n";
?>
También podemos resolverlo con sólo dos variables, una para cada uno de los valores aleatorios. En ese caso, deberíamos concatenar el cálculo del resultado al escribir la frase.
<?php
$a = rand(0, 100);
$b = rand(0, 100);
print " <p>La media aritmética de $a y $b es " . ($a + $b) / 2 . ".</p>\n";
?>
Podemos resolver este ejercicio usando tres variables, dos para cada uno de los valores aleatorios y otra para el IMC.
<?php
$peso = rand(50, 100);
$altura = rand(150, 200) / 100;
$imc = round($peso / $altura ** 2, 1);
print " <p>Con un peso de $peso kg y una altura de $altura m, el IMC es $imc.</p>\n";
?>
También podemos resolverlo con sólo dos variables, una para cada uno de los valores aleatorios. En ese caso, deberíamos concatenar el cálculo del resultado al escribir la frase.
<?php
$peso = rand(50, 100);
$altura = rand(150, 200) / 100;
print " <p>Con un peso de $peso kg y una altura de $altura m, el IMC es " . round($peso / $altura ** 2, 1) . ".</p>\n";
?>
Podemos resolver este ejercicio usando cuatro variables, tres para cada uno de los valores aleatorios y otra para el número de segundos total.
<?php
$horas = rand(0, 150);
$minutos = rand(0, 150);
$segundos = rand(0, 150);
$total = $horas * 3600 + $minutos * 60 + $segundos;
print " <p>$horas horas, $minutos minutos y $segundos segundos son $total segundos.</p>\n";
?>
También podemos resolverlo con sólo tres variables, una para cada uno de los valores aleatorios. En ese caso, deberíamos concatenar el cálculo del resultado al escribir la frase.
<?php
$horas = rand(0, 150);
$minutos = rand(0, 150);
$segundos = rand(0, 150);
print " <p>$horas horas, $minutos minutos y $segundos segundos son " . $horas * 3600 + $minutos * 60 + $segundos . " segundos.</p>\n";
?>
La operación a realizar es la siguiente:
Al tratarse de números enteros, para obtener el cociente y el resto de la división podemos utilizar la función intdiv() y el operador %.
Podemos resolver este ejercicio usando tres variables, una para el número aleatorio de segundos y dos para el número de minutos y segundos correspondientes.
<?php
$segundosTotales = rand(0, 1000);
$minutos = intdiv($segundosTotales, 60);
$segundos = $segundosTotales % 60;
print " <p>$segundosTotales segundos son $minutos minutos y $segundos segundos.</p>\n";
?>
También podemos resolverlo con sólo una variable, el número aleatorio de segundos. En ese caso, deberíamos concatenar los dos cálculos de minutos y segundos al escribir la frase.
<?php
$segundos = rand(0, 1000);
print " <p>$segundos segundos son " . intdiv($segundos, 60) . " minutos y " . $segundos % 60 . " segundos.</p>\n";
?>
Las operaciones a realizar son las siguientes:
Al tratarse de números enteros, para obtener el cociente y el resto de la división podemos utilizar la función intdiv() y el operador %.
Podemos resolver este ejercicio usando cinco variables, una para el número aleatorio de segundos inicial, dos para el cociente y el resto de la división de este número inicial por 3600 y dos más para el cociente y el resto de la división del primer resto por 60.
<?php
$segundos = rand(0, 10_000);
$horas = intdiv($segundos, 3600);
$segundos2 = $segundos % 3600;
$minutos = intdiv($segundos2, 60);
$segundos3 = $segundos2 % 60;
print " <p>$segundos segundos son $horas horas, $minutos minutos y $segundos3 segundos.</p>\n";
?>
También podemos resolverlo con sólo una variable, el número aleatorio de segundos. En ese caso, deberíamos concatenar los dos cálculos de minutos y segundos al escribir la frase.
<?php
$segundos = rand(0, 10_000);
print " <p>$segundos segundos son " . intdiv($segundos, 3600) . " horas, " . intdiv($segundos % 3600, 60) . " minutos y " . $segundos % 3600 % 60 . " segundos.</p>\n";
?>
Podemos simplificar el último cálculo puesto que el resto entre 60 da el mismo resultado aunque no se haga antes el resto entre 3600.
<?php
$segundos = rand(0, 10_000);
print " <p>$segundos segundos son " . intdiv($segundos, 3600) . " horas, " . intdiv($segundos % 3600, 60) . " minutos y " . $segundos % 60 . " segundos.</p>\n";
?>
Podemos resolver este ejercicio usando tres variables, dos para el número aleatorio de pies y pulgadas iniciales, y uno para el resultado total en centímetros.
<?php
$pies = rand(0, 10);
$pulgadas = rand(0, 10);
$centimetros = ($pies * 12 + $pulgadas) * 2.54;
print " <p>$pies pies y $pulgadas pulgadas son $centimetros cm.</p>\n";
?>
También podemos resolverlo con sólo dos variables, los números aleatorios de pies y pulgadas iniciales. En ese caso, deberíamos concatenar el cálculo de centímetros al escribir la frase.
<?php
$pies = rand(0, 10);
$pulgadas = rand(0, 10);
print " <p>$pies pies y $pulgadas pulgadas son " . ($pies * 12 + $pulgadas) * 2.54 . " cm.</p>\n";
?>
Podemos resolver este ejercicio usando cuatro variables, tres para el número aleatorio de yardas, pies y pulgadas iniciales, y uno para el resultado total en centímetros.
<?php
$yardas = rand(0, 10);
$pies = rand(0, 10);
$pulgadas = rand(0, 10);
$centimetros = ($yardas * 36 + $pies * 12 + $pulgadas) * 2.54;
print " <p>$yardas yardas, $pies pies y $pulgadas pulgadas son $centimetros cm.</p>\n";
?>
También podemos resolverlo con sólo tres variables, los números aleatorios de yardas, pies y pulgadas iniciales. En ese caso, deberíamos concatenar el cálculo de centímetros al escribir la frase.
<?php
$yardas = rand(0, 10);
$pies = rand(0, 10);
$pulgadas = rand(0, 10);
print " <p>$yardas yardas, $pies pies y $pulgadas pulgadas son " . ($yardas * 36 + $pies * 12 + $pulgadas) * 2.54 . " cm.</p>\n";
?>
Las operaciones a realizar son las siguientes:
Al tratarse de números decimales, para obtener el cociente y el resto de la división podemos utilizar la función floor() de la división y la función fmod().
Para obtener el número de pulgadas con 1 decimal podemos utilizar la función round()
Podemos resolver este ejercicio usando tres variables, una para el número aleatorio de centímetros y dos para el número de pies y pulgadas correspondientes.
<?php
$centimetros = rand(0, 1_000_000) / 100;
$pies = floor($centimetros / 30.48);
$centimetros2 = fmod($centimetros, 30.48);
$pulgadas = round($centimetros2 / 2.54, 1);
print " <p>$centimetros centímetros son $pies pies y $pulgadas pulgadas.</p>\n";
?>
También podemos resolverlo con sólo una variable, el número aleatorio de centímetros. En ese caso, deberíamos concatenar los dos cálculos de pies y pulgadas al escribir la frase.
Como la instrucción que escribe la frase es bastante larga, la podemos partir en dos instrucciones print para mejorar la legibilidad del código.
<?php
$centimetros = rand(0, 1_000_000) / 100;
print " <p>$centimetros centímetros son " . floor($centimetros / 30.48) . " pies y ";
print round(fmod($centimetros, 30.48) / 2.54, 1) . " pulgadas.</p>\n";
?>
Las operaciones a realizar son las siguientes:
Al tratarse de números decimales, para obtener el cociente y el resto de las divisiones podemos utilizar la función floor() de la división y la función fmod().
Para obtener el número de pulgadas con 1 decimal podemos utilizar la función round()
Podemos resolver este ejercicio usando seis variables, una para el número aleatorio de centímetros, dos para el cociente y el resto de la división de este número inicial por 91.44 (los centímetros que mide una yarda), dos más para el cociente y el resto de la división del primer resto por 30.48 (los centímetros que mide un pie) y una variable para la conversión del segundo resto a centímetros.
<?php
$centimetros = rand(0, 5_000_000) / 100;
$yardas = floor($centimetros / 91.44);
$centimetros2 = fmod($centimetros, 91.44);
$pies = floor($centimetros2 / 30.48);
$centimetros3 = fmod($centimetros, 30.48);
$pulgadas = round($centimetros3 / 2.54, 1);
print " <p>$centimetros centímetros son $yardas yardas, $pies pies y $pulgadas pulgadas.</p>\n";
?>
También podemos resolverlo con sólo una variable, el número aleatorio de centímetros. En ese caso, deberíamos concatenar los tres cálculos de yardas, pies y pulgadas al escribir la frase.
Como la instrucción que escribe la frase es bastante larga, la podemos partir en varias líneas para mejorar la legibilidad del código.
<?php
$centimetros = rand(0, 5_000_000) / 100;
print " <p>$centimetros centímetros son " . floor($centimetros / 91.44) . " yardas, "
. floor(fmod($centimetros, 91.44) / 30.48) . " pies y "
. round(fmod(fmod($centimetros, 91.44), 30.48) / 2.54, 1) . " pulgadas.</p>\n";
?>
El cálculo del número de pulgadas se puede simplificar teniendo en cuenta que si en dos divisiones sucesivas los divisores son múltiplos entre sí, el resto final tras las dos divisiones es el mismo que el resto de la división por el menor de los divisiores. Es decir:
Como en este caso 91.44 es múltiplo de 30.48 (1 yarda son 3 pies), el segundo resto se puede calcular a partir de la cantidad de centímetros inicial, lo que nos permite simplificar la expresión que calcula las pulgadas.
<?php
$centimetros = rand(0, 5_000_000) / 100;
print " <p>$centimetros centímetros son " . floor($centimetros / 91.44) . " yardas, "
. floor(fmod($centimetros, 91.44) / 30.48) . " pies y "
. round(fmod($centimetros, 30.48) / 2.54, 1) . " pulgadas.</p>\n";
?>