Mostrando entradas con la etiqueta Java. Mostrar todas las entradas
Mostrando entradas con la etiqueta Java. Mostrar todas las entradas

domingo, 9 de enero de 2011

Después de estas fechas navideñas...y un poco de Java jeje

Perdiendo el tiempo en youtube encontré un video muy "adoc" a las fechas navideñas que acabamos de pasar con un toque hasta cierto punto geek jajaja pero más que eso muestra todas las redes sociales con las que convivimos a diario.

También les comparto un video que seguramente ya habrán visto si es que son desarrolladores y amantes de Java jeje es muy bueno y divertido! JAVA 4-EVER :)


sábado, 8 de enero de 2011

Project Euler

Me hacia falta subir los 3 problemas que les había mencionado en el post pasado.

Problema 3 dice:

  • The prime factors of 13195 are 5, 7, 13 and 29.What is the largest prime factor of the number 600851475143 ?
public static void problema3(){
  BigInteger bi= new BigInteger("600851475143");
  BigInteger resultado, ultimo;
  if(bi.mod(new BigInteger("2"))==(new BigInteger("0"))){
   bi=bi.divide(new BigInteger ("2"));
   while(bi.mod(new BigInteger("2"))==(new BigInteger("0")))
    bi=bi.divide(new BigInteger ("2"));
  }
  else
   resultado=new BigInteger("1");
  ultimo=new BigInteger("3");
  while(bi.compareTo(new BigInteger ("1"))==1){
   if(bi.mod(ultimo).intValue()==0){
    bi=bi.divide(ultimo);
    resultado=ultimo;
    while(bi.mod(ultimo)==new BigInteger ("0"))
     bi=bi.divide(ultimo);
   }
   ultimo=ultimo.add(new BigInteger("2"));
  }
  ultimo=ultimo.subtract(new BigInteger("2"));
  System.out.println("R3: "+ultimo);
 }
Problema 4 dice:
  • A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.
    Find the largest palindrome made from the product of two 3-digit numbers.
public static void problema4(){
  Integer resultado=0;
  Integer resFin=0; 
  for(int i=999;i>=100; i--){
   for(int j=999;j>=100;j--){
    resultado=i*j;
    StringBuffer res=new StringBuffer(resultado+"");
    String res1=res.toString();
    String res2=(res.reverse()).toString();
    if(res1.equals(res2)){
     if(resultado >resFin)
      resFin=resultado;
    }
   }
  }
  System.out.println("R4: "+ resFin);
  
 }

Problema 5 dice:

  • 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.
    What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20?
public static void problema5(){
  int i=20; 
  while ( (i % 20!=0)||(i % 19!=0)||(i % 18!=0)||(i % 17!=0)||(i % 16!=0)||(i % 15!=0)||(i % 14!=0)
    ||(i % 13!=0)||(i % 12!=0)||(i % 11!=0)||(i % 10!=0)||(i % 9!=0)||(i % 8!=0)||(i % 7!=0)
    ||(i % 6!=0)||(i % 5!=0)||(i % 4!=0)||(i % 3!=0)||(i % 2!=0)||(i % 1!=0)){ 
   i++; 
  } 
  System.out.println("R5: "+i); 
 } 


sábado, 1 de enero de 2011

El regreso...

Estos últimos meses no he realizado ninguna entrada al blog y es que entre la escuela, trabajo, familia y amigos estos meses han sido una locura. Entre exámenes, certificaciones, vacaciones, fiestas y mucho trabajo. Pero bueno, que mejor manera de iniciar el año que realizando una nueva entrada a mi blog olvidado :)

Como propósito en este año espero por lo menos tener dos entradas por mes y así enriquecer, compartir y hasta ayudarnos en problemas que tengamos en cuanto a programación o configuración de instalaciones.
Este año pinta taaaan bien!!! :) el año lo terminé cerrando un proyecto muy grande dónde se utiliza tecnología de Oracle y que en próximas entradas comentaré sobre éstas, ya que son nuevas y a mi parecer son muy buenas y facilitan la vida.


Dadas las fechas navideñas en la consultora donde trabajo nuestro jefe convocó a un concurso para ganar un póster de Los Simpsons. Y aunque no soy muy fan de ellos decidí participar.
El concurso es resolver de la página http://projecteuler.net/ los primeros 5 problemas. Ayer antes de festejar el fin de año me puse a contestarlos y llevo dos problemas resueltos.
Los resolví con Java, seguramente los algoritmos que desarrollé no son los más eficientes pero los resultados son correctos. Si tienen alguna sugerencia de cómo hacer más eficaces estos programas, se aceptan sugerencias.
El problema número uno dice:

  • If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below 1000.

public static void problema1(){
  ArrayList< integer > numeros= new ArrayList< integer >(); 
  int suma=0;
  for(int i=1;i < 1000; i++){
   if((i%3)==0 || (i%5==0)){
    numeros.add(i);
    suma+=numeros.get(i);
   }
  }
 }
El resultado es: 233168


El problema dos dice:

  • Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:
    1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
    By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.
public static int fib(int n) {
         if (n <= 1) 
          return n;
         else 
          return fib(n-1) + fib(n-2);
 }
        public static void problema2(){
  ArrayList< integer > numeros= new ArrayList< integer >(); 
  for(int i=0; i<34; i++)
   numeros.add(fib(i));
  int suma=0;
  for(int i=0; i < numeros.size();i++)
   if(numeros.get(i)%2!=0)
    suma+=numeros.get(i);
  System.out.println("La suma es: " +suma);
 }
 
Así el resultado es: 4613732


Espero que este tipo de problemas sean de su agrado y continuar resolviendo los problemas que se encuentran en esta página.

Saludos y muy buen inicio de año! Pronto agregaré las respuestas de los 3 que me hacen falta :P

lunes, 31 de mayo de 2010

Parámetros en Java

Últimamente en el trabajo he escuchado decir:
"Que pasa con Java, aqui estoy asignando el valor y en este método ya no esta el valor, haber no que muy muy Java me esta fallando" 
Y aunque no vi el código que señalaban, pensé que seguramente era por la manera en que implementaban el paso de los parámetros. Pero todos sabemos que Java sólo tiene UNA forma de pasar parámetros y esto es: Parámetros por valor.

Pero y ¿qué significa esto?..... veamos unos ejemplos.

public class ParametrosValor {

 public static void main(String [] args) {
  int numero=8;
  calculaNumero(numero);
  System.out.println(numero);
 }

 public static void calculaNumero(int num){
   num=10;
 }
}


Este ejemplo imprimirá "8". Y esto es porque la variable "num" es local y recibe una copia del valor de la variable numero que se envía como parámetro y el valor de la variable num nunca se modifica.

Ahora veremos el siguiente ejemplo:

public class ParametrosValor {

 public static void main(String [] args) {
  int[] arreglo = new int[1];
  arreglo[0] = 8;
  calculaNumero(arreglo);
  System.out.println(arreglo[0]);
 }

 public static void calculaNumero(int[] array) {
  array[0] = 10;
 }
}



Pero entonces lo que aquí imprime es un 10.  Lo que pasa en este ejemplo es que como estamos utilizando un arreglo y un arreglo es un objeto, las variables que apuntan a un objeto son sólo referencias a él. Entonces el método de calculaNumero  modifica el valor del objeto. Y es donde entran las confusiones porque Java no paso los parámetros por referencia. Al contrario, pasó el valor de la referencia.

Y si no me creen,  pruebenlo!! XD! Espero les sirva. Saludos

domingo, 30 de mayo de 2010

Flex+Java+BlazeDS

Hace como tres meses inicie con este post pero por falta de tiempo no le pude dedicar lo necesario para que fuera publicado. La semana pasada (bueno de hace ya tiempo jaja) realice para parte de un proyecto la conexión de Flex con Java. Hacerlo es muy sencillo pero cuando eres nuevo y no conoces al respecto si te lleva algo de tiempo, porque por lo menos yo no encontré la información necesaria respecto a la implementación.

Flex
Es un framework desarrollado por Adobe, la cual te permite crear aplicaciones dinámicas de Internet (RIA's- Rich Internet Applications). Esto significa que es un patrón o un esqueleto para poder llevar acabo la implementación de una aplicación. Nos sirve mucho ya que con su uso es muy fácil de distinguir el modelo MVC (Modelo-Vista-Controlador). Flex cubrirá la parte de vista y controlador y Java manejará el modelo del negocio; es decir este último llevará toda la lógica y las operaciones internas necesarias. Mientras Flex sólo será la vista y mande a llamar eventos a partir de las acciones que realice el usuario.
¿Pero por qué Flex?... Adobe define a Flex como altamente productivo además de ser opensource, el cual sirve para poder construir y mantener aplicaciones web "expresivas" que pueden ser desplegadas en más navegadores, computadoras y SO. Esto gracias a que Flex utiliza Adobe Flash Player. Otra ventaja es que Flex utiliza AS y puede desarrollar interfaces gráficas, juegos y animaciones.

BlazeDS(binary distribution)



BlazeDS es sólo un puente entre Flex (capa de vista) y Java (capa de negocio). Es decir, tiene la funcionalidad de una interfaz.



Conexión
Antes que nada lo que debemos de tener instalado o descargado en nuestra computadora es:

  1. Flex Builder 3 (http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex3email)
  2. Eclipse (http://www.eclipse.org/downloads/)
  3. BlazeDS-binary distribution (http://flexorg.wip3.adobe.com/blazeds/3.0.x/milestone/3978/blazeds-bin-3.2.0.3978.zip)
  4. JDK (http://java.sun.com/javase/downloads/widget/jdk6.jsp)
  5. Apache Tomcat (http://tomcat.apache.org/download-60.cgi)
Ahora si ya que tenemos todo es hora de configurar!!!


  • Abrir eclipse. Se debe de configurar el servidor Apache Tomcat en esta IDE. Esto es en el Window-> Preferences ->Server -> Installed Runtimes. Y ahi es donde añadimos el servidor de Tomcat

  • Ahora debemos de agregar las bibliotecas de BlazeDS. Para esto es: File -> Import -> Web -> WAR File. Además se debe de escribir el nombre del proyecto.

  • Después de esto solo se deben de realizar las clases en java que se necesiten en su proyecto. Y para que flex sepa que clases son el código fuente se debe de modificar el fichero remoting-config.xml.  Como se muestra a continuacion.

<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service" class="flex.messaging.services.RemotingService">
<adapters>

   <adapters-definition id="java-object" class="flex.messaging" />
</adapters>
<default-channels>
   <channel ref="my-amf"/>
</default-channels>
<destination id="ClaseServiceDestination" channels="my-amf">
   <properties>
        <source> ejemplo.NombreClase</source>
   </properties>
</destination>


Así en las vistas realizadas en Flex se debe de agregar un RemoteObject, como se ve a continuación:



<?xml version="1.0" encoding="UTF-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
   import mx.rpc.events.ResultEvent;
   import mx.rpc.events.FaultEvent;
   import mx.controls.Alert;
   import mx.utils.ObjectUtil;
<mx:RemoteObject id="remoteClaseService" destination="ClaseServiceDestination" showBusyCursor="true">
<mx:method name="resultado" result="resultClase(event)" fault="faultResultado(event)">
</mx:RemoteObject>
<mx:Button label="Obtener Resultado" click="remoteClaseService.metodoClase()"/>
</mx:Application>


sábado, 6 de marzo de 2010

El nuevo inicio

Este blog será un lugar donde expresaré lo que vivo a diario, lo que estoy experimentando y los caminos que tendré que pasar para lograr mis objetivos en la vida.

Es un proyecto personal que incluirá experiencias de la vida diaria, experiencias laborales y hasta escolares. Todo esto ha surgido gracias a las nuevas experiencias que he vivido en los últimos dos meses, los cuales han estado llenos de cambios. Cambios que hasta cierto punto me han sorprendido pero eran necesarios y ahora poco a poco voy retomando el camino hacia lo que busco, hacia lo que quiero.

Espero que este proyecto poco a poco se enriquezca, no estoy segura de que alguien lo lea pero si es así que alegría y si no, no importa simplemente quiero plasmar mis ideas y mis experiencias.


Bueno mi nombre es Silvia Díaz, actualmente soy estudiante del 8vo semestre de Ingeniería en Tecnologías Computacionales en el ITESM-CCM, además me encuentro laborando como Consultor Jr. en una consultora mexicana.

Con esto, podrán darse cuenta de mi gran interés por la tecnología pero también disfruto de ver películas y series de TV así como los partidos de fútbol (obvio Pumas jaja!!). Y que mejor que compartir todo esto con amigos y salir a disfrutar de la vida después de una larga semana de estudio y trabajo XD!

Espero que este blog este lleno de información y experiencias y que en algún momento le sean de utilidad a alguien más.