viernes, 5 de septiembre de 2008

ARREGLOS BIDIMENSIONALES TIPO TABLA

Es un arreglo de arreglos, es decir, un arreglo
unidimensional donde cada elemento es un arreglo
● Arreglo de 4 renglones y 2 columnas:
● int tabla[][]=new int[4][2]; si cada
entero ocupa 4 bytes:
● Elemento Posición relativa en memoria
● Tabla[0][0] 0
● Tabla[0][1] 4
● Tabla[1][0] 8
● Tabla[1][1] 12
● Tabla[2][0] 16
● Tabla[2][1] 20
● Tabla[3][0] 24
● Tabla[3][1] 28

Un arreglo tipo tabla se define como un conjunto de datos del mismo tipo organizados en dos o mas columnas y uno o mas renglones.

Para procesar ( recordar solo operaciones y comparaciones) internamente todos los elementos de la tabla se ocupan dos ciclos for(), uno externo para controlar renglón y uno interno para controlar columna.

Los elementos de la tabla se deberan simbolizar con el nombre de la tabla y 2 subindices, el primer subindice referencia al renglon y el siguiente subindice referencia la columna los dos dentro del mismo corchete.

La declaración de una tabla sera de acuerdo a los siguientes formatos:

1) tipodato nomtabla[][]= new tipodato[reng][col];

ejemplo:

int calif[][]=new int[3][4];

double ingresos[][]= new double[3][4];

2) Clasenumerica objetotabla[][]= new constructor[ren][col];

ejemplo;

Integer calif[][]= new Integer[2][3];

Double ingresos[][]=new Double[3][4];

Para capturar sus elementos, usaremos el procedimiento desarrollado con listas.

Para efectuar otros procesos tales como operaciones despliegue con todos los elementos de la tabla se deberan usar 2 ciclos un for externo para controlar renglon y un for interno para controlar columna.

Acceso a elementos de arreglos
bidimensionales


● nombreArreglo[renglon][columna] = valor;
● variable = nombreArreglo[renglon][columna];

● Tabla[2][3]=4.5;
● Resistencias[2][4]=50;
● Ventas = Tabla[1][1];
● Dia = Semana[3][6];

● for(ren=0; ren < Matriz.length; ++ren)
● for(col=0; col● Procesar elemento Matriz[ren][col];

Lectura y visualización


import input.Keyboard;
class Tabla {
public static void main(String[] a){
int[][]=new int[3][5];
leer(a);
visualizar(a);
}
static void leer(int b[][]){
Int i,j;
System.out.println(“Mete datos a matriz”);
for(i=0;iSystem.out.println(“Renglón: “+i);
for(j=0;jb[i][j]=Keyboard.readInt();
}
}

Ejemplo:

static void visualizar(int b[][]){
int i,j;
System.out.println(“\n\t Matriz leida “);
for(i=0; i < b.length; i++){
for(j=0; j < b[i].length; j++)
System.out.print(b[i][j]+“ “);
System.out.println(“ “);
}
}
}
Mete datos a matriz
Renglón 0: Matriz leida
45 45 75 25 10 40
75 20 14 36 15 26
25 21 15 37 16 27
10
40

jueves, 4 de septiembre de 2008

Continue (Sintaxis):

continue [etiqueta];

La sentencia continue no se puede utilizar en una sentencia switch, sino solamente en bucles. Cuando se encuentra esta sentencia en el discurrir normal de un programa Java, la iteración en que se encuentre el bucle finaliza y se inicia la siguiente.

Java permite el uso de etiquetas en la sentencia continue, de forma que el funcionamiento normal se ve alterado y el salto en la ejecución del flujo del programa se realizará a la sentencia en la que se encuentra colocada la etiqueta.

Por ejemplo, al encontrarse con bucles anidados, se pueden utilizar etiquetas para poder salir de ellos:

uno: for( ) { dos: for( ) { continue; // seguiría en el bucle interno continue uno; // seguiría en el bucle principal break uno; // se saldría del bucle principal } }

Hay autores que sugieren que el uso de sentencias break y continue etiquetadas proporciona una alternativa al infame goto (que C++ todavía soporta, pero Java no, aunque reserva la palabra). Quizá se así, pero el entorno de uso de las sentencias etiquetadas break y continue es mucho más restrictivo que un goto. Concretamente, parece que un break o continue con etiqueta, compila con éxito solamente si la sentencia en que se encuentra colocada la etiqueta es una sentencia a la que se pueda llegar con un break o continue normal.

martes, 2 de septiembre de 2008

Metodo main

Todo programa en Java tiene un main() que es el
punto de inicio del programa
public static void main(String [] ar)
{
… bloque de sentencias
}
El argumento de main() es un arreglo de cadenas
para introducir datos en la línea de comando
java Nombres Luis Gerardo Fernando,
ar[0]=Luis, ar[1]=Gerardo y ar[2]=Fernando

main()

Java exige que main() se declare public
static void
public: accesible desde cualquier clase
static: método controlado por la clase,
no es necesario crear un objeto para
llamarlo
void: cuando el método no devuelve
resultados

lunes, 1 de septiembre de 2008

Programa en Java

import java.io.*; ← archivo de clases de entrada/salida
public class NombrePrograma ← nombre de clase de principal
{
public static void main(String []ar) ← cabecera del
método, obligatorio
{
. . . ← sentencias
}
}
Nombre del programa
Nombre de archivo fuente igual a nombre de la clase principal (clase
que contiene el método main(): NombrePrograma.java

Estructura General de un programa

import Declaración para importar clases desde paquetes.
public static void main() Método por el que empieza la ejecución.
Java exige esta sintaxis
Método principal main
public static void main(String [] ar)
{
declaraciones locales
sentencias
}
Definición de otros métodos en la clase
static tipo func1(...)
{
...
}
Static tipo func2(...)
{
...
}

Declaración import

Las clases en Java se agrupan en paquetes
(package)
Los paquetes están en directorios con el mismo
nombre del paquete
import se usa para utilizar un paquete en un
programa
Sintaxis: import nombrePaquete.nombreClase;
Ejemplos:
import java.util.Random;
import java.io.*;
El compilador siempre incorpora a java.lang,
contiene los elementos básicos para construir
programas.

JDK/J2SE.

JDK ("Java Development Kit") y J2SE ("Java 2 Standard Edition") son nombres para el mismo componente utilizado en ambientes Java, el cual agrupa las diversas funcionalidades necesarias para desarrollar programas Java.

Hoy en día, existen JDK's/J2SE para diversos ambientes y plataformas, los cuales ofrecen lo siguiente:

  • Un compilador Java, capaz de generar Byte-Code.

  • Un JVM ("Java Virtual Machine"), capaz de ejecutar Byte-Code.

  • Un conjunto de Clases base utilizadas para generar programas Java.

  • Otras utilerías para administrar código escrito en Java.

Para este curso se hace uso del JDK/J2SE de Sun Microsystems , aunque claro esta, cualquier programa generado en este JDK puede ser ejecutado otros ambientes, al igual que programas compilados en otros JDK's/J2SE pueden ser ejecutados en este ambiente. El conjunto de Clases base proporcionadas por el JDK/J2SE incluyen clases de uso común tales como : Manipulación de String's, Fechas y Números así como todas las funcionalidades base esperadas de un lenguaje computacional como: Ordenamiento y manipulación de Arreglos, Operaciones matemáticas complejas (Trigonométricas y Exponenciales) y escritura/lectura de "Streams".

Además de estas Clases base, el JDK/J2SE posee otra serie de Clases especializadas que también ofrecen la base para la creación de otros componentes Java que incluyen : Applets, Objetos CORBA , Fragmentos Auditivos, Soporte de Criptografía (Seguridad) y Manipulación de XML entre otras funcionalidades.

Aunado a las Clases base, el JDK/J2SE incluye una serie de ejecutables utilizados para diversas tareas como : Creación de ejecutables (Byte-Code), generación de documentación, creación de "Stubs" y "Skeletons" a través de IDL e inclusive una implementación de un ORB ("Object Request Broker") para interactuar con ambientes CORBA, entre otros ejecutables.

La estructura de directorios del JDK/J2SE es la siguiente:

          JDK 1.4.2
___________|_________________
| | |
bin lib jre
| | ________|__________
java* tools.jar | |
javac* dt.jar bin lib
javap* | ________ ___|___ _________ ________ _______
javah* java* | | | | | |
javadoc* rt.jar ext security i386 applet fonts
charsets.jar | / \
| / \
localedata.jar server client

Como se puede observar, la estructura se encuentra dividida en tres grandes partes :

  • bin: Incluye los ejecutables para la generación de programas Java.

  • lib: Contiene las librerías (Clases) base empleadas en la generación de la gran mayoría de programas Java.

  • jre: Incluye el ambiente necesario para ejecutar programas Java, el cual a su vez se encuentra sub-dividido en distintos directorios.

Dependiendo de la manera en que haya instalado la documentación del JDK, se recomienda observarla en estos momentos para que se familiarice con sus Clases Base.

Historia de java


Java es un lenguaje de programación orientado a objetos desarrollado por Sun Microsystems a principio de los años 90´s.

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.

Intentaban desarrollar una nueva tecnología para programar la siguiente generación de dispositivos inteligentes, en los que Sun veía un campo nuevo a explorar. Crear un lenguaje de programación fácil de aprender y de usar.
En un principio se consideraba C++ como lenguaje a utilizar, pero tanto Gosling como Bill Joy lo encontraron inadecuado. Gosling intentó primero extender y modificar C++ resultando el lenguaje C++ ++ - (++ - porque se añadían y eliminaban características a C++), pero lo abandonó para crear un nuevo lenguaje desde cero al que llamo Oak (roble en inglés, según la versión mas aceptada, por el roble que veía através de la ventana de su despacho).

El resultado fue un lenguaje que tenía similitudes con C, C++ y Objetive C y que no estaba ligado a un tipo de CPU concreta.
Mas tarde, se cambiaría el nombre de Oak a Java, por cuestiones de propiedad intelectural, al existir ya un lenguaje con el nombre de Oak. Se supone que le pusieron ese nombre mientras tomaban café (Java es nombre de un tipo de café, originario de Asia), aunque otros afirman que el nombre deriva de las siglas de James Gosling, Arthur Van Hoff, y Andy Bechtolsheim.

En Agosto de 1991 Oak ya corría sus primeros programas.

Para 1992, el equipo ya había desarrollado un sistema en un prototipo llamado Star7 (*7), dispositivo parecido a una PDA, cuyo nombre venía de la combinación de teclas del teléfono de la oficina del Proyecto Green que permitía a los usuarios responder al teléfono desde cualquier lugar.

Por su parte, el presidente de la compañía Sun, Scott McNealy, se dio cuenta de forma oportuna y estableció el Proyecto Verde como una subsidiaria de Sun.

Patrick Naughton procedió a la construcción del lenguaje de programación Java que se accionaba con un browser prototipo. El 29 de septiembre de 1994 se termina el desarrollo del prototipo de HotJava. Cuando se hace la demostración a los ejecutivos de Sun, esta vez, se reconoce el potencial de Java y se acepta el proyecto.

Con el paso del tiempo HotJava se convirtió en un concepto práctico dentro del lenguaje Java y demostró que podría proporcionar multiplataformas para que el código pueda ser bajado y corrido del Host del World Wide Web y que de otra forma no son seguros.
Una de las características de HotJava fue su soporte para los "applets", que son las partes de Java que pueden ser cargadas mediante una red de trabajo para después ejecutarlo localmente y así lograr soluciones dinámicas en computación acordes al rápido crecimiento del ambiente WEB.

El 23 de mayo de 1995, en la conferencia SunWorld `95, John Gage, de Sun Microsystems, y Marc Andreessen, cofundador y vicepresidente de Netscape, anunciaban la versión alpha de Java, que en ese momento solo corría en Solaris, y el hecho de que Java iba a ser incorporado en Netscape Navigator, el navegador mas utilizado de Internet.

Con la segunda alpha de Java en Julio, se añade el soporte para Windows NT y en la tercera, en Agosto, para Windows 95.
En enero de 1995 Sun formá la empresa Java Soft para dedicarse al desarrollo de productos basados en la tecnologías Java, y así trabajar con terceras partes para crear aplicaciones, herramientas, sistemas de plataforma y servicios para aumentar las capacidades del lenguaje. Ese mismo mes aparece la versión 1.0 del JDK.

Netscape Communications decide apoyar a Java applets en Netscape Navigator 2.0. Ese fue el factor clave que lanzó a Java a ser conocido y famoso.
Y como parte de su estrategia de crecimiento mundial y para favorecer la promoción de la nueva tecnología, Java Soft otorgó permisos para otras compañías para que pudieran tener acceso al código fuente y al mismo tiempo mejorar sus navegadores.
También les permitía crear herramientas de desarrollo para programación Java y los facultaba para acondicionar máquinas virtuales Java (JVM), a varios sistemas operativos.

Los apples Java (basados en JDK 1.02) son apoyados por los dos más populares navegadores web (Nestcape Navigator 3.0 y Microsoft Internet Explorer 3.0. I.B.M./Lotus, Computer Asociates, Symantec, Informix, Oracle, Sybase y otras poderosas empresas de software están construyendo Software 100% puro JAVA, por ejemplo el Corel Office que actualmente está en versión Beta.

Los nuevos proyectos de Java son co-patrocinados por cientos de millones de dólares en capital disponible de recursos tales como la Fundación Java, un fondo común de capital formado el verano pasado por 11 compañías, incluyendo Cisco Systems, IBM, Netscape y Oracle.

Hoy en día, puede encontrar la tecnología Java en redes y dispositivos que comprenden desde Internet y superordenadores cientifícos hasta portátiles y teléfonos móviles; desde simuladores de mercado en Wall Street hasta juegos de uso doméstico y tarjetas de crédito: Java está en todas partes.

domingo, 31 de agosto de 2008

Lenguajes de Programacion

Un lenguaje de programación" es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico para que los seres humanos puedan dar instrucciones a un equipo.

Por otro lado, el término "lenguaje natural" define un medio de comunicación compartido por un grupo de personas (por ejemplo: inglés o francés).

Los lenguajes que los equipos usan para comunicarse entre ellos no tienen nada que ver con los lenguajes de programación; se los conoce como protocolos de comunicación. Se trata de dos conceptos totalmente diferentes. Un lenguaje de programación es muy estricto:

A CADA instrucción le corresponde UNA acción de procesador.

El lenguaje utilizado por el procesador se denomina lenguaje máquina. Se trata de datos tal como llegan al procesador, que consisten en una serie de 0 y 1 ( datos binarios).

El lenguaje máquina, por lo tanto, no es comprensible para los seres humanos, razón por la cual se han desarrollado lenguajes intermediarios comprensibles para el hombre. El código escrito en este tipo de lenguaje se transforma en código máquina para que el procesador pueda procesarlo.

El ensamblador fue el primer lenguaje de programación utilizado. Es muy similar al lenguaje máquina, pero los desarrolladores pueden comprenderlo. No obstante, este lenguaje se parece tanto al lenguaje máquina que depende estrictamente del tipo de procesador utilizado (cada tipo de procesador puede tener su propio lenguaje máquina). Así, un programa desarrollado para un equipo no puede ser portado a otro tipo de equipo. El término "portabilidad" describe la capacidad de usar un programa de software en diferentes tipos de equipos. Para poder utilizar un programa de software escrito en un código ensamblador en otro tipo de equipo, ¡a veces será necesario volver a escribir todo el programa!

Por lo tanto, un lenguaje de programación tiene varias ventajas:

* es mucho más fácil de comprender que un lenguaje máquina:
* permite mayor portabilidad, es decir que puede adaptarse fácilmente para ejecutarse en diferentes tipos de equipos.

Lenguajes de programación imperativos y funcionales

Los lenguajes de programación generalmente se dividen en dos grupos principales en base al procesamiento de sus comandos:

* lenguajes imperativos;
* lenguajes funcionales.

Lenguaje de programación imperativo

Un lenguaje imperativo programa mediante una serie de comandos, agrupados en bloques y compuestos de órdenes condicionales que permiten al programa retornar a un bloque de comandos si se cumple la condición. Estos fueron los primeros lenguajes de programación en uso y aún hoy muchos lenguajes modernos usan este principio.

No obstante, los lenguajes imperativos estructurados carecen de flexibilidad debido a la secuencialidad de las instrucciones.
Lenguaje de programación funcional

Un lenguaje de programación funcional(a menudo llamado lenguaje procedimental) es un lenguaje que crea programas mediante funciones, devuelve un nuevo estado de resultado y recibe como entrada el resultado de otras funciones. Cuando una función se invoca a sí misma, hablamos de recursividad.
Interpretación y compilación
Los lenguajes de programación pueden, en líneas generales, dividirse en dos categorías:

* lenguajes interpretados
* lenguajes compilados

Lenguaje interpretado

Un lenguaje de programación es, por definición, diferente al lenguaje máquina. Por lo tanto, debe traducirse para que el procesador pueda comprenderlo. Un programa escrito en un lenguaje interpretado requiere de un programa auxiliar (el intérprete), que traduce los comandos de los programas según sea necesario.
Lenguaje compilado

Un programa escrito en un lenguaje "compilado" se traduce a través de un programa anexo llamado compilador que, a su vez, crea un nuevo archivo independiente que no necesita ningún otro programa para ejecutarse a sí mismo. Este archivo se llama ejecutable.

Un programa escrito en un lenguaje compilado posee la ventaja de no necesitar un programa anexo para ser ejecutado una vez que ha sido compilado. Además, como sólo es necesaria una traducción, la ejecución se vuelve más rápida.
Sin embargo, no es tan flexible como un programa escrito en lenguaje interpretado, ya que cada modificación del archivo fuente (el archivo comprensible para los seres humanos: el archivo a compilar) requiere de la compilación del programa para aplicar los cambios.

Por otra parte, un programa compilado tiene la ventaja de garantizar la seguridad del código fuente. En efecto, el lenguaje interpretado, al ser directamente un lenguaje legible, hace que cualquier persona pueda conocer los secretos de fabricación de un programa y, de ese modo, copiar su código o incluso modificarlo. Por lo tanto, existe el riesgo de que los derechos de autor no sean respetados. Por otro lado, ciertas aplicaciones aseguradas necesitan confidencialidad de código para evitar las copias ilegales (transacciones bancarias, pagos en línea, comunicaciones seguras...).
Lenguajes intermediarios

Algunos lenguajes pertenecen a ambas categorías (LISP, Java, Python...) dado que el programa escrito en estos lenguajes puede, en ciertos casos, sufrir una fase de compilación intermediaria, en un archivo escrito en un lenguaje ininteligible (por lo tanto diferente al archivo fuente ) y no ejecutable (requeriría un interprete). Los applets Java, pequeños programas que a menudo se cargan en páginas web, son archivos compilados que sólo pueden ejecutarse dentro de un navegador web (son archivos con la extensión .class).
Algunos ejemplos de lenguajes ampliamente usados

A continuación, encontrará una breve lista de los lenguajes de programación actuales:

Lenguaje Principal área de aplicación Compilado/interpretado
ADA Tiempo real Lenguaje compilado
BASIC Programación para fines educativos Lenguaje interpretado
C Programación de sistema Lenguaje compilado
C++ Programación de sistema orientado a objeto Lenguaje compilado
Cobol Administración Lenguaje compilado
Fortran Cálculo Lenguaje compilado
Java Programación orientada a Internet Lenguaje intermediario
MATLAB Cálculos matemáticos Lenguaje interpretado
LISP Inteligencia artificial Lenguaje intermediario
Pascal Educación Lenguaje compilado
PHP Desarrollo de sitios web dinámicos Lenguaje interpretado
Perl Procesamiento de cadenas de caracteres Lenguaje interpretado