Problema 6. Mostrar n y el resultado de la siguiente suma: 1+2+3+…+n usando ciclos. Así como su proceso de obtención en una tabla (análogo al problema 4). Mostrar el resultado usando también la formula de Gauss.
echo "El número que me diste fue $num. < br> < br> La sumatoria es< br>< br>";
echo "< table bgcolor=dddddd align=center>";
echo "< tr>< td>< font color=black> Suma(x)< /td>< td>< font color=black>Valor< /td>< tr>";
echo "S(0)=0< br>";
for($i=1,$prod=0; $i< =$num;$i++)
{ echo "< tr>< td>< font color=black>S($i)< /td>< td>< font color=black>< b>S(".($i-1).") + $i";
$prod+=$i;
echo "=$prod< /b>";
echo "< /td>< tr>";
}
echo "< /table>";
echo "< br>< br>La sumatoria de 1 + 2 + … + $num = $prod " ;
echo "< br>< br>Usando la formula de Gauss: ($num)*($num+1)/2=($num*".($num+1).")/2=".($num*($num+1)/2);
Problema 7. Hacer una función que sirva para determinar si un número es o no primo y usarla en el siguiente problema: Pedir dos números m y n y mostrar los números que están entre dichos valores diciendo si el número es o no primo (mostrar la información en una tabla).
function primo($num)
{ for($i=2, $es=1; $i< =$num/2; $i++)
{ if($num%$i==0)
$es=0;
}
return $es;
}
$num=(int)$num;
echo "Los números que me diste fueron $num1 y $num2. < br> < br> Los números primos son:< br>< br>";
echo "< table bgcolor=dddddd align=center>";
echo "< tr>< td>< font color=black> Valor< /td>< td>< font color=black>Tipo< /td>< tr>";
for($i=$num1; $i< =$num2;$i++)
{
if(primo($i)==1)
{ echo "< tr>< td>< font color=black>$i< /td>< td>< font color=black>< b>";
echo "primo< /b>";
echo "< /td>< tr>";
}
else
{ if(strcmp($soloPrimos,"on")!=0)
{ echo "< tr>< td>< font color=black>$i< /td>< td>< font color=black>< b>";
echo "compuesto< /b>";
echo "< /td>< tr>";
}
}
}
echo "< /table>";
Problema 8. Hacer una función para obtener los primeros n elementos de la serie de fibonacci, donde n es adquirido desde un formulario.
echo "El número que me diste fue $num. < br> < br> Su serie de Fibonacci es< br>< br>";
echo "< table bgcolor=dddddd align=center>";
echo "< tr>< td>< font color=black> Fib (x)< /td>< td>< font color=black>Valor< /td>< tr>";
$val1=0;
$val2=1;
if($num>=1)
{
echo "< tr>< td>< font color=black>f(0)< /td>";
echo " < td>< font color=black>0";
echo " < /td>< tr>";
}
if($num>=2)
{
echo "< tr>< td>< font color=black>f(1)< /td>";
echo " < td>< font color=black>1";
echo " < /td>< tr>";
}
for($i=2; $i< $num;$i++)
{ echo "< tr>< td>< font color=black>f($i)< /td>";
echo " < td>< font color=black>f(".($i-1).") + f(".($i-2).")=".($val1+$val2);
echo " < /td>< tr>";
$temp=$val1+$val2;
$val1=$val2;
$val2=$temp;
}
echo "< /table>";
Problema 9. Tomar un número en base 10 y convertirlo a base b (considerar siempre 1< b< 16). Mostrar el número y los residuos obtenidos, es decir el número en la nueva base (hay que tomar en cuenta que dichos residuos son obtenidos al reves en el proceso, deberán mostrar el resultado en el orden correcto). Mostrar también los residuos que se van obteniendoEjemplo: 1510 = 11112
$tnum=$num=(int)$num;
$base=(int)$base;
echo "El número que me diste fue $num. < br> < br> Su equivalente en base $base es: < br>< br>";
echo "< table bgcolor=dddddd align=center>";
echo "< tr>< td>< font color=black> Número < /td>< td>< font color=black>Residuo < br>entre $base< /td>< tr>";
$resultado="< sub>$base< /sub>";
for( ;$num>0;)
{ $residuo=$num%$base;
echo "< tr>< td>< font color=black>$num< /td>< td>< font color=black>< b>".($residuo);
echo " < /b>";
echo "< /td>< tr>";
$num=(int)(floor($num/$base));
if($residuo>9)
switch($residuo)
{ case 10: $residuo="A";
break;
case 11: $residuo="B";
break;
case 12: $residuo="C";
break;
case 13: $residuo="D";
break;
case 14: $residuo="E";
break;
case 15: $residuo="F";
break;
}
$resultado=$residuo.$resultado;
}
echo "< /table>";
echo "< br>< br> $tnum< sub>10< /sub> = $resultado" ;
Problema 10. Tomar un número cualquiera (de preferencia pequeño para que converga más rápido) la siguiente serie converge a uno siempre (criterio de paro) si se siguen las siguientes reglas: – Si el número n es par, reemplazarlo por n/2 (es decir hacer n=n/2)- Si el número es impar, reemplazarlo por 3*n+1Mostrar el número inicial y todos los que le siguen hasta que la serie converja a 1.
$num=(int)$num;
$lim=280;
echo "El número que me diste fue $num. < br> < br> La serie es < br>(configurada a un máximo de $lim elementos)< br>< br>";
echo "< table bgcolor=dddddd align=center>";
echo "< tr>< td>< font color=black> Valor < /td>< td>< font color=black> Siguiente < br>Valor< /td>< td>< font color=black> Barra< /td>< tr>";
$i=0;
$temp=$num;
$max=$num;
while($num!=1 && $i< $lim)
{ if($num%2==0)
$num=$num/2;
else
$num=$num*3+1;
$i++;
if($num>$max)
$max=$num;
}
$num=$temp;
$i=0;
while($num!=1 && $i< $lim)
{ echo "< tr>< td>< font color=black>$num< /td>";
if($num%2==0)
$num=$num/2;
else
$num=$num*3+1;
echo "< td>< font color=black> $num";
echo "< /td>";
echo "< td>< img src="./img/barra.jpg" height=10 width=".((int)($num*400/$max)).">";
echo "< /td>< tr>";
$i++;
}
echo "< /table>";
Tablero ajedrez
$n=5;
for($i=1; $i< =$n; $i++)
{ echo "n < tr>";
for($j=1; $j< =$n; $j++)
{ if(($i+$j)%2==0 && $i>=$j)
echo "n < td bgcolor=white align=center>< font color=black>$i+$j=".($j+$i)."< /td>";
else
echo "n < td bgcolor=black align=center>< font color=white>$i+$j=".($j+$i)."< /td>";
}
}
serie
function fact($num)
{if($num>1)
return $num*fact($num-1);
else
return 1;
}
function expo($num, $nter)
{ if($nter>1)
return potencia($num,$nter-1)/fact($nter-1)+expo($num,$nter-1);
else
return 1;
}
$n=10;
echo fact($n)."< br>";
for($i=1; $i< =$n; $i++)
echo "< b>".expo(1,$i)." – $i< /b> < br>";
Corrida del programa serie
1 – 1 2 – 2 2.5 – 3 2.6666666666667 – 4 2.7083333333333 – 5 2.7166666666667 – 6 2.7180555555556 – 7 2.718253968254 – 8 2.7182787698413 – 9 2.7182815255732 – 10
Página anterior | Volver al principio del trabajo | Página siguiente |