Está en la página 1de 14

Estructura de Datos TELESUP

Tema 1: Introduccin a Java

Luis Arias Hidalgo

Qu es Java Inicialmente Java fue creado por un grupo de investigadores de Sun Microsystems como un lenguaje de programacin multipropsito y que funcionara no slo en computadoras, sino que en cualquier dispositivo electrnico que necesite de una programacin, desde su creacin Java mostr ser muy slido, pero no haba un medio en el cual se poda encontrar una aplicacin real, se intent con juegos de video, equipos digitales, pero no se poda difundir, hasta que lleg la oportunidad esperada: Internet y la orld ide eb, el equipo de desarrollo de Java adapt este nuevo lenguaje para que funcionara en la eb, logrando as encontrar un medio ideal para su difucin! Java surgi como una respuesta por parte Sun Microsystems para el creciente mundo del desarrollo de aplicaciones internet, donde haba un caos tremendo en el cual cada empresa lder trataba de implantar su propio est"ndar, donde una aplicacin funcionaba en un servidor y no en otro debido a diferencias en el sistema operativo, incompatibilidades de soft#are y hard#are! Caractersticas de Java Simple! $rientado a $bjetos! %istribuido! &obusto! Seguro! 'rquitectura (eutral! )ortable! Interpretado! 'hora es compilado JI*! 'lto rendimiento! Multithread! %in"mico!

Lenguaje de objetos: (o basado en objetos! *odo lo que e+iste en java son objetos, debido a que la tecnologa de objetos es segura y se toma con gran importancia para el desarrollo de sistemas modernos, funcionales como los tipos ,liente Servidor! Multiplataforma: -l cdigo generado puede ser interpretado por diferentes tipos de dispositivos ./ard#are y Sistema $perativo0 y actuar en todos ellos por igual! Sencillo: )ara enternder el funcionamiento de este lenguaje de programacin no es necesario tener grandes conocimientos o dominios de programacin avan1ada! Familiar: Sinta+is parecida a , 2 ,33, lo que lo hace f"cil de identificar! )ara los nuevos en este lenguaje les da una idea general de cmo se trabaja con el lenguaje ,! Robusto: -l compilador de Java puede detecta errores que impiden la creacin de programas con fallos y avisa sobre los mismos para poder corregirlos! Seguro: ,uando se programa para aplicaciones #eb .applets0, se crean programas que no atentan contra la informacin del usuario al no permitir leer o escribir en el disco duro! Portable: 4a implementacin de programas Java siguen los estandares y se respetan para toda aplicacin creada con 5ste lenguaje , aumentando el alcance de la caracterstica multiplataforma! De alto rendimiento: 4a creacin de programas Java puede estar sujeta al uso de libreras e+istentes que no necesitan ser declaradas en cada uso, sino, solo referenciadas para usarlas libremente!

-1-

Estructura de Datos TELESUP

Luis Arias Hidalgo

Multithread: Soporta de modo nativo los threads, sin necesidad del uso de de libreras especficas! 4e permite adem"s que cada *hread de una aplicacin java pueda correr en una ,)6 distinta, si la aplicacin se ejecuta en una m"quina que posee varias ,)6! Estructura de un Programa en Java *odo programa en Java consta de una o m"s funciones, una de las cuales se llama main! )ara crear un programa o aplicacin en java es necesario aparte de definir e implementar las clases que generar"n el programa definir una clase que contenga un m5todo especial que indica el punto de entrada que es : public static void main (String[ ] args) Sinta+is: class NombreAplicacion { public static oid main !String"# args$ { %% &'digo (ue crea los objetos necesarios para (ue funcione la aplicaci'n ) ) -ste ejemplo se puede usar como plantilla para todas las aplicaciones en java pues slo basta con cambiar el nombre de la clase con el de la aplicacin! -l siguiente paso es compilar y ejecutar el programa, pasos que dependen de la herramienta de desarrollo! Pala!ras "lave #eservadas 4as palabras clave reservadas son identificadores especiales que el lenguaje Java se ha reservado para controlar cmo est" definido su programa! Se utili1an para identificar los tipos, modificadores y mecanismos para control de secuencia incorporados! -stas palabras clave slo se pueden utili1ar para su propsito original y no se pueden utili1ar como identificadores de nombres de variable, clase o m5todo! 4as palabras reservadas en este lenguaje se muestran a continuacin! 4as siguientes palabras est"n reservadas en Java: boolean brea7 byte case catch char class const continue do double else e+tends final finally float for goto implements import instanceof int interface long native ne# pac7age protected public return short static strictfp super s#itch synchroni1ed thro# thro#s transient try void volatile #hile

-2-

Estructura de Datos TELESUP


$aria!les

Luis Arias Hidalgo

4a variable es la unidad b"sica de almacenamiento en un programa en Java! 6na variable se define mediante la combinacin de un identificador, un tipo y un "mbito! 4a forma b"sica de una declaracin de variable es: tipo identificador 89 valor: 8,identificador 89 valor: !!! :; -l tipo puede ser: byte, short, int, long, char, float, double, boolean o el nombre de una clase o interfa1! Declaracin de $aria!les % Ti&o de Datos -n Java e+isten b"sicamente cuatro tipos de datos, aunque como se ver" despu5s, podremos definir nuestros propios tipos de datos a partir de estos cuatro! String ,adenas int (umero -ntero float -ntero y %ecimales double -ntero y %ecimales mas grande 'qu un listado mas completo: *I)$ 4$ <6- '4M',-(' false y true de @>A? a >AB de @DABC? a DABCB de @A>EBE?DCE? a A>EBE?DCEB de @A@CD a ACD @ > C dgitos significativos .>F@EC , >FD?0 >G dgitos significativos .>F@DAE , >FDF?0 &'(=$

boolean variable booleana de > byte .? bits0 byte short int long float double char String entero de > byte .? bits0 entero de A byte .>C bits0 entero de E byte .DA bits0 entero de ? byte .CE bits0 entero de E byte .DA bits0 entero de ? byte .CE bits0

car"cter 6(I,$%- A bytes .>C bits0 ,omprende el cdigo 'S,II Juego de caracteres!

Declaracin de variables )are declarar una variable primero se pone el tipo y luego el nombre de la variable, ejemplo: int a, b; en este ejemplo se est"n declarando A variables de tipo int a y b! *mportante : se puede iniciali1ar una variable al momento de declararla por ejemplo: int a= !,b="! String cad=#$ola#;

-3-

Estructura de Datos TELESUP

Luis Arias Hidalgo

'&eradores Aritm ticos( de Asignacin( relacionales % Lgicos %peradores &ritm'ticos -+isten dos tipos de operadores aritm5ticos: 4os binarios: 3 Suma @ &esta H Multiplicacin 2 %ivisin I Mdulo .resto0 -jemplo 1 9 b 3 c; 1 va a ser igual a b mas c 1 9 b I c; 1 va a ser igual a b mod de c y los unarios: 33 Incremento .suma >0 @@ %ecremento .resta >0 -jemplo: a33; aqu la variable a se esta incrementando en > es lo mismo que decir a 9 a 3 >,lo ,mismo sucede para decrementar una variable seria a@@; aqu la variable a se esta disminuyendo en > que es lo mismo que decir a9 a J>; %peradores de &signacin 9 'signacin simple 39 Suma @9 &esta H9 Multiplicacin 29 %ivisin I9 Mdulo .resto0 ,on estos operadores se pueden escribir, de forma m"s breve, e+presiones del tipo: n9n3D se puede escribir n39D 797H.+@A0 lo podemos sustituir por 7H9+@A + 9+2D se puede escribir +29D %peradores relacionales 4os operadores relacionales se utili1an para comparar el contenido de dos variables! -n Java e+isten seis operadores relacionales b"sicos: K Mayor que L Menor que K9 Mayor o igual que L9 Menor o igual que 99 Igual que M9 %istinto que %peradores (gico 4os operadores lgicos b"sicos son tres: NN '(% OO $& M ($* .-l valor contrario0 Nota : ' la hora de programar es conveniente aPadir comentarios .cuantos m"s mejor0 para poder saber que funcin tiene cada parte del cdigo, en caso de que no lo utilicemos durante algQn tiempo! 'dem"s facilitaremos el trabajo a otros programadores que puedan utili1ar nuestro archivo fuente! )ara poner comentarios en un programa escrito en Java usamos los smbolos 2H y H2: %+ ,ste es un ejemplo de comentario +% %% ,ste tambien es un comentario

-4-

Estructura de Datos TELESUP


%+ -n comentario tambi.n puede estar escrito en arias l/neas +%

Luis Arias Hidalgo

-l smbolo 2H se coloca al principio del comentario y el smbolo H2 al final! -l comentario, contenido entre estos dos smbolos, no ser" tenido en cuenta por el compilador! )untos *mportantes 0oda instrucci'n lle a punto 1 coma!2$ Al final3 &uando se abre una lla e !{$ (uiere decir (ue se an a ejecutar una serie de sentencias hasta cuando se cierre la lla e!)$ Las palabras reser adas se escriben tal como son es decir no es lo mismo escribir main!$ (ue MA*N!$ o (ue Main!$ son sensibles a las ma14sculas 1 min4sculas3 &asi todas las palabras se escriben en min4sculas3 Si el teclado no esta configurado debemos configurarlo en el panel de control5 teclado5 idiomas 1 escogemos espa6ol7Per4 )uncion S%stem*'ut*Println ,sta funci'n permitir8 isuali9ar algo por consola ,jemplo : : S1stem3out3println!;<ola Mundo=$2 %%,sto isuali9ara hola mundo ,jemplo > : String cad?=Ana=2 S1stem3out3println!;<ola ; @ cad$2 %%,sto isuali9ara hola Ana Li!rer+a J'&tionPane -s un componente de la librera s#ing que muestra cuadros de dialogo, entre los cuales se pueden ingresar datos o visuali1ar datos Se necesita importar a la librera : import ja aA3sBing3CDptionPane2 String Nombre2 Nombre?CDptionPane3shoB*nputDialog!;*ngrese Nombre ;$2 %%,sto mostrara una entana en la cual se ingresara un nombre 1 ese nombre se guardara en la ariable Nombre int Num2 Num?CDptionPane3shoB*nputDialog!;*ngrese Numero ;$2 !DCD esto dara un errorrrrrrr$ 22'qui se ingresa un numero y se guarda en la variable (um $J$: -sto dar" un error debido a que todo lo que se ingresa por J$ption)ane siempre ser" cadena y tendremos que convertirlo a numero para poder guardarlo en la variable (um Num?*nteger3parse*nt!CDptionPane3shoB*nputDialog!;*ngrese Numero=$2!,sto esta bien$ -l J$ption)ane tambi5n sirve para visuali1ar datos: -jemplo >: J$ption)ane!sho#Message%ialog.null,R/ola MundoR0; 22-sto imprimir" /ola Mundo -jemplo A: String (ombre9R'naR; double prom9>G!G; &esultado 9 S(ombre de 'lumno : S 3 (ombre 3 STn)romedio :S 3 prom; J$ption)ane!sho#Message%ialog.null,&esultado0; 22-sto imprimir" (ombre de 'lumno :'na )romedio : >G!G -5-

Estructura de Datos TELESUP


"onversin de Datos *nteger+parse*nt !@ ,onvierte una cadena a -ntero *ambi5n tendremos: Double+parseDouble !@ ,onvierte a double!

Luis Arias Hidalgo

-6-

Estructura de Datos TELESUP


E,ercicios de conocimiento resueltos >! ,lasifique los siguientes datos en simples y compuestos -l nQmero de botones de una camisa! 4a altura de una torre! -l nQmero de pasajeros de un avin! -l resultado de hacer una apuesta .ganar o perder0! 4a letra UbU escrita en mayQscula! 4os datos de una cuenta bancaria! 4a capital de ,anad"!

Luis Arias Hidalgo

Solucin %atos simples: )or ejemplo: ? K %ato num5rico entero! )or ejemplo: >AF,G K %ato num5rico real! )or ejemplo: AAB K %ato num5rico entero! %ato lgico UVU K %ato de tipo car"cter! %atos compuestos: %ato compuesto por: nombre, apellidos, etc! S$tta#aS K %ato de tipo cadena! A! %e las siguientes palabras, W,u"les son reservadas y cu"les no los sonX: cadena car"cter compuesto entero falso lgico num5rico real simple verdadero Solucin Son palabras reservadas en Java: cadena entero real verdadero (o lo son: car"cter debera ser caracter .sin tilde0 compuesto es un tipo de dato, pero no una palabra reservada faslo debera ser falso lgico debera ser logico .sin tilde0 numerico es un tipo de dato, pero no una palabra reservada simple es un tipo de dato, pero no una palabra reservada

-7-

Estructura de Datos TELESUP


D! %e la lista siguiente, W,u"les son tipos de datos simplesX dato booleano dato cadena dato enumerado dato estructurado dato num5rico dato ordinal dato real dato verdadero

Luis Arias Hidalgo

Solucin Son tipos de datos simples: dato booleano dato enumerado dato num5rico dato ordinal dato real (o lo son: dato cadena, ya que, una cadena est" formada por varios caracteres! dato estructurado, ya que, es compuesto, es decir, contrario a simple! dato verdadero! verdadero es un valor de tipo lgico, pero no un tipo en s mismo!

-8-

Estructura de Datos TELESUP


E,ercicios &racticos resueltos

Luis Arias Hidalgo

,acer un programa -ava .ue permita mostrar el mensa-e en pantalla+ Solucin

class MensajeY public static void main.String8:args0Y System!out!println.SMensaje a mostrarS0; Z Z ,acer un programa .ue permita mostrar varias lneas en consola con una sola lnea de comando+ Solucin

public class Multiple4ineaY 22 el m5todo main empie1a la ejecucin de la aplicacin de Java public static void main. String args8: 0 Y System!out!println.SVienvenidoTnaTnla programacionTnen JavaMS0; Z22 fin del m5todo main Z22

/ealice un cdigo Java .ue permita mostrar el 0rea de un triangulo dada su base 1+2 3 altura 4+" Solucin

class 'rea*riangulo&ectangulo'pliY public static void main.String8:args0Y double a,b,c; a9D!G;b9E!A; c9.aHb02A; System!out!println.S 'rea igual a S 3 c0; Z Z ,acer un programa .ue permita el ingreso de un numero 3 muestre su doble 3 triple+ Solucin Forma :: usando la clase Scanner import java!util!Scanner; public class ejercicio Y public static void main.String8: args0 Y 22llamando a Scanner para permitir el ingreso desde consola

-9-

Estructura de Datos TELESUP


Scanner scan 9 ne# Scanner.System!in0; 22imprimir mensaje inicial System!out!print.SIngrese numero: S0; 22capturando el valor String (umero 9 scan!ne+t4ine.0; 22convirtiendo el valor string a entero int n 9 Integer!parseInt.(umero0; 22mostrando los resultados System!out!print.S-l doble del numero es: S 3 nHA0; System!out!print.S-l triple del numero es: S 3 nHD0; Z Z Forma >: usando la clase *D

Luis Arias Hidalgo

import java!io!H; public class ejercicio Y public static void main.String8: args0 Y String (um; int n; 22creacin del flujo para leer datos InputStram&eader 4ectura 9 ne# InputStram&eader.System!in0; 22creacin del filtro para optimi1ar la lectura de datos Vuffered&eader leer 9 ne# Vuffered&eader.4ectura0; 22)idiendo ingreso de nQmero System!out!print.SIngrese nQmero: S0; 22capturando el valor (um 9 leer!&eadline.0; 22convirtiendo el valor string a entero n 9 Integer!parseInt.(um0; 22mostrando los resultados System!out!print.S-l doble del numero es: S 3 nHA0; System!out!print.S-l triple del numero es: S 3 nHD0; Z Z

NOTA

La creacin del filtro para capturar datos desde teclado puede hacerse en una sola lnea de comando
BufferedReader leer=new BufferedReader(new InputStreamReader(System.in));

- 10 -

Estructura de Datos TELESUP


E,ercicios &racticos resueltos con J'&tionPane: 5-ercicio 6*ngresar un numero 3 mostrar el doble

Luis Arias Hidalgo

import java+!s#ing!J$ption)ane; 22Se llama a esta librera para poder utili1ar el J$ption)ane public class -jercicio> Y public static void main.String8: args0Y String (>; int n; 22'qu se ingresa un numero mediante el J$ption)ane 22/ay que recordar que todo lo que se ingresa es cadena (>9J$ption)ane!sho#Input%ialog.SIngrese (umero S0; 22'qu se convierte lo que se ingreso a (umero -ntero n9Integer!parseInt.(>0; 22'qui se visuali1a un resultado.primero se pone null y de ah lo que se quiere visuali1ar J$ption)ane!sho#Message%ialog.null,S-l %oble es S 3 nHA0; 22*ambi5n podramos visuali1ar con System!out 22System!out!println.S-l doble es S 3 nHA0; Z Z

5-ercicio "6 *ngresar el nombre 3 las " notas de un alumno , mostrar su nombre 3 su promedio import java+!s#ing!J$ption)ane; public class -jercicioA Y public static void main.String8: args0Y String (ombre; String &esultado; int n>,nA; double prom; (ombre9J$ption)ane!sho#Input%ialog.SIngrese (ombre S0; n>9Integer!parseInt.J$ption)ane!sho#Input%ialog.SIngrese (ota > S00; nA9Integer!parseInt.J$ption)ane!sho#Input%ialog.SIngrese (ota A S00; prom 9 .n>3nA0 2A; &esultado 9 S(ombre de 'lumno : S 3 (ombre 3 STn)romedio :S 3 prom; J$ption)ane!sho#Message%ialog.null,&esultado0; Z Z

- 11 -

Estructura de Datos TELESUP

Luis Arias Hidalgo

5-ercicio 16 *ngresar el nombre , precio 3 cantidad , mostrar el monto+ import java+!s#ing!J$ption)ane; public class -jercicioD Y public static void main.String8: args0Y String (ombre; int ,ant; double )recio,Monto; (ombre9J$ption)ane!sho#Input%ialog.SIngrese (ombre S0; ,ant9Integer!parseInt.J$ption)ane!sho#Input%ialog.SIngrese ,antida S00; )recio9%ouble!parse%ouble.J$ption)ane!sho#Input%ialog.SIngrese )recio S00; Monto 9)recio H ,ant; System!out!println.SMonto es : S 3 Monto0; Z Z 5-ercicio 46 *ngresar un numero de 4 ci7ras 3 mostrar la suma de sus ci7ras laterales 3 centrales import java+!s#ing!J$ption)ane; public class -jercicioE Y public static void main.String8: args0Y String &esultado; int num,u,d,c,m; num9Integer!parseInt.J$ption)ane!sho#Input%ialog.SIngrese (umero S00; m9num2>FFF; c9.numI>FFF02>FF; d9..numI>FFF0I>FF02>F; u9numI>F; &esultado 9 S-l numero ingresado fue :S 3 num 3 STnSumade ,ifras ,entrales es : S 3.c3d0 3 STnSuma e cifras 4aterales es :S 3 .m3u0; J$ption)ane!sho#Message%ialog.null,&esultado0; Z Z

- 12 -

Estructura de Datos TELESUP


La!oratorio 1 : Estructuras -asicas >!

Luis Arias Hidalgo

<ue tipo de datos resulta m"s adecuado para representar cada uno de los conceptos siguientes : -l sueldo de un trabajador 4a edad de una persona -l nQmero de hijos -l estado civil -l estado de caducado no de un producto -l n[ de tel5fono 4a direccin! )ara cada uno de los puntos siguientes escribir un programa que pida los datos necesarios y calcule el "rea y el permetro de la figura indicada 6n cuadrado 6n rect"ngulo 6n tri"ngulo 6n crculo 6n edificio tiene >E escalones entre pisos! ,alcule cuantos pisos sube una persona que ha recorrido ?C escalones! -scribir un programa para calcular el importe de una venta en un supermercado! -l usuario debe indicar el nombre del producto, el precio por unidad y el n[ de unidades y el programa sacar" por pantalla el nombre del producto, el n[ de unidades vendidas y el precio total! )reste especial atencin a qu5 tipo de datos resulta m"s adecuado para cada representar cada cantidad! Se ingresa el valor de costo de un producto y la cantidad comprada, mostrar el subtotal, I=\, y total a pagar! Se sabe que el lado de un cuadrado es GD!A> y se desea mostrar su "rea y permetro! %esarrolle un programa que solucione el enunciado siguiente: Se ingresa el nombre de un empleado, sueldo y tiempo servicio de un trabajador! )or cada aPo de servicio recibe S2!GF soles! Mostrar el descuento .GI0 y el sueldo total! ,onstruya un algoritmo para convertir dlares en soles! Ingrese tres nQmeros, calcule su producto y suma y el resultado de la diferencia de estos resultados! Ingrese un nQmero entero de A cifras y muestre cada una de sus cifras por separado! %esarrolle un algoritmo para mostrar cada una de las cifras de un nQmero de E cifras ingresado por pantalla y muestre tambi5n la suma de sus cifras! 6na empaquetadora recibe un nQmero de libros para colocar en cajas! Se sabe que cada caja puede contener >E libros! Se ingresa el nQmero de libros y el precio de cada libro! -l programa debe mostrar: -l nQmero de cajas! -l precio de cada caja! -l sub total del importe

A!

D! E!

G! C! B!

?! ]! >F! >>! >A!

- 13 -

Estructura de Datos TELESUP


>D! -l I=\ .>]I0 -l total a pagar

Luis Arias Hidalgo

-scribir un programa que calcule la nmina de un trabajador de la manera siguiente! -l trabajador cobra un precio fijo por hora y se le retiene un GI en concepto de I&)^! -l programa debe pedir el nombre del trabajador, las horas trabajadas y el precio que cobra por hora! ,omo salida debe imprimir el sueldo bruto, la retencin y el sueldo neto!

- 14 -