Mostrando entradas con la etiqueta programación. Mostrar todas las entradas
Mostrando entradas con la etiqueta programación. Mostrar todas las entradas

viernes, 19 de julio de 2013

Datos alfabéticamente en un arreglo

Ejemplos prácticos alimentan la noción del emprendedor.

Saludos les comparto un nuevo ejemplo para ampliar aun mas el uso de estructuras de datos del tipo arreglo. En esta oportunidad le muestro como ingresar dato de manera ordenada en un arreglos de string, sin duplicidad. Particularmente siempre suelen pedirse en las practicas este tipo de métodos, puesto que es mas rápido acceder a los datos si tienen un orden especifico.

Cuando se trabaja con arreglos ordenados se debe evitar alterar el orden al insertar nuevos elementos o al modificar los existentes.
Metodología para Inserción:
  • Para insertar un elemento X (cualquiera) en un arreglo unidimensional V ordenado, primero se debe verificar que exista espacio.
  • Luego se encontrará la posición en la que debería estar el nuevo valor para no alterar el orden del arreglo. Cuando se detecte la posición, se procederá a recorrer todos los elementos desde ahí hasta la N-ésima posición. Finalmente se asignará el valor de X en la posición encontrada.
  • Cabe destacar que el desplazamiento no se lleva a cabo cuando el valor a insertar es mayor que el último elemento del arreglo.
    Generalmente, cuando se quiere hacer una inserción se debe verificar que el elemento no se encuentre en el arreglo. En la mayoría de los casos prácticos no interesa tener información duplicada; por tanto, si el valor que se desea insertar ya estuviera en el arreglo, la operación no se llevará a cabo.

Ejemplo

 

Codigo fuente

public class ArregloOrdenado {
    
        //forma#1
  String [] Nombres;
  String [] Mensaje={"Disponible",
                    "Espacio no Disponible",
                    "Error de formato",
                    "Sistema iniciado",
                    "Dato repetido"
                    };
  String linea;
  InputStreamReader Flujo_bytes= new InputStreamReader (System.in);
  BufferedReader entrada= new BufferedReader (Flujo_bytes); 
  
   public void iniciarSistema(){
      System.out.println("Para Iniciar el sistema debe ingresar el numero de datos a registrar:");
      try {
          linea= entrada.readLine();
      
      } catch (IOException ex) {
          System.out.println(Mensaje[2]);
      } 
      
      try{
      int numPersona= Integer.parseInt(linea);
      Nombres= new String[numPersona];
      System.out.println(Mensaje[3]);
       linea=null;
      }catch(NumberFormatException e){
           System.out.println( Mensaje[2] +" debe ingrese numeros");
           iniciarSistema();
      }
       
 }
 
   
    public void registrarUsuario(){
 int tamaño= Nombres.length;
 int contador=0;
  while(contador<tamaño){
            System.out.println("Ingrese el nombre de usuario");  
                try {
                    linea= entrada.readLine();
                    listarOrdenado(linea);

                } catch (IOException ex) {
                    System.out.println(Mensaje[2]);
                }

                contador++;
  
        }
     
 
 }
    
    public void listarOrdenado(String nombre){

   int N=Nombres.length;
   int l = 0;
   int pos =busquedaSecuencial(nombre);
   
 
 
 
    if (pos<N&pos!=-1) {
     System.out.println(Mensaje[0]+" casilla " + pos); 
        switch(pos){//caso 1
            case 0:// este es el caso en que sea el primer elemento
                
                  Nombres[pos] = nombre;
                
                break;
            default: //caso 2
 //*************************** ordenado               
               char[] inicialNombres =  Nombres[pos-1].toCharArray();
               char[] inicialNuevo =  nombre.toCharArray(); 
               int ordenAnterior= (int)inicialNombres[0];
               int ordenNuevo= (int)inicialNuevo[0];
               
                if( ordenAnterior<ordenNuevo|ordenAnterior==ordenNuevo){//
                  System.out.println("Dato en orden");
                  Nombres[pos] = nombre;
                }else{
                //hacer un cambio
                  System.out.println("Se intercabia posiciones");

                  while(l<N&Nombres[l]!=null){
                       inicialNombres =  Nombres[l].toCharArray();
                       int actual= (int)inicialNombres[0];                    
                       if( ordenNuevo<actual|actual==ordenNuevo){               
                    break;
                    }

                  l++;
                  }
                  

                   System.out.println("Debe ir en la posicon: "+ l); 
                   if(l<N){
                       
                  String temp=  Nombres[l];
                  Nombres[l]=nombre;
                  String aux=null;
                  int contador=l+1;
                        while(contador<N){
                       aux=  Nombres[contador]; //toma el dato siguiente   
                       Nombres[contador]= temp;// en la posicion siguiente inserta el nuevo
                       temp=  aux;//asigna el dato anterio que no tiene casilla.
//                          
                            
                        contador++;
                        }
                       
                   
                   }
                    
                }
         
                
  //***************************Fin ordenado          
        
        }
        
      
        
    } else if(pos==-1) {
        
          System.out.println(Mensaje[4]);
    }else{
    System.out.println(Mensaje[1]);
    }


}
    
    private int busquedaSecuencial(String nombre) {
    int respueta=0;
    int N=Nombres.length;
    int l=0;   

            while(l<N&&Nombres[l]!=null){    

               if(Nombres[l].equals(nombre)){
                l=-1;
                break;
               }
               l++;

           }
 respueta=l;
  
    return respueta;
       
    }
    
    public void listarDatos(){
     System.out.println("************Incio de listar******************");
 for (int i = 0; i < Nombres.length; i++) {

               
                System.out.println("Usuario \t"+Nombres[i]);
               
         }
    System.out.println("************Fin de listar******************");

}
  
    
}

// metodo principal 
public static void main(String[] args) {
      ArregloOrdenado objeto= new ArregloOrdenado();
      objeto.iniciarSistema();
      objeto.registrarUsuario();
      objeto.listarDatos();
       
    }

jueves, 23 de mayo de 2013

Ejemplo 1 Entrada y salida de datos en java


El código fuente:

Clase principal:
public class Ejemplo1 {
    
   public static void main(String[] a3d) {
        Datos objeto  = new Datos();
     objeto.obtenerCaracter();
     objeto.mostrarDato();
//   objeto.obtenerFlujo();
//   objeto.mostrarDatos();
    }
}
Clase Datos:
public class Datos {
 
    // atributos globales
      private static char flujo;//variable temporal que recibe el dato
      private String linea = null; 
    
       
       //metodo para obtener Un caracter.
       public void obtenerCaracter(){
       System.out.println("Ingresar un dato");
           try {
               flujo=(char) System.in.read();// se castea para pertenecer al mismo tipo de variable
           } catch (IOException ex) {
               Logger.getLogger(Datos.class.getName()).log(Level.SEVERE, null, ex);
           }
       
       }
    //metodo para obtner flujo
    public void obtenerFlujo(){
         
   
    InputStreamReader Flujo_bytes= new InputStreamReader (System.in);
    BufferedReader entrada= new BufferedReader (Flujo_bytes);
    System.out.println("Ingresar un flujo de datos");  
      // System.out.flush();
           try {
             
               //       
                           linea= entrada.readLine();
           } catch (IOException ex) {
               Logger.getLogger(Datos.class.getName()).log(Level.SEVERE, null, ex);
           }
       
        
        
    }
    public void mostrarDatos(){
    System.out.println("Dato ingresado: "+linea);   
    }
    
     public void mostrarDato(){
    System.out.println("Dato ingresado: "+flujo);   
    }

}

viernes, 3 de mayo de 2013

Tipo de datos simples o primitivos


https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYo39Kq2EXrL_bDRHFmFl1FDnlnzQcqeEcBHBo56KbriDqL0x2PjxefozlK4F7PmnWC5gNRV2Q4ekWovDwaTyyAON-8Z5VUQq0zXmqkF8UgwVdV7CNjU0p2CNT91j__tSRzc7S5C7bWFXF/s1600/Esquema+de+datos+simples.jpg«La mayoría de los buenos programadores programan no porque esperan que les paguen o que el público los adore, sino porque programar es divertido.»

-Linus Torvalds

 En el  desarrollo de software los equipos informáticos se han convertido en una herramienta imprescindible en las empresas actuales, desde las grandes hasta las muy pequeñas, incluyendo a los trabajadores autónomos  disponen de un equipo informático que les ayuda en su proceso productivo de la información  Por lo que los datos se han convertido en algo muy importante, su gestión y su resguardo  es de gran interés de los desarrolladores.

Hay solamente cuatro diferentes tipos de datos que consideramos mas simples o primitivos. Otros tipos de datos son tipos que representan datos mas complejos. Los tipos tienen que ver con la clase de dato, una variable puede alojar y determinar que clase de operaciones se pueden desarrollar con el dato alojado en ella.

Datos primitivos o fundamentales

Lo que debemos saber

El dato es una representación simbólica (numérica, alfabética  algorítmica), un atributo o característica de una entidad. Los datos describen hechos empíricos, sucesos y entidades.

 Carácter: Frecuentemente se les conoce como Char, porque generalmente los lenguajes de programación están en ingles. Este tipo de dato representa a los caracteres simples, como 'd'. Un tipo de dato complejo que se deriva del tipo carácter  es aquel que reúne mas de un carácter y forma palabras o frases, se llama tipo cadena o string. Ejemplo: la variable nombre Empleado de tipo string puede alojar el dato  "Hola mundo".

Booleano: Los valores booleanos son valores lógicos y pueden ser falso o verdadero. En estos valores se indica el verdadero con el numero 1 y el falso con el 0.  

Entero: Los enteros están entre los tipos de datos mas utilizados en los lenguajes de programación  Hay diferentes clases de números enteros y difieren por el tamaño de ellos, incluyendo enteros cortos y enteros largos. Por ejemplo, en Java, los enteros cortos se alojan en 8 bits, mientras que los enteros de tipo largo, ocupan hasta 64 bits de longitud. Los números enteros son positivos y negativos, por ejemplo -15 y 1000. Notemos que no tienen punto decimal.

Real( Float): Los números reales son números con parte decimal, por ejemplo -10.0, 113288.0 y 12.45. Sin embrago, hay lenguajes de programación como NetLogo, que no hacen diferencia entre numeros enteros y reales cuando son exactos, como el caso de 1 y 1.0.









Tipos de datos en java

Para java los tipos de datos simples representan  valores escalares, valores individuales, como pueden ser char o los enteros. Java no soporta un gran numero de tipos de datos predefinidos, pero tiene la capacidad para crear sus propios tipos de datos a partir de la construcción class. 
Estos son los principales tipos de datos básicos en java, sus tamaños en bytes y el rango de valores que puede almacenar.



Los tipos fundamentales en java son:
Entero: (números completos y sus negativos) de tipo int.
Variantes de enteros: Tipos byte, short y long.
Reales números decimales: tipo float, double.
Caracteres: letras, dígitos, símbolos y signos de puntuación.
Bolean: true y false.

Clasificaciones en los tipos de datos





«La mayoría de los buenos programadores programan no porque esperan que les paguen o que el público los adore, sino porque programar es divertido.»
-Linus Torvalds



Existen muchas clasificaciones para los tipos de datos. Una de estas es la siguiente:


Dinámicos 

Estáticos 
         El tipo cadena 
         Estructurados 
         Simples 
                  Ordinales 
                  No-ordinales 


Tipos estáticos
Casi todos los tipos de datos son estáticos, la excepción son los punteros. Que un tipo de datos sea estático quiere decir que el tamaño que ocupa en memoria no puede variar durante la ejecución del programa. Es decir,una vez declarada una variable de un tipo determinado, a ésta se le asigna un trozo de memoria fijo, y este trozo no se podrá aumentar ni disminuir.

Tipos dinámicos.
Dentro de esta categoría entra solamente el tipo puntero. Este tipo te permite tener un mayor control sobre la gestión de memoria en tus programas. 


De acuerdo con la forma en que los datos se organizan, se clasifican en:
Tipos de datos simples.
Tipos de datos estructurados.


Tipos simples

Como su nombre indica son los tipos básicos. Son los más sencillos y los más fáciles de aprender. Los tipos simples más básicos son:entero,lógico,carácter y real. Y la mayoría de los lenguajes de programación los soportan, no como ocurre con los estructurados que pueden variar de un lenguaje a otro.

Tipos estructurados

Mientras que una variable de un tipo simple sólo referencia a un elemento, los estructurados se refieren a colecciones de elementos. Las colecciones de elementos que aparecen al hablar de tipos estructurados son muy variadas: tenemos colecciones ordenadas que se representan mediante el tipo array, colecciones sin orden mediante el tipo conjunto, e incluso colecciones que contienen otros tipos, son los llamados registros.

Tipos ordinales

Dentro de los tipos simples, los ordinales son los más abundantes. De un tipo se dice que es ordinal porque el conjunto de valores que representa se puede contar  , es decir, podemos establecer una relación uno a uno entre sus elementos y el conjunto de los números naturales.Dentro de los tipos simples ordinales, los más importantes son:

El tipo entero.
El tipo lógico.
El tipo carácter.
Tipos no-ordinales

Simplificando, podríamos reducir los tipos simples no-ordinales al tipo real. Este tipo nos sirve para declarar variables que pueden tomar valores dentro del conjunto de los números reales. A diferencia de los tipos ordinales, los no-ordinales no se pueden contar. No se puede establecer una relación uno a uno entre ellos y los número naturales. 


martes, 30 de abril de 2013

Instalación de Netbeans 7.3 en Ubuntu 13.04

Saludos:
Les comparto  un video de como instalar el Ide de desarrollo para  java, llamado Netbeans en su versión 7.3. En Ubuntu, de una forma general.



Código utilizado para instalación:
para convertirlo en un ejecutable 
chmod +x ./netbeans-7.3-linux.sh 
para instalar 
./netbeans-7.3-linux.sh

chmod +x ./netbeans-7.3-linux.sh 
./netbeans-7.3-linux.sh



lunes, 15 de abril de 2013

Inducción a Bases de Dato

Afrontando retos, se alcanza el conocimiento


Hola amigos les comparto estas experiencia y me encuentro con las bases de datos. Hace poco un buen amigo me pidió ayuda, necesitaba que le explicara algo sobre bases de datos, en mi pequeño mundo, lo pensé por un momento, puesto que estaba en el desarrollo de otras tareas de la Universidad. Desvelado desde hace una semana, accedí ayudarle. Sin embargo me encontré con ciertas dificultades:
  
Problema 1 . Desvelado y solo con las conocimientos posteriores comencé a diseñar la base de datos descrita por él.
Problema 2 . No tenia un enunciado preciso del problema, literalmente dijo: "Una farmacia, muestre informes de productos existentes "

Problema 3. Sistema de gestión de bases de datos, ni idea de como usar  Microsoft Access.
. 


Así que confié nada mas en mis conocimientos adquiridos.
Para brindarle solución necesite hacer memoria de las principales características  fundamentos de las bases relacionales, por lo que les comparto mi marco teórico.

Introducción a las bases de datos relacionales


El término base de datos se ha decaido últimamente, perdiendo gran parte de su original significado. Para algunas personas, una base de datos es una colección de elementos de datos (teléfono,libros, listas de lavandería, rollos de pergamino. . . lo que sea). Otras personas definen el término más estricto. Es una herramienta organizadora, que funciona como bancos de informaciones que están relacionadas entre sí para que permitan el manejo de los datos,caracterizado por poser una auto-descripcion integradora de registros.
Un registro es una representación de un objeto físico o conceptual. Digamos, por ejemplo, que desea hacer un seguimiento de los clientes de una empresa. Se asigna un registro para cada cliente. Cada registro tiene varios atributos, como el nombre, dirección y número de teléfono. Nombres individuales, direcciones, etc son los datos.

Una base de datos consta de los datos y metadatos. Los metadatos son los datos que describe la estructura de datos dentro de una base de datos. Si sabes cómo sus datos está dispuesto, entonces usted puede recuperar. Debido a que la base de datos contiene una descripción de su propia estructura, es autodescriptivo. La base de datos está integrada por que incluye no sólo elementos de datos, sino también las relaciones entre los elementos de datos. Los metadatos de base de datos almacena en un área llamada el diccionario de datos, que describe las tablas, columnas, índices, restricciones y otros elementos que constituyen la base de datos.

¿Qué es un Sistema Gestión de Base de Datos (DBMS)?

Se trata de una herramienta capaz de visualizar y procesar datos espaciales, que se caracteriza por poseer una interfaz de usuario amigable, es un conjunto de programas que permiten el almacenamiento, modificación y extracción de la información en una base de datos, además de proporcionar funciones para añadir, borrar modificar y analizar los datos. Los usuarios pueden acceder a la información usando herramientas específicas de interrogación y de generación de informes, o bien mediante aplicaciones al efecto.
Muchos programas de DBMS están en el mercado hoy en día. Algunos funcionan sólo en la unidad central computadoras, algunos sólo en minicomputadoras, y algunas sólo en las computadoras personales.
Una fuerte tendencia, sin embargo, es para tales productos para trabajar en múltiples plataformas o en redes que contienen las tres clases de máquinas.

Arquitectura de 3 Capas




Lo tipos de Usuario:
  • Usuario Final
  • Programador de la aplicación
  • DBA 


(Administrador 
de base de datos responsable
 de los datos que se almacenan.)

Arquitectura
nivel físico: es el nivel más bajo de abstracción y el nivel real de los datos almacenados. Este nivel define cómo se  almacenan los datos en el soporte físico, ya sea en registros o de cualquier otra forma, así como los métodos de acceso. Este nivel lleva asociada una representación de los datos, que es lo que denominamos Esquema Físico.

nivel conceptual: es el correspondiente a una visión de la base de datos desde el punto de visto del mundo real. Es decir se trata con la entidad u objeto representado, sin importar como está representado o almacenado éste. Es la representación de los datos realizada por la organización, que recoge los datos parciales de los requerimientos de los diferentes usuarios y aplicaciones parciales. Incluye la definición de los datos y las relaciones entre ellos. Este nivel lleva asociado un Esquema Conceptual.

nivel de visión: son partes del esquema conceptual. El nivel conceptual presenta toda la base de datos, mientras que los usuarios, por lo general, sólo tienen acceso a pequeñas parcelas de ésta. El nivel visión es el encargado de dividir estas parcelas. Un ejemplo sería el caso del empleado de una organización que tiene acceso a la visión de su nómina, pero no a la de sus compañeros. El esquema asociado a éste nivel es el Esquema de Visión.

Modelo Relacional


Dr. EF Codd de IBM formuló por primera vez el modelo de base de datos relacional en 1970, y este modelo comenzó a aparecer en los productos sobre una década más tarde. Irónicamente, IBM no ha emitido el primer DBMS relacional. Esa distinción fue puesta en marcha por una pequeña empresa, que nombró a su productos Oracle. Bases de datos relacionales han sustituido a las bases de datos construidas de acuerdo con principios de modelos, porque el tipo relacional tiene atributos valiosos que distinguir bases de datos relacionales de los tipos de bases de datos.

Probablemente el más importante de estos atributos es que, en una base de datos relacional, puede cambiar la estructura de base de datos sin que requieran cambios en las aplicaciones que estaban sobre la base de las viejas estructuras.
Es un modelo creado por Codd, permite que los datos se estructuren a nivel lógico como tablas formadas por filas y columnas, aunque a nivel físico su estructura sea completamente distinta.


Continua este tema en el siguiente enlace:
Fundamentos de bases relacionales

lunes, 4 de febrero de 2013

Conceptos de Programación Orientada a Ojetos

"En la programación orientada a objetos se
unen datos y procesos "


Programar en términos comprensibles es trata de encontrar solución a diversos problemas. Existen una serie de principios fundamentales para comprender cómo se modeliza la realidad al crear un programa bajo el paradigma de la orientación a objetos.

Características y conceptos de programación Orientada a Objetos


Principios de abstracción:
Mediante la abstracción la mente humana modela la realidad en forma de objetos. Para ello busca parecidos entre la realidad y la posible implementación de objetos del programa que simulen el funcionamiento de los objetos reales.Los seres humanos no pensamos en las cosas como un conjunto de cosas menores; por ejemplo, no vemos un cuerpo humano como un conjunto de células. Los humanos entendemos la realidad como objetos con comportamientos bien definidos. No necesitamos conocer los detalles de porqué ni cómo funcionan las cosas; simplemente solicitamos determinadas acciones en espera de una respuesta; cuando una persona desea desplazarse, su cuerpo le responde comenzando a caminar. Pero la abstracción humana se gestiona de una manera jerárquica, dividiendo sucesivamente sistemas complejos en conjuntos de subsistemas, para así entender más fácilmente la realidad. Esta es la forma de pensar que la orientación a objeto intenta cubrir.

Principio de encapsulación
El encapsulamiento permite a los objetos elegir qué información es publicada y qué información es ocultada al resto de los objetos. Para ello los objetos suelen presentar sus métodos como interfaces públicas y sus atributos como datos privados e inaccesibles desde otros objetos. Para permitir que otros objetos consulten o modifiquen los atributos de los objetos, las clases suelen presentar métodos de acceso. De esta manera el acceso a los datos de los objetos es controlado por el programador, evitando efectos laterales no deseados. Con el encapsulado de los datos se consigue que las personas que utilicen un objeto sólo tengan que comprender su interfaz, olvidándose de cómo está implementada, y en definitiva, reduciendo la complejidad de utilización.

Principios de modularidad
Mediante la modularidad, se propone al programador dividir su aplicación en varios módulos diferentes (ya sea en forma de clases, paquetes o bibliotecas), cada uno de ellos con un sentido propio.Esta fragmentación disminuye el grado de dificultad del problema al que da respuesta el programa, pues se afronta el problema como un conjunto de problemas de menor dificultad, además de facilitar la comprensión del programa.

Principios de polimorfismo
Polimorfismo quiere decir "un objeto y muchas formas". Esta propiedad permite que un objeto presente diferentes comportamientos en función del contexto en que se encuentre. Por ejemplo un método puede presentar diferentes implementaciones en función de los argumentos que recibe, recibir diferentes números de parámetros para realizar una misma operación, y realizar diferentes acciones dependiendo del nivel de abstracción en que sea llamado.

Principios de herencias
La mayoría de nosotros ve de manera natural nuestro mundo como objetos que se relacionan entre sí de una manera jerárquica. También se puede agregar que la herencias es el proceso por el cual un objeto adquiere las propiedades de otro objeto.  Por ejemplo, un perro es un mamífero, y los mamíferos son animales, y los animales seres vivos.Del mismo modo, las distintas clases de un programa se organizan mediante la jerarquías.

Principio del paso de mensajes
Mediante el denominado pasos de mensajes, un objeto puede solicitar de otro objeto que realice una acción determinada o que modifique su estado. El paso de mensajes se suele implementar como llamadas a los métodos de otros objetos. Desde el punto de vista de la programación estructurada, esto correspondería con la llamada a funciones.

Las clases
Las clases son abstracciones que representan a un conjunto de objetos con un comportamiento e interfaz común. Podemos definir una clase como "un conjunto de cosas (físicas o abstractas) que tienen el mismo comportamiento y características. Una clase no es más que una plantilla para la creación de objetos.
Las clases presentan el estado de los objetos a los que representan mediante variables denominadas atributos . Cuando se instancia un objeto el compilador crea en la memoria dinámica un espacio para tantas variables como atributos tenga la clase a la que pertenece el objeto.
Los métodos son las funciones mediante las que las clases representan el comportamiento de los objetos. En dichos métodos se modifican los valores de los atributos del objeto, y representan las capacidades del objeto (en muchos textos se les denomina servicios).
Desde el punto de vista de la programación estructurada, una clase se asemejaría a un módulo, los atributos a las variables globales de dicho módulo, y los métodos a las funciones del módulo.


Principio de Ocultación
Este principio nos dice que los datos deben protegerse dependiendo del uso que se les va a dar y el contexto en el que se este. Para dar acceso a datos se debe utilizar interfaces o funciones.
•Visibilidad:
•Privado: visto únicamente desde dentro de la misma clase. Estos no se heredan.
•Protegido: visto desde la misma clase y para las clases que la hereden.
•Publico: visto desde dentro y fuera de la clase. Este modificador permite que accedan otros objetos desde fuera.

Paradigma de la programacion en java

"La programación orientada a objetos trata de amoldarse al modo de pensar del hombre y no al de la máquina. "


Sin duda el problema fundamental que debe asumir un equipo de desarrollo de software es convertir el mundo real a un programa informático. En  esencia la clave de la programación es la de describir las tareas de especificación del software  que resuelve un problema dado. 
Para programar en java debemos tener en cuenta el principio que rige la forma de hacer un programa en este lenguaje. A esto se le determina como paradigma y este según su definición puede indicar el concepto de esquema formal de organización, y ser utilizado como sinónimo de marco teórico o conjunto de teorías.

Programación orientada a objetos (POO)



La programación orientada a objetos es  considerada como una extensión  natural  de la cual la tecnología de programación puede representar un enfoque nuevo y distinto  al tradicional, este trata de amoldarse al modo de pensar del hombre y
no al de la máquina, se puede describir como la  evolución lógica de la programación estructurada.


Este se basa en los conceptos de objetos y clases de objetos. Un objeto es una variable equipada con un conjunto de operaciones que le pertenecen o están definidas para ellos, de hecho simplifica el problema dividiéndolo en objetos y permitiendo centrarse en cada
objeto, para de esa forma eliminar la complejidad, en ello se resalta que dicho paradigma permite al programa  organizarse alrededor de sus datos. Cada objeto se programa de forma autónoma y esa es la principal virtud. Actualmente es el paradigma más popular y día a día los programadores, estudiantes y profesionales tratan de tomar algún curso que tenga que ver con este paradigma, podría decirse, que programar orientado a objetos está de moda.



Análisis y diseño orientado a objetos


Análisis Orientado a Objetos(AOO)
Algo fundamental y peculiar acerca de la programación orientada a objetos , es la manera de describir los detalles que constituyen el problema real. Que responde a la pregunta “¿Qué hace?”, durante esta fase de análisis se piensa en las especificaciones en términos intuitivos y con independencia del lenguaje y de la maquina. La etapa critica de esta actividad es la deducción de los tipos de objetos del mundo   que puedan modelar los atributos, comportamientos e interacciones de lo que deseamos programar.

Diseño Orientado a Objetos(DOO)
La siguiente fase de proceso de desarrollo del software es el Diseño Orientado a Objetos(DOO), que corresponde a la pregunta “¿Cómo lo hace?”. Durante esta esta fase  se crea un modelo de computadora basado en el análisis que realice la tarea especifica concreta. Parte de esta etapa es pensar como representar el objeto del mundo real al  mundo informático. Es en esta fase donde surgen los atributos utilices que se adicionan con el comportamiento del objeto  en su ejecución en el nuevo mundo virtual.

domingo, 3 de febrero de 2013

Antecedentes del lenguaje java

“Primero aprende informática y toda la teoría. Después desarrolla un estilo de programación.Entonces, olvídalo todo y hackea.”
George Carrette


Hola amigos para dar inicio a estos tutos de programación en java,  daré inicio con una breve explicación del origen de este lenguaje. Esto como forma introductoria para tener muy en cuenta los fundamentos.  Las siguientes publicaciones me enfocare en describir las herramientas necesarias para entrar de lleno en la programación. 

¿Que es el lenguaje java?

En términos muy sencillos diremos:
Para crear un programa y que la computadora interprete y ejecute las instrucciones escritas en el, se debe usar un Lenguaje de programación. Java es un lenguaje de programación y la primera plataforma informática creada por Sun Microsystems en 1995. Una de las tecnologías subyacentes que permite el uso de programas punteros, como herramientas, juegos y aplicaciones de negocios.

Su origen:
Java surgió en 1991 cuando un grupo de ingenieros de Sun Microsystems trataron de diseñar un nuevo lenguaje de programación destinado a electrodomésticos. No fue creado originalmente para la red internet. Sun Microsystems comenzó a desarrollarlo con el objetivo de crear un lenguaje, independiente de la plataforma y del sistema operativo, para el desarrollo de electrónica de consumo (dispositivos electrónicos inteligentes, como televisores, vídeos, equipos de música, etc.).

En Diciembre de 1950 Patrick Naughton, ingeniero de Sun Microsystems, reclutó a varios colegas entre ellos James Gosling y Mike Sheridan para trabajar sobre un nuevo proyecto conocido como "El proyecto verde". Con la ayuda de otros ingenieros, empezaron a trabajar en una pequeña oficina en Sand Hill Road en Menlo Park, California. Y así interrumpió todas las comunicaciones regulares con Sun y trabajó sin descanso durante 18 meses. Debido a la existencia de distintos tipos de CPUs y a los continuos cambios, era importante conseguir una herramienta independiente del tipo de CPU utilizada. Desarrollaron un código “neutro” que no dependía del tipo de electrodoméstico, el cual se ejecutaba sobre una “máquina hipotética o virtual” denominada Java Virtual Machine (JVM). Era la JVM quien interpretaba el código neutro convirtiéndolo a código particular de la CPU utilizada. Esto permitía lo que luego se ha convertido en el principal lema del lenguaje: “Write Once, Run Everywhere”. A pesar de los esfuerzos realizados por sus creadores, ninguna empresa de electrodomésticos se interesó por el nuevo lenguaje.


Como lenguaje de programación para computadores, Java se introdujo a finales de 1995. La clave fue la incorporación de un intérprete Java en la versión 2.0 del programa Netscape Navigator, produciendo una verdadera revolución en Internet. Java 1.1 apareció a principios de 1997, mejorando sustancialmente la primera versión del lenguaje. Java 1.2, más tarde rebautizado como Java 2, nació a finales de 1998. Java incorpora en el propio lenguaje muchos aspectos que en cualquier otro lenguaje son extensiones propiedad de empresas de software o fabricantes de ordenadores (threads, ejecución remota, componentes, seguridad, acceso a bases de datos, etc.). Por eso muchos expertos opinan que Java es el lenguaje ideal para aprender la informática moderna, porque incorpora todos estos conceptos de un modo estándar, mucho más sencillo y claro que con las citadas extensiones de otros lenguajes. Esto es consecuencia de haber sido diseñado más recientemente y por un único equipo. El principal objetivo del lenguaje Java es llegar a ser el “nexo universal” que conecte a los usuarios con la información, esté ésta situada en el ordenador local, en un servidor de Web, en una base de datos o en cualquier otro lugar.
Java es un lenguaje muy completo (de hecho se está convirtiendo en un macro-lenguaje: Java 1.0 tenía 12 packages; Java 1.1 tenía 23 y Java 1.2 tiene 59). En cierta forma casi todo depende de casi todo. Por ello, conviene aprenderlo de modo iterativo: primero una visión muy general, que se va refinando en sucesivas iteraciones. Una forma de hacerlo es empezar con un ejemplo completo en el que ya aparecen algunas de las características más importantes. La compañía Sun describe el lenguaje Java como “simple, orientado a objetos, distribuido, interpretado, robusto, seguro, de arquitectura neutra, portable, de altas prestaciones, multitarea y dinámico”.