prog. java nivel i

Upload: miguel

Post on 26-Feb-2018

240 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 Prog. Java Nivel I

    1/85

    PROGRAMACION JAVA NIVEL I

    Objetivos

    Los fundamentos de programacin nos van a servir para desarrollar programas en

    distintos lenguajes. Este curso aplica los conocimientos de algoritmia y anlisis a un

    lenguaje de alto nivel como es Java, completando la formacin bsica y permitiendo

    introducirnos en un lenguaje.

    Destinatarios

    Cualquier persona que tenga suficientes conocimientos de algoritmia. Especialmente

    dirigido a personas que hayan realizado los cursos "Bases de la programacin Nivel I y

    II", pero tambin til para programadores que quieran introducirse a Java.

    Contenidos

    INTRODUCCIN A PROGRAMA CIN ORIENTADA A OBJETOS Y A JAVA

    INSTALACIN. ENTORNO DE PROGRAM ACIN. LA AYUDA DE JAVA.

    VARIABLES CON JAVA. ESCRITURA DE CDIGO.

    ESTRUCTU RAS DE DECISIN Y DE REPETICIN (BUCLES) CON JAVA.

    INSTRUCCIONES LEER Y GUARDAR. INTRODUCCIN A ARCHIVOS.

    CONTADORES Y OTRAS HERRAMIENTAS CON JAVA.

    PROGRAMACIN POR MD ULOS (MTODOS) CON JAVA.

    VERIFICACIN DE ALGORITMO S CON JAVA.

    ERRORES. GENERAR UN PROGRAM A EJECUTABLE. EJERCICIOS.

    Duracin

    120 horas de dedicacin efectiva, incluyendo lecturas, estudio y ejercicios.

    Direccin, modalidades y certificados

    El curso est dirigido por Walter Sagstegui Lescano, Ingeniero Informtico de

    aprenderaprogramar.com. Se oferta bajo las modalidades web (gratuito) o con tickets

    de soporte.

  • 7/25/2019 Prog. Java Nivel I

    2/85

    Introduccin. Java, lenguajepotente y popular. (CU00501A)Seccin: Cursos

    Categora: Curso Lenguaje de programacin Java nivel I

    Fecha ltima actualizacin: 2010

    Autor: Walter Sagstegui Lescano

    Resumen: Entrega n1 del curso Lenguaje de programacin Java Nivel I.

    10

  • 7/25/2019 Prog. Java Nivel I

    3/85

    CONSIDERACIONES PREVIAS

    En este curso emplearemos el Lenguaje de Programacin Java para aplicar los conceptos y

    conocimientos de fundamentos de programacin a un lenguaje concreto. Puedes utilizar este curso

    para aplicar conocimientos previos y conocer aspectos bsicos de programacin orientada a objetos,pero no recomendaramos seguirlo si buscas un desarrollo en profundidad y metdico sobre estas

    materias. No vamos a entrar en definiciones ni en consideraciones abstractas. Tampoco vamos a seguir

    lo que sera un guin completo de estudio sobre el lenguaje Java. Dejaremos de lado los aspectos

    estticos: el mundo de las formas de presentacin, los colores, imgenes, efectos visuales, etc. Es

    atractivo y parte ms o menos importante de los programas, pero no es nuestro objetivo. Nos vamos a

    centrar en los "esqueletos" de los programas: el cdigo que hace que funcionen, no el que hace que

    sean bonitos.

    Cabe hablar del lenguaje a utilizar en el desarrollo de programas. El conjunto de lenguajes y

    versiones de lenguajes constituyen una torre de Babel, un conglomerado de difcil seguimiento einterpretacin. Lo ms habitual es decantarse por estudiar lenguajes que adquieren popularidad y un

    uso extendido por todo el mundo, como es Java. Pero incluso despus de este ejercicio hay que

    enfrentarse a la evolucin del lenguaje a travs de sus diversas versiones. En Java todas las versiones

    siguen los mismos estndares de datos, esto permite que un programa que hayamos hecho con una

    versin antigua, pueda ser ejecutado con una versin ms nueva sin necesidad de ningn cambio.

    Nuestra opinin consiste en que es preferible dejar esa carrera loca, quizs necesaria, para los

    programadores profesionales y empresas, mientras que los usuarios podemos contentarnos con

    programas que funcionen, aunque sean un poco "antiguos". Por tanto, respecto a qu versin de Java

    usar, usa la que quieras. Si no coincide con la que hemos usado nosotros (JDK 1.6.0_18) no pasa nada.Notars que los ejercicios aqu desarrollados no tendrn problemas incluso con la versin JDK 1.6.0_14,

    que tomaremos como la versin mnima a emplear ya que las anteriores suponen algunos cambios ms

    significativos. No obstante, tambin puedes usar versiones ms antiguas haciendo pequeas

    adaptaciones a los programas.

    Citaremos tambin que existen distintas formas de programar en Java: la ms bsica es usar el

    compilador (programa que permite que el ordenador entienda las instrucciones que le demos en

    lenguaje Java, ya que el ordenador no entiende directamente los lenguajes de programacin). Otras

    opciones son el uso de entornos visuales como Eclipse, NetBean, etc. que se han hecho muy populares,

    son gratuitos y muy tiles. Nosotros vamos a usar el compilador, tambin de distribucin gratuita,porque pensamos que es la mejor manera de aprender Java: aprender sus fundamentos. Cuando ya

    tengamos los fundamentos, podemos pasar a usar un entorno visual que nos permitir crear programas

    ms atractivos y de forma ms rpida, pero tratar de usarlos directamente pensamos que no es lo ms

    didctico.

    En resumen, los lenguajes evolucionan de forma constante, pero detrs de los aparentes

    cambios casi siempre se encuentra el mismo "fondo".

    Si despus de todo, sigues dudando del lenguaje que mejor se adecua a tus necesidades, te

    animamos a que profundices en Java. Vers que se trata de un lenguaje til para casi todo tipo de

    problemas. Podemos citar como funcionalidades de Java varias:

  • 7/25/2019 Prog. Java Nivel I

    4/85

    1. Aplicaciones "cliente": son las que se ejecutan en un solo ordenador (por ejemplo el porttil

    de tu casa) sin necesidad de conectarse a otra mquina. Pueden servirte por ejemplo para realizar

    clculos.

    2. Aplicaciones "cliente/servidor": son programas que necesitan conectarse a otra mquina

    (por ejemplo un servidor de datos) para pedirle algn servicio que le pueda ofrecer, como podra ser el

    uso de una base de datos.

    3. Podemos hablar tambin de "aplicaciones web", que son programas Java que se ejecutan en

    un servidor. Estas aplicaciones reciben "solicitudes" desde un ordenador y envan al navegador

    (Internet Explorer, Mozilla, Opera, etc) que acta como su cliente pginas de respuesta en HTML.

    stos son slo algunos ejemplos de todo el potencial que hay detrs de Java como lenguaje

    para aprender y obtener muchos beneficios con su uso. Obviamente por determinados trminos

    empleados (cliente, cliente/servidor, base de datos, HTML..), te dars cuenta de que el lenguaje Java

    tiene mucha potencialidad, pero tambin de que su conocimiento a fondo requerira mucho tiempo.Nosotros en este curso vamos a estudiar nicamente los aspectos ms bsicos de Java.

    INTRODUCCIN A PROGRAMACIN ORIENTADA A OBJETOS

    La programacin orientada a objetos (POO) se populariz en la dcada de los 90 desplazando a

    la programacin estructurada tradicional, no para eliminarla o dejarla obsoleta, sino para construir

    sobre ella. Su xito ha radicado en facilitar y simplificar la construccin de programas y su

    mantenimiento. Esta concepcin de la programacin se ha impuesto a casi todos los niveles, lo cual noquiere decir que no se puedan usar lenguajes que no la contemplen, y lograr con ellos resultados tiles

    y eficaces. Todos los conocimientos previos que tengamos sobre algoritmia y programacin

    estructurada sern de utilidad para profundizar en programacin orientada a objetos, aunque

    obviamente tendremos que aadir nuevos conocimientos.

    La caracterstica principal de la programacin orientada a objetos es el uso de objetos. Un

    objeto es la combinacin de cdigo y datos. Un mdulo (paquete de cdigo) se ejecutar en base a que

    est asociado a un objeto y no de forma libre. A efectos prcticos, veremos los objetos como elementos

    prefabricados a los que dotamos de sentido. Supongamos que somos fabricantes de naves

    prefabricadas. Montamos la nave (objeto), la dotamos de personal y maquinaria con una, dos o treslneas de proceso (cdigo) y damos instrucciones precisas sobre qu se debe hacer cuando se

    transmitan determinados mensajes a la nave (p. ej. "fabricar pan"), en funcin del contenido o

    existencias de la nave (datos). La forma de pensar ha variado respecto a la programacin tradicional. En

    primer lugar, ahora no tenemos que construir la nave, puesto que disponemos de ella prefabricada. No

    vamos a generar instrucciones sobre lo que debe pasar, sino sobre lo que hay que hacer en funcin de

    los mensajes que se reciban. Por ltimo, los datos no van a viajar libres, sino que van a estar vinculados

    a objetos portadores de datos.

    Antes que adentrarnos en un desarrollo terico sobre propiedades de la programacin

    orientada a objetos vamos a preferir, siendo prcticos, empezar a hablar de Java.

  • 7/25/2019 Prog. Java Nivel I

    5/85

    INTRODUCCIN A JAVA

    Java es un lenguaje de programacin creado por la compaa Sun. Antes de su lanzamiento al

    mercado, como demostracin de que se trataba de un lenguaje potente, la empresa desarroll el

    navegador "HotJava". Este navegador estaba construido utilizando el lenguaje Java. Fue mostrado enmayo de 1995 y a principios de 1996 se lanz la primera versin del lenguaje. Esta versin introdujo

    caractersticas novedosas con respecto a otros lenguajes de programacin que hicieron que Java

    pudiera calificarse de lenguaje innovador. La principal novedad introducida fue que Java es

    independiente del hardware y del sistema operativo en que se ejecute. Es decir, Java es independiente

    de la plataforma: los programas Java no se ejecutan en nuestra mquina real (en nuestro ordenador o

    servidor) sino que Java simula una mquina virtual con su propio hardware y sistema operativo. Y es en

    esta mquina virtual simulada donde se ejecuta Java. Esto permite que Java pueda ejecutarse en una

    mquina con el Sistema Operativo Unix, Windows, Linux o cualquier otro, porque en realidad no va a

    ejecutarse en ninguno de los sistemas operativos, sino en su propia mquina virtual que se instala

    cuando se instala Java.

    La mquina virtual era la razn principal que diferenciaba a Java de otros lenguajes cuando

    irrumpi en el mercado de los lenguajes de programacin. Otra razn de su gran xito ha sido que

    cuando surgi se convirti en un lenguaje ms orientado a objetos que todos los otros lenguajes

    existentes. Adems cabe destacar su potencia y el permitir crear programas de aspecto y

    funcionamiento muy similar al tambin muy popular "entorno Windows". Esto afianz su

    reconocimiento como un lenguaje de programacin innovador.

    Java es un lenguaje que se apoya en objetos. A nivel terico se podra distinguir entre

    programacin orientada a objetos, programacin basada en objetos o programacin que utiliza objetos.No vamos a entrar en este tipo de disquisiciones. Hablaremos simplemente de programacin orientada

    a objetos o POO. A nivel prctico lo que nos interesa es disponer de objetos que podemos insertar en

    nuestros programas sin tener que teclear una sola lnea de cdigo y que esos objetos nos van a hacer

    fcil y cmoda la programacin.

    El usuario de Java se enfrenta a una larga lista de trminos como pueden ser: atributo, ventana,

    componente, evento, mtodo, argumento, operador, instruccin, etc. que inicialmente pueden resultar

    un tanto abrumadores por su variedad y carcter abstracto. Trataremos de evitar el uso de

    "terminologa abstracta" en la medida de lo posible, pero necesariamente habremos de enfrentarnos a

    ella y utilizarla. Una forma sencilla de hacerlo es "aprender jugando". Arrancamos el ordenador y vamosdescubriendo Java a travs de pequeos programas de prueba. Nosotros utilizaremos programas que

    ejecuten en "cliente", que como mencionamos anteriormente son los que se ejecutan en un sola

    mquina (por ejemplo nuestro ordenador personal) y no necesitan comunicarse con otro programa en

    otra mquina para solicitarle algn servicio, como puede ser el de base de datos. En este curso nos

    centraremos en conocer el lenguaje y sus aspectos ms fundamentales, que consideramos es el primer

    paso para introducirnos en Java. Una mayor profundizacin, como aplicaciones cliente-servidor o

    aplicaciones web, las dejaremos para otro curso.

    Prxima entrega: CU00502A

  • 7/25/2019 Prog. Java Nivel I

    6/85

    Obtener el instalador de Java.(CU00503A)Seccin: Cursos

    Categora: Curso Lenguaje de programacin Java nivel I

    Fecha ltima actualizacin: 2010

    Autor: Walter Sagstegui Lescano

    Resumen: Entrega n2 del curso Lenguaje de programacin Java Nivel I.

    10

  • 7/25/2019 Prog. Java Nivel I

    7/85

    INSTALACIN DEL ENTORNO DE TRABAJO

    Si no tienes instalado Java en tu ordenador, es necesario que lo instales para poder comenzar a

    programar. Java, aparte de ser el nombre del lenguaje, es tambin el nombre del programa que

    necesitamos para poder escribir cdigo en nuestro ordenador.

    DESCARGA DE JAVA

    As pues, el primer paso ser ir a la direccin http://Java.sun.com/j2se/. Esta es una web de la

    multinacional Sun (ahora integrada en Oracle), creadora de Java. Desde ah bajaremos el Java

    Development Kit (JDK), que es el entorno Java que utilizaremos para realizar nuestros primeros

    programas. Nosotros en concreto nos hemos bajado la versinJD K 1.6.0_18. Esta versin no es ms queun archivo ejecutable, es decir, que tiene la extensin .exe. En nuestro caso el archivo se llama "jdk-

    6u18-windows-i586.exe". Fjate que nos bajamos una versin para Windows. Los pasos para la descarga

    los iremos explicando con imgenes.

    Comentar que el lenguaje de programacin Java, tiene versiones para instalarse en la mayora de los

    Sistemas Operativos presentes en el mercado (Unix, Windows, Linux y otros ms). En este curso

    usaremos Windows 7, el cual ser nuestro Sistema Operativo de referencia. Tambin puedes utilizar

    Windows Vista que es muy similar, o Windows XP, aunque en el XP puedes encontrar algunas pequeas

    variaciones.

    Una vez en la pgina de la empresa Sun, que se muestra en el navegador al poner la direccin URL

    http://Java.sun.com/j2se/, lo primero que hay que hacer es posicionarnos con el mouse en el enlace

    "Downloads" y nos mostrar un men con varias opciones. Seleccionaremos la segunda opcin en la

    lista: "Java SE", es decir, Java Standard Edition o Edicin Standard de Java.

    http://java.sun.com/j2se/http://java.sun.com/j2se/http://java.sun.com/j2se/http://java.sun.com/j2se/
  • 7/25/2019 Prog. Java Nivel I

    8/85

    En la siguiente pgina, pinchamos con el mouse en el enlace "Download JDK".

    Java Expert?Gef pad everytime youanswer iava questions1

    Larn More

    L I V I P E R S O N

    Llegados a la siguiente pgina, debemos hacer click en el enlace "Download", para descargar la versinms actual de Java. Por defecto, est seleccionada la versin Java para el Sistema Operativo Windows

    en el combo desplegable "Platform". Esta es la plataforma con la que trabajaremos en este curso; no

    obstante, se puede trabajar con Java tambin en otras plataformas. Existen versiones de Java para

    muchos otros Sistemas Operativos como puede comprobarse desplegando el combo.

  • 7/25/2019 Prog. Java Nivel I

    9/85

    Si nos pide nombre de usuario (User Name) y Password (contrasea) pulsaremos en "Skip this Step"

    (saltar este paso) ya que no es obligatorio el registro como usuarios.

    En esta ltima pgina, haremos click con el mouse en el enlace indicado con el nombre de archivo (que

    ser del tipo jdk... .exe), para empezar la descarga del instalador Java. En nuestro caso pulsamos sobre

    el link para descargar el archivo "jdk-6u18-windows-i586.exe" y lo guardamos en nuestro disco duro. El

    archivo puede ocupar bastante (ms de 70 Mb), por lo que necesitamos una buena conexin a internet

    si queremos que la descarga sea rpida.

    Con esto hemos finalizado la descarga del instalador de Java. Si tienes problemas para descargar desde

    internet, tambin puedes conseguir el instalador Java en cd's de revistas especializadas que estn

    disponibles en bibliotecas pblicas. Una vez descargado, el siguiente paso ser instalar Java en nuestro

    ordenador.

    Prxima entrega: CU00504A

  • 7/25/2019 Prog. Java Nivel I

    10/85

    Instalacin de Java en Windows.(CU00504A)Seccin: Cursos

    Categora: Curso Lenguaje de programacin Java nivel I

    Fecha ltima actualizacin: 2010

    Autor: Walter Sagstegui Lescano

    Resumen: Entrega n3 del curso Lenguaje de programacin Java Nivel I.

    10

  • 7/25/2019 Prog. Java Nivel I

    11/85

    INSTALACIN DE JAVA EN WINDOWS

    En este apartado, explicaremos los pasos de instalacin de Java en el Sistema Operativo Windows. Ten

    en cuenta que puede haber pequeas diferencias segn la versin que usemos (Windows 7, Windows

    Vista, Windows XP, etc.). Primero, tenemos que hacer doble click sobre el archivo instalador de Java,que habremos descargado anteriormente.

    Aparece una ventana inicial de instalacin, informndonos sobre las condiciones de la licencia. Una vez

    leda, continuamos la instalacin pulsando en el botn "Accept" (aceptar).

    jl JavafTM) SE Development Kit 6 Update 18 -License

    Please read the following license agreement caretully.

    Sun Microsystems, Inc. Binary Cade License Agreement

    for the JAVA S E DEV ELOPMENT KIT (JDK). VERSION 6

    SUN MICROSYSTEMS, INC. ("SUN") IS WILLING TO LICENSE THE SOFTW ARE IDENTIFIED BEL OW TO YOU ONLY UPON THE CONDITIONTHAT YOU ACCEPT ALL OF THE TERM S CONTAINED IN THIS BINARYCODE LICENSE AGREEMENT AND SUPPLEMENTAL LICENSE TERMS (COLLECTIVELY AGREEMENT'). PL EASE READ THE AGREEMENTCAREFULLY. BY USING THE SOFTW ARE YOU ACKNOWLEDGE THAT

    YOU HAVE READ THE TERMS AND AGR EE TO THEM. IF YOU ARE AGREEING TO THES E TERMS ON BEHALF OF A |COMPANY OR OTHERLEGAL ENTITY, YOU REPR ESEN T THAT YOU HAVE THE LEGAL/AUTHORITY TO BIND THE LEGAL ENTITY TO THES E TERMS. |/ y OU DO

    En la ventana que aparece a continuacin, lo primero en que debemos fijarnos es en la ruta de

    instalacin ("Install to: "). Es la direccin en la que se instalar Java. Nos aparece la ruta por defecto. Si

    no estamos de acuerdo con dicha ruta podemos cambiarla con el botn "Change" (cambiar). Como

    recomendacin, aconsejamos evitar cambiarla si no tenemos conocimientos avanzados. El motivo para

    ello es que muchos programas que trabajan con Java reconocen por defecto dicha ruta. Mantenindola

    evitamos problemas y tener que estar configurando la ruta a emplear por el resto de programas.

  • 7/25/2019 Prog. Java Nivel I

    12/85

    En la parte central nos seala opciones respecto a qu podemos instalar (Development Tools o

    herramientas de desarrollo, Demos and samples o ejemplos de prueba, Source Code o cdigo fuente, y

    Public JRE o mquina virtual). Podemos elegir instalar ciertas partes de Java y dejar sin instalar otras.Para ahorrar espacio en el disco duro, podemos no instalar ciertas partes de Java como los ejemplos de

    prueba, lo que haramos deseleccionando esta opcin. Si no tienes problemas de espacio lo

    recomendable es dejarlo todo tal como est y que se instalen todas las opciones. Dicho lo anterior

    hacemos click en el botn "Next" (siguiente) y continuamos con la instalacin.

    Sin haber terminado el proceso de la ventana anterior, se muestra la siguiente ventana, que es algo

    parecida a la que vimos anteriormente, donde nos muestra una ruta por defecto en la que se instalar

    la "Maquina Virtual" de Java. La mquina virtual se reconoce por el nombre de "jre6", presente al final

    de la ruta. Siguiendo el mismo criterio comentado anteriormente, es una ruta ya reconocida por

    defecto por muchos programas que requieren de la "Mquina Virtual" Java. Para evitar problemas de

    configuracin de ruta, es preferible que los usuarios no avanzados no hagan cambios. Si an as

    quisiramos hacerlo, usaramos el botn "Change..." (cambiar). Seguimos con la instalacin, haciendo

    click en el botn "Next" (siguiente).

  • 7/25/2019 Prog. Java Nivel I

    13/85

    El proceso de instalacin continua hasta que la coloracin verde (progreso de la instalacin) cubre en

    su totalidad la barra gris.

    Finalmente, si todo ha ido bien, aparecer una ventana indicando que la instalacin se ha completado.

    Hacemos click en "Finish" para finalizar la instalacin.

    Ahora vamos a verificar la instalacin. Para ello vamos a comprobar que se hayan creado dos carpetas

    con un nombre similar a "jdk1.6.0_18" y "jre6" en la ruta "C:\Archivos de programa (x86)\Java". La

    primera carpeta, de nombre similar a "jdk1.6.0_18", corresponde al compilador e intrprete Java, cuyas

    funciones explicaremos ms adelante. La segunda carpeta, de nombre similar a "jre6", corresponde a la

    "Mquina Virtual" de Java, concepto que ya hemos comentado anteriormente. Si hemos llegado hasta

    aqu, hemos finalizado correctamente la instalacin de Java en Windows.

    O h Disco local (C:) Archivos de programa(x86) Java Organizar * Incluir en. biblioteca Compartir con Grabar Mua carpeta

    VT Favoritos -Nombre Fecha eremodifica, Tipo

    Descargas | l) jdkl.6.0_18 19/03/201110:15 Carpeta de archivo

    K Escritorio

    H Sitios recientes

    i j reS 18/03/2010Vl;53 Carpeta de archivo

    Bibliotecas

    [3 Documentos

    B Imgenes

    J) Msica

    Prxima entrega: CU00505A

  • 7/25/2019 Prog. Java Nivel I

    14/85

    Configuracin de Java en Windows(CU00505A)Seccin: Cursos

    Categora: Curso Lenguaje de programacin Java nivel I

    Fecha ltima actualizacin: 2010

    Autor: Walter Sagstegui Lescano

    Resumen: Entrega n4 del curso Lenguaje de programacin Java Nivel I.

    10

  • 7/25/2019 Prog. Java Nivel I

    15/85

    CONFIGURACIN DE JAVA EN WINDOWS

    En este apartado, explicaremos la configuracin de Java en el Sistema Operativo Windows. Ten en

    cuenta que puede haber pequeas diferencias segn la versin que usemos (Windows 7, Windows

    Vista, Windows XP, etc.). Vamos a ver paso a paso cmo configurar las variables de entorno del sistema.Existen una gran variedad de variables de entorno para diferentes propsitos, entre ellos la

    comunicacin de Java con el sistema operativo. Nos vamos a centrar en slo dos, las ms importantes

    para nuestra configuracin. Estas son las variables que informan al Sistema Operativo dnde y cmo

    ubicar Java dentro del mismo. Estas variables son: "JAVA_HOME" y "PATH".

    PASO 1: Configurar la variable JAVA_HOME

    JAVA_HOME, es una variable de entorno del sistema que informa al Sistema Operativo sobre la rutadonde se encuentra instalado Java.

    Seguiremos la siguiente secuencia de pasos para configurar esta variable:

    Abrimos el explorador de Windows o pulsamos sobre "Mi Pc". Pulsamos sobre Equipo ^ Propiedades

    ^ Configuracin avanzada / Cambiar configuracin ^ Opciones avanzadas ^ Variables de entorno ^

    Nueva (Variables del sistema). Luego escribir en las cajas de texto que se muestran lo siguiente:

    Nombre de variable : JAVA_HOM E

    Valor de variable : escribirem os aqu la ruta en que se haya instalado Java. Puedes consultarla enel propio explorador de Windows buscando la carpeta en que se ha instalado Java, que normalmente

    ser del tipo C:\Program Files\Java\jdk1.6.0_18 C:\Program Files (x86)\Java\jdk1.6.0_18.

    C:\Program Files\Java\jdkl.6.0_l

    Archivo Edicin Ver Herramientas Ayuda

    SR R M I3s Grabar

    Carpetas

    Nombre Fecha modificacin Tipo TamaoV

    bin 03/04/2010 20:03 Carpeta de archivos

    InterVideo * demo 03/04/2010 20:04 Carpeta de archivos

    Java include 03/04/2010 20:03 Carpeta de archivos

    jdkl.6.0_18 ujre 03/04/2010 20:03 Carpeta de archivos

    jrel.6.0 , lib 03/04/2010 20:03 Carpeta de archivosjre6 sample 03/04/2010 20:04 Carpeta de archivos

    Itmoh L i COPYRIGHT 17/12/2009 18:33 Archivo 4 KB

    MagidSO RUCENSE 03/04/2010 20:03 Archivo 18 KB

    Microsoft.NET 3jUCENSE.rtf 03/04/2010 20:03 Rich Text Format 18 KB

    Microsoft Games C, README.html 03/04/2010 20:03 Documento HTML 29 KB

    Microsoft Office . READMEJa.html 03/04/2010 20:03 Documento HTML 26 KB

    Microsoft Visual Studio ^ README_zh_CN.html 03/04/2010 20:03 Documento HTML 21 KB

    Microsoft Visual Studio 8 ^ register.html 03/04/2010 20:09 Documento HTML 6 KB

    Microsoft Works _ registerja.html 03/04/2010 20:09 Documento HTML 6 KB

    Movie Maker fSj register_zh_CN.html 03/04/2010 20:09 Documento HTML 5 KB

    Mozilla Firefox 1 srcjip 17/12/200918:34 Carpeta comprim... 19.195 KB

    MSBuild [_, THIRDPARTYUCENSER.. 03/04/2010 20:03 Documento de tex... 183 KB

    MSN E

    MSXML4.0

    myphotobook

    MySQLMySQL-Front

  • 7/25/2019 Prog. Java Nivel I

    16/85

    PASO 2: Configurar la variable Path

    PATH, es una variable de entorno del sistema, que informa al Sistema Operativo sobre la ruta de

    distintos directorios esenciales para el funcionamiento del ordenador. Vamos a aadir al contenido de

    la variable Path el luegar donde se encuentran los ficheros ejecutables de Java necesarios para su

    ejecucin, como el compilador (javac.exe) y el intrprete (java.exe).

    Seguiremos la siguiente secuencia de pasos para configurar esta variable.

    Abrimos el explorador de Windows o pulsamos sobre "Mi Pc". Pulsamos sobre Equipo ^ Propiedades

    ^ Configuracin avanzada / Cambiar configuracin ^ Opciones avanzadas ^ Variables de entorno ^

    Editar (Variables del sistema). Luego al final del contenido que ya exista, aadiremos un punto y coma

    con el texto "%JAVA_HOME%\bin". No deben quedar espacios intermedios. Nos quedar similar a esto:

    Nombre de variable : PATH

    Valor de variable : C:\WINDOW S;C:\WINDOW S\system32;%JAVA_HOME%\bin

  • 7/25/2019 Prog. Java Nivel I

    17/85

    A modo de resumen: hemos creado una variable de entorno llamada JAVA_HOME y hemos aadido

    una expresin a la variable PATH.

    Asegrate de que se han creado correctamente cerrando todas las ventanas y entrando a Variables de

    entorno para comprobar que est todo como hemos indicado.

    Prxima entrega: CU00506A

  • 7/25/2019 Prog. Java Nivel I

    18/85

    Compilar y ejecutar un programaen Java (CU00506A)Seccin: Cursos

    Categora: Curso Lenguaje de programacin Java nivel I

    Fecha ltima actualizacin: 2010

    Autor: Walter Sagstegui Lescano

    Resumen: Entrega n5 del curso Lenguaje de programacin Java Nivel I.

    10

  • 7/25/2019 Prog. Java Nivel I

    19/85

    COMPILAR Y EJECUTAR UN PROGRAMA EN JAVA

    En este apartado, comprobaremos si hemos realizado correctamente los pasos de instalacin y

    configuracin de Java en Windows. Pero antes vamos a explicar algunos conceptos importantes que nos

    permitan entender lo que vamos haciendo. El primer concepto a explicar sera el de "compilacin" o"compilar" y significa traducir el cdigo escrito en "Lenguaje Java", que entendemos nosotros los

    humanos, pero no las mquinas, a un cdigo en "Lenguaje Mquina", que entienden las mquinas, pero

    no entendible por nosotros. Se hace esto porque a los humanos nos costara mucho trabajar

    directamente trabajar con el lenguaje de los ordenadores, por lo que usamos un lenguaje ms

    asequible para nosotros (en este caso Java) y luego emplear un traductor (compilador). Aclarar que al

    ser Java un programa que se compila en una "Mquina Virtual", el archivo resultante de la compilacin

    es un archivo con la extensin .class. Este archivo .class est escrito en un "Lenguaje de Mquina

    Virtual", por tanto, para que la "Mquina Real" (nuestro ordenador) nos d el resultado, hay que

    "interpretar" (traducir) el archivo .class a un cdigo en "Lenguaje de Mquina Real". Esta es la labor de

    lo que llamamos "intrprete" o traductor del lenguaje de la mquina virtual a la mquina real. Losarchivos respectivos que se encargan de estas tareas son:

    El comp ilador Java > javac.exe

    El intrprete Java > java.exe

    La ruta de ambos archivos es esta o una similar a esta: "C:\Archivos de programa

    (x86)\Java\jdk1.6.0_18\bin". Aclarar que para efectos de compilacin se usar una ruta del tipo:

    "C:\Program Files (x86)\Java\jdk1.6.0_18\bin", que es la ruta real con la que Windows trabaja. El

    explorador de Windows nos muestra una barra con la ruta en que nos encontramos (ruta aparente).

    Para conocer la ruta real basta pinchar sobre la ruta aparente.

    Ahora indicaremos los pasos para compilar e interpretar nuestro primer programa escrito en lenguaje

    Java.

  • 7/25/2019 Prog. Java Nivel I

    20/85

    PASO 1

    Abrir el Bloc de notas de Windows (Inicio ^ Todos los programas ^ Accesorios ^ Bloc de notas), que

    ser nuestro editor de trabajo por su simplicidad. Ms adelante veremos un editor ms sofisticado. Si

    prefieres usar otro editor en este momento no hay problemas (por ejemplo WordPad, Notepad, etc.).

    Da igual mientras que se grabe el programa como "Texto sin formato" (en cdigo ASCII). Una vez que

    tengamos el bloc de notas abierto escribiremos nuestro primer programa, que mostrar un texto "Hola

    Java", en la ventana consola del DOS (Ventana negra que ms adelante explicaremos cmo manejar).

    Aclarar que por el momento no debemos preocuparnos de entender lo que escribimos: esto lo

    explicaremos ms adelante. Nuestro objetivo ahora es simplemente comprobar que podemos ejecutar

    un programa escrito en Java.

    El cdigo de nuestro programa en Java, escrito en el bloc de notas, ser el siguiente:

    public class Ejemplo {public static void main(String[] arg) {

    System.out.println("Hola Java");

    }

    }

    Los caracteres de llaves y corchetes se escriben pulsando ALT GR + la tecla correspondiente.

    ^ public stat ic void main(string[] arg) {

    A continuacin procedemos a grabar nuestro programa: pulsamos en Archivo ^ Guardar como y le

    ponemos como nombre Ejemplo.java. Estamos siguiendo una norma dictada por Java, que es el nombre

    del archivo (Ejemplo.java) y el nombre del programa (que hemos definido dentro del archivo despus

    de escribir public class, y que tambin es "Ejemplo") san idnticos. Resumidamente: hemos de hacer

    coincidir nombre del archivo y nombre del programa, tanto en maysculas como en minsculas, y laextensin del archivo habr de ser siempre ".java".

  • 7/25/2019 Prog. Java Nivel I

    21/85

    Para seguir un orden y evitar problemas posteriores durante la compilacin, seguiremos los siguientes

    pasos. Crearemos una carpeta en C: denominada "Ejercicios". Ubicaremos el programa Ejemplo.java

    dentro de esta carpeta.

    PASO 2

    En este paso, veremos la compilacin e interpretacin de un programa Java. Comentar que este

    paso se har usando la ventana consola del DOS. Para visualizar esta ventana debemos seguir estos

    pasos: Inicio ^ Todos los programas ^ Accesorios ^ Smbolo del sistema. A continuacin, una vez que

    estemos en la ventana consola debemos escribir el comando "cd c:\Ejercicios" y pulsar enter. Esto nos

    traslada a la carpeta donde se ubica nuestro archivo ("Ejemplo.java"). A continuacin daremos la

    instruccin para que se realice el proceso de compilacin del programa, para lo que escribiremos "javac

    Ejemplo.java", donde "javac" es el nombre del compilador (javac.exe) que transformar el programa

    que hemos escrito nosotros en lenguaje Java al lenguaje de la mquina virtual Java, dando como

    resultado un archivo "Ejemplo.class" que se debe haber creado en este mismo directorio. Si te aparece

    un mensaje de error revisa todos los pasos anteriores que hemos explicado, pues es posible que no se

    hayan creado las variables de entorno o que el archivo no est bien ubicado, etc. Para comprobar si se

    ha creado el archivo escribiremos en la ventana consola el comando "dir". Comprobaremos que nos

    aparecen dos archivos: Ejemplo.class (creado por el compilador) y Ejemplo.java (creado por nosotros).

    Finalmente, vamos a pedirle al intrprete que transforme el cdigo de la mquina virtual Java en cdigo

    mquina interpretable por nuestro ordenador. Para ello escribiremos en la ventana consola: java

    Ejemplo.

    El resultado ser que se nos muestra la cadena "Hola Java".

    |Smbolo del sistema

    iupu uft Lfiiidoui: CU ui'uin 6.1.76 001opyricyht 2009 M icro soft C orp orat ion. R eservados todos los derec hos.

    :\Users\Walter>cd c NE jerc ic ios

    =\Ejere ic ios >javac E jemplo. java

    c :\Ejerc ic ios^jaua Ejemplo o l a J a v a

    : SEjerr. ir. io s >

    Prxima entrega: CU00507A

  • 7/25/2019 Prog. Java Nivel I

    22/85

    Como obtener ayuda en Java.(CU00507A)Seccin: Cursos

    Categora: Lenguaje de programacin Java Nivel I

    Fecha ltima actualizacin: 2010

    Autor: Walter Sagstegui Lescano

    Resumen: Entrega n6 del curso Lenguaje de programacin Java Nivel I".

    10

  • 7/25/2019 Prog. Java Nivel I

    23/85

    LA AYUDA DE JAVA

    Si ya has trabajado con algn otro lenguaje de programacin, seguramente tendrs clara la importancia

    de las ayudas de los lenguajes para los programadores. Pero si no es as, vamos a tratar de dejarlo claro.

    En primer lugar, cabe decir que prcticamente nadie conoce a fondo todos los trminos y posibilidades

    de un lenguaje. Es como un idioma hablado: hay gente que lo chapurrea, gente que lo habla

    correctamente pero con escasez de recursos, gente que lo habla bien y con abundancia de recursos y

    expertos a distintos niveles. Pero nadie, lo sabe "absolutamente todo". Por tanto, cuando estamos

    programando y no sabemos hacer algo o tenemos dudas, tendremos que recurrir a ayudas externas

    como:

    La ayuda del lenguaje.

    Manual de lenguaje.

    Libros sobre programacin, apuntes, etc.

    Otros programas.

    Otros programadores.

    La ayuda del lenguaje es una parte del programa o entorno de programacin, a la que podemos acceder

    para encontrar informacin y recomendaciones, que han sido generadas por los propios creadores del

    lenguaje. Las principales ventajas de la ayuda de un programa son:

    Rapidez: si estamos programando y surge una duda o necesidad, podremos resolverla a travs de la

    ayuda, sin necesidad de movernos o desplazar la atencin de lo que estamos haciendo.

    Potencia: las ayudas suelen ser bastante completas y tiles, por lo que podemos estar seguros de

    que van a resolver un alto porcentaje de los problemas que podamos tener con el lenguaje.

    Como inconvenientes de las ayudas podemos citar:

    Si no conoce mos el trmino que describe aquello que buscamos, quizs no podamos llegar a la

    informacin deseada.

    A veces, la ayuda es una traduccin no dem asiado acertada desde otro idioma, lo que dificulta su

    comprensin.

    Cualquier programador que se precie, conoce y usa las ayudas de los programas. Son de especial

    inters, para programadores aprendices o autodidactas.

    Veamos ahora cmo acceder y optimizar la ayuda de Java. Como no vamos trabajar con un entorno

    visual, en particular, la ayuda la obtendremos de pginas oficiales de Java

    http://www.java.com/es/download/help/index.xml y de pginas que resulten de una bsqueda en

    Google, cada persona valorar la pgina que le resulte ms funcional acorde a sus necesidades, as

    como navegar por los distintos links incluidos en foros, de ah que no podemos establecer una nica

    pgina de referencia de Java.

    http://www.java.com/es/download/help/index.xmlhttp://www.java.com/es/download/help/index.xml
  • 7/25/2019 Prog. Java Nivel I

    24/85

    Quizs sea para algunos, una forma muy tediosa de bsqueda de informacin, pero actualmente con

    los buscadores cada vez ms sofisticados, la ayuda la podemos obtener al instante, slo es cuestin de

    saber buscar por la red, ya que los buscadores se han convertido en verdaderos y ventajosos surtidores

    de informacin.

    Mostraremos a continuacin, unos ejemplos de bsqueda avanzada, en el buscador ms usado

    actualmente Google, y que ser de gran utilidad al momento de querer buscar informacin sobre Java:

    Buscar todos los documentos en formato "pdf", que contengan esta expresin "Java" exactamente.

    Entonces pones en la caja de texto de bsqueda de google, lo siguiente:

    "Java" filetype:pdf

    Quizs, deseamos buscar algo ms especfico, como "variables en java". Entonces ponemos lo siguiente:

    "variables en java" filetype:pdf

    Ahora se me ocurre, desear buscar todas las pginas de universidades espaolas, que tengan la palabra

    "Java". Entonces escribimos lo siguiente:

    "Java" site:.edu.es

    Mencionar que "edu.es" es un dominio, que hace referencia a las pginas de universidades espaolas,

    lo mismo podemos hacer, si deseamos de universidades mexicanas, cambiando por este otro dominio

    "edu.mx"

    Hay entornos de trabajo visuales para Java, como Netbean, Eclipse etc..., que presentan ayudas

    integradas al entorno, pero sus explicaciones no estn comprendidas en este trabajo.

    Prxima entrega: CU00508A

  • 7/25/2019 Prog. Java Nivel I

    25/85

    Variables con Java (CU00508A)Seccin: Cursos

    Categora: Lenguaje de programacin Java Nivel I

    Fecha ltima actualizacin: 2010

    Autor: Walter Sagstegui Lescano

    Resumen: Entrega n7 del curso Lenguaje de programacin Java Nivel I".

    10

  • 7/25/2019 Prog. Java Nivel I

    26/85

    VARIABLES CON JAVA

    Vamos a tratar los aspectos ms bsicos de la declaracin de variables con Java y a dar algunas

    orientaciones a travs de las que profundizar en el manejo de variables. En Java, al igual que en todo

    lenguaje de programacin, hay una serie de palabras reservadas que no pueden ser empleadas como

    nombres de variables (if, int, char, else, goto....); algunas de estas palabras se emplean en la sintaxis dellenguaje; otras, como goto, aunque no se emplean en la actualidad se han reservado por motivos

    histricos, de compatibilidad o por si se emplean en el futuro.

    Un nombre de variable en Java debe ser un nombre comprendido en el sistema de caracteres Unicode.

    Unicode es un sistema de codificacin que soporta texto escrito en distintos lenguajes humanos,

    permitiendo la codificacin de 34.168 caracteres. Esto nos permite utilizar en nuestros programas Java

    varios alfabetos adems del ingls como el japons, el griego, el ruso o el hebreo y claro est, el

    castellano. Posiblemente no vayamos a utilizar nunca el hebreo ni el ruso, pero disponer de un juego de

    caracteres amplio tiene su inters. Por ejemplo, esto es importante para que los programadores

    puedan escribir cdigo en su lenguaje natural. Por lo tanto podremos utilizar la como parte de losnombres de variable si as lo deseamos.

    NOMBRES Y TIPOS DE VARIABLES

    Java obliga a declarar una variable antes de ser usada. Por eso se dice que Java es un lenguaje

    fuertemente tipeado, caractersticia de la cual no podemos evadirnos. Por otro lado, tambin se usa

    como convencin (por lo cual es recomendable pero no obligatorio) que las variables siempre empiecen

    con letra minscula y que cuando estn compuestas por ms de una palabra se coloquen juntas siendo

    la letra inicial de cada palabra posterior a la primera una mayscula. Por ejemplo "pesoNioEspaol",

    "edadAlumnos", "textoMensajesRepetidos",etc. Otra convencin es que todo nombre de variable sedeclare al inicio del programa y no en cualquier parte del programa, as como inicializarlas a un valor

    para evitar errores por valores nulos posteriormente durante la ejecucin del programa. Esto son

    formas de trabajar no obligatorias que usan los buenos programadores para mantener un orden y de

    esta manera generar buenos programas.

    En cuanto a los tipos de variables, en Ja va las podemos clasificar en funcin del tipo de dato que

    contienen. Veamos los tipos de variables.

  • 7/25/2019 Prog. Java Nivel I

    27/85

    EQUIVALENCIA CON VARIABLES

    USADAS ENTIPO DE DATOS

    MEMORIAREQUERIDA

    RANGO DE VALORES OBSERVACIONES

    PSEUDOCDIGO

    Byte

    (Entero)1 byte -128 a 127 Entero

    Uso en contadores, control debucles, etc.

    Short

    (Entero corto)2 bytes -32768 a 32767 Entero

    Uso en contadores, control debucles, etc.

    Int

    (Entero)4 bytes

    -2147483648

    a

    2147483647

    EnteroUso en contadores, control debucles, etc.

    Long(Entero largo)

    8 bytes9 2 2 3 3 7 2 0 3 6 8 5 4 7 7 5 8 0 8

    a9 2 2 3 3 7 2 0 3 6 8 5 4 7 7 5 8 0 7

    EnteroUso en contadores, control debucles, etc.

    Float

    (Decimal simple)4 bytes 3,4E-38 a 3,4E38 Real Uso cuando se requieren decim ales.

    Double(Decimal doble)

    8 bytes 1,7E-308 a 1 ,7E308 RealUso para aplicaciones cientficas o

    especiales.

    True

    Boolean(Booleano)

    1 byte o Booleano False es el valor predeterminado.

    False

    Los Strings pueden ser tan largoscomo memoria haya disponible; nose ha definido una longitud mxima

    String Variable Alfanum rica

    utilizable en Java.

    Cada carcter en Java estacodificado en un formato

    Char 2 bytes Carcter

    denominado Unicode. En este

    formato cada carcter ocupa dosbytes, frente a la codificacin enASCII, dnde cada carcter ocupabaun solo byte.

    Conociendo ya los tipos de variables y cmo nombrarlas, veamos ahora cmo declararlas y asignarles

    contenido al mismo tiempo. Una forma bsica que nos permita empezar a trabajar y, de paso, crear

    nuestro primer programa.

  • 7/25/2019 Prog. Java Nivel I

    28/85

    Usaremos para ello la sintaxis:

    [Tipo de variable] [Nombre de variable] = [Valor];

    EJEMPLO

    Supn que declaras: una variable destinada a contener la edad de una persona. Sabemos que la edad

    de una persona puede oscilar entre cero y 125 aos (siendo groseros), y que sus valores no son

    decimales, entonces segn los tipos que tenemos en Java podramos usar "byte" o "int" o "short" o

    "long", pero analizando de cada uno de ellos sus rangos de valores que soportan, segn la tabla

    indicada arriba, siempre hay una que es mejor que otra en cuanto a que consumiriamos menos

    memoria. Por tanto puede declararse como tipo byte (-128 a 127) en lugar de int (-2147483648 a

    2147483647) sin ningn problema. Si una variable no lo requiere, no conviene asignarle un tipo que

    ocupe ms memoria de la realmente requerida. En el caso de la edad, si la declaramos como entera

    vamos a ocuparle 4 bytes al sistema cuando podramos haber ocupado slo 1 con el tipo byte. Esto, a

    gran escala, es una falta de eficiencia y economa.

    byte edad = 78;

    A la hora de declarar variables conviene seguir estas pautas:

    Elegir siempre el tipo de variable ms sencillo posible. Consideraremos que el grado de sencillez

    viene definido por la memoria requerida (a menor memoria requerida mayor es la sencillez). Estoredunda en un menor consumo de recursos del sistema y en una mayor rapidez de las operaciones

    que realiza el ordenador.

    Realizar declaraciones ordenadas y claras.

    Java permite declarar variables sin contenido en mltiples lneas una por lnea, pero tambin varias

    variables en una sola lnea.

    Usaremos para ello la sintaxis:

    [Tipo de variable][Nombre de variab le],..., [ Nombre de variable];

  • 7/25/2019 Prog. Java Nivel I

    29/85

    EJEMPLO

    Expresin abreviada Equivalente

    a) int i;

    int j;

    a) in t i, j , k; int k;

    o

    int i; int j; int k;

    En el ejemplo vemos que la expresin abreviada sera la forma ms simplificada de escribir la

    declaracin de varias variables de un mismo tipo simplificando el cdigo del programa, aunque

    podemos hacerlo de una u otra manera segn nuestras preferencias.

    Prxima entrega: CU00509A

  • 7/25/2019 Prog. Java Nivel I

    30/85

    Ejemplos sobre declaracin y

    asignacin de contenidos avariables en Java (CU00509A)Seccin: Cursos

    Categora: Lenguaje de programacin Java Nivel I

    Fecha ltima actualizacin: 2010

    Autor: Walter Sagstegui Lescano

    Resumen: Entrega n8 del curso Lenguaje de programacin Java Nivel I".

    10

  • 7/25/2019 Prog. Java Nivel I

    31/85

    EJERCICIO:

    Realizar una declaracin de variables para las siguientes propuestas de programas.

    a) Un programa que muestra un mensaje de bienvenida.

    b) Un programa que nos pide nuestra edad y nos muestra el ao en que nacimos.c) Un programa que nos muestra el valor medio de tres magnitudes.

    d) Un programa que trabaja con: tres contadores para bucles, tres valores de momentos en una viga

    (de magnitud no conocida), valores de longitud de la viga, canto y ancho y un valor interruptor que

    permite o impide que se muestren resultados.

    SOLUCIN:

    a) String mensaje;

    b) byte edad;

    Se podra definir otra variable llamada aonacimientosegn el programador lo estime oportuno o no.

    c) float m agn itudl , ma gnitud2, magnitud 3;

    float m edia;

    Hemos utilizado el tipo float para cubrirnos las espaldas. No sabemos con qu tipo de valores vamos a

    trabajar y por ello cogemos un tipo de variables bastante amplio como es el float. Preferimos no coger

    doublesi no es estrictamente necesario.

    Hemos utilizado dos lneas pero slo un tipo de variable Por qu? El programador ordena la

    declaracin de variables como estime ms conveniente. En este caso ordenamos "valores para el

    clculo" en una lnea y "resultados" en otra. Resulta ms fcil de leer y analizar que estando todo en

    una sola lnea.

    d) int i, j, k;

    float m omento1, momento2, momento3;

    float largo, canto, ancho;

    boolean muestraResultados;

    Siempre ser preferible usar las expresiones momentol, momento2 y momento3 antes que m1, m2 y

    m3 que resultan ms confusas. Sin embargo, este tipo de decisiones siempre quedan a criterio del

    programador.

  • 7/25/2019 Prog. Java Nivel I

    32/85

    ASIGNACION DE CONTENIDO A VARIABLES

    Para la asignacin de contenido a variables se tendr en cuenta estas equivalencias:

    Ejemplos de asignacin de contenidos son estos:

    Declaracin Ejemplo asignacin contenidos

    int a; a = 123;

    float a; a = - 3323,57f; 1

    String a; a = "Hay que mejorar";

    String a; a = "123 coches";

    String a; a = "Son 35,37 euros";

    int salario; salario = 30500;

    float salario; salario = 30500;

    String salario; salario = "Se asignarn 30500 euros";

  • 7/25/2019 Prog. Java Nivel I

    33/85

    Declaracin Ejemplo asignacin contenidos

    a = 5 + 2;

    int a, b, suma; b = 32;

    suma = a + b; [suma valdr 39]

    a = 5;

    b = 32;

    int a, b, c, d, e; c = a * b; [c toma el valor 160]

    d = a + c; [d toma el valor 165]

    e = d; [e toma el valor 165]

    boolean agotamiento; agotamiento = true;

    ! Todo valor de tipo float debe llevar al final la letra "f" o "F" en caso contrario ser un valor double por defecto

    Un programa que conste de:

    int a;

    a = 7 * b

    dar lugar a un error debido a que "b" no est declarada.

    En cambio:

    int a, b;

    a = 7 * b

    Supone que "a" valga cero, ya que si no se asigna un valor a "b", esta variable tiene por contenido el

    valor por defecto, es decir, cero. "7 * b" equivale en este caso a "7 * 0".

    Prxima entrega: CU00510A

  • 7/25/2019 Prog. Java Nivel I

    34/85

    Creacin de un programa Java enuna ventana DOS (CU00510A)Seccin: Cursos

    Categora: Lenguaje de programacin Java Nivel I

    Fecha ltima actualizacin: 2010

    Autor: Walter Sagstegui Lescano

    Resumen: Entrega n9 del curso Lenguaje de programacin Java Nivel I".

    10

  • 7/25/2019 Prog. Java Nivel I

    35/85

    Vamos a crear un programa que declare una variable tipo String llamada mensaje y nos muestre un

    texto en la ventana del DOS. Para ello escribiremos el siguiente cdigo:

    public class ImprimirMensaje {

    public static void main(String arg[]) {

    String mensaje;mensaje = "Bienvenido a este programa";System.out.println(mensaje);

    }

    }

    Analicemos las lneas que lo componen.

    1. Las llaves { } delimitan bloques (conjuntos de elementos de un programa) en Java.

    2. public class ImprimirMensaje. Sera el bloque ms externo de todo programa Java, en donde

    declaramos el nombre de nuestra clase, que llamaremos "ImprimirMensaje" y que ser a la vez el

    nombre de nuestro programa. Esto es as dado que Java es un lenguaje de programacin orientado a

    objetos y por lo tanto todo debe estar dentro de una clase desde un principio. La palabra public es

    para aclarar que la clase "ImprimirMensaje" ser pblica, es decir se podr acceder a ella desde otra

    clase. Esto lo veremos posteriormente en ejemplos ms avanzados.

    3. public static void main(String arg[]) . Sera el bloque donde escribiramos nuestro programa Java y

    se trata de un mtodo especial llamado main (principal); especial por el hecho de que cuandocompilemos nuestro programa, el compilador el primer mtodo que buscar ser el que tenga el

    nombre main. Esto es as porque una clase tiene como elementos de su estructura uno o ms

    mtodos y si queremos que nuestra clase sea un programa que podamos ejecutar, al menos uno de

    ellos debe tener el nombre main. Un mtodo corresponde a una funcin o procedimiento (ambos

    pueden recibir uno o ms valores de entrada, pero el primero devuelve siempre un solo valor y el

    segundo no devuelve ningn valor). En nuestro caso void indicara que se trata de un procedimiento.

    La palabra static indicara que el mtodo main es un mtodo de clase, es decir que se ejecutar sin

    necesidad de crear un objeto de la clase. El mtodo main recibe String arg[], que significa "un array

    de Strings". Este es el nico parmetro (opcional) de entrada que le podemos pasar por lnea de

    comando. Su uso lo veremos en un ejemplo posteriormente cuando veamos arrays.

    4. String mensaje. Aqu estamos declarando una variable de tipo String. Es decir, nuestra variable

    mensaje solo podr recibir valores de tipo cadena.

    5. mensaje = "Bienvenido a este programa". Aqu estamos asignando el valor alfanumrico

    "Bienvenido a este programa" (es alfanumrico por estar entre comillas dobles) a nuestra variable

    mensaje.

  • 7/25/2019 Prog. Java Nivel I

    36/85

    6. System.out.println(mensaje). Esta instruccin si la desglosamos en sus partes veremos lo siguiente:

    println es un mtodo que recibe como valor de entrada nuestro mensaje, el cual ser mostrado en

    la ventana DOS como un texto y con un enter de cambio de fila al final. Hay otro mtodo parecido

    llamado print, que hace lo mismo, pero sin poner un enter de cambio de fila al final. En cuanto a out

    es un objeto perteneciente a la clase System, y es un objeto ya establecido por java para invocar a

    los mtodos print o println. No debemos preocuparnos por saber ms que esto de momento.

    Compila e interpreta el programa para ver el resultado, siguiendo los pasos vistos en la entrega del

    curso CU00506A. En las siguientes imgenes vemos primero la compilacin y luego la interpretacin del

    programa, sin mayores detalles, al estar ya explicados en la entrega del curso indicada.

    BS Administrador: Smbolo del sistema

    C : \ E j e r c i c i o s> ja i a c I m p r im ir M e n s a je . j a v a

    C : \ E j e r c i c i o s >

    Compilacin

    Administrador: Smbolo del sistema D

    a

    C : \ E j e r c i c i o s ) j a v a I n p r in i r M e n s a jeB i e n v e n i d o a e s t e p r o g r a n a

    C : \ E j e r c i c i o s )

    Interpretacin (Resultado)

  • 7/25/2019 Prog. Java Nivel I

    37/85

    El mtodo println sin ningn valor pasado como parmetro da lugar a que se muestre una lnea en

    blanco. Prueba a introducir variables de tipo numrico y a dar lugar a que se muestren sus contenidos

    en la ventana DOS. Juega con los nombres de las variables, sus contenidos y la asignacin de

    contenidos.

    Tambin puede resultar de inters que compruebes qu ocurre si declaras una variable de un tipo y leasignas contenido de otro tipo.

    Por ejemplo declara int salario, asgnale el contenido salario = "Son 3000 euros" y prueba a mostrarlo

    en la ventana DOS.

    o Qu ocurre cuando incump limos las previsiones de Java para asignarcontenidos a variables (por ejemplo, para una variable a tipo byte definir a =532000, que est fuera del rango previsto)? No vamos a analizar los distintos casos

    que se pueden presentar, sino a tratar de dar una respuesta genrica. Cuandohacemos algo no esperado, como asignar un valor fuera de rango, asignar un valorque no concuerda con el tipo de la variable, sumar variables numricas conalfanumricas, asignar decimales a un nmero entero..., etc. pueden suceder variascosas:

    a) Salta un error. Un mensaje impide que el program a comience a ejecutarse, obien el programa se detiene mientras se est ejecutando.

    b) El program a se ejecuta pero los resultados no son los desea dos.c) El progra ma se ejecuta y los resultados son los desea dos.

    Como programadores hemos de buscar programas 100% predecibles, en los que nose pueda producir que "sea difcil prever lo que va a suceder". Por tantointentaremos que la declaracin y asignacin de contenidos a variables se ajuste alas normas de Java. En ltima instancia, podremos prever una rutina de gestin deerrores para casos imprevistos.____________________________________________________

    Prxima entrega: CU00511A

  • 7/25/2019 Prog. Java Nivel I

    38/85

    Arrays unidimensionales en Java.(CU00511A)Seccin: Cursos

    Categora: Lenguaje de programacin Java Nivel I

    Fecha ltima actualizacin: 2010

    Autor: Walter Sagstegui Lescano

    Resumen: Entrega n10 del curso Lenguaje de programacin Java Nivel I".

    10

  • 7/25/2019 Prog. Java Nivel I

    39/85

    VARIABLES CON NDICE O LOCALIZADOR. ARRAYS.

    Un array en Java es una estructura de datos que nos permite almacenar un conjunto de datos de un

    mismo tipo. El tamao de los arrays se declara en un primer momento y no puede cambiar luego

    durante la ejecucin del programa, como s puede hacerse en otros lenguajes. Veremos ahora cmo

    declarar arrays estticos de una dimensin.

    ARRAYS UNIDIMENSIONALES

    La sintaxis para declarar e inicializar un array ser:

    Tipo_de_variable[ ] Nombre_del_array = new Tipo_de_variable[dimensin];

    Tambin podemos alternativamente usar esta declaracin:

    Tipo_de_variable[] Nombre_del_array;

    Nombre_del_array = new Tipo_de_variable[dimensin];

    El tipo devariablepuede ser cualquiera de los admitidos por Java y que yahemos explicado. Ejemplos

    de declaracin einicializacin con valores por defecto de arrays usandotodos los tipos de variables

    Java, seran:

    - byte[ ] edad = new byte[4];- short[ ] edad = new short[4];

    - int[ ] edad = new int[4];

    - long[ ] edad = new long[4];

    - float[ ] estatura = new float[3];

    - double[ ] estatura = new double[3];

    - boolean[ ] estado = new boolean[5];

    - char[ ] sexo = new char[2];

    - String[ ] nombre = new String[2];

    Aclarar que los valores por defecto son los siguientes:

    a) Para nmeros el valor cero "0".

    b) Para cadenas y letras el valor vaco.

    c) Para booleanos el valor false.

    En caso de que queramos inicializarlos con valores propios, haremos esto:

  • 7/25/2019 Prog. Java Nivel I

    40/85

    Para nmeros enteros

    int[ ] edad = {45, 23, 11, 9}; //Array de 4 elementos

    De la misma forma procederamos para los otros tipos de enteros : byte, short, long.

    Para nmeros reales

    double[ ] estatura = {1.73, 1.67, 1.56}; //Array de 3 elementos

    De la misma forma procederamos para el tipo float, pero teniendo en cuenta que los nmeros debern

    llevar al final la letra "f" o "F". Por ejemplo 1.73f o 1.73F.

    Para cadenas

    String[ ] nombre = {"Mara", "Gerson"}; //Array de 2 elementos

    Para caracterers

    char[ ] sexo = {'m','f'}; //Array de 2 elementos

    Para booleanos

    boolean[ ] = {true,false}; //Array de 2 elementos

    Cuando creamos un array de nombre "a" y de dimensin "n" (int[ ] a = new int[n]) estamos creando n

    variables que son a[0], a[1], a[2], a[n-1]. Los arrays se numeran desde el elemento cero, que sera el

    primer elemento, hasta el n-1 que sera el ltimo elemento. Es decir, si tenemos un array de 5

    elementos, el primer elemento sera el cero y el ltimo elemento sera el 4. Esto conviene tenerlo encuenta porque puede dar lugar a alguna confusin. Disponer de un valor con ndice cero puede ser de

    utilidad en situaciones como considerar cada variable asociada a una hora del da, empezando a contar

    desde la hora cero hasta la 23 (total de 24 horas), cosa que es habitual en algunos pases. En lugar de 1,

    2, 3, ..., 24 estaramos usando 0, 1, 2, ..., 23.

    Vamos a trabajarlo sobre el ordenador en un programa y ver qu pasara si declaramos un array de

    tamao "n" y vamos asignando un valor a cada variable del array desde la posicin cero hasta la

    posicin "n-1". Adicionalmente vamos a comprobar qu ocurre si tratamos de asignarle valor a la

    variable de posicin "n".

  • 7/25/2019 Prog. Java Nivel I

    41/85

    El cdigo fuente del programa es el siguiente:

    public class ArrayDeNombres {

    public static void main(String arg[ ]) {

    String[ ] nombre = new nombre[4];

    nombre[0] = Luis;nombre[1] = Mara;nombre[2] = Carlos;nombre[3] = Jose;nombre[4] = Ismael; //Error:No existe esta variable array de ndice 4

    }

    }

    Procedemos a la compilacin del programa de la siguiente manera:

    C:\Ejenplos>javac ArrayDeNombres.java

    C:\Ejenplos>

    Obtenemos una respuesta (interpretacin) que es la siguiente:

    C :\Ejenplos >java ArrayDeNorobresException in tiread "main" java.lang.ArraylndexOutOfBoundsException: 3

    at ArrayDeNombres.main

    Una vez escrito el programa, cuando compilamos observamos que no hay ningn error de sintaxis, es

    decir, no faltan puntos y comas, las llaves estn bien equilibradas, las palabras reservadas del lenguaje

    son las correctas, etc. Por tanto, aparentemente el programa debera ejecutarse y darnos un resultado.

    Sin embargo cuando cuando interpretamos el programa observamos un error

  • 7/25/2019 Prog. Java Nivel I

    42/85

    "ArrayIndexOutBoundsException". Este mensaje de error significa "desbordamiento de array", es decir,

    que tratamos de acceder a una posicin del array que no existe. En nuestro caso, hemos tratado de

    acceder a la posicin 4, que no est definida (slo se ha definido hasta la posicin 3). En esto Java es

    muy estricto y no admite este tipo de error lgico del programador. Siguiendo el anlisis del error que

    nos aparece en la ventana DOS leemos lo siguiente "ArrayDeNombres.java:9", que nos est indicando

    que el error est en el archivo que contiene el programa de nombre "ArrayDeNombres.java", y ms

    concretamente en la lnea 9.

    Ahora ampliaremos conocimientos con respecto a la instruccin public static void main(String arg[ ]).

    Esta instruccin es un estndar en Java, es decir, es la forma habitual de encabezar un programa que se

    ejecuta en consola (ventana DOS). Ahora trataremos de entender un poco mejor el significado de este

    encabezado. Vamos a analizar el significado de (String arg[ ]). En esta instruccin el mtodo main

    admite que se le pase un "array de Strings" cuando se proceda a la ejecucin del programa si as lo

    deseamos. String arg[ ] significa "un array de Strings" cuyo nombre es arg. Dicho de otra manera, al

    ejecutar el programa podemos indicar "parmetros de entrada" de forma opcional. Si especificamos

    parmetros de entrada, stos parmetros quedan asignados al array arg tomando el orden arg[0],

    arg[1].

    Lo dicho podemos aclararlo mejor con el siguiente ejemplo:

    El cdigo fuente del programa es el siguiente:

    public class ParametrosDeEntrada {public static void main(String arg[ ]) {

    System.out.println("Cantidad de parmetros : " + arg.length);

    System.out.println(arg[0]);

    System.out.println(arg[1]);}

    Damos por entendido que ya hemos compilado el programa y no hay errores de sintaxis. Nos

    centramos por tanto en la ejecucin del programa (interpretacin).

    Si escribimos en la ventana DOS java ParametrosDeEntrada Pepe Luis Juan, los parmetros de entrada

    son Pepe, Luis y Juan. Cuando ejecutamos el programa se nos mostrar que la cantidad de parmetros

    son tres, y adems nos mostrar el primer y segundo elementos del array, es decir, Pepe y Luis.

    Si escribimos en la ventana DOS java ParamentrosDeEntrada Pepe, hay un solo parmetro de entrada y

    el array arg tiene un solo elemento. En este caso el programa nos va a dar un error porque la nica

    variable que existe es arg [0], y al tratar de llamar a arg[1] nos va a dar error.

  • 7/25/2019 Prog. Java Nivel I

    43/85

    Veamos ahora qu ocurre si escribimos en la ventana DOS ParametrosDeEntrada Hola Java:

    Administrador Smbolo del sistema

    C:\Ejenplos>java ParametrosDeEntrada Hola Javag

    Cantidad de paranetros : 2 1HolaJaua

    C:\Ejenplos>

    Comprobamos que el programa recibe 2 parmetros a travs de la lnea de comandos (es decir, los

    introducimos a continuacin de la instruccin para ejecutar el programa). Estos dos parmetros son las

    cadenas "Hola" y "Java", las cuales son capturadas en las variables del array de cadenas arg[0] y arg[1].

    Estas variables se usan para imprimir los parmetros en pantalla. Esto se puede ver en el cdigo fuente

    del programa. Por otro lado, con el atributo "arg.length" podemos saber cuntos parmetros se le hanpasado a nuestro programa. Tambin decir que hacemos uso de un nuevo smbolo: "+", que significa

    "concatenar" la cadena "Cantidad de parmetros" con el valor del atributo arg.length (que es 2 en este

    caso). El resultado es la cadena "Cantidad de parmetros : 2 ", que se imprime en la ventana DOS como

    parte de la salida de nuestro programa.

    El introducir parmetros al mismo tiempo que se invoca la ejecucin de un programa es una posibilidad

    que admite Java a travs de la venta DOS. En otros lenguajes no es posible pasar parmetros de entrada

    a un programa.

    Prxima entrega: CU00512A

  • 7/25/2019 Prog. Java Nivel I

    44/85

    Ejercicios con arrays

    unidimensionales en Java.(CU00512A)Seccin: Cursos

    Categora: Lenguaje de programacin Java Nivel I

    Fecha ltima actualizacin: 2010

    Autor: Walter Sagstegui Lescano

    Resumen: Entrega n11 del curso Lenguaje de programacin Java Nivel I".

    10

  • 7/25/2019 Prog. Java Nivel I

    45/85

    EJERCICIO:

    Crea el cdigo de dos programas que cumplan las siguientes premisas:

    a) Programa 1.

    Declara un array tipo int (entero) denominado numerodecoches que contenga 24 variables. Declara

    una variable tipo int (entero) que se llame r. Establece el valor de r en 2 y el valor de numerodecoches

    para un localizador de valor r en 23. Procede a mostrar en pantalla un mensaje que indique cul es la

    hora r y el nmero de coches para la hora r. Finalmente, modifica nicamente la asignacin de valor a r

    de modo que en vez de 2 sea 21 y ejecuta de nuevo el programa.

    b) Programa 2.

    Sobre el programa anterior mantn el nmero de elementos de numerodecoches en 24. Declara dos

    variables a y b de tipo int(entero). Establece a con valor 8, b con valor 4 y r con valor a dividido entre b.

    Ejecuta el programa.

    SOLUCIN:

    El programa 1 ser el siguiente. Si lo ejecutamos obtendremos "El nmero de coches en la hora 2 fue

    23". Si cambiamos r = 2 por r = 21 obtendremos "El nmero de coches en la hora 21 fue 23".

    public class Programal {

    public static void main(String arg[ ]) {

    int[ ] numerodecoches = new int[24];

    int r;

    r = 2;

    numerodecoches[r] = 23;

    System.out.print("El nmero de coches en la hora "+ r+ " fue " + numerodecoches[r]);

    }

    }

  • 7/25/2019 Prog. Java Nivel I

    46/85

    Nota: Recordar que cuando declaramos un array de 24 elementos como int[ ] numerodecoches = new

    int[24];, los elementos del array que se crean son numerodecoches[0], numerodecoches[1] ... hasta

    numerodecoches[23]. Tenemos por tanto 24 elementos (del 0 al 23) pero no existe la variable

    numerodecoches[24] como puede ocurrir en otros lenguajes.

    Nota: El smbolo "+" significa concatenacin y se usa para concatenar en este caso valores cadena con

    variables que tienen un valor numrico. De este modo obtenemos una sola cadena que se imprime en

    la pantalla DOS. Tambin recordar que numerodecoches[r] = 23 significa que estamos asignando el

    nmero 23 a la posicin indicada por el valor que tenga r en su momento, siendo el valor mximo que

    podra tener r el valor 23 y el valor mnimo 0. El uso de otros valores de r dara lugar a un error.

    El programa 2 ser el siguiente. Ten en cuenta que el array numerodecoches tiene 24 elementos siendo

    el primero el de localizador cero. El resultado va a ser igual que el del anterior programa, ya que r = 2

    dado que 8/4 = 2. Por lo tanto se mostrar en pantalla "El nmero de coches en la hora 2 fue 23".

    public class Programa2 {

    public static void main(String arg[ ]) {

    int[ ] numerodecoches = new int[24];

    int a, b;

    int r;

    a = 8;

    b = 4;

    r = a / b;

    numerodecoches[r] = 23;System.out.print("El nmero de coches en la hora " + r+ " fue "+ numerodecoches[r]);

    }

    }

    Prxima entrega: CU00513A

  • 7/25/2019 Prog. Java Nivel I

    47/85

    Arrays multidimensionales enJava. (CU00513A)

    Seccin: Cursos

    Categora: Lenguaje de programacin Java Nivel I

    Fecha ltima actualizacin: 2010

    Autor: Walter Sagstegui Lescano

    Resumen: Entrega n12 del Curso Lenguaje de programacin Java Nivel I"

    10

  • 7/25/2019 Prog. Java Nivel I

    48/85

    ARRAYS MULTIDIMENSIONALES

    Tal y como explicamos en su momento, ser posible crear arrays con ms de una dimensin, pasando

    de la idea de lista, vector o matriz de una sola fila a la idea de matriz de m x n elementos, estructuras

    tridimensionales, tetradimensionales, etc. La sintaxis ser:

    Tipo_de_variable[][]... [ ] Nombre_de l_array = new Tipo_de_variable[dimensin1][dimensin2]...[dimensinN];

    Tambin podemos alternativamente usar esta declaracin:

    Tipo_de_variable[][] ... [ ] Nombre_del_array;

    Nombre_del_array = new Tipo_de_variable[dimensin1 ][dimensin2]...[dimensinN];

    El tipo de variable puede ser cualquiera de los admitidos por Java y que ya ha sido explicado. Ejemplos

    de declaracin e inicializacin con valores por defecto de arrays, usando todos los tipos de variables

    Java, seran:

    - byte[][] edad = new byte[4][3];

    - short ][] edad = new short[4][3];

    - int[][] edad = new int[4][3];- long[][] edad = new long[4][3];

    - float[][] estatura = new float[3][2];

    - double[][] estatura = new double[3][2];

    - boolean[][] estado = new boolean[5][4];

    - char[][] sexo = new char[2][1];

    - String[][] nombre = new String[2][1];

    La declaracin de una matriz tradicional de m x n elementos podra ser:

    int[][] matriz = new int[3][2];

    O alternativamente

    int[][] matriz;

    matriz = new int[3][2];

    El nmero de elementos sera: 3 x 2 = 6, dnde 3 es el nmero de filas y 2 es el nmero de columnas.

  • 7/25/2019 Prog. Java Nivel I

    49/85

    Ahora procedemos a cargar la matriz con valores:

    matriz[0][0] = 1;

    matriz[0][1] = 2;

    matriz[1][0] = 3;

    matriz[1][1] = 4;

    matriz[2][0] = 5;

    matriz[2][1] = 6;

    Hay que recordar ,que los elementos empiezan a numerarse por 0. As, la esquina superior izquierda de

    la matriz ser el elemento [0][0] y la esquina inferior derecha ser el [2][1]. Hay que prestar atencin a

    esto porque en otros lenguajes de programacin la numeracin puede empezar por 1 en vez de por 0.

    Tambin se pueden cargar directamente los elementos, durante la declaracin de la matriz de la

    siguiente manera:

    int[][] matriz = {{1,2},{3,4},{5,6}};

    donde {1,2} corresponde a la fila 1, {3,4} a la fila 2 y {5,6} a la fila 3, y los nmeros separados por coma

    dentro de cada fila, corresponden a las columnas. En este caso, los nmeros (1, 3, 5) de cada una de las

    filas corresponden a la primera columna y los nmeros (2, 4, 6) ataen a la segunda columna.

    Para obtener el nmero de filas de la matriz, podemos recurrir a la propiedad "length" de los arrays, de

    la siguiente manera:

    int filas = matriz.length;

    Para el caso del nmero de columnas sera de la siguiente forma :

    int columnas = matriz[0].length;

    Tambin Java nos permite la posibilidad de clonar una matriz, es decir, crear una matriz nueva a partir

    de otra matriz, siguiendo esta sintaxis:

    String[][] nuevaMatriz = matriz.clone();

    donde clone() es un mtodo especial, que permite la clonacin de arrays de cualquier dimensin en

    Java. De esta manera "nuevaMatriz" y "matriz" son 2 matrices distintas pero con los mismos valores.

    Vamos a definir una matriz, a modo de ejercicio: queremos almacenar en una matriz el nmero de

    alumnos con el que cuenta una academia, ordenados en funcin del nivel y del idioma que se estudia.

    Tendremos 3 filas que representarn al Nivel bsico, medio y de perfeccionamiento y 4 columnas en las

  • 7/25/2019 Prog. Java Nivel I

    50/85

    que figurarn los idiomas (0 = Ingls, 1 = Francs, 2 = Alemn y 3 = Ruso). La declaracin de dicha matriz

    sera:

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

    Podramos asignar contenidos de la siguiente manera:

    alumnosfxniveleidioma[0][0] = 7

    alumnosfxniveleidioma[0][1] = 14

    alumnosfxniveleidioma[0][2]= 8

    alumnosfxniveleidioma[0][3] = 3

    alumnosfxniveleidioma[1][0] = 6

    alumnosfxniveleidioma[1][1]= 19

    alumnosfxniveleidioma[1][2] = 7

    alumnosfxniveleidioma[1][3] = 2

    alumnosfxniveleidioma[2][0] = 3

    alumnosfxniveleidioma[2][1]= 13

    alumnosfxniveleidioma[2][2] = 4

    alumnosfxniveleidioma[2][3] = 1

    Tambin, podramos asignar contenido de la siguiente forma, como ya se ha explicado anteriormente:

    int[][] alumnosfxniveleidiom a = {{7,14,8,3},{6,19,7,2},{3,13,4,1}};

    La representacin grfica que podramos asociar a esta asignacin de datos sera esta matriz:

    rz 14 8 3>

    6 19 z 2

    V3 13 4 1,

    La organizacin de la informacin en matrices, nos generar importantes ventajas a la hora del

    tratamiento de datos en nuestros programas.

    Para terminar en cuanto a multidimensionalidad, veamos casos de declaraciones con ms de dos

    dimensiones. Para ello volveremos al ejemplo del conteo de coches que ya hemos usado. La forma de

    declarar esos array sera la siguiente:

  • 7/25/2019 Prog. Java Nivel I

    51/85

    Duracin del conteo Tipo de array

    Declaracin con Java

    (nc es Nmero de coches)

    Un da A rray de una dimensin (hora) int[] nc = new int[24];

    Varios das A rr a y de dos dim ensiones

    (hora y da)

    int[][] nc = new int[24][31];

    Varios meses A rra y de tre s dim ensio nes

    (hora, da y mes)

    int[][][] n c = new int[24][31][12 ];

    Varios aos A rra y de cu at ro dim ensio nes

    (hora, da, mes y ao)

    Int[][][][] n c = new int[24][31] [12][2999 ];

    Varios siglosA rra y de cinco dim ensio nes

    (hora, da, mes, ao y siglo)Int[][][][][] nc = new int[24][31][1 2][299 9][21];

    Veamos lo que sera un ejemplo de programa con array multidimensional, usando un tipo String.

    public class MatrizAlumnos {

    public static void main(String argQ) {

    String[ ][ ] nombreAlumno = new String[5][25];

    nombreAlumno[2][23] = Pedro Hernndez Gonzlez;

    System.out.println(EI alumno nmero 24 del curso tercero se llama +nombreAlumno[2][23]);

    }

    }

    El resultado del programa es la aparicin del mensaje "El alumno nmero 24 del curso tercero se llama

    Pedro Hernnde z Gonzlez".

    En este ejemplo, [5] representa a los cursos. Hablamos de 5 cursos que son identificados con 0, 1, 2, 3,

    4, por lo que [2] hace mencin al tercer curso;lo mismo podemos decir de [23], que corresponde al

    alumno nmero 24. Hay que recordar que siempre en Java tenemos que contar el cero, ya que si no lo

    hacemos podemos cometer errores.

    Prxima entrega: CU00514A

  • 7/25/2019 Prog. Java Nivel I

    52/85

    Comentarios y herramientas

    lgicas y matemticas en Java.

    (CU00514A)

    Seccin: Cursos

    Categora: Lenguaje de programacin Java Nivel I

    Fecha ltima actualizacin: 2010

    Autor: Walter Sagstegui Lescano

    Resumen: Entrega n13 del Curso Lenguaje de programacin Java Nivel I"

    10

  • 7/25/2019 Prog. Java Nivel I

    53/85

    INSERCIN DE COMENTARIOS EN EL CDIGO

    Existen distintas posibilidades para insertar comentarios en el cdigo, tales como:

    El signo / / com entario de una lnea: la presencia del signo //, transforma en comentario todo lo que se

    encuentre a continuacin de l en una lnea. El signo // puede encontrarse al principio de una lnea, con

    lo cual, nada de lo que aparezca en dicha lnea ser ejecutado, o bien, despus de una o varias

    instrucciones que se encuentren en una lnea, con lo cual una parte de la lnea se ejecutar.

    El signo /* .... */ comentario de varias lneas: la presencia del signo /* abre un comentario y todo lo

    que escribamos a partir de ese signo, puede estar en una o varias lneas hasta indicar el cierre del

    comentario con el signo */. El signo /* ... */ puede encontrarse en cualquier parte del programa por lo

    que nada de lo que aparezca entre /* y */ ser ejecutado.

    Ejemplo 1:public class Programa {

    public static void main(String args[]) {

    //Declara una variable

    boolean seleccionado;

    //Asigna contenido

    seleccionado = true;

    //Introduce espacioSystem.out.println();

    //Valor actual

    System.out.println("El valor actual de seleccionado es " + seleccionado);

    }

    }

    Ejemplo 2:public class Programa {

    public static void main(String args[]) {

    /* Declara una variable */

    boolean seleccionado;

    /* Asigna contenido */

    seleccionado = true;

    /* Introduce espacio */

    System.out.println();

    /* Valor actual */

    System.out.println("El valor actual de seleccionado es " + seleccionado);

    }

    }

  • 7/25/2019 Prog. Java Nivel I

    54/85

    Ejemplo 3:public class Programa {

    public static void main(String args[]) {

    boolean seleccionado; //Declara una variable

    seleccionado = true; //Asigna contenido

    System.out.println(); //Introduce espacioSystem.out.println("El valor actual de seleccionado es " + seleccionado); //Valor

    actual

    }

    }

    Ejemplo 4:public class Programa {

    public static void main(String args[]) {

    boolean seleccionado; //Declara una variable

    seleccionado = true; /* Asigna contenido */

    System.out.println(); // Introduce espacio

    System.out.println("El valor actual de seleccionado es " + seleccionado); /* Valor

    Actual */

    }

    }

    El ejemplo 1, corresponde a un programa con comentarios insertados a travs del signo //^comentarios

    previamente situados a la lnea que comentan.

    El ejemplo 2, es similar al caso anterior, pero se han creado los comentarios con los signos /* ... */.

    En el ejemplo 3, los comentarios con el signo //, se sitan a continuacin de las instrucciones, en la

    misma lnea.

    Por ltimo, el ejemplo 4 combina el uso del signo / /con los signos/* ... */, separados los comentarios

    de las instrucciones que se van a ejecutar.

    Los criterios para insertar comentarios sern los que se estudian en los cursos de bases de la

    programacin, debindose buscar que los comentarios aporten claridad a un programar. Loscomentarios son una parte importante de los programas, por lo que es conveniente cuidar su

    estructuracin y contenidos. Dado que el signo de corchetes se usa muchas veces para indicar un

    comentario cuando se plantea un algoritmo como pseudocdigo, podemos usar los corchetes detrs

    del signo/* para "recordar" el carcter de comentario de dicho texto.

    /*[Esto es un comentario detrs de un /*. El corchete no es estrictamente necesario pero podemos

    ponerlo si querem os]*/

  • 7/25/2019 Prog. Java Nivel I

    55/85

    HERRAMIENTAS LGICAS Y MATEMTICAS EN JAVA

    Java clasifica los operadores con que trabaja de la siguiente manera:

    Operadores aritmticos: operadores utilizados para ejecutar clculos matemticos.

    Operadores de comparacin: operadores utilizados para efectuar comparaciones.

    Operadores de concatenacin: operadores utilizados para combinar cadenas de caracteres.

    Operadores lgicos:operadores usados para realizar operaciones lgicas.

    Operadores

    Aritmticos

    Operadores de

    comparacin

    Operador de

    concatenacin

    Operadores

    lgicos

    (Multiplicacin)

    =

    (Mayor o igual que)

    %

    (Resto) (Igual a)

    =

    (Distinto de)

    La mayora de estos operadores nos resultarn conocidos, pues son comunes con otros lenguajes y se

    estudian en los cursos de bases de la programacin. El operador + tiene cierto inters para concatenar

    cadenas. Por ejemplo "Hoy puede" + "ser un gran da" equivale a "Hoy puede ser un gran da".

    En cuanto a las funciones matemticas, las funciones disponibles vienen definidas en la clase Math y se

    pueden consultar en la lista completa, disponible en la siguiente direccin oficial de Java:

    http://download.oracle.com/avase/1.4.2/docs/api/ava/lang/Math.html

    http://download.oracle.com/%c2%a1avase/1.4.2/docs/api/%c2%a1ava/lang/Math.htmlhttp://download.oracle.com/%c2%a1avase/1.4.2/docs/api/%c2%a1ava/lang/Math.html
  • 7/25/2019 Prog. Java Nivel I

    56/85

    A continuacin, mostraremos el uso de las ms importantes:

    Funciones

    Matemticas

    Significado Ejemplo de uso Resultado

    abs Valor absoluto int x = Math.abs(2.3); x = 2;

    atan Arcotangente double x = Math.atan(1); x = 0.78 53 98 16 33 97 44 ;

    sin Seno double x = Math.sin(0.5); x = 0.4794255386042;

    cos Coseno double x = Math.cos(0.5); x = 0.87758256189037;

    tan Tangente double x = Math.tan(0.5); x = 0.54630248984379;

    exp Exponenciacin neperiana double x = Math.exp(1); x = 2.71828182845904;

    log Logaritmo neperiano double x = Math.log(2.7172); x = 0.99960193833500;

    pow Potencia double x = Math.pow(2.3) ; x = 8.0 ;

    round Redondeo double x = Math.round(2.5); x = 3;

    random Nmero aleatorio double x = Math.ramdom(); x = 0.20614522323378;

    Destacar que las funciones matemticas, al pertenecer a la clase Math, se invocan siempre de la

    siguiente manera: Math.funcion(argumentos).

    Las funciones relacionadas con ngulos (atan, cos, sin, tan, etc.) trabajan en radianes. Por tanto, paraoperar con grados, tendremos que realizar la conversin oportuna.

    La funcin random ,permite generar nmeros aleatorios en el rango ]0,1[. Por tanto el 0 y el 1 estn

    excluidos.

    La funcin exponenciacin neperiana o exponenciacin de e, matemticamente significa ex, que en Java

    sera Math.exp(x),donde x es un nmero real y la base es la constante neperiana e = 2.7172...

    La funcin logaritmo neperiano, matemticamente significa Ln x, que en Java correspondera a la

    expresin Math.log(x).

  • 7/25/2019 Prog. Java Nivel I

    57/85

    La funcin potencia, matemticamente significa baseexponente, que en Java se convertira en

    Math.pow(base,exponente),donde base y exponente son nmeros reales, por lo tanto, si queremos

    obtener la raz cubica de 2,la instruccin sera Math.pow(2,0.333).

    No hay una funcin directa para obtener la parte entera de un nmero real, pero para estos casos, se

    puede obtener de la siguiente manera:

    int x = (int)(8.7); --> x = 8;

    int x = (int)(-8.7); --> x = -8;

    Aclarar, que obtener la parte entera es distinto a redondear.

    Si vas a trabajar con constantes fsicas o matemticas, te resultar de inters la instruccin

    final pa ra la de cla ra ci n de constantes . La vent aja de declara r una cons tant e en ve z de una

    variable, consiste en que la constante no puede variar en el transcurso del programa. Por tanto, se

    impide que por error pueda tener un valor no vlido en un momento dado. Las constantes facilitan

    la documentacin del program a y lo hacen fcil de modificar. Una declaracin tipo de constante

    po dr a se r la sig uien te:

    fin al double pi = 3.1 4159265358979;

    Sin embargo, el propio Java tiene una constante propia para definir la constante matemtica PI:

    public st atic fina l do uble PI;

    El siguiente programa, mostrar su uso en la conversin de un angulo sexagesimal a radianes.

    pu blic class Pro gr am a {

    pu blic st atic vo id m ain(S tr ing ar gs []) {

    double sexagesimal = 30;

    double radianes = Math.PI/180 * sexagesimal;

    System.out.println("Angulo en radianes : "+radianes);

    }

    }

    Prxima entrega: CU00515A

  • 7/25/2019 Prog. Java Nivel I

    58/85

    Generacin de nmeros aleatorios

    en Java. (CU00515A)

    Seccin: Cursos

    Categora: Lenguaje de programacin Java Nivel I

    Fecha ltima actualizacin: 2010

    Autor: Walter Sagstegui Lescano

    Resumen: Entrega n14 del Curso Lenguaje de programacin Java Nivel I"

    10

  • 7/25/2019 Prog. Java Nivel I

    59/85

    GENERACIN DE NMEROS ALEATORIOS

    La clase Random proporciona un generador de nmeros aleatorios. Es ms flexible que la funcin

    randomde la clase Math,que vimos en funciones matemticas.

    La generacin de nmeros aleatorios adquiere gran relevancia para un programador, pudiendo tenerdistintas aplicaciones como:

    Construccin preliminar de programas, en los que a falta de datos definitivos, introducimos datos

    aleatorios.

    Simulacin de procesos aleatorios (nmero resultante de tirar un dado, eleccin de un color por

    parte de una persona, nmero premiado en un sorteo de lotera, cantidad de personas que entran

    a un supermercado en una hora...)

    Verificacin de programas, y en particular lo que en verificacin de algoritmos se conoce como

    verificacin aleatoria (probar el programa con distintos supuestos aleatorios).

    Otras aplicaciones.

    Conviene recordar que "aleatorio" no puede confundirse con "cualquier cosa", "descontrol", "incierto",

    "impredecible", etc. Usaremos el vocablo "aleatorio", ms en el sentido de "no predeterminado" que

    el de "no predecible", ya que en general, vamos a definir qu tipo de resultado queremos obtener y en

    qu rango de valores debe estar. Vamos a imaginar que Java genera nmeros aleatorios, como si fuera

    un robot lanzador de dardos muy preciso (robot rnd). De este modo, cuando se le dice que comience a

    tirar dardos en distintas posiciones, repite siempre los lugares. Por ejemplo, si la diana est marcada

    con nmeros, cada vez que le decimos que tire, genera la misma secuencia: 7, 5, 6, 3, etc. Cmo

    conseguir convertir este proceso predefinido en aleatorio? Simplemente, poniendo a girar la diana

    (mayordomo randomize), en este caso, a una velocidad que depende del segundo del da en que nosencontremos. As pues, el proceso lo dividimos al decirle al mayordomo que ponga a girar la diana y al

    indicarle al robot que dispare. Bueno, un poco simple, pero para qu complicarnos? Veamos los pasos

    sintcticos a emplear para crear una secuencia de nmeros aleatorios:

    1. Proporcionar a nuestro programa informacin acerca de la clase Random. Al principio del programa

    escribiremos la siguiente sentencia:

    Import java.util.Random;

    2. Crear un objeto de la clase Random:

    La clase Random dispone de dos constructores, para crear un objeto. El primer constructor es:

    Random rnd = new Random();

    crea un generador de nmeros aleatorios cuya semilla es inicializada automticamente, en base al

    tiempo actual. Esto conlleva que en cada ejecucin la semilla cambie, es decir, que la secuencia de

    nmeros aleatorios que se genera en cada ejecucin siempre ser diferente.

  • 7/25/2019 Prog. Java Nivel I

    60/85

    El segundo constructor es:

    Random rnd = new Random(ncalzar_semlla);

    nos permte ncalzar la semlla manualmente con un nmero entero cualquera. S este nmero es el

    msmo en cada ejecucin, la secuenca de nmeros aleatoros que se genera en cada ejecucn ser

    gual.

    3. Llamar a una de las funciones miembro que generan un nmero aleatorio:

    Hay cuatrofunc ione s miem brodferentes que generan nmeros aleatoros:

    Funcin miembro Descripcin Rango

    rnd.nextInt() Nmero aleatoro entero de tpo nt 322yro

    2

    rnd.nextLong() Nmero aleatoro entero de tpo long 2-64 y 264

    rnd.nextFloat() Nmero aleatoro real de tpo float [0,1[

    rnd.nextDouble() Nmero aleatoro real de tpo double [0,1[

    Cas sempre, para generar un nmero aleatorio, se usa la funcin miem bro rnd.nextDouble().El valor

    devuelto es de tpo double. Un aspecto mportante a tener en cuenta, es que el valor devuelto se

    encuentra en el rango mayor o gual a cero y menor a 1. Es decr, el nmero devuelto puede ser cero

    pero no puede ser uno.

    En el sguente ejemplo mostraremos todo lo expresado hasta este momento:

    mportjava.til. Random;

    public class Programa {

    public static void main(String arg[]) {

    Random rnd = new Random();

    System.out.prmtlnf'Nmero aleatorio real entre [0,1[: "+rnd.nextDouble());

    }

    J ____________________________________________________________________________

    En el caso de necestar nmeros aleatoros enteros en un rango determnado, podemos trasladarnos a

    un ntervalo dstnto, smplemente multplcando, aplcando la sguente frmula general:

    (int) (rnd.nextDouble() * cantidad_nmeros_rango + trmino_inicial_rango)

    donde (nt) al nco, transforma un nmero decmal doubleen entero int,elmnando la parte decmal.

  • 7/25/2019 Prog. Java Nivel I

    61/85

    Por ejempIo, si deseamos nmeros enteros comprendidos entre eI rango [0,99], incIuidos Ios extremos,

    Ia frmuIa quedara de Ia siguiente manera:

    (int)(rnd.nextDoubIe() * 100 + 0); ^ (int)(rnd.nextDoubIe() * 100);

    100 es Ia cantidad de nmeros enteros en eI rango [0,99] y 0 es eI trmino inicia! deI rango.

    En eI caso de querer nmeros aIeatorios enteros comprendidos entre [1,6], que son Ios Iados de un

    dado, Ia frmuIa quedara as.

    (int)(rnd.nextDoubIe() * 6 + 1);

    6 es Ia cantidad de nmeros enteros en eI rango [1,6] y 1 es eI trmino iniciaI deI rango.

    A continuacin, daremos dos programas compIetos , como ejempIo para expIicar eI cambio de semiIIa

    en Ia generacin de nmeros aIeatorios:

    importjava.utiI.Random;

    public class Programa {

    public static void main(String arg[ ]) {Random rnd = new Random();

    System.out.printIn("Primera secuencia."+"\n");

    System.out.printIn(rnd.nextDoubIe());

    Syste