Declarado el estado seco

0 comentarios

Hola amigos hace tiempo que no estoy con vosotros. El problema principal es el trabajo que de momento no me deja tiempo para hacer nada, bueno eso no es del todo cierto ya que pude encontrar una librería para la Nintendo DS que se denomina PA_Lib.

La estoy intentando de instalar en un linux, distribución UBUNTU FEISTY FAW, de momento la cosa pinta bien pero como ya ni me acuerdo de en que punto se encuentra pues igual lo empiezo de nuevo, gente de los errores se aprende y eso me demuestra que no apuntar lo que se va haciendo puede terminar pasando factura.

Bueno os dejo queridos lectores que tengo que seguir parametrizando todos los productos de nuestro cliente y no preguntéis que ya sabéis que significa secreto de empresa
13/12/07

Creación de PONG para DS

0 comentarios

  En estos momentos me encuentro investigando la librería Pa_LIB de la DS para intentar de crear un juego, como veis es el PONG pero al no haber creado a la hora de la verdad nada que se le pueda denominar interactivo y mucho menos algo que de como resultado algo dinámico pues me encuentro con esa dificultad.

 

Tras ver que ninguno de los afiliados a la pagina ni posibles lectores se han interesado por mantener ningún tipo de comunicación pues e preferido actualizar menos veces, buscar mas información y dar como resultado lo que será mi primer juego. Después de este primer intento haré otras cosas para la DS, pondré cantidad de información en esta pagina pero lo mas importante, una vez crea que ya estoy preparado preparare mi primer juego en C/C++ con entorno gráfico preferiblemente basado en OpenGL para intentar de que sea compatible tanto con un Windows como para un Linux.

 

Bueno queridos amigos espero que nos podamos ver dentro de poco y que la gloria del C os acompañe.

Calendario en PHP.

0 comentarios

No es que me sienta muy orgulloso de tener que hacer las cosas de esta manera, pero en este caso cuelgo un código que me hubiera sido muy beneficioso cuando estudiaba.

Este en concreto lo encontré no hace mucho por la red de una pagina que se denomina koders. Esta no es la manera que me gusta de colgar cosas ya que prefiero hacerlo por mi mismo todos estos programas pero en mi caso la falta de tiempo a sido crucial para no poderos prestar atención.

<?

/*
Autor inicial : Miguel Angel Alvarez <miguel@desarrolloweb.com>
Cita textual : Puedes utilizar ese cdigo para lo que desees... yo estoy encantado de
ayudar.
Febrero 2 2005.

Este archivo tiene cdigo inicialmente creado por Miguel Angel Alvarez, agradecemos
sus buenos deseos y continuaremos construyendo con el mismo nimo.

Contribuye : Rubn Amrtegui

*/


function nombre_mes($mes){
switch ($mes){
case 1:
$nombre_mes="Enero";
break;
case 2:
$nombre_mes="Febrero";
break;
case 3:
$nombre_mes="Marzo";
break;
case 4:
$nombre_mes="Abril";
break;
case 5:
$nombre_mes="Mayo";
break;
case 6:
$nombre_mes="Junio";
break;
case 7:
$nombre_mes="Julio";
break;
case 8:
$nombre_mes="Agosto";
break;
case 9:
$nombre_mes="Septiembre";
break;
case 10:
$nombre_mes="Octubre";
break;
case 11:
$nombre_mes="Noviembre";
break;
case 12:
$nombre_mes="Diciembre";
break;
}
return $nombre_mes;
}

function mostrar_calendario($dia,$mes,$ano){
$mes_hoy=date("m");
$ano_hoy=date("Y");
if(empty($dia))
$dia=date("d");
if(empty($mes))
$mes=date("m");
if(empty($ano))
$ano=date("Y");
//echo $ano_hoy;
if (($mes_hoy != $mes) || ($ano_hoy != $ano)) {
$hoy=0;
}
else {
$hoy=date("d");
}
//tomo el nombre del mes que hay que imprimir
$nombre_mes = nombre_mes($mes);
$nombre_mes_hoy = nombre_mes(date("m"));
//construyo la cabecera de la tabla
echo "<table border=0 bgcolor=#DDDDDD align=center><tr><td colspan=7 align=center>";
echo "<tr bgcolor=#7777FF><td colspan=7 align=center>Actual: $nombre_mes_hoy ".date("d")." del $ano_hoy</td></tr>";

echo "<tr bgcolor=#7777FF><td colspan=2>";
//calculo el mes y ano del mes anterior
$mes_anterior = $mes - 1;
$ano_anterior = $ano;
if ($mes_anterior==0) {
$ano_anterior--;
$mes_anterior=12;
}
echo "<a href=menuagenda.php?dia=1&nuevo_mes=$mes_anterior&nuevo_ano=$ano_anterior&diaagenda=0>Ant</a></td>";
echo "<td align=center colspan=3> $dia - $nombre_mes - $ano </td>";
echo "<td colspan=2 align=right>";
//calculo el mes y ano del mes siguiente
$mes_siguiente = $mes + 1;
$ano_siguiente = $ano;
if ($mes_siguiente==13) {
$ano_siguiente++;
$mes_siguiente=1;
}
echo "<a href=menuagenda.php?dia=1&nuevo_mes=$mes_siguiente&nuevo_ano=$ano_siguiente&diaagenda=0>Sig</a></td></tr></td></tr>";
echo "<tr bgcolor=#CCCCFF><td>LUNES</td><td>MARTES</td><td>MIERCOLES</td><td>JUEVES</td><td>VIERNES</td><td>SABADO</td><td>DOMINGO</td></tr>";

//Variable para llevar la cuenta del dia actual
$dia_actual = 1;

//calculo el numero del dia de la semana del primer dia
$numero_dia = que_dia_de_semana(1,$mes,$ano);
//echo "Numero del dia de demana del primer: $numero_dia <br>";

//calculo el ltimo dia del mes
$ultimo_dia = verifica_long_mes($mes,$ano);

//escribo la primera fila de la semana
echo "<tr align=center>";
for ($i=0;$i<7;$i++) {
if ($i < $numero_dia) {
//si el dia de la semana i es menor que el numero del primer dia de la semana no pongo nada en la celda
echo "<td></td>";
} else {
if ($i == 6) {
if ($dia_actual == $hoy) {
echo "<td><a href=menudia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
}
else {
echo "<td><a href=menudia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
}
}
else {
if ($dia_actual == $hoy) {
echo "<td><a href=menudia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
}
else {
echo "<td> <a href=menudia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
}
}
$dia_actual++;
}
}
echo "</tr>";

//recorro todos los dems das hasta el final del mes
$numero_dia = 0;
while ($dia_actual <= $ultimo_dia) {
//si estamos a principio de la semana escribo el <TR>
if ($numero_dia == 0)
echo "<tr align=center>";
//si es el ultimo de la semana, me pongo al principio de la semana y escribo el </tr>

if ($numero_dia == 6) {
if ($dia_actual == $hoy) {
echo "<td><a href=menudia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
}
else {
echo "<td><a href=menudia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
}
}
else {
if ($dia_actual == $hoy) {
echo "<td><a href=menudia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
}
else {
echo "<td><a href=menudia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
}
}

$dia_actual++;
$numero_dia++;
if ($numero_dia == 7) {
$numero_dia = 0;
echo "</tr>";
}

}

//Comprobando terminar el calendario del mes
for ($i=$numero_dia;$i<7;$i++) {
echo "<td></td>";
}

echo "</tr>";
echo "</table>";
}

//Retorna el nmero de la semana en donde se encuentra un determinado da.
function que_dia_de_semana($dia,$mes,$ano){
$numerodiasemana = date('w', mktime(0,0,0,$mes,$dia,$ano));
if ($numerodiasemana == 0)
$numerodiasemana = 6;
else
$numerodiasemana--;
return $numerodiasemana;
}


//Revisa para tener los meses completos
function verifica_long_mes($mes,$ano){
$ultimo_dia=28;
while (checkdate($mes,$ultimo_dia + 1,$ano)){
$ultimo_dia++;
}
return $ultimo_dia;
}

potencia en recursiva

0 comentarios

Hoy vamos a poner un ejemplo sencillo de recursividad en C/C++. Se trata de algo muy sencillo pero extraordinariamente util en la programacion de funciones matematicas, se trata de nada más y nada menos que la potencia, todos sabemos que dentro de la libreria math se pueden hacer potencias casi de cualquier tipo pero lo que con este ejercicios queremos demostrar es que por recursividad podemos tener cualquier base y cualquier exponente.

//Lo priemro como siempre es cargar las librerias que nos puedan hacer falta.
#include <stdio.h>

//Declaramos la potencia que nos va a servir como recursiva, fijaros que le pasamos dos enteros pero devuelve un numero largo, esto es para previsionar un posible fallo por un numero demasiado alto.
long potencia(int,int);

void main()
{

int x=0,y=0;//La declaracion de las variables que nunca nos puede faltar en C

printf ("\nIntroduzca la base -> ");//se saca por pantalla la peticion de una base.
scanf ("%d",&x);//y con esto lo recojemos, fijaros que solo aceptamos numeros enteros, y se lo pasamos a la variable "X"

printf ("\nintroduzca la potencia -> ");
scanf ("%d",&y);



printf ("\nel resultado es igual a %ld\n\n\n",potencia(x,y));//Esto es interesante, si os fijais imprimimos una funcion y no una variable esto es debido a que cuando lee la funcion la ejecuta una vez pasandoles las dos variables anteriores.

};


long potencia (int x,int n)//Como siempre cargamos la funcion y sus variables, se han cambiado los nombres para que veais que no hace falta que sean los mismos.
{

if (n>0)//Con la setencia if hacemos que se ejecute la primera sentencia si es cierta y si es falsa pasara al else ejecutando la segunda sentencia.
return potencia (x,n-1)*x;//con return lo que hacemos es salir de la funcion dando el resultado de lo que esta detras de ella.
else
return 1;

};

Programacion en cobol

0 comentarios

Pocos son los que programan en Cobol y de los pocos que intentan hacerlo se encuentran con el problema añadido de no encontrar con que hacerlo por eso desde el programador cutre os traemos una manera de poder probar vuestros codigos.

Anita es un programa basado en Java por lo que en cualquier maquina en la que tengais la maquina virtual de Java podreis mover el programa, en este caso el link solo incluye el .exe de Windows pero si os hace falta el de Linux me podeis enviar un mail para ponerlo en la pagina ademas de enviaroslo por mail. Tened en cuenta que este programa no es propiedad nuestra si no de si no de April System Design, cualquier duda con el programa en cuestion teneis que reportarselo a ellos, de igual manera que agradeceran que le reporteis los posibles bugs que tenga el programa. El programa en cuestion es una evaluacion de 30 dias.

Las torres de Hanoi C/C++

0 comentarios

Las torres de Hanoi es un juego matemático. Consiste en tres varillas verticales y varios discos dispuestos en la primera varilla de mayor a menor. No existen dos discos iguales y contra más hayan más dificil sera la solución, ¿Seguro? pues no por que el programador cutre os ofrece la manera de solucionar este problema; esta entrega sera en C/C++, ello no significa que no se pueda hacer en otros lenguajes.

/*Las torres de Hanoi es el juego de tres torres con unos discos en el que se tienen
*que pasar los discos de una torre a la otra con la condicion de que en ninguna torre puede
*haber un disco pequeño por debajo de uno grande
*las funciones serian:
* Hanoi (1,A,B,C)
* Hanoi (1,A,C,B)
* Hanoi (1,B,C,A)
* Donde el orden seria el de: Hanoi (numero de discos, origen, destino, torre auxiliar)*/

#include <stdio.h>//incluimos esta libreria ya que pediremos por pantalla cuantos discos se usaran.

void hanoi(int,char,char,char);// aqui se ve claramente como estamos inicializando una funcion nueva.

void main()//esta es la funcion principal, se pone void por que al ser una funcion unica tampoco no nos interesa que devuelva nada. Dentro de la funcion no recojemos nada por que de momento a los main no le pasaremos nada.
{
int num;//Declaramos un variable entera.
char A='A',B='B',C='C';//Declaramos tres variables de tipo caracter para indicar la torre en la que estamos.

printf ("Introduzca el numero de discos que utilizara: ");//Esto es lo que se visualizara por pantalla, tened en cuenta que si poneis algun tipo de escape tendria que estar fuera de las comillas.
scanf ("%d",&num);//Con %d le indicamos que lo que recogeremos sera un decimal y con &num que se pasara a la variable num.

hanoi (num,A,C,B);//Con esto realizamos la llamada a la función inicializada con anterioridad.

printf ("\n\n\n");//Se imprimiran tres saltos de linea cuando se acabe la anterior función.
}

/**En esta funcion viene la parte importante de este programa**/

void hanoi (int num,char org,char des,char aux)// Aqui se esta inicializando la función y sus variables.
{
if (num==1) //en caso de que num sea 1 se hara el ultimo printf dando por finalizado esta funcion.
printf("\n%c-->%c",org,des);//Esto nos printara en el dispositivo estandar el ultimo movimiento.
else//en caso contrario se ejecutaran tres veces seguidas las funciones
{
hanoi (num-1,org,aux,des);
hanoi (1,org,des,aux);
hanoi (num-1,aux,des,org);
}//Teneis que recordad que esto esta pensado en recursiva por lo tanto asta que num no sea 1 se seguiran concatenando las fuciones para despues volver hacia atras.
}

Bueno una vez ejecuteis este programa podreis ver cual es el resultado y una vez lo hayais visto pensad en la leyenda detras de este problema.

Cuenta la leyenda que Dios al crear el mundo colocó tres varillas de diamante con 64 discos de oro en la primera. También creó un monasterio con monjes que tenian que resolver esta torre de Hanoi divina. Se dice que el dia en que la terminen el mundo terminara. xD desde luego este Edouard Lucas creo una buena falacia.


Solucion 4 discos

Funcionamiento

0 comentarios

Teoricamente esto tendria que haber sido el primer post, pero me apetecia saludaros dando un poco de historia, se que eso es inservible y que los filosofos diran que la historia siempre se repite, pero la verdad espero que no pase eso.

En este blog vamos a dar información general sobre la programación, dandola de manera explicita desde ejercicios realmente faciles asta los mas complicados que no necesiten de herencia ni supere las 200 lineas de programa, en caso de que suceda alguna de estas cosas pasara por nuestras manos el problema enseñando algo muy importante y que todo programador tiene que tener en cuenta, esto es saber dividir el problema, de esta manera se pueden enfrentar con mayor facilidad al problema global, que sepais que no soy muy partidario de los analisis funcionales pero son un bien que todos tenemos que acojer con sumo gusto pues nos dividen los problemas de tal manera que es mas facil abordar un programa más grande y en más tiempo.

Todo lo que querais preguntar se tiene que enviar a WebMaster y el lo distribuira al que mas sepa del sistema de programación que soliciteis, en el caso de que nadie sepa de ese sistema de programación podran darse dos cosas, o bien os facilitamos un pseudocodigo con la solucion o bien aprendemos, intentaremos que no aparezcan muchos pseudocodigos.

Es posible que aparezca información que no este relacionada con la programación, tal y como puede ser un teclado nuevo de Logitech o una placa base nueva de Epox peró eso nunca dara lugar a que la pagina se vea derivada a temas que no sean de programación.

Todo lo aquí expuesto son horas que depositaremos en esta pagina y problemas personales que compartiremos con todos, en ningun caso se vera vulnerada la identidad de las empresas en las que trabajamos ni se mostrara codigo interno de las paginas, primero por que no quiero y segundo por la ley de privacidad de datos.

La pagina y todos los componentes no se hacen responsables de los codigos que salgan como contestación a las preguntas que nos formulen los visitantes, desde luego desde nuestra posición evitaremos en la medida de lo posible el facilitar lineas de programas que pudieran perjudicar la integridad de los sistemas, en caso de que se detecte dichas peticiones de una manera muy constante o de una manera muy directa nos pondremos en contacto con el usuariopara ponerle en conocimiento el problema que existe con su codigo en caso de insistencia por parte del usuario se pondra en conocimiento de las entidades judiciales pertinentes que tomaran sus propias medidas.

Esta Web no contribuira de ninguna manera en la creacion de Malware, spyware, virus o cualquier tipo de programa que pueda vulnerar la seguridad de algun sistema.

Como es logico todo lo aqui expuesto, y con esto me refiero a soluciones que no estuvieran planteadas con anterioridad, son una propiedad intelectual propia de la que nadie puede hacer un lucro personal o corporativo. (que si no haveros quemado vosotros las neuronas)

Inicio de un sueño

0 comentarios

Ningun inicio fue facil, muchos se rindieron, otros quedaron en el camino pero entre todos nos han enseñado una leccion muy importante que la constancia y la persistencia nos puede reportar la alegria de un trabajo bien realizado y en algunas ocasiones podremos ver como todo el mundo habla de aquello que nos dejo sin dormir durante unos cuantos dias.

Todo el mundo necesita de la figura del informatico desde sus inicios cuando en 1642 se invento la pascalina, posiblemente no fue el percusor de la informatica tal y como la conocemos, pero fue el primer proceso mecanico existente en la tierra capaz de sumar de una manera mecanica, se componia de ocho manivelas que hacian girar unas piezas de tal manera que podia sumar desde numeros como 000000,01 a 999999,99 ahora nos puede resultar una tonteria pero por aquel entoces hera un avance muy a tener en cuenta, hay que pensar que no fue asta 30 años despues cuando un filosofo aleman invento un proceso similar pero capaz de multiplicar y dividir y lo que parece mas dificil todavia podia obtener raices cuadradas en tipo binario.
Cierto es lo que estais pensando que de momento la figura del informatico no pinta nada en todo esto si no que es mas bien el mecanico el que podria hacer algo con esto, pero teneis que pensar que la informatica moderna tal y como la conocemos no la podemos contar asta mas o menos el 1801 cuando un hombre llamado Joseph Marie Jacquard utilizó un mecanismo de tarjetas perforadas que utilizaba para poder controlar el dibujo formado por los hilos de las telas que heran confeccionadas por una máquina. Pero en este caso se podria tratar mas bien como unas plantillas o un molde para las puntadas se dibujaran de determinada manera.
Tuvieron que pasar 42 años y que lo dijera una mujer para que se inventara la programación, no fue otra que Ada Augusta Lovelace que sugirió la idea de que las tarjetas perforadas se adaptaran de manera que ciertas operaciones se repitieran, personalmente pienso que todos dicen que fue solamente una sugerencia de esta mujer mas que nada por que en aquella epoca la mujer no hera considerada mucho mas que un ser pensado para el disfrute del hombre y para la perpetuación de la especie.

De todas maneras la programación digital propiamente dicha no se dio asta los comienzos de los años 30 cuando Atanasoff se dio cuenta de que los problemas que queria resolver requerian de una gran cantidad de calculos por lo que gracias al Consejo de Investigacion del Estado de Iowa con su aportacion de 650 dolares consiguio la cooperación de Clifford Berry y los primeros materiales. Posteriormente recibió otras donaciones sumando la cifra de 6460 dólares. La primera computadora digital que conseguieron crear se denomino ABC que no es otra cosa que las siglas de Atanasoff Berry y Computer, este aparato que costo tanto dinero, tiempo y dedicación por parte de estos dos hombre no hera más que una calculadora sencilla, el primer aparato electronico de calculo sencillo que tal y como Mrs. Augusta Lovelace havia dicho con las tarjetas perforadas podria ser el percusor de la programación avanzada.
No fue asta el 1940 cuando Atanasoff encontro a John Mauchly en la Asociacion Americana para el Avance de la Ciencia, un hombre que mas o menos a la vez havia tenido los mismos problemas por lo que se originó la disputa sobre la paternidad del computador digital.

Y esto es todo por hoy sobre la historia de la programación, nos vemos en otro momento para ver como hacer un programa sencillo.