julho 2016

Sabiendo de algunos errores que se presentan durante la compilación, he creído necesário hacer este artículo donde explico con imagenes bien detalladas uno de los problemas más comunes de Java y su compilación:
El problema se origina al colocar en el prompt de comando el código para ejecutar el programa creado en Java, tal como nos muestra la figura inicial de este artículo.
Bueno pues, esto es originado básicamente porque el JDK no encuentra el archivo ".class" en el directorio especificado. Pero ¿cómo solucionar esto?
Pues bien esto es solucionado de 2 maneras:

  1. Primer Método:

En el caso del ejemplo de la figura inicial, usted deberá colocar el siguiente código en su "prompt de comando (CMD)"; obviamente esto despues de compilar su aplicativo:
java -cp . holamundo

como muestra la figura:


Si no tienes el Eclipse Software te invito a que lo descargues en este link:  IDE Eclipse Software

Ahora, con el IDE Eclipse Software ya abierto:

Creamos un nuevo proyecto Java en el IDE Eclipse

  1. Usted deberá primeramente hacer click en File (“Archivo”), como vemos a continuación, al hacer esto se abrirán un abanico de opciones:

  2. Luego habrá que hacer click en New (“Nuevo”) con lo cual se abrirá un nuevo abanico de opciones en las que haremos click en “Java Project” (“Proyecto Java”):
  3. Con esto aparecerá una ventana nueva, tal como nos muestra la figura:
  4. En esta ventana colocaremos el nombre de nuestro proyecto en la casilla correspondiente llamada “Projecto Name” (“Nombre del proyecto”) y luego haremos click en Finish "finalizar", para finalizar la configuración del nuevo proyecto.
  5. Inmediatamente nos aparecerá en nuestro Package Explorer (Explorador de Paquetes), nuestro nuevo proyecto con su nombre, en nuestro caso “Hello”. 
  6. Para los que no consiguen visualizar esta ventana llamada “Package Explorer ó Explorador de paquetes”, pueden hacer click en el menú superior del Eclipse en el botón “Window (Ventana)” à “Show View (Mostrar)” à”Package Explorer (Explorador de paquetes)”, con lo cual aparecerá dicha ventana donde se muestran nuestros proyectos. 

Creando una clase con el IDE Eclipse

  1. Nuestro siguiente paso será crear la Clase "Class" llamada HelloWorld. Para vamos al menu principal de Eclipse y clicamos en File "Archivo", luego en New "Nuevo",  luego pues hacemos click en lo que queremos que es Clase "Class", tal como se muestra en la figura:
  2. Habiendo creado la clase, nos aparecerá una ventana como la que sigue a continuación:
  3. En esta ventana pues colocaremos el nombre de nuestra clase en el campo respectivo name "nombre", para nuestro ejemplo le colocaremos "HelloWorld". Veamos:
  4. Luego pues, podemos ver que en esta ventana nos hacen una pregunta como la siguiente: Which method stubs would you like to create? "¿Con cuál trozo de código le gustaría crear?", particularmente para este ejemplo marcaremos la primera casilla donde dice:                              "public static void main(String[] args)"; el ¿por qué utilizamos esta opción? será detallado en otro artículo; veamos la figura a continuación:

Introduciendo código en el IDE Eclipse

  1.  Realizado esto nos aparecerá el código necesario para realizar nuestro primer ejemplo, veamos:
  2.  Ahora que ya tenemos casi todo listo, pues realizamos el pedido de mostrar en pantalla la frase "Hello World!" con el código siguiente:
    System.out.println("Hello World!");
  3. Siendo el código anterior colocado inmediatamente después de la abertura del segundo corchete, osea después del Method Stub "pedazo de código generado por eclipse", exactamente en el lugar que indica la figura, veamos:

Haciendo correr nuestro aplicativo en el IDE Eclipse

  1. Realizado esto, debemos solo hechar andar nuestro aplicativo con el comando Run "Correr", esto haciendo click en este botón ubicado en el menú principal: 

  1. Hecho esto, tendremos en ejecución nuestro primer proyecto en Java, con lo cual deberá aparecer en la parte de ejecución del aplicativo o Console "Consola" el "Hello World!", si en caso aparece alguna otra ventana como esta, será solo para confirmar que estamos guardando el proyecto a lo cual deberemos clicar en ok, veamos:
  2.  Ahora sí, nuestro "Hello World!" esperado!
Habiendo culminado esta etapa, habremos alcanzado nuestro primer proyecto Java usando el IDE Eclipse, espero haber hecho una buena explicación del tema. Si les gustó el artículo porfavor dejen sus comentários que seran de mucha ayuda para la consecución de nuevos artículos!

    Polimorfismo(del griego que significa: “múltiples formas”), es la cualidad que le permite a una interfaz tener acceso a una clase general de acciones. La acción específica se determina por la naturaleza exacta de la situación. 
    Un sencillo ejemplo de polimorfismo se encuentra en el volante de un automóvil. El volante (es decir, la interfaz) es el mismo sin importar qué tipo de mecanismo de dirección sea utilizado. Esto quiere decir, que el volante funciona de la misma forma si su carro tiene dirección manual, dirección asistida o aquella dirección de piñon y cremallera. Por lo tanto, una vez que sabes como operar el volante podrás conducir cualquier tipo de vehículo.

    El mismo principio puede aplicarse también a la programación. Por ejemplo, considere un stack (en español “pila”) la cual es una lista ordenada o estructura de datos que permite almacenar y recuperar datos y en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés Last In First Out, último en entrar, primero en salir). Es posible que tenga un programa que requiera tres tipos diferentes de stacks (pilas). Una pila se utiliza para valores enteros, uno para para valores de coma flotante y uno para caracteres. En este caso, el algoritmo que implementa cada stack (pila) es el mismo, a pesar de que los datos que se almacenan son diferentes.­­­  En un lenguaje que no sea orientado a objetos, usted se verá obligado a crear tres diferentes conjuntos de rutinas de stacks (pilas), con cada juego usando diferentes nombres (trabajoso demás no?). Pero ahí es que interviene el polimorfismo en Java, con el cual usted puede crear un conjunto general de rutinas de stack (pilas) que funcione para las tres situaciones específicas. De esta manera, una vez que sabes como usar un stack (pila), podraz utilizar cualquier una de ellas.

    De manera más general, el concepto de polimorfismo se expresa a menudo por la frase “una interfaz, múltiples métodos”. Esto significa que es posible diseñar una interfaz genérica para un grupo de actividades relacionadas. El polimorfismo ayuda a reducir la complejidad al permitir que la misma interfaz se utilice para especificar una clase general de acción. Siendo este el trabajo del compilador para seleccionar una acción específica (por ejemplo, el método) que se aplica a cada situación. Siendo así, usted programador no necesitará hacer esta selección manualmente, sólo necesita recordar y utilizar la interfaz general.

    La herencia en el lenguaje Java es una de las "piedras angulares" de la programación orientada a objetos ya que nos permite la creación de clasificaciones jerárquicas. Para entenderla mejor podemos decir que es el proceso por el cual un objeto puede adquirir las propiedades de otro objeto. Eso es importante porque sustenta el concepto de clasificación jerárquica. 
    Con la herencia usted puede crear una clase general que defina los rasgos comunes de un conjunto de elementos relacionados. Ing. Miguel Santisteban
    En la terminología de Java, una class que es heredada se denomina "superclase" y la class que hereda se llama "subclase". Por lo tanto, una subclase es una versión especializada de una superclase.

    Por ejemplo, una manzana Red Delicious es parte de la clasificación “manzana”, que a su vez es parte de la class (subclase) fruta”, que esta bajo la class (super clase) “alimentos”. Esto quiere decir, que la class alimentos” posee ciertas cualidades o atributos (comestible, nutritivo, etc.) que también como es lógico, se aplica a su subclase “fruta”. Además de estas cualidades o atributos, la class fruta” tiene  características específicas (jugosa, dulce, roja, verde, etc.) que la distinguen de otros alimentos. La class manzana” define las cualidades específicas para una manzana (crece en árbol, no tropical, etc.). Una manzana Red Delicious, a su vez, heredará todas las cualidades de todas las class anteriores y definirá sólo aquellas cualidades o atributos que la hacen única 

    Sin el uso de jerarquías sería todo más difícil porque para cada objeto tendríamos que definir explícitamente sus características. Con el uso del proceso de herencia, un objeto solo necesitará definir sus cualidades o atributos que lo hacen único en su class. Él puede heredar sus atributos generales de su matriz. Por lo tanto, es el mecanismo de herencia que hace posible que un objeto sea un ejemplo específico de una instancia o caso más general.

    Java está directamente relacionada con C y C++; pues sí, para quien no sabía esto es muy cierto. Java hereda la sintaxis de C y su modelo de objeto es una adaptación de C++; estas relaciones se tornan esencialmente importantes para un programador por los siguientes motivos:
    1. Primero, porque los programadores de hoy en día estan estrechamente familiarizados con la sintaxis de C/C++, esto hace que aprender Java para un programador C/C++ sea mucho más fácil y viceversa para un programador Java al aprender C/C++;
    2. En segundo lugar, los diseñadores Java acaban llevando al más alto nivel un paradigma de programación que ya es altamente exitoso. No olvidemos que la era moderna de la programación comenzó con C, trasladándose luego a C++ y ahora Java ha construído sobre esa rica herencia un entorno de programación potente, logicamente consistente que toma lo mejor del pasado y añade mejores características que son requeridas por el entorno online. 
    Talvez lo más importante de todo esto que yo creo se debe subrayar, sea que por motivo de las similitudes entre C, C++ y Java, se pueda definir un ambiente de trabajo conceptual común para los programadores profesionales, evitando que se enfrenten a grandes dificultades en el momento de migrar de un lenguaje a otro. Ing. Miguel Santisteban
    JavaScript extiende las capacidades de HTML.
    JavaScript es uno de los recursos que han llegado para extender las capacidades del lenguaje HTML, siendo una de las más accesibles y sencillas formas para conseguir este objetivo sin duda convierte a JavaScript en uno de los recursos más populares que existen hoy en día.
    JavaScript no es un lenguaje de programación propiamente dicho como sí lo son C, C++, Delphi y otros. Lo más cercano a decir es que sea un lenguaje script u orientado a documento, como pueden ser los lenguajes de macros que tienen muchos procesadores de texto y plantillas de cálculo. No se puede desarrollar un programa con JavaScript que se ejecute fuera del navegador, aunque en estos tiempos comenzamos a sentir como se está expandiendo a otras áreas como la programación en el servidor usando el no menos famoso Node.js.

    JavaScript es un lenguaje interpretado que se embebe en una página web HTML, esto quiere decir pues que es a las instrucciones las analiza y procesa un navegador en el monento que deben ser ejecutadas.

    Vamos a dejar con ustedes un primer programa, el cual muestra en un documento HTML el mensaje "Hola Lectores"

    <html>
    <head>
    </head>
    <body>

    <script type="text/javascript">

    document.write('Hola Lectores');

    </script>

    </body>
    </html>
    Para realizar este ejemplo tú mismo, descargate un procesador de textos o puedes tambien usar tu bloc de notas de la siguiente manera:
        1. Abre tu bloc de notas (véase la figura):

        2. Coloca el código descrito anteriormente y guardalo nombrándolo como tu desees pero con terminación ".html", un ejemplo sería: index.html; todo esto de la forma como se vé en la figura.

       3. Localizamos el archivo guardado y lo abrimos, haciendo click derecho sobre el ícono y seleccionando "abrir con", seleccionando luego un navegador tal como muestran las figuras:

     

        4. Por último tu navegador deberá quedarte así:
    Jeje algo básico para aquellas personas que no quieren esperar!
    JavaScript, uno de los lenguajes más utilizados en el mundo!

    En este post comparto con ustedes 3 conceptos que debemos tener claros para el día a día en el ambiente de la programación con JavaScript,

    1. ¿Qué es coerción?
    Coerción en el ambiente informático significa forzar a un objeto a que se comporte como si fuera de otro tipo. Por ejemplo: cambiar un número a una cadena de texto, cambiar un número decimal a un número entero, etc. Aunque algunos programadores llaman a la coerción como "mala práctica", hay otros que la usan normalmente siempre y cuando no interfiera en los resultados finales del proyecto, Para más informaciones les recomiendo visitar este link, donde se detalla más a fondo el tema:
    Coerción en JavaScript

    2. ¿Qué es un scope?
    En español el término "Scope" se traduce como el ámbito de una variable, quiere decir que es la zona del programa en la que se define una variable y como es sabido JavaScript define 2 ámbitos para las variables: "local" y "global".
    Para más informaciones los invito a dirigirse a este site muy bueno:
    Àmbito de las variables ó Scope

    3. ¿Qué es un prototype ó prototipo?
    Un prototipo no es más que un objeto al que recurre otro objeto cuando no sabe cómo hacer algo que se le pide. Todos los objetos en JavaScript poseen un enlace a un prototipo mediante el atributo privado __proto__.
    Para aprofundarse más en este tema, dejo este link bastante interezante:
    Los Prototipos en JavaScript

    Queda claro que las personas que no tienen una base aún sobre el recurso JavaScript, pues les resultará complejo entender, para ellos les dejo este link donde podrán comenzar una aventura con JavaScript:
    ¿Qué es JavaScript?


    Te gustaron estos 3 conceptos? Crees que debería colocar más conceptos? Déjanos tu comentário, será de mucha ayuda!
    Un prototipo de función en C ofrece información importante para el compilador

    Para entender mejor este concepto he creído necesario hacernos las siguientes interrogaciones:

    A que se dedica el prototipo de función en C?
    Un prototipo de función en C pasa información importante para el compilador.

    Que tipo de información ofrece el prototipo de función en C al compilador?
    Las principales informaciones que ofrece el prototipo de función en C son el tipo de dato que retorna la función, el número, el tipo y el orden de parámetros que recibe la misma.

    Para qué utiliza el compilador a los prototipos?
    El compilador utiliza a los prototipos para verificar las llamadas a funciones. Antiguamente no existía el prototipado por lo cual muchas veces se generaban errores de todo tipo en el uso del lenguaje. Esto será detallado más adelante.

    Hagamos un ejemplo de Prototipo de funcion en C:
    int maximo(int, int, int);

    Este ejemplo de prototipo o declaración de funcion en C indica 2 cosas importantes que el compilador debe llevar en cuenta:
    1. Que la función de nombre "maximo" va a retornar como resultado un valor de tipo entero ("int"). 
    2. Que la función de nombre "maximo" debe ser llamada con tres parámetros del tipo entero ("int").
     Otro importante beneficio de los prototipos o declaraciones de funciones en C:
    El prototipo o declaración de funciones en C tambien sirve para la "coerción de argumentos", osea si la función es llamada con valores de otro tipo que sean diferentes a los definidos en el prototipo de esa función, el compilador "intentará" convertir esos valores a los tipos de datos correspondientes declarados en el prototipo (esto siempre y cuando sea posible esa conversión entre esos tipos de datos.). Por ejemplo si la función espera un entero y recibe un decimal, esta intentará convertir ese decimal a entero truncando la parte decimal, lo cual puede generar errores si la exactitud de ese dato es importante. Por esta razón es importante tomar en cuenta el tema de la "Coerción de argumentos", la cual puede estar en modo automático y acabar perjudicando el desenvolvimiento del proyecto.

    Nota: Cabe resaltar que el prototipado o declaración de funciones en C puede omitirse cuando se está programando; con esta omisión el compilador formará el prototipo o declaración dependiendo de la primera aparición de la función.
    En el ejemplo en caso de omisión del prototipado el compilador asumirá que toda función regresa un valor del tipo entero de forma predeterminada.

    Uno de los aprimoramientos de C++ en relación al lenguaje C es la construcción "class".

    Básicamente debemos saber que una clase define la forma de un objeto.

    Las características principales de la construcción "class" son:
    • define nuevos tipos de datos que especifican la forma de un objeto.
    • incluye datos y código que operaran sobre esos datos.
    • combina miembros de datos y funciones de miembros en una única unidad.
    Conceptos básicos a tomar en cuenta:
    1. Miembros de clase: es el código y los datos que constituyen una clase.
    2. Variables de miembros o Variables de instancia: son los datos definidos por la clase
    3. Funciones miembro: son el código que opera en los datos definidos por la clase.
    4. Objetos: son instancias de una clase.
    Podemos postar un primer ejemplo, el cual define un tipo llamado CRender, el cual es usado para implementar operaciones de renderizado en este caso, veamos: 

    // Esto define la clase CRender
    class CRender {
    char buffer[256];
    public:
    void m_Renderizar();
    };

    Viendo más de cerca esta declaración de la clase, podemos notar que todos los miembros de CRender son declarados dentro de la declaración "class". Las variables miembro de CRender es buffer y la función miembro es m_Renderizar. Tal como se muestra en la siguiente figura:
    Variables Miembro y la Función Miembro.

    Nota Importante: Por defecto los miembros de una clase son privados; esto significa que sólo pueden acceder a ella otros miembros de la misma clase y ninguna otra parte del programa, en el caso del ejemplo la variable buffer es privada, eso quiere decir que sólo habra acceso a esta variable para los miembros de la clase CRender. Todo esto hace que sea posible la Encapsulación. Osea podemos controlar el acceso a ciertos elementos de datos manteniéndolos privados. 


    Ahora si usted quiere hacer pública una parte de la clase (osea accesible a otras partes del programa), pues entonces usted debe declarar esta con la palabra clave public, así todas las variables o funciones definidas después de la palabra clave public seran accesibles por todas las demás funciones en el programa. En el ejemplo puede notarse que la función m_Renderizar() es pública. Tal como se muestra en la figura.


    Notemos que la palabra clave "public" es seguida con ":", que no se le olvide.
    Tampoco olvidemos que un objeto forma una relación entre código y datos.

    Una función miembro tiene acceso a los elementos privados de su clase, esto quiere decir que m_Renderizar tiene acceso a buffer en nuestro ejemplo.

    Si usted quiere añadir una función miembro a la clase, se debe especificar su prototipo en la definición de la misma.



    Por lo tanto podemos concluir de que una clase es esencialmente un conjunto de planos que especifican como construir un objeto.
    C++ hoy es utilizado en muchos softwares distribuidos en grandes empresas.
    Un ordenador hoy en día se ha convertido en un elemento esencial de nuestra sociedad moderna. El trabajo en fábricas, establecimientos de ventas, laboratorios de investigación y desarrollo, etc; estan todos siendo controlados por computadoras. Y no sólo eso, la mayor parte de nuestro futuro está estrechamente vinculado con la evolución de los sistemas informáticos lo cual implica un desarrollo del hardware y tambien del software. Esto se refleja claramente en el rápido desarrollo de equipos informáticos que vemos hoy en día. Súper computadores que son capaces de procesar miles de millones de instrucciones por segundo es la novedad de hoy en día. Los computadores portátiles hoy en día tienen mejores velocidades y precios menores que aquellos fabricados una década antes. Pero queda claro que solo las máquinas no son suficientes, tambien se necesita de un software robusto y eficiente para hacer que estas máquinas se ejecuten en toda su extensión y los lenguajes de programación son la base para un software eficiente.



    Un hardware típico de computador consiste en uno o más chips de microprocesadores conectados a los chips de apoyo y otros circuitos electrónicos. Estos chips incluyen chips de memoria caché y primaria generalmente llamada de memoria RAM (memoria de acceso aleatorio). Además, el microprocesador está también conectado a los dispositivos de almacenamiento de memoria, como disquete, CD-ROM (disco compacto de memória de solo lectura), discos duros, etc.






    El chip microprocesador que es el chip principal también se denomina CPU (Central Processing Unit ó Unidad de procesamiento central). Su estructura interna consta de circuitos que forman el número de registros (el número típico es 16), una unidad aritmética, una unidad lógica y una unidad de control, este tiene gran número de terminales para la conexión de dispositivos externos (por ejemplo, una CPU típica tiene hasta 478 terminales). De estos el grupo de terminales es para datos de entrada y datos de salida, otro de los grupos es para las direcciones de memoria y aún el otro grupo es para fines de control. Cabe mencionar también que, varios terminales son para el servicio de interrupción. Una interrupción es como estrellarse contra la puerta. Supongamos que un programa se está ejecutando en el ordenador y se le interrumpe para que comience nuestro programa. Primero el ordenador guarda el estado del programa en curso, emprende el nuevo curso y al finalizar el trabajo en él, se reanuda el programa que estaba en curso. Cada CPU soporta un conjunto de instrucciones diseñadas por el fabricante. No debemos entrar en detalle de la circuitería compleja, sin embargo, algunos de los nombres mencionados anteriormente se utilizan a menudo en programación de software y un estudiante debe estar familiarizado con ellos.
          

    Quiero hacer mención antes que nada que C++ es un lenguaje de programación excelente en cuanto al procedimiento, tanto como para la programación orientada a objetos y algo muy importante es que da apoyo a las más diversas aplicaciones en comparación con cualquier otra lenguaje de programación de computadores.
    'Sabías que esta es una de las razones por las que C++ es utilizado ahora en más del 80% de todos los softwares que son creados en la actualidad?'
    Pues sí mis amigos, el que C++ sea el apoyo de muchos desarrolladores para crear software de renombre, hace que aquellas personas de buen conocimiento en este lenguaje tengan un excelente acceso a muchas oportunidades de empleo. Sin embargo muchos estudiantes de este lenguaje de programación concluyen que programar con C++ es una tarea difícil.
    Pues bien, aquí en este site usted va a sumergirse en un mundo fascinante, ya que presentamos el tema teniendo en cuenta esas dificultades que todo alumno tiene y por eso vamos paso a paso colocando en cada tópico muchos ejemplos ilustrativos, de modo que los lectores puedan facilmente comprender el contenido. La programación se aprende mucho más rápido con programas desarrollados en vivo y no leyendo un montón de libros que enseñan como programar.

    STL: La librería de software para el lenguaje C++.
    Cabe señalar tambien que este site explica con extensa cobertura el STL (Standard Template Library ó en español Bibliotecas de modelos standard) que es una librería de software para el lenguaje de programación C++. A la vez señalamos que en este site se menciona tambien la programación de procedimiento, la cual nos prepara para conocer mejor los tópicos más complejos manejados en el lenguaje, tales como clases, sobrecarga de operadores, herencia, programación orientada a objetos (POO), funciones de modelos y clases, sets, multisets, maps, multimaps, stacks, queues, etc. Todo esto tratado en detalle. Todo el contenido de este site ya fué testado y pueden quedarse seguros de que todo esto funciona al 100%. Bueno sin más preámbulo les invito a entrar a cada capítulo. Buena suerte en su estudio, hagan sus comentarios los cuales son de ayuda en todo momento para la mejora de este y otros contenidos.

    Bien mis queridos lectores, es hora de comenzar, lean y practiquen. El lenguaje C++ es fácil para quien lo practica a cada momento de su vida!