epelpad

Algoritmos Básicos Aplicados en Programación Web

Buenas, luego de joder un tiempo en Yahoo! Respuestas, desde Octubre del 2010 encontré útil guardar muchos de los códigos que más use en la sección Diseño y Programación, habían muchísimos mas pero no los guarde. Estos fueron los únicos.

1. Lenguaje: PHP
El código consiste en un vector de un número aleatorio de elementos numericos, ordenarlos de tal forma que queden en otro vector los números pares, y en otro los impares, a demás hallar el promedio de el vector de los pares y los impares, luego de todo eso sumar el valor de los vectores de los pares e impares.



<?php
$suma
=0;
$sumb=0;
$x = array(20,15,3,4,7,9,17,21,76,79,80,32,45,75,25,0,1);

for (
$i=0;$i<=count($x);$i++){

if (
$x[$i]%2==0){
$pares[]=$x[$i];
}
elseif (
$x[$i]%2!==0){
$impares[]=$x[$i];
}
}
for (
$i=0;$i<=count($pares);$i++){
$suma+=$pares[$i];
}
echo 
'El Promedio de pares es '.round($suma/count($pares)).' y la suma de elementos dió '.$suma;
for (
$i=0;$i<=count($impares);$i++){
$sumb+=$impares[$i];
}
echo 
'</p>El Promedio de impares es '.$sumb/count($impares).' y la suma de elementos dió '.$sumb;


Explicación: Es muy simple, recorre con un for el vector principal y con condiciones almacena los elementos que resulten pares en el vector pares y en el vector impar los que no correspondan a los pares, es decir, que el residuo de su división entre 2 no de 0 (inexacta). Luego se vuelve a recorrer el array y se suma cada elemento en el array pares e impares, en el promedio se usa la función round() para que quede un entero y resulte más cómodo trabajar.

2. Lenguaje: PHP

Es un complemento de el ejercicio anterior, consiste en hallar el número mayor y el promedio de dos vectores distintos y crear un nuevo vector que contenga los valores de los vectores anteriores, también sacandole su respectivo promedio y el número mayor total


<?php

$x 
= array(20,15,3,4,7,9,17,21,76,79);
$y = array(3,6,9,12,15,18,21,24,27,30);
for (
$i=0;$i<=10;$i++){
$todos[]=$x[$i];
  if (
$i==10){
    for (
$a=0;$a<=10;$a++){
      
$todos[]=$y[$a];
   }
 }
}
function 
promedio($array){
  
$suma=0;
  for (
$i=0;$i<=count($array);$i++){
    
$suma+=$array[$i];
  }
  return 
'El Promedio del vector es '.$suma/count($array);
}
function 
mayor($array){
  
$mayor $array[0];
  for (
$i=1;$i<=count($array);$i++){
   if (
$mayor $array[$i]){
      
$mayor $array[$i];
   }
 }
 return 
'El número mayor del vector es '.$mayor;
}
echo 
'<b>Respecto a el primer vector</b><p>'.promedio($x).'</br>'.mayor($x).'</p>';
echo 
'<b>Respecto a el segundo vector</b><p>'.promedio($y).'</br>'.mayor($y).'</p>';
echo 
'<b>Respecto a el ultimo vector</b><p>'.promedio($todos).'</br>'.mayor($todos);


Explicación Acá como son varios vectores, para sacar el promedio y mayor más rápido se usan funciones y el for anidado de arriba es para cuando acabe de almacenar todos los valores de la primera matriz dentro de el vector que almacenará todos los valores de todos los vectores empiece con el otro.


3. Lenguaje: JavaScript

Esta consiste en sacarle el área a un cuadrado,triangulo y un rectángulo según dos variables dadas.


<script type="text/javascript">
function cuadrado(lado){
 return lado*lado+"cm²";   
}
function rectangulo(l1,l2){
 return l1*l2+"cm²";  
}
function triangulo(b,h){
   return (b*h)/2+"cm²";
}
var x,y;
x=20;
y=10;
document.write("Con argumentos de "+x+" y "+y+" cm es así:</p>El area del triangulo es de: "+triangulo(x,y)+"</br>El area del cuadrado es de: "+cuadrado(x)+"</br>El area del rectangulo es de: "+rectangulo(x,y)+"<hr>");
</script>


Explicación Acá ya preestablecí los valores pero se puede arreglar con prompt() o con inputs en HTML, lo hice así para demostrar que funcionaban las funciones solamente.

4. Lenguaje: PHP

Es simplemente para sacar tablas de multiplicar, pero esta es editable, puedes configurar hasta cuanto quieres que multiplique, en este caso hasta 10 (como siempre) y que números quieres que multiplique


<?php
# la variable f , es hasta que numero se quiere multiplicar , por ejemplo, si tenemos la tabla #del 2 y f es 10 entonces multiplicara hasta 2x10
# la variable a, es cuantas tablas quieres, si a es 10 por ejemplo seguira hasta la tabla del 10
$f=10;
$a=10;
$x=0;
for (
$n=1;$n<=$a;$n++){
  for (
$i=$n;$i<=$n*$f;$i=$i+$n){
    
$x++;
     echo 
$n." por ".$x." es igual a ".$i."<br>";
     if (
$x==$f){
       
$x=0;
       echo 
"<hr>";
     }
  }
}



5. Lenguaje: PHP
Son dos ejercicios, uno es dar 4 números y que saque los números pares, sumarlos y luego sacar el número mayor. El segundo es con la longitud del radio de un circulo sale la longitud de su circunferencia y el área del circulo.


<html>
<head>
<title>Problema</title>
</head>
<body>
<form method="POST" name="form1">
<label style="font-size:11px;" for="numbers">Escribe 4 números separados por una coma (,)</label>
<input type="text" size="12" placeholder="1,2,3,4" name="numbers"/></br>
<input type="submit" value="calcula" name="calcula"/>
</form>
<hr>
<form method="POST" name="form2">
<label for="radio" style="font-size:11px">Escribe el Radio del Circulo</label>
<input type="text" size="5" maxlenght="35" name="radio"/></br>
<input type="submit" value="calcula" name="calcula2"/>
</form>
<?php
if ($_POST['calcula'] )
 {
$x=explode(",",$_POST[numbers]);
if (
count($x) < ){
echo 
"Error: Hay Mas de 4 números";
exit();
}

$mayor=$x[0];
  for (
$i=0;$i<=count($x);$i++){
 
    if (
$x[$i]%2==0){
     
$pares[]=$x[$i];
    }

    if (
$mayor $x[$i]){
     
$mayor=$x[$i];
   }
 }
  for (
$i=0;$i<=count($pares);$i++){
   
$suma+=$pares[$i];
 }
 echo 
"El mayor es ".$mayor."</br> La Suma de los pares es: ".$suma;
 
}

if (
$_POST['calcula2'] && is_numeric($_POST['radio']))
{
$r2=$_POST['radio']*$_POST['radio'];
echo 
"La Longitud de La Circunferencia es: ".floor(2*pi()*$r2);
echo 
"</br>El Area es: ".floor($r2*pi());
}

?>

</body>
</html>

Explicación Pongo para mayor facilidad poner todos los números en un input sobre el primer ejercicio separados por una coma, luego en php los separo con explode()

7. Lenguaje: JavaScript
Escribir un número de 1 a 7 y decir a que día de la semana es correspondiente.


<html>
<head>
<title>Problema</title>
</head>
<body>

<script language="javascript">

function calcula(){
 var vector;
 var numero;
 numero = parseInt(document.form.num.value);
 if (numero > 7 || numero < 1){
  document.write("Error de Validacion");
  return false;
}
 vector = new Array("null","Lunes","Martes","Miercoles","Jueves","Viernes","Sábado","Domingo");
document.write("El día de la semana correspondiente a ese número es el  "+vector[numero]);
    
}
</script>
<form name="form" action="#">
<label for="num" style="font-size:12px;font-family:Arial,sans-serif;">Ingresa un número entre 1 y 7: </label><input type="text" size="2" maxlenght="2" name="num"/></br>
<input type="button" value="Calcula" onclick="calcula();"/>
</form>
</body>
</html>

Explicación Como los arrays cuentan desde cero por eso le puse null.


8. Lenguaje: PHP
Funciones para sacar promedio, combinación y permutación


<?php
function factorial($in) {
   
$out=1;
    if (!
is_int($in)){
      return 
false;
  }
    if (
$in==|| $in==1){
      return 
$out;
 }
   for (
$i 2$i <= $in$i++) {
        
$out *= $i;
 }

    return 
$out;
}
function 
combinacion($N,$o){
     if (!
is_int($N) || !is_int($o)){
       return 
false;
       exit();
 }
    
$segundo factorial($N-$o)*factorial($o);
    return 
factorial($N)/$segundo;
}
function 
permutacion($N,$o){
    if (!
is_int($N) || !is_int($o)){

     return 
false;
     exit();
  }
   return 
factorial($N)/factorial($N-$o);

}

Explicación Esto no es por Yahoo! Respuestas, lo hice porque cuando estaba en el colegio en estadística me ponían muchos ejercicios de esto, y para ahorrar tiempo hice las funciones

9. Lenguaje: PHP
Hacer un array con números aleatorios e imprimirlos en reversa


<?php

$x 
= array("8","7","1","9","2","6","3","4","5","0");
$n count($x); // Numero de elementos del array x
for ($i=$n;$i>=0;$i--){
print 
$x[$i].',';
}


10. Lenguaje: JavaScript
Pedirle al usuario que ingrese 10 números (se que en el script no pido 10) y sacar el mayor y el menor. Pero con vectores


var numeros=new Array();
var mayor,menor;
for (var i=0;i<=2;i++){
numeros[i] = prompt('Ingrese un número positivo:','');
}

mayor=numeros[0];
menor=numeros[0];
for (var a=1;a<=numeros.length;a++){
 if (numeros[a] > 0){
    if (mayor < numeros[a]){
        mayor=numeros[a];
  }
    if (menor > numeros[a]){
      menor=numeros[a];
   }
 }
  
}
document.write("El Mayor Fue " + mayor + " mientras que el menor fue " + menor + "</br>");


PD: Solo tienen explicación los que tienen tips a tener en cuenta, y ratifico que los scripts son mios ya que los hice en base a pedidos de usuarios en Yahoo Respuestas desde mi registro

4 comentarios - Algoritmos Básicos Aplicados en Programación Web

psy_tikon
Gracias capo, muy buenos.
RobertoGonzale63
Muy buen aporte mi estimado, aclara lo que siempre he dicho aprende algoritmos primero, el código es sólo cuestión de sintaxis. http://abcalgoritmos.com/
fermin_romero_t
Metelos en una base de datos y sacalos por ORDER BY campo DESC, que gracioso ando hoy Dx