Universidad Autónoma de Ciudad Juárez

Instituto de Ingeniería y Tecnología

Ingeniería en Sistemas Computacionales

"; echo ""; echo ""; echo "
Número Base
"; //echo "
"; //echo "
"; if(isset($_GET['conv'])) { //Esta parte es para llenar el arreglo $arr = array(); for ($cont=0;$cont<36;$cont++) { if($cont<10) { $arr[$cont]=chr($cont+48); } else { $arr[$cont]=chr($cont+55); } } if($base < 2 || $base>36) echo "La base no puede ser menor que 2 ni mayor que 36"; else { if($num==null) { echo "Ingrese el valor de número "; } if($base==null) { echo "Ingrese el valor de la base "; } // Esta parte es para validar la parte entera $pospunto=0; if($num!=null && $base!=null) { $num = strtoupper($num); $valida=1; $validaF=1; $entera; for ($cont = 0; $cont < 10; $cont++) { if (substr($num,$cont,1) != ' ')//Si el carácter es diferente de blanco { if (substr($num,$cont,1) != '.')//Si el carácter es diferente de punto { $valida=1; for ($cont2 = 0; $cont2 < $base; $cont2++)//Se busca en el arreglo completo { if ($arr[$cont2] == substr($num,$cont,1))//Si el carácter es igual { $valida=0;//Cambia el estatus $cont2=40;//Interrumpe el ciclo } } if ($valida == 1) { $entera="Error en la parte entera " .substr($num,$cont,1); break; } else $entera = $entera .substr($num,$cont,1); } else { $pospunto=$cont+1; break; } } }//Termina el ciclo para buscar los caracteres de la parte entera //Ahora validamos la parte fraccionaria if($pospunto!=0) { $fracc; //Variable para guardar la parte fraccionaria $bandera=0;//Para saber a partir del punto empezar a escribir en la parte fraccionaria for ($cont = $pospunto; $cont < 10; $cont++)//ciclo para leer todos los caracteres de la cadena { if (substr($num,$cont,1) != ' ')//Si el carácter es diferente de blanco { $bandera=1; $validaF=1;//al inicio siempre aparece validaF en 1 (no validado) for ($cont2 = 0; $cont2 < $base; $cont2++)//Se busca en el arreglo completo { if ($arr[$cont2] == substr($num,$cont,1))//Si el carácter es igual { $validaF=0;//Cambia el estatus $cont2=40;//Interrumpe el ciclo } } if ($validaF == 1) { $fracc="Error en la parte fraccionaria " .substr($num,$cont,1); break; } else { $fracc = $fracc .substr($num,$cont,1); } } }//Termina el ciclo for para leer los caracteres de la parte fraccionaria if($bandera==0) $validaF=0; } //Esta parte se muestra solo si no hay errores en la parte entera y fraccionaria if($valida==0 && $validaF==0) { $TamEnt=strlen($entera);//Obtenemos la longitud de la cadena entera $TamFra=strlen($fracc);//Obtenemos la longitud de la cadena fraccionaria echo "
"; echo "

"; echo "1. Multiplicar cada dígito por la base elevado al exponente según su posición."; echo "
"; echo "
"; echo "    "; //Parte entera $bandera=0; $expo=$TamEnt-1; for ($conta=0;$conta<=$TamEnt-1;$conta++) { if($bandera==1) { echo " + "; } for ($cont2 = 0; $cont2 < $base; $cont2++)//Se busca en el arreglo completo { if ($arr[$cont2] == substr($entera,$conta,1))//Si el carácter es igual { if($cont2>9) echo "(" .substr($entera,$conta,1) .")"; echo $cont2; $cont2=40;//Interrumpe el ciclo } } echo "*"; echo $base; echo "^"; echo $expo; $expo--; $bandera=1; }//termina los caracteres de la parte entera //Parte fraccionaria $banderaF=1; for ($conta=0;$conta<$TamFra;$conta++) { if($banderaF==1) { echo " + "; } for ($cont2 = 0; $cont2 < $base; $cont2++)//Se busca en el arreglo completo { if ($arr[$cont2] == substr($fracc,$conta,1))//Si el carácter es igual { if($cont2>9) echo "(" .substr($fracc,$conta,1) .")"; echo $cont2; $cont2=40;//Interrumpe el ciclo } } echo "*"; echo $base; echo "^-"; echo $conta+1; $banderaF=1; } echo "
"; echo "
"; echo "2. Elevar la base a la potencia."; echo "
"; echo "
"; echo "    "; //Parte entera segundo paso $bandera=0; $expo=$TamEnt-1; for ($conta=0;$conta<=$TamEnt-1;$conta++) { if($bandera==1) { echo " + "; } for ($cont2 = 0; $cont2 < $base; $cont2++)//Se busca en el arreglo completo { if ($arr[$cont2] == substr($entera,$conta,1))//Si el carácter es igual { echo $cont2; $cont2=40;//Interrumpe el ciclo } } echo "*"; $total=1; if($expo>0) { for($conta2=1;$conta2<=$expo;$conta2++) $total=$total*$base; } echo $total; $expo--; $bandera=1; }//termina los caracteres de la parte entera //Parte fraccionaria $expo=TamFra; $banderaF=1; for ($conta=0;$conta<$TamFra;$conta++) { if($banderaF==1) { echo " + "; } for ($cont2 = 0; $cont2 < $base; $cont2++)//Se busca en el arreglo completo { if ($arr[$cont2] == substr($fracc,$conta,1))//Si el carácter es igual { echo $cont2; $cont2=40;//Interrumpe el ciclo } } echo "* 1/"; $total=1; for($conta2=1;$conta2<=$conta+1;$conta2++) $total=$total*$base; echo $total; $banderaF=1; } echo "
"; echo "
"; echo "3. Finalmente realizar las multiplicaciones y sumar."; echo "
"; echo "
"; echo "    "; //Parte entera tercer paso $bandera=0; $res=0; $expo=$TamEnt-1; for ($conta=0;$conta<=$TamEnt-1;$conta++) { if($bandera==1) { echo " + "; } $num; for ($cont2 = 0; $cont2 < $base; $cont2++)//Se busca en el arreglo completo { if ($arr[$cont2] == substr($entera,$conta,1))//Si el carácter es igual { $num= $cont2; $cont2=40;//Interrumpe el ciclo } } //echo "*"; $total=1; if($expo>0) { for($conta2=1;$conta2<=$expo;$conta2++) $total=$total*$base; } echo $total*$num; $res=$res+$total*$num; $expo--; $bandera=1; }//termina los caracteres de la parte entera //Parte fraccionaria $expo=TamFra; $banderaF=1; for ($conta=0;$conta<$TamFra;$conta++) { if($banderaF==1) { echo " + "; } $num; for ($cont2 = 0; $cont2 < $base; $cont2++)//Se busca en el arreglo completo { if ($arr[$cont2] == substr($fracc,$conta,1))//Si el carácter es igual { $num= $cont2; $cont2=40;//Interrumpe el ciclo } } //echo "* 1/"; $total=1; for($conta2=1;$conta2<=$conta+1;$conta2++) $total=$total*$base; echo (1/$total)*$num; $res=$res+(1/$total)*$num; $banderaF=1; } echo " = ".$res; } else { if($valida!=0) echo $entera; if($validaF!=0) { echo $fracc; echo " no forman parte de la base "; } } } } } ?>