sábado, 26 de diciembre de 2009

Programa: Determinar número perfecto.

 

Adaptado de C++, desarrollado en lenguaje D, este programa nos permite determinar si un número introducido por el teclado es perfecto o no. Los números perfectos son aquellos en el que la suma de sus divisores es el mismo número sin incluirse a si mismo, para más detalles sobre el algoritmo/definición visite: http://es.wikipedia.org/wiki/Número_perfecto

Problema: Construir un programa que dado un número x por el usuario determine si es perfecto o no.

Bien partiendo del problema, se quiere saber si un número introducido desde el teclado es perfecto o no.

Declaración del Programa usando Lenguaje D:

Librerías a utilizar:

import std.conv;
import std.cstream;
import std.stdio;

Al igual que C o C++, un programa en D suele comenzar con el método principal main.

void main()
{

 

Declaración de las variables que vamos a utilizar.

int i, sum=0,num, op=1;
string n;

Bucle While, con OP!=0 entrara al programa mientras OP sea diferente de 0

while (op!=0)
    {

 

Pedimos la información al usuario con writef y la procesamos con din.readLine(); en una cadena .

writef("Digite un numero entero: ");
n = din.readLine();

Se realiza la conversión necesaria de la variable recibida usando toTipo_Dato().

num = toInt(n);

Finalmente entramos al ciclo que nos permitirá determinar si el número introducido es perfecto o no.

for (i=1; i<num; i++)
{
  if((num%i)==0)
  {
    sum+=i;
  }
}

Dado la suma y el residuo de debe ser 0 hacemos las comparaciones necesarias y determina si el número es perfecto o no.

if(sum==num)
{
writefln("El numero es perfecto");
}
else
{
writefln("El numero no es perfecto");
}

Finalizamos con un mensaje al usuario si quiere seguir calculando más números o no.

writefln ("Desea continuar: [0] No | [1|] Si");
n=din.readLine();
op=toInt(n);

}

Fin del programa (cerramos con llave).

}

El código fuente es como sigue:

import std.conv;
import std.cstream;
import std.stdio;

void main()
{
    int i, sum=0,num, op=1;
    string n;
    while (op!=0)
    {
    writef("Digite un numero entero: ");
    n = din.readLine();
    num = toInt(n);
    for (i=1; i<num; i++)
    {
      if((num%i)==0)
      {
        sum+=i;
      }
    }
    if(sum==num)
    {
     writefln("El numero es perfecto");
    }
    else
    {
     writefln("El numero no es perfecto");
    }
    writefln ("Desea continuar: [0] No | [1|] Si");
    n=din.readLine();
    op=toInt(n);
    }
}

Programa Funcionando.

image

Recibiendo datos teclado (Lenguaje D)

Entre mis ratos de ociosidad y el no tener nada que hacer (la verdad), me he puesto a aprender un lenguaje de programación más, bueno no precisamente a aprender si no más bien a conocerlo porque tenía la curiosidad desde ya más de un año, empezando ya por lo clásico recibiendo datos e imprimiéndolos en pantalla.

 

/*
Programa: Entrada de Texto.
Programador: Fco Javier.
Lenguaje de Programación: D

Descripción: Un sencillo programa que recibe una secuencia de caracteres (cadena) desde el teclado con el nombre del
             usuario e imprime en pantalla el texto recibido.
Correo y MSN/AIM: fjgm arroba aol punto com punto mx

*/

import std.stdio;
import std.cstream;

void main ()
{

    string entrada;
    writef("Escribe tu nombre: ");
    entrada = din.readLine();
    writefln("Tu nombre es: ",entrada);   
}

Sencillo y funcional para apenas llevar  media hora investigando sobre él.

viernes, 11 de diciembre de 2009

Mortal Life

 

Adaptación  Mía (Remmi)

Mi corazón llorando esta.
Llora por no alcanzar tu eternidad
oh mi vida es mortal yo no se el porque,
tuve que conocer aún ángel como tú.

No esta bien que sienta este amor por ti
más no se vivir sin ti
déjame sentir una caricia de tu corazón
sin tu luz mi vida obscurecerá.

Mi corazón llorando esta... dime como alcanzar la eternidad...
Y mi vida es mortal, yo no se el porque… me enamore de un Ángel como tú
Y mi vida es mortal, yo no se el porque… me enamore de un Ángel como tú.

Y mi vida es mortal, yo no se el porque… me enamore de un Ángel como tú.

Basado en la canción Mortal Life (SnakeSkin Cantatronic 2006)

domingo, 6 de diciembre de 2009

Factores Primos ahora con C++

 

El mismo programa hecho en Java pero ahora en C++

 

Problema: Un usuario desea determinar cuantos factores primos hay hasta el n número que desea, determinar cuantos factores hay utilizando métodos y clases.

Este problema me lo he inventado solo para practicar, así que cualquier parecido con la realidad es otro asunto.

Incluimos las librerías que deseamos utilizar en nuestra aplicación.

#include <conio>
#include <iostream>

Creamos una clase llamada Primos, la cual contendrá el método para obtener los factores primos que el usuario desea conocer.

//Clase para calcular n primos.

class Primos {

    //variables globales.
   int i,j,dv,sum;
   bool pm;

   //método para calcular los primos hasta donde el usuario quiera.
   public:
       void primos(int valores)
      {

          for (i=2; i<valores; i+=1)
         {
             pm=true;

             for (j=2; j<i/2; j+=1)
             {
              if(i%j==0)
              {
               pm = false;
               break;
              }
             }
              if(pm)
              {
              if(i==4) //el 4 no es factor primo
                  {
                  }
              else
              {
                 cout << i <<"-";
              }
            }
         }
      }

};

Una vez que ya tenemos nuestra clase, creamos el programa (aplicación) en Sí, que se resume apenas a 15 líneas de código.

 

void main ()
{
    Primos cprimos;

    int valor, op;

    do
    {
    clrscr();
    cout << "Hasta donde deseas calcular factores primos: "<<endl;
    cin >> valor;

    cprimos.primos(valor);

    cout << "Presione [1] para salir o [2] para continuar usando el programa"<<endl;
    cin >> op;
    }
    while (op!=1);
}

No esta nada mal para el uso de clases en C++, nunca pongan un valor muy alto o podrian llevarse toda la tarde calculando o bastante tiempo y obtendrán algo así

imageLa verdad que horrible y desesperante xD.

Saludos. 

sábado, 5 de diciembre de 2009

Suma y Resta C++ utilizando clases y métodos

 

Ahora experimentando con C++, cabe de señalar que este lenguaje lo desconozco en mucho así que me he puesto a meterle mano a parte de que lo estoy llevando en mi clase de Programación en la Universidad, esta vez se me ha ocurrido hacer una pequeña Resta y Suma utilizando clases solo por diversión el uso es casi similar al de Java (este último una combinación de C y C++) pero con estructura diferente

/*
Programa que suma o resta dos numeros usando clases.
Programador: Fco Javier Guerrero Martínez
mailto: fcojavier05 arroba gmail punto com

*/
#include <conio.h>
#include <iostream.h>

//Clase Aritmetica
class Aritmetica {
//Variables Gloables.
double result ;
//Creamos nuestro método suma de tipo publico
public:
     void suma(double a, double b)
    {
     result = a + b;
     cout << "La Suma es: "<<result<<endl;;
     cout << "Presione una tecla para continuar...."<<endl;
     getch();
    }

//Craemos nuestro método resta de tipo publico
public:
     void resta(double a, double b)
   {
     result = a - b;
     cout << "La resta es: "<<result<<endl;
     cout << "Presione una tecla para continuar...."<<endl;
     getch();
   }

};

void main ()
{
  //Se crea un constructor de la clase que ha de heredar todo los métodos publicos de la misma.
   Aritmetica h;

  //Variables Globales.
  int op;
  double a,b;

    do
   {
    clrscr();
     cout << "[1] Suma "<<endl;
     cout << "[2] Resta "<<endl;
     cout << "[0] Salir "<<endl;
     cout << "Seleccione una opción: "<<endl;
     cin>> op;

     if(op==1)
     {
         cout << "Digite un número: "<<endl;
       cin >> a;
       cout << "Digite otro número: "<<endl;
       cin >> b;

        //Paso de parámetros al método suma
        h.suma(a,b);
     }
     else if (op==2)
     {
       cout << "Digite un número: "<<endl;
       cin >> a;
       cout << "Digite otro número: "<<endl;
       cin >> b;

       //Paso de parámetros al método resta
       h.resta(a,b);
     }
   }
   while (op!=0) ;

}

Calculando Números Primos con Java

Ociosidad, esta pequeña aplicación o programa sencillo muestra como utilizar y generar nuestras propias librerías en Java y reutilizarlas en otros programas.

Concepto.

En ciencias de la computación, una biblioteca (o librero) es un conjunto de subprogramas utilizados para desarrollar software. Las bibliotecas contienen código y datos, que proporcionan servicios a programas independientes, es decir, pasan a formar parte de éstos. Esto permite que el código y los datos se compartan y puedan modificarse de forma modular. Algunos programas ejecutables pueden ser a la vez programas independientes y bibliotecas, pero la mayoría de éstas no son ejecutables. Ejecutables y bibliotecas hacen referencias (llamadas enlaces) entre sí a través de un proceso conocido como enlace, que por lo general es realizado por unsoftware denominado enlazador.

Obtenido de la WikiPedia

El programa. Se desea obtener n cantidad de números primos, el usuario debe de introducir el número final para obtener los números primos.

Por ejemplo: Yo usuario deseo saber cuales son los números primos que hay hasta el número 50.

Herramienta con la que trabajo es NETBEANS.

Primero creare una Librería Java a la cual le he puesto el nombre de aritmetica ahora creare un paquete que le pondré el nombre de metodos en este paquete creare una clase llamada primos.java.

La clase primos.java se encargara de calcular los números primos y devolver el resultado impreso en la pantalla del usuario.

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package metodos;

/**
*
* @author Remmi
*/
public class primos {

    int j, i, dv, sum;
    boolean primo;

    public void primos(int valores) {

        for ( i = 2; i < valores; i += 1) {
            primo = true;

            for ( j = 2; j < i / 2; j += 1) {
                if (i % j == 0) {
                    primo = false;
                    break;
                }
            }
            if (primo) {
                //El 4 no es primo xD.
                if (i == 4) {
                } else {
                    System.out.print(i + " - ");
                }

            }
        }
    }
}

Ya que tenemos nuestra libreria aritmetica.jar con su respectivo paquete llamado métodos y nuestro método para calcular los números primos llamada clase primo.java, pasamos a crear nuestra aplicación.

Para ello pedí un nuevo proyecto “Java Aplication” al cual llame cprimos, yo trabajare en modo consola por razones de tiempo.

 

Nos vamos al proyecto, seleccionamos la carpeta Libraries, damos clic con el botón derecho Agregar JAR/Folder

package cprimos;

import metodos.*;
import java.io.*;

/**
*
* @author Remmi
*/
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {
        //variables
        int total;

        //Creamos una instanacia de primos
        primos pm = new primos();

        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

        System.out.println("+++ Calculadora de Números Primos +++");
        System.out.println("Hasta donde deseas calcular: ");
        total = Integer.parseInt(bf.readLine());

        //Hacemos el paso de parámetros al método primos de la clase métodos
        pm.primos(total);

    }
}

La salida en pantalla es la siguiente:

image

La ventaja de trabajar con nuestras propias clases y librerías es que podemos reutilizarlas en otras aplicaciones, de esta forma nos ahorraremos el tener que volver a escribir el mismo método para el cálculo de un factor… etc. Este ejemplo es muy pobre, pero podemos crear grandes aplicaciones y librerías bien estructuradas para el uso en aplicaciones potentes. 

viernes, 4 de diciembre de 2009

Nostalgias cuando era niño Windows 95

Hoy me entro la nostalgia por regresar a la edad en que comencé a programar (12 años) cuando existía el mitico Windows 3.11 y su predecesor Windows 95 la maravilla, pues buscando por internet pude hacer de una copia OEM de windows 95 con propositos educativos claro, comencé la instalación de FreeDOS en mi máquina virtual usando VirtualBOX y una vez finalizada la instalación del sistema  base MSDOS me dispuse a instalar el mítico Windows 95

image

Dura nostalgia que regresa a casa, jajajaja lo que era el mejor sistema operativo de Microsoft xD para mi porque fue el primero que conocí (de ahí me enamore de Unix/Linux) , hoy en día maquinas potentes y lo que no fue ya no volverá a ser, solo en el museo de nuestros recuerdos lo podemos encontrar.

Los programadores nuevos desconocen el uso de MSDOS comandos básicos para la supervivencia, ya todo es clic + clic y suprimir, los que crecimos con estos cambios en la informática creo que aún seguimos admirados de lo que podías hacer en ese entonces con 2 gigas de disco duro (el disco que jamás llenarías) y apenas 32 megas de RAM

Y aun lo recuerdo como si fuera ayer, con una suite llamada NETSCAPE GOLD que venía en un cd, con un icq que nadie que pertenezca a la era del Messenger se ha de acordar o con el mítico protocolo Gopher, que tal una conexión por telnet o usar Verónica que tiempos aquellos.

En fin dicen que recordar es volver  a vivir. 

miércoles, 2 de diciembre de 2009

Google México Cambia el diseño.

 

googlemexico

Hacía tiempo que este diseño sencillo estaba en pruebas con el dominio GOOGLE.COM para algunos usuarios, hoy para los que usamos el navegador de GOOGLE (CHROME) tenemos la posibilidad de ver el nuevo sitio de GOOGLE, más sencillo y con solo pasar el puntero del mouse el objetivo es gastar menos ancho de banda .

Solo la versión en ingles es compatible con los otros navegadores (www.google.com )

image

Pero a mi me gusto más este diseño de Google se ve más colorido xD

image