Todos los ejemplos que encontrar en este libro se realizan utilizando el paquete Swing que es parte de la JFC (Java Foundation Classes) en la plataforma Java !a JFC provee facilidades para a"udar al usuario a construir #$%s (%nterfaces grficas de usuarios) Swing abarca componentes como botones& tablas& marcos& etc !os componentes Swing se identifican porque pertenecen al paquete javax.swing Swing e'iste desde la J() ** (como un agregado) +ntes de la e'istencia de Swing& las interfaces grficas con el usuario se realizaban a trav,s de awt (+bstract -indow Tool.it)& de quien Swing /ereda todo el manejo de eventos $sualmente& para todo componente awt e'iste un componente Swing que lo reemplaza& por ejemplo& la clase Button de awt es reemplazada por la clase JButton de Swing (el nombre de todas las componentes Swing comienza con 0J0) !as componentes de Swing utilizan la infraestructura de awt& inclu"endo el modelo de eventos awt& el cual rige c1mo un componente que reacciona a eventos de teclado& mouse& etc 2s por esto& que la ma"or3a de los programas Swing necesitan importar dos paquetes awt4 java.awt.* " java.awt.event.*. Tabla 2.1. Paquetes de java swing Paquete Descripcin javax.swing Es el paquete tal vez ms importante de swing, contiene las clases necesarias para crear ventanas y colocar objetos sencillos en una interfaz grfica. javax.swing.border Contiene clases que permiten especificar bordes personalizados a los diferentes objetos de la interfaz grfica. javax.swing.colorchoos er Contiene clases que permiten definir, especificar y seleccionar colores para diversos objetos. javax.swing.event Este paquete contiene las clases necesarias para crear y manipular eventos sobre los diversos objetos de la interfaz de swing. Es bueno tener en cuenta que los oidores! se asocian a objetos de la interfaz, pero son implementados gracias a las clases que provee este paquete. javax.swing.filechooser El "ileChooser! es un componente de swing que permite navegar por los archivos de la mquina, tal como lo hace el explorador de #indows. javax.swing.plaf.$ Este paquete permite dar una apariencia uniforme a una aplicaci%n. Contiene apariencias estndares de las aplicaciones basadas en #indows y otros sistemas operativos javax.swing.table El componente &'able es uno de los componentes que a(adi% swing para lograr crear interfaces que muestren datos en una cuadr)cula y muchas otras funcionalidades. javax.swing.text *aquete que contiene clases para dar formato a textos y en general para realizar una manipulaci%n grfica de textos y mostrarla al usuario con algunos efectos. javax.swing.text.html.$ Clases que permiten manipular documentos en formato +',-. javax.swing.text.rtf El .'"! es un visualizador de texto que se puede utilizar haciendo referencia a este paquete. javax.swing.tree El componente &'ree es uno de los componentes ms sofisticados y completos que incorpora swing. /icho componente permite entre otras cosas realizar b0squedas en rboles, mostrar rboles con la apariencia de un explorador de archivos y muchas otras cosas. javax.swing.undo *ermite realizar aplicaciones que incorporen la funcionalidad de rehacer y deshacer. javax.accessibility Clases que permiten dar funcionalidad a las aplicaciones para que sean utilizadas por personas con discapacidades. 2.1. Creai!n de un "rimer "rograma en Java Java es un lenguaje de programaci1n con el que pueden crearse aplicaciones aut1nomas " applets (basados en un e'plorador) !os programas aut1nomos son parecidos a aquellos que pueden realizarse con C55 !os +pplets son independientes del dispositivo& es decir un mismo +pplet puede ejecutarse desde un 6C con -indows7'& 8ac o !inu'& "a que el compilador de Java genera c1digo de maquina virtual el cual se puede ejecutar desde cualquier plataforma !os programas aut1nomos o applets se pueden digitar en un editor de te'to como4 -ordpad& 2dit& 9loc. de :otas& o editores de programas de java (realj& freejava& jcreator& netbeans& etc) 2stos deben tener la e'tensi1n 0java0 Todos los programas se digitaron " se compilaron utilizando el programa realj# el cual es un editor para crear programas en java (;er ane'o +& pgina <=>) 2n el anlisis de cada programa se /acen los respectivos comentarios del c1digo omitiendo en ocasiones aquellos que "a /an sido comentados en programas anteriores 2.2. $jem"lo "r%tio ?ealizar un programa que imprima en pantalla el siguiente mensaje4 0@olaA 8i primer programa con JavaB (ic/o programa debe realizarse como un programa +ut1nomo " un +pplet a& Programa 'ut!nomo 1 import javax.swing.&"rame2 3 import java.awt.4raphics2 5 class 6ienvenido7uto extends &"rame 8 9 public 6ienvenido7uto:; 8 < super:=programaci%n en &ava=;2 > set?ize:5@@,1@@;2 A setBisible:true;2 C D public void paint:4raphics g; 8 E g.draw?tring:=+olaF... ,i primer programa con &ava G 7utonomo!,9@,9@;2 C 1@ public static void main:?tring argsHI; 8 11 6ienvenido7uto miprograma J new 6ienvenido7uto:;2 13 miprograma.set/efaultCloseKperation:&"rame.ELM'NKONC-K?E;2 C C 'n%lisis "rograma ()nea 14 %ndica que el programa utiliza la clase J*rame del paquete javax.swing para mostrar un marco ()nea 24 !a aplicaci1n utiliza la clase +ra",is del paquete java.awt& la cual permite dibujar grficos& como te'to& l3neas& etc ()nea -4 Se define el nombre de la clase& en este caso C9ienvenido+utoB Tambi,n contiene la palabra clave extends que indica que la clase Bienvenido'uto /ereda los atributos (datos) " comportamientos (m,todos) e'istentes de la clase J*rame. ()nea .4 Se crea un constructor el cual es un m,todo que tiene el mismo nombre de la claseD esta se inicializa automticamente cuando se crea un objeto de la clase ()nea /4 !a palabra reservada su"er permite acceder a los datos " m,todos de la clase que se est /eredando 2l uso de esta es opcional& pero en caso de utilizarse debe ser obligatoriamente la primera instrucci1n del constructor 6ara el ejemplo se utilizo su"er para colocarle un titulo al marco ()nea 04 el m,todo setSi1e2int# int& permite definir el tamaEo de un marco 2l primer parmetro es el anc/o " el segundo es el alto ()nea 34 el m,todo set4isible2&# permite mostrar el marco Si el parmetro es true# permitir visualizar el marco& si por el contrario es 5alse se esconder el marco ()nea 64 se crea un m,todo llamado "aint (pintar)& el cual se ejecuta automticamente& " tiene como parmetro un objeto de tipo +ra",is& en este caso g& que le sirve al m,todo para dibujar grficos Tiene dos palabras clave4 "ubli que permite que el m,todo sea llamado desde la clase " void que indica que el m,todo no retorna datos cuando termine su tarea ()nea 74 el m,todo drawString de la clase +ra",is que utiliza el parmetro g& permite dibujar una cadena de caracteres en el marco (ic/o m,todo recibe tres parmetros4 el primero es la cadena de caracteres que va a dibujar& el segundo es la coordenada x " el tercer es la coordenada 8. ()nea 194 Se declara el m,todo principal main (todo programa aut1nomo debe contener dic/o m,todo) !a declaraci1n debe ser siempre la misma& es decir& siempre que se cree un programa aut1nomo debe tener como m3nimo los siguientes parmetros4 "ubli& es el modificador de acceso 2l parmetro stati indica que la funci1n es esttica& por lo cual no puede ser generada ninguna instancia (uso de new) de un elemento static puesto que solo e'iste una instancia !a palabra clave void se inclu"e para definir que la funci1n no devuelve ningFn valorD main es el nombre de la funci1n " String :; args es un arreglo de tipo String llamado args. ()nea 114 Se crea un objeto mi"rograma al cual se le asigna memoria de tipo Bienvenido'uto 2& por intermedio del operador new. ()nea 124 Se utiliza el m,todo set<e5aultClose="eration2& para cerrar la aplicaci1n Com"ilai!n 8 ejeui!n del "rograma aut!nomo 2s necesario guardar el arc/ivo con el nombre definido en la clase& en este caso Bienvenido'uto " con e'tensi1n 0java0 (se debe tener en cuenta como est escrito el nombre de la clase porque para el compilador de Java 06rimero0 es diferente de 0primero0) !os siguientes pasos se pueden omitir si trabaja con cualquier programa que permita compilar " ejecutar aplicaciones de Java (2j ?ealJ)4 6ara compilarlo& desde el prompt de la interfaz de comandos " ubicado en la carpeta donde se guardo el arc/ivo fuente (java)& se debe digitar4 javac <nombre del programa con extensin>< <enter> javac BienvenidoAuto.java <enter> Si el programa no genera ningFn error de compilaci1n este creara un arc/ivo del mismo nombre pero con e'tensi1n class :6ienvenido7uto.class; 6ara ejecutar el programa se debe digitar4 java Pnombre del programaQ PenterQ java BienvenidoAuto <enter> +l ejecutarse se visualizara la siguiente pantalla4 *igura 2.1. $jeui!n "rograma aut!nomo >Bienvenido'uto? @otaD tambi,n puede compilarlo " ejecutarlo con realj (ver ane'o +& pgina <=>) b& Sub"rograma '""let 1 import javax.swing.&7pplet2 3 import java.awt.4raphics2 5 public class 6ienvenido7pp extends &7pplet 8 9 public void paint :4raphics g; 8 < super.paint:g;2 > g.draw?tring:=+olaF... ,i primer programa con &ava G 7pplet =,3<,3<;2 C C 'n%lisis "rograma ()nea 14 %ndica que el programa utiliza la clase J'""let del paquete javax.swing para mostrar una ventana ()nea 24 !a aplicaci1n utiliza la clase +ra",is del paquete java.awt& la cual permite dibujar grficos& como te'to& l3neas& etc ()nea -4 Se define el nombre de la clase C9ienvenido+ppB Tambi,n contiene la palabra clave extends que indica que la clase Bienvenido'"" /ereda los atributos (datos) " comportamientos (m,todos) e'istentes de la clase J'""let. ()nea .4 se crea un m,todo llamado "aint (pintar)& el cual se ejecuta automticamente& " que tiene como parmetro un objeto de tipo +ra",is& en este caso g& que le sirve al m,todo para dibujar grficos Tiene dos palabras clave4 "ubli que permite que el m,todo sea llamado desde la clase " void que indica que el m,todo no retorna datos cuando termine su tarea ()nea /4 Se /ace un llamado al m,todo "aint de la superclase J'""let ()nea 04 el m,todo drawString de la clase +ra",is que utiliza el parmetros g& permite dibujar una cadena de caracteres en el marco (ic/o m,todo recibe tres parmetros4 el primero es la cadena de caracteres que va a dibujar& el segundo es la coordenada x " el tercer es la coordenada 8. Com"ilai!n 8 ejeui!n del sub"rograma '""let 6ara compilarlo& desde el prompt de la interfaz de comandos " ubicado en la carpeta donde guardo el arc/ivo fuente (java)& se debe digitar4 javac Pnombre del programa con extensi%nP PenterQ javac 6ienvenido7pp.java PenterQ Si el programa no genera ningFn error de compilaci1n este creara un arc/ivo del mismo nombre pero con e'tensi1n class :6ienvenido7pp.class; !uego se debe crear un arc/ivo del mismo nombre pero con e'tensi1n /tml (9ienvenido+pp/tml) desde cualquier editor de te'to& con las siguientes instrucciones4 PhtmlQ P7pplet codeJ=Pnombre del programa con extension .class=Q widthJ5@@ heightJ3@@QPRappletQ PhtmlQ /onde height y width indican el tama(o de la ventana en pixeles. En el ejemplo ser)aS PhtmlQ P7pplet codeJ= 6ienvenido7pp.class= widthJ5@@ heightJ3@@QPRappletQ PhtmlQ luego de creado el programa /tml& para ejecutarlo& se debe digitar4 appletviewer Pnombre del programa con extensi%n htmlQ PenterQ appletviewer 6ienvenido7pp.html PenterQ Gtra forma de ejecutar el +pplet& es abrir el arc/ivo C/tmlB desde un navegador de %nternet +l ejecutarse& se visualizara la siguiente pantalla4 *igura 2.2. $jeui!n sub"rograma '""let ?Bienvenido'""? @otaD tambi,n puede compilarlo " ejecutarlo con realj (ver ane'o +& pgina <=>) -. $struturas de Control -.1. $strutura de alternativa sim"le i5 !a estructura de alternativa simple i5 ejecuta una determinada acci1n cuando se cumple una condici1n !a selecci1n i5 evalFa la condici1n "4 Si la condici1n es verdadera& ejecuta la acci1n i5 (o acciones caso de ser S* una acci1n compuesta " constar de varias acciones) " continua con el resto del programa Si la condici1n es falsa& no entra al i5& pero continFa con el resto del programa if :condici%n verdadera; 8 ?1 C .esto del programa -.1.1. $jem"lo "r%tio i5 crear un programa aut1nomo " un applet que capture una nota de un estudiante& si la nota es ma"or o igual a tres& deber imprimir en la ventana C+prob1 la materia FelicitacionesB a& Programa '""let 1 import javax.swing.$2 3 import java.awt.$2 5 import java.awt.event.$2 9 public class Mf?imple extends &7pplet implements 7ction-istener 8 < &-abel etiqueta2 > &'ext"ield entrada2 A float nota2 D public void init:; 8 E Container contenedorJgetContent*ane:;2 1@ contenedor.set-ayout:new "low-ayout:;;2 11 etiquetaJnew &-abel:=/igite nota y pulse EnterS=;2 13 entradaJnew &'ext"ield:1@;2 15 contenedor.add:etiqueta;2 19 contenedor.add:entrada;2 1< entrada.add7ction-istener:this;2 C 1> public void paint:4raphics g; 8 1A super.paint:g;2 1D if:notaQJ5.@; 1E g.draw?tring:=7prob% la materia... "elicitaciones=,5@,>@;2 C 3@ public void action*erformed:7ctionEvent e; 8 31 if:e.get?ource:;JJentrada;8 33 notaJ"loat.parse"loat:entrada.get'ext:;;2 C 35 repaint:;2 C C 'n%lisis "rograma ()nea 14 %ndica que el programa puede utilizar las clases que pertenecen al paquete javax.swing. ()nea 24 !a aplicaci1n puede utilizar las clases del paquete java.awt. ()nea -A el paquete awt.event proporciona las clases e interfaces para diversos eventos que se pueden utilizando (isteners (oidores) ()nea .A Se define la clase pFblica B5Sim"le Tambi,n contiene la palabra clave extends que indica que la clase B5Sim"le /ereda los atributos (datos) " comportamientos (m,todos) e'istentes en la clase J'""let +dems se implementa la interfaz 'tion(istener utilizando la palabra clave im"lements !a interfaz 'tion(istener detecta las acciones que realiza el usuario " las convierte en acciones del programa& por ejemplo4 cerrar la ventana al pulsar un bot1n& al pulsar 2nter en una caja de te'to& etc 'tion(istener es una interface del grupo de los (isteners (oidores) 'tion(istener tiene un s1lo m,todo4 void ationPer5ormed2'tion$vent e& que se usa para detectar " manejar eventos de acci1n ('tion$vent)& los que tienen lugar cuando se produce una acci1n sobre un elemento del programa ()nea /4 !a clase J(abel (etiqueta) permite crear un objeto donde se puede mostrar un te'to no editable ()nea 04 !a clase JText*ield (caja de te'to) permite crear un objeto donde un usuario puede introducir datos mediante el teclado Tambi,n puede mostrar informaci1n ()nea 34 Se crea una variable llamada nota de tipo 5loat ()nea 64 2l m,todo init2&# el cual se ejecuta automticamente se utiliza para inicializar los diferentes objetos que sern utilizados por la aplicaci1n ()nea 74 Se crea un objeto llamado ontenedor de tipo Container que permite obtener un panel de contenido al que se le pueden adicionar componentes de interfaz grfica de usuario& en este caso los componentes J(abel " JText*ield + dic/o objeto se le asigna el m,todo getContentPane2&# el cual devuelve la referencia del panel de contenido ()nea 194 Se utiliza el m,todo set(a8out de la clase Container para especificar el administrador de diseEo que se va a utilizar en la interfaz de usuario Se le pasa como argumento un objeto de tipo *low(a8out que permite colocar los diferentes objetos de la interfaz de usuario de izquierda a derec/a en el orden que se coloquen utilizando el m,todo add. ()nea 11 8 124 Se asigna espacio de memoria utilizando la palabra clave new a los objetos J(abel " JText*ield. +l objeto J(abel se le env3a como parmetro una cadena de caracteres para que sea mostrada una vez se ejecute el applet +l objeto JText*ield se le env3a como parmetro un valor de *H caracteres de anc/o ()nea 1- 8 1.4 Se adiciona al contenedor por medio del m,todo add los objetos J(abel " JText*ield. ()nea 1/4 +l objeto entrada se le adiciona un oidor para escuc/ar los eventos que realice dic/o objeto utilizando el m,todo add'tion(istener Se le env3a como parmetro la palabra clave t,is para referirse a s3 mismo ()nea 164 Se utiliza la instrucci1n de control i5 para preguntar si el valor de la variable nota es ma"or o igual a IH Si la respuesta es verdadera el programa ingresara al i5 " realizara las operaciones contenidas en la condici1n ()nea 174 el m,todo drawString de la clase +ra",is que utiliza el parmetros g& permite dibujar una cadena de caracteres en la ventana (ic/o m,todo recibe tres parmetros4 el primero es la cadena de caracteres que va a dibujar& el segundo es la coordenada x " el tercero es la coordenada 8. ()nea 294 el m,todo ationPer5ormed 2'tion$vent e& se invoca cuando se genera un evento de acci1n (+ction2vent) en este caso en el objeto entrada& " realizara las tareas programadas para este evento ()nea 214 2l m,todo getSoure2& de tipo 'tion$vent# pregunta si el objeto que /a realizado un evento es entrada. Si la respuesta es verdadera se realizaran las tareas que se programaron en dic/a condici1n ()nea 224 el m,todo "arse*loat de la clase *loat& permite convertir un String a nFmero de tipo 5loat# el cual es asignado a la variable nota Se le env3a como parmetro el objeto entrada obteniendo por medio del m,todo getText2& el valor que fue digitado por teclado ()nea 2-4 el m,todo re"aint2& permite realizar un nuevo llamado al m,todo "aint 2&& para actualizar todas los objetos " variables all3 contenidas Com"ilai!n 8 ejeui!n del sub"rograma '""let 6ara compilarlo& desde el prompt de la interfaz de comandos " ubicado en la carpeta donde guardo el arc/ivo fuente (java)& se debe digitar4 javac Pnombre del programa con extensi%nP PenterQ javac Mf?imple.java PenterQ Si el programa no genera ningFn error de compilaci1n este creara un arc/ivo del mismo nombre con e'tensi1n class :Mf?imple.class; !uego se debe crear un arc/ivo del mismo nombre pero con e'tensi1n /tml (6rimero+pp/tml) desde cualquier editor de te'to& con las siguientes instrucciones4 PhtmlQ P7pplet codeJ=Pnombre del programa con extensi%n .class=Q widthJ5@@ heightJ3@@QPRappletQ PhtmlQ /onde height y width indican el tama(o de la ventana en pixeles. En el ejemplo ser)aS PhtmlQ P7pplet codeJ= Mf?imple.class= widthJ5@@ heightJ3@@QPRappletQ PhtmlQ luego de creado el programa /tml& para ejecutarlo& se debe digitar4 appletviewer Pnombre del programa con extensi%n htmlQ PenterQ appletviewer Mf?imple.html PenterQ Gtra forma de ejecutar el +pplet& es abrir el arc/ivo C/tmlB desde un navegador de %nternet +l ejecutarse el programa " digitar IJ en la caja de te'to " pulsar enter& se visualizara la siguiente pantalla4 *igura -.1. $jeui!n '""let B5Sim"le b& Programa 'ut!nomo 1 import java.awt.$2 3 import java.awt.event.$2 5 import javax.swing.$2 9 public class Mf?imple7uto extends &"rame implements 7ction-istener 8 < &-abel etiqueta2 > &'ext"ield entrada2 A float nota2 D public Mf?imple7uto:; 8 E Container contenedorJgetContent*ane:;2 1@ contenedor.set-ayout:new "low-ayout:;;2 11 etiquetaJnew &-abel:=/igite nota y pulse EnterS=;2 13 entradaJnew &'ext"ield:1@;2 15 contenedor.add:etiqueta;2 19 contenedor.add:entrada;2 1< entrada.add7ction-istener:this;2 1> set?ize:5@@,1@@;2 1A setBisible:true;2 C 1D public void paint:4raphics g; 8 1E if:notaQJ5.@; 3@ g.draw?tring:=7prob% la materia... "elicitaciones=,5@,>@;2 C 31 public void action*erformed:7ctionEvent e; 8 33 if:e.get?ource:;JJentrada;8 35 notaJ"loat.parse"loat:entrada.get'ext:;;2 C 39 repaint:;2 C 3< public static void main:?tring argsHI; 8 3> Mf?imple7uto miprograma J new Mf?imple7uto:;2 3A miprograma.set/efaultCloseKperation:&"rame.ELM'NKONC-K?E;2 C C 'n%lisis "rograma (el anterior c1digo solo se e'plicaran las l3neas que fueron modificadas para crear el programa aut1nomo& las cuales estn sombreadas !as dems l3neas fueron e'plicadas en el ejemplo del +pplet ()nea .A Se define una clase pFblica con el nombre B5Sim"le'uto Tambi,n contiene la palabra clave extends que indica que la clase B5Sim"le'uto /ereda los atributos (datos) " comportamientos (m,todos) e'istentes en la clase J*rame +dems se implemento la interfaz 'tion(istener utilizando la palabra clave im"lements ()nea 64 Se crea un constructor el cual es un m,todo que tiene el mismo nombre de la claseD este se inicializa automticamente cuando se crea un objeto de la clase ()nea 104 el m,todo setSi1e 2int# int& permite definir el tamaEo de un marco 2l primer parmetro es el anc/o " el segundo es el alto ()nea 134 el m,todo set4isible 2&# permite mostrar el marco Si el parmetro es true# permitir visualizar el marco& si por el contrario es 5alse esconder el marco ()nea 2/4 Se declara el m,todo principal main (todo programa aut1nomo debe contener dic/o m,todo) !a declaraci1n debe ser siempre la misma& es decir& siempre que se cree un programa aut1nomo debe tener como m3nimo los siguientes parmetros4 "ubli& es el modificador de acceso 2l parmetro stati indica que la funci1n es esttica& por lo cual no puede ser generada ninguna instancia (uso de new) de un elemento stati. !a palabra clave void se inclu"e para definir que la funci1n no devuelve ningFn valorD main es el nombre de la funci1n " String :; args es un arreglo de tipo String llamado args ()nea 204 Se crea un objeto mi"rograma al cual se le asigna memoria de tipo B5Sim"le'uto 2&. ()nea 234 Se utiliza el m,todo set<e5aultClose="eration 2& para cerrar la aplicaci1n Com"ilai!n 8 ejeui!n del "rograma aut!nomo 6ara compilarlo& desde el prompt de la interfaz de comandos " ubicado en la carpeta donde guardo el arc/ivo fuente (java)& se debe digitar4 javac Pnombre del programa con extensi%nQP PenterQ javac IfSimpleAuto.java <enter> Si el programa no genera ningFn error de compilaci1n este creara un arc/ivo del mismo nombre pero con e'tensi1n class (IfSimpleAuto.class) 6ara ejecutar el programa se debe digitar4 java Pnombre del programaQ PenterQ java IfSimpleAuto <enter> +l ejecutarse " digitar I< en la caja de te'to " al pulsar enter& se visualizara la siguiente pantalla4 *igura -.2. $jeui!n "rograma aut!nomo >B5Sim"le'uto? -.2. $strutura de alternativa om"uesta i5 C else 2sta estructura permite elegir entre dos opciones o alternativas posibles& es decir& que realiza una acci1n S1, si la condici1n es verdadera " otra acci1n S2, si la condici1n es falsa if :condici%n verdadera ; 8 ?1C else 8 ?3C .esto del programa -.2.1. $jem"lo "r%tio i5Celse Crear un programa +ut1nomo " un +pplet que capture una nota de un estudiante Si la nota es ma"or o igual a IH deber mostrar el mensaje B+prob1 la materiaFelicitaciones0& de lo contrario imprimir el mensaje 0!o sientoK ?eprob1 la materia0 a& Programa '""let 1 import javax.swing.$2 3 import java.awt.$2 5 import java.awt.event.$2 9 public class MfCompuesto7pp extends &7pplet implements 7ction-istener 8 < &-abel etiqueta2 > &'ext"ield entrada2 A float nota2 D public void init:; 8 E Container contenedorJgetContent*ane:;2 1@ contenedor.set-ayout:new "low-ayout:;;2 11 etiquetaJnew &-abel:=/igite nota y pulse EnterS=;2 13 entradaJnew &'ext"ield:1@;2 15 contenedor.add:etiqueta;2 19 contenedor.add:entrada;2 1< entrada.add7ction-istener:this;2 C 1> public void paint:4raphics g; 8 1A super.paint:g;2 1D if:notaQJ5.@; 1E g.draw?tring:=7prob% la materia... "elicitaciones=,5@,>@;2 3@ else 31 g.draw?tring:=-o sientoT.eprob% la materia =,5@,>@;2 C 33 public void action*erformed:7ctionEvent e; 8 35 if:e.get?ource:;JJentrada;8 39 notaJ"loat.parse"loat:entrada.get'ext:;;2 C 3< repaint:;2 C C +l ejecutarse el programa +pplet " digitarse el valor de < en la caja de te'to& se visualizara la siguiente figura4 *igura -.-. $jeui!n sub"rograma B5Com"uesto'"" b& Programa 'ut!nomo 1 import java.awt.$2 3 import java.awt.event.$2 5 import javax.swing.$2 5 public class MfCompuesto7uto extends &"rame implements 7ction-istener 9 8 < &-abel etiqueta2 > &'ext"ield entrada2 A float nota2 D public MfCompuesto7uto:; 8 E Container contenedorJgetContent*ane:;2 1@ contenedor.set-ayout:new "low-ayout:;;2 11 etiquetaJnew &-abel:=/igite nota y pulse EnterS=;2 13 entradaJnew &'ext"ield:1@;2 15 contenedor.add:etiqueta;2 19 contenedor.add:entrada;2 1< entrada.add7ction-istener:this;2 1> set?ize:5@@,1@@;2 1A setBisible:true;2 C 1D public void paint:4raphics g; 8 1E if:notaQJ5.@; 3@ g.draw?tring:=7prob% la materia... "elicitaciones=,5@,>@;2 31 else 33 g.draw?tring:=-o sientoT.eprob% la materia =,5@,>@;2 C 35 public void action*erformed:7ctionEvent e; 8 39 if:e.get?ource:;JJentrada;8 3< notaJ"loat.parse"loat:entrada.get'ext:;;2 C 3> repaint:;2 C 3A public static void main:?tring argsHI; 8 3D MfCompuesto7uto miprograma J new MfCompuesto7uto:;2 3E miprograma.set/efaultCloseKperation:&"rame.ELM'NKONC-K?E;2 C C 'n%lisis de los "rogramas Tanto en el programa aut1nomo como en el +pplet se inclu"eron solamente dos l3neas e'actamente iguales 2n el aut1nomo se inclu"eron las l3neas <* " << " en el applet las l3neas <H " <* 2n la primera l3nea se utiliza la palabra reservada else (sino) que permitir tomar la decisi1n si la condici1n es falsa& donde se visualizara el te'to Clo sientoDEe"rob! la materia?. +l ejecutarse el programa aut1nomo " digitarse el valor de < en la caja de te'to& se visualizara la siguiente figura4 *igura -... $jeui!n "rograma B5Com"uesto'uto -.-. $strutura de alternativa mFlti"le swit,C ase 2n algunos casos son necesarias ms de dos alternativas de soluci1n a un problema 2sto se podr3a resolver por estructuras alternativas simples o compuestas anidadasD sin embargo& este m,todo si el nFmero de alternativas es demasiado grande puede plantear serios problemas de escritura del algoritmo " naturalmente de legibilidad !a estructura de alternativa mFltiple swit, ase evalFa una e'presi1n que puede tomar n valores distintos& *& <& I& =&& n SegFn el valor de la e'presi1n& se realizar una de las n acciones switch:variable;8 case valor1S acciones12 breaU, case valor3S acciones32 breaU, case valor5S acciones52 breaU, SSSSSSSSS SSSSSSSSS defaultS otrasNacciones2 C -.-.1. $jem"lo "r%tio swit,Case Crear un programa aut1nomo " un applet que permita digitar un carcter n veces e imprima la cantidad de vocales que se digitan a& Sub"rograma '""let 1 import java.awt.$2 3 import java.awt.event.$2 5 import javax.swing.$2 9 public class Case7pp extends &7pplet implements 7ction-istener 8 < &-abel etiqueta2 > &'ext"ield entrada2 A int ctaaJ@,ctaeJ@,ctaiJ@,ctaoJ@,ctauJ@2 D public void init:; 8 E Container contenedorJgetContent*ane:;2 1@ contenedor.set-ayout:new "low-ayout:;;2 11 etiquetaJnew &-abel:=/igite una letraS=;2 13 entradaJnew &'ext"ield:1@;2 15 contenedor.add:etiqueta;2 19 contenedor.add:entrada;2 1< entrada.add7ction-istener:this;2 C 1> public void paint :4raphics g; 8 1A super.paint:g;2 1D g.draw?tring:='otales para cada vocalS=,3<,9@;2 1E g.draw?tring:=7S=Vctaa,3<,<<;2 3@ g.draw?tring:=ES=Vctae,3<,A@;2 31 g.draw?tring:=MS=Vctai,3<,D<;2 33 g.draw?tring:=KS=Vctao,3<,1@@;2 35 g.draw?tring:=WS=Vctau,3<,11<;2 C 39 public void action*erformed:7ctionEvent e; 8 3< if:e.get?ource:;JJentrada;8 3> char vocalJ:entrada.get'ext:;;.char7t:@;2 3A entrada.set'ext:==;2 3D switch:vocal;8 3E case X7XScase XaXS 5@ VVctaa2 51 breaU2 53 case XEXScase XeXS 55 VVctae2 59 breaU2 5< case XMXScase XiXS 5> VVctai2 5A breaU2 5D case XKXScase XoXS 5E VVctao2 9@ breaU2 91 case XWXScase XuXS 93 VVctau2 95 breaU2 99 defaultS 9< show?tatus:=Bocal no existe. /igite Ouevamente.=;2 9> breaU2 C 9A repaint:;2 C C C 'n%lisis "rograma ()nea 3A Se crean " se inicializan las variables taa& tae& tai& tao& tau& con un valor de cero (H)& que servirn para llevar el acumulado de cada una de las vocales que el usuario ira digitando ()nea 16 C 2-4 Se imprime por pantalla la cantidad de cada vocal que el usuario /a digitado ()nea 204 Se crea una variable llamada voal de tipo ,ar que permitir almacenar cada una de las vocales que el usuario digitar Se utiliza el m,todo ,ar't2n& de la clase String& el cual permite seleccionar un carcter en una posici1n n de una cadena de caracteres 2n el ejemplo se utiliza ,ar't en la posici1n H& lo que permite e'traer de la caja de te'to entrada el carcter en la posici1n cero ()nea 234 Se utiliza el m,todo setText2&# al cual se le env3a como parmetro dobles comillas sin espacio para limpiar la caja de te'to entrada. ()nea 26 C .04 !a palabra reservada swit, va seguida de la variable voal 2l valor de la variable se compara con cada uno de los ase para determinar que tipo de vocal digit1 el usuario 6or cada ase debe e'istir un breaG para permitir a la estructura swit, salir cuando se encuentre el caso especifico Si no se encuentra el ase que cumpla con el valor de la variable voal& se tomar la alternativa de5ault que en este caso mostrar el mensaje C;ocal no e'iste (igite :uevamenteB 6ara esto se utiliza el m,todo s,owStatus que permite visualizar el mensaje en la barra de estado del applet +l compilar " ejecutar el +pplet se visualizara la siguiente figura4 *igura -./. $jeui!n "rograma Case'"" b& Programa 'ut!nomo
1 import java.awt.$2 3 import java.awt.event.$2 5 import javax.swing.$2 9 public class Case7uto extends &"rame implements 7ction-istener 8 < &-abel etiqueta2 > &'ext"ield entrada2 A int ctaaJ@,ctaeJ@,ctaiJ@,ctaoJ@,ctauJ@2 D public Case7uto:; 8 E Container contenedorJgetContent*ane:;2 1@ contenedor.set-ayout:new "low-ayout:;;2 11 etiquetaJnew &-abel:=/igite una letraS=;2 13 entradaJnew &'ext"ield:1@;2 15 contenedor.add:etiqueta;2 19 contenedor.add:entrada;2 1< entrada.add7ction-istener:this;2 1> set?ize:5@@,5@@;2 1A setBisible:true;2 C 1D public void paint :4raphics g; 8 1E g.draw?tring:='otales para cada vocalS=,3<,D@;2 3@ g.draw?tring:=7S=Vctaa,3<,E<;2 31 g.draw?tring:=ES=Vctae,3<,11@;2 33 g.draw?tring:=MS=Vctai,3<,13<;2 35 g.draw?tring:=KS=Vctao,3<,19@;2 39 g.draw?tring:=WS=Vctau,3<,1<<;2 C
3< public void action*erformed:7ctionEvent e; 8 3> if:e.get?ource:;JJentrada;8 3A char vocalJ:entrada.get'ext:;;.char7t:@;2 3D entrada.set'ext:==;2RRborra campo de texto 3E switch:vocal;8 5@ case X7XScase XaXS 51 VVctaa2 53 breaU2 55 case XEXScase XeXS 59 VVctae2 5< breaU2 5> case XMXScase XiXS 5A VVctai2 5D breaU2 5E case XKXScase XoXS 9@ VVctao2 91 breaU2 93 case XWXScase XuXS 95 VVctau2 99 breaU2 9< defaultS 9> &Kption*ane.show,essage/ialog: null, =Oo es una vocal..=,=.esultado=, &Kption*ane.*-7MON,E??74E ;2 9A ?ystem.exit: @ ;2 9D breaU2 C 9E repaint:;2 C C <@ public static void main:?tringHI args; 8 <1 Case7uto miprogramaJ new Case7uto:;2 <3 miprograma.set/efaultCloseKperation:&"rame.ELM'NKONC-K?E;2 C C 'n%lisis "rograma ()nea .04 6ara visualizar un cuadro de dialogo en un programa aut1nomo se utiliza el m,todo s,owHessage<ialog2& de la clase J="tionPane 2n este caso al m,todo se le env3an cuatro argumentos separados por comas (&)4 el primero es la palabra reservada null& el segundo argumento que es el mensaje que se va a mostrar& el tercero en el titulo del cuadro de dialogo " el Fltimo es el tipo de cuadro de dialogo ()nea .34 Se utiliza el m,todo exit2&# de la clase S8stem para terminar la aplicaci1n Solo se ejecutara cuando el usuario digite una letra que no sea una vocal 2s una buena prctica terminar las aplicaciones de este modo cuando se trabaja con interfaz grafica de usuario +l compilar " ejecutar el programa +ut1nomo se visualizara la siguiente figura4 *igura -.0. $jeui!n "rograma Case'uto
-... $strutura de re"etii!n 5or !a estructura de repetici1n 5or ejecuta una acci1n mientras una condici1n sea verdadera Su formato es4 for:inicializaci%n2 condici%n N verdadera2 incremento % decremento; 8 acci%n2 C -...1. $jem"lo "r%tio 5or Crear un programa aut1nomo " un applet que imprima los nFmeros pares entre < " IH& as3 como su sumatoria a& Sub"rograma '""let 1 import java.awt.$2 3 import java.awt.event.$2 5 import javax.swing.$2 9 public class Ciclo"or extends &7pplet 8 < int sumaJ@,numero2 > public void init:; 8 A Container contenedorJgetContent*ane:;2 D contenedor.set-ayout:new "low-ayout:;;2 C 1@ public void paint :4raphics g; 11 8 13 int posyJ9@2 15 super.paint:g;2 19 g.draw?tring:=Mmpresion de los numeros pares entre 3 y 5@=,3<,3<;2 1< for :numeroJ32numeroPJ5@2numeroJnumeroV3; 8 1> g.draw?tring:Mnteger.to?tring:numero;,3<,posy;2 1A posyVJ1<2 1D sumaJsumaVnumero2 C 1E g.draw?tring:=-a suma de los n0meros esS =V suma, 3<,posy;2 C C 'n%lisis Programa ()nea /A Se crean dos variables4 suma& la cual es inicializada en cero (H) " servir para llevar el acumulado de los nFmeros pares& " la variable numero que permitir asignarle el valor de lo capturado en la caja de te'to entrada ()nea 124 Se crea una variable "os8 la cual es inicializada en cuarenta (=H) " sirve para mover la posici1n de impresi1n de cada uno de los nFmeros pares ()nea 1/ 16A Se crea el ciclo 5or& donde se inicializa la variable numero con un valor de dos (<)& se evalFa que la variable numero sea menor o igual a treinta (IH) 8ientras la condici1n sea verdadera se imprimir en pantalla el numero par& adems se ir incrementando la variable numero de < en < 2n la impresi1n se utiliza el m,todo toString de la clase Bnteger para convertir un String a int 2n la l3nea *L se va llevando la sumatoria de cada uno de los nFmeros pares asignndosele a la variable suma ()nea 174 Se realiza la impresi1n de la sumatoria de los nFmeros pares entre < " IH +l ejecutarse& se visualizara la siguiente pantalla4 *igura -.3. $jeui!n "rograma Cilo*or'"" b& Programa'ut!nomo 1 import java.awt.$2 3 import java.awt.event.$2 5 import javax.swing.$2 9 public class Ciclo"or7uto extends &"rame 8 < int numero, sumaJ@2 > public Ciclo"or7uto:; 8 A super:=*rograma 7utonomo=;2 D Container contenedorJgetContent*ane:;2 E contenedor.set-ayout:new "low-ayout:;;2 1@ set?ize:9@@,9@@;2 11 setBisible:true;2 C 13 public void paint:4raphics g; 8 15 int posyJ<<2 19 g.draw?tring:=Mmpresion de los numeros pares entre 3 y 5@=,3<,9@;2 1< for :numeroJ32numeroPJ5@2numeroJnumeroV3; 8 1> g.draw?tring:Mnteger.to?tring:numero;,3<,posy;2 1A posyVJ1<2 1D sumaJsumaVnumero2 C 1E g.draw?tring:=-a suma de los n0meros esS =V suma, 3<,posy;2 C 3@ public static void main:?tring argsHI; 8 31 Ciclo"or7uto miprograma J new Ciclo"or7uto:;2 33 miprograma.set/efaultCloseKperation:&"rame.ELM'NKONC-K?E;2 C C 'n%lisis Programa ()nea 3A Se env3a al constructor de la clase J*rame el titulo que se quiere mostrar en el marco +l ejecutarse& se visualizara la siguiente pantalla4 *igura @o. -.6. $jeui!n "rograma Cilo*or'uto -./. $strutura de re"etii!n w,ile !a estructura repetitiva w,ile permite repetir una acci1n mientras la condici1n sea verdadera Cuando se ejecuta la instrucci1n w,ile# si la condici1n se evalFa como falsa no se realiza ninguna acci1n " el programa prosigue en la siguiente instrucci1n despu,s del ciclo Si la condici1n es verdadera& se ejecuta las acciones que estn en el ciclo 2ste proceso se repetir mientras la condici1n sea verdadera while: condici%nNverdadera; 8 acci%n2 incremento % decremento2 C -./.1. $jem"lo "r%tio w,ile ?ealizar un programa tanto aut1nomo como applet que permita capturar *H nFmeros enteros e imprimir el ma"or " el menor de dic/os nFmeros @ota4 !os nFmeros enteros pueden estar en el rango de ms infinito /asta menos infinito a& Sub"rograma '""let 1 import java.awt.$2 3 import java.awt.event.$2 5 import javax.swing.$2 9 public class Ciclo#hile7pp extends &7pplet implements 7ction-istener 8 < &-abel etiqueta2 > &'ext"ield entrada2 A int auxiliarJ@,numero,mayor,menor2 D public void init:; 8 E Container contenedorJgetContent*ane:;2 1@ contenedor.set-ayout:new "low-ayout:;;2 11 etiquetaJnew &-abel:=/igite un numeroS=;2 13 entradaJnew &'ext"ield:1@;2 15 contenedor.add:etiqueta;2 19 contenedor.add:entrada;2 1< entrada.add7ction-istener:this;2 C 1> public void paint :4raphics g; 8 1A super.paint:g;2 1D if :auxiliarJJ1; 8 1E mayorJnumero2 3@ menorJnumero2 C 31 if:mayorPnumero; 33 mayorJnumero2 35 if:menorQnumero; 39 menorJnumero2 3< g.draw?tring:=El mayor esS=Vmayor,3<, D@;2 3< g.draw?tring:=El menor esS=Vmenor,3<, 1@@;2 C 3> public void action*erformed:7ctionEvent e; 8 3A while:auxiliarP1@; 8 3D if:e.get?ource:;JJentrada; 8 3E numeroJMnteger.parseMnt:entrada.get'ext:;;2 5@ entrada.set'ext:==;2 51 auxiliarVV2 53 repaint:;2 C C 55 entrada.setEditable:false;2 C C 'n%lisis "rograma ()nea 3A Se crean cuatro variables de tipo int4 la primera llamada auxiliar& la cual es inicializada en cero (H) " servir para llevar la cuenta de los nFmeros que se /an digitado& la segunda es numero " servir para guardar cada uno de los valores capturados por teclado& la tercera es ma8or que servir para guardar el ma"or de los nFmeros capturados " por Fltimo menor que servir para almacenar el menor valor capturado por teclado ()nea 16 2/A Se tiene una primera condici1n i5 que pregunta si la variable auxiliar es igual a * Si se cumple la condici1n se inicializan las variables ma8or " menor con el valor que contenga en ese momento la variable numero 6or otro lado se tiene dos condiciones i5 para ir evaluando el valor de ma8or " de menor contra el valor de la variable nFmero. Si se cumple la condici1n verdadera en alguno de las dos condiciones i5 se le asignara el valor de numero a la respectiva variable 6or Fltimo se /ace una impresi1n de las variables ma8or " menor +l ejecutar el programa e ir digitando los nFmeros se ir visualizando el ma"or " el menor valor capturado ()nea 23 --A Se crea un ciclo w,ile& donde la condici1n ser verdadera mientras que la variable auxiliar sea menor de *H Se evalFa si el evento ocurrido se /a realizado en la caja de te'to entrada# si es verdad& a la variable nFmero se le asigna el valor capturado por teclado 6or otro lado se limpia la caja de te'to entrada " se incrementa en uno el valor de la variable auxiliar +dems se llama al m,todo re"aint para que actualice los valores de ma8or " menor 6or Fltimo se utiliza el m,todo set$ditable con el parmetro 5alse para que no se puedan digitar mas nFmeros cuando se /a"a terminado el ciclo w,ile +l ejecutarse el applet " digitarse los nFmeros *<& *J& <=& =<& *<H& LJ& *&M>& NL& OO& se visualizara la siguiente figura4 *igura -.7. $jeui!n "rograma CiloI,ile'"" b& Programa 'ut!nomo 1 import java.awt.$2 3 import java.awt.event.$2 5 import javax.swing.$2 9 public class Ciclo#hile7uto extends &"rame implements 7ction-istener 8 < &-abel etiqueta2 > &'ext"ield entrada2 A int auxiliarJ@,numero,mayor,menor2 D public Ciclo#hile7uto:; 8 E super:=*rograma 7utonomo=;2 1@ Container contenedorJgetContent*ane:;2 11 contenedor.set-ayout:new "low-ayout:;;2 13 etiquetaJnew &-abel:=/igite un numeroS=;2 15 entradaJnew &'ext"ield:1@;2 19 contenedor.add:etiqueta;2 1< contenedor.add:entrada;2 1> entrada.add7ction-istener:this;2 1A set?ize:5@@,5@@;2 1D setBisible:true;2 C 1E public void paint :4raphics g; 8 3@ super.paint:g;2 31 if :auxiliarJJ1; 33 8 35 mayorJnumero2 39 menorJnumero2 C 3< if:mayorPnumero; 3> mayorJnumero2 3A if:menorQnumero; 3D menorJnumero2 3E g.draw?tring:=El mayor esS=Vmayor,3<, D@;2 5@ g.draw?tring:=El menor esS=Vmenor,3<, 1@@;2
C 51 public void action*erformed:7ctionEvent e; 8 53 while:auxiliarP1@; 55 8 59 if:e.get?ource:;JJentrada; 8 5< numeroJMnteger.parseMnt:entrada.get'ext:;;2 5> entrada.set'ext:==;2 5A auxiliarVV2 5D repaint:;2 C C 5E entrada.setEditable:false;2 C 9@ public static void main:?tring argsHI; 8 91 Ciclo#hile7uto miprograma J new Ciclo#hile7uto:;2 93 miprograma.set/efaultCloseKperation:&"rame.ELM'NKONC-K?E;2 C C 2l anterior programa aut1nomo realiza las mismas operaciones que realiza el applet +l ejecutarse el programa aut1nomo " digitarse los nFmeros *<&*J&<=&=<&*<H&LJ&*&M >&NL&OO& se visualizara la siguiente figura4 *igura -.19. $jeui!n "rograma CiloI,ile'uto -.0. $strutura de re"etii!n do C w,ile 2n ocasiones es necesario que un ciclo de repetici1n se ejecute por lo menos una vez antes de evaluar la condici1n !a estructura do C w,ile ejecuta una acci1n /asta que se cumpla una condici1n determinada que se comprueba al final del ciclo !a estructura de repetici1n do C w,ile se repite mientras el valor de la condici1n sea falso do 8 acci%n2 incremento % decremento Cwhile(condici%nNfalsa;2 -.0.1. $jem"lo "r%tio doCw,ile Crear un programa aut1nomo " un applet que imprima los nFmeros pares entre * " IH& as3 como su sumatoria a& Sub"rograma '""let 1 import java.awt.$2 3 import java.awt.event.$2 5 import javax.swing.$2 9 public class Ciclo/o#hile7pp extends &7pplet 8 < int sumaJ@,numero2 > public void init:; 8 A Container contenedorJgetContent*ane:;2 D contenedor.set-ayout:new "low-ayout:;;2 C E public void paint :4raphics g; 1@ 8int posyJ9@2 11 int numeroJ32 13 super.paint:g;2 15 g.draw?tring:=Mmpresi%n de los n0meros pares entre 3 y 5@=,3<,3<;2 19 do 8 1< g.draw?tring:Mnteger.to?tring:numero;,3<,posy;2 1> posyVJ1<2 1A sumaJsumaVnumero2 1D numeroJnumeroV32 1E Cwhile:numeroPJ5@;2 3@ g.draw?tring:=-a suma de los n0meros esS =V suma, 3<,posy;2 C C 'n%lisis "rograma ()nea 11A Se crean una variable llamada numero& la cual es inicializada con el valor de dos (<) " servir para incrementar dic/a variable en dos unidades /asta que se cumpla la condici1n del ciclo ()nea 1. 17 4 Se inicia la estructura doCw,ileD se /ace la impresi1n del valor de la variable numero " se le asigna a la variable suma el valor que contiene dic/a variable mas el nuevo valor de la variable numero& adems se incrementa la variable numero en dos unidades 6or Fltimo se evalFa la condici1n del ciclo Si el valor de la variable numero es menor o igual a treinta (IH) se volver al ciclo& sino se saldr del ciclo " se imprimir la suma de los nFmeros pares entre * " IH *igura -.11. $jeui!n "rograma Cilo<oI,ile'"" b& Programa 'ut!nomo 1 import java.awt.$2 3 import java.awt.event.$2 5 import javax.swing.$2 9 public class Ciclo/o#hile7uto extends &"rame 8 < int numero, sumaJ@2 > public Ciclo/o#hile7uto:; A 8 D super:=*rograma 7utonomo=;2 E Container contenedorJgetContent*ane:;2 1@ contenedor.set-ayout:new "low-ayout:;;2 11 set?ize:9@@,9@@;2 13 setBisible:true;2 C 15 public void paint:4raphics g; 8 19 int posyJ<<2 1< int numeroJ32 1> g.draw?tring:=Mmpresi%n de los numeros pares entre 3 y 5@=,3<,9@;2 1A do 8 1D g.draw?tring:Mnteger.to?tring:numero;,3<,posy;2 1E posyVJ1<2 3@ sumaJsumaVnumero2 31 numeroJnumeroV32 33 Cwhile:numeroPJ5@;2 35 g.draw?tring:=-a suma de los n0meros esS =V suma, 3<,posy;2 C 39 public static void main:?tring argsHI; 8 3< Ciclo/o#hile7uto miprograma J new Ciclo/o#hile7uto:;2 3> miprograma.set/efaultCloseKperation:&"rame.ELM'NKONC-K?E;2 C C 2n el anterior programa aut1nomo& se realizan las mismas instrucciones que se utilizaron en el subprograma applet *igura -.12. $jeui!n "rograma Cilo<oI,ile'uto -.3. $jeriios "ro"uestos ?ealizar los siguientes programas tanto en applet como en aut1nomo * @acer un programa que capture un numero por tecleado e imprima si es par o impar < @acer un programa que capture tres nFmeros e imprima cual es el ma"or& el del medio " el menor I 2scribir un programa que capture un nFmero e imprima si es menor de *J& si es ma"or de JH o s3 est entre *O " => = @acer un programa que capture dos nFmeros e imprima la suma& la resta& la divisi1n& la multiplicaci1n " el residuo de la divisi1n J @acer un programa que pida al usuario digitar en /ora militar la /ora& los minutos& los segundos e imprima la /ora& los minutos " los segundos un segundo despu,s O 2scribir un programa que sume los nFmeros enteros de * a *HH& utilizando las estructura de repetici1n for& w/ile& do w/ile N 2scribir un programa que capture un nFmero e imprima si dic/o numero es primo o no L 2scribir un programa que permita leer una cadena de caracteres e imprimir cuantas vocales e'isten de cada una > 2scribir un programa que permita imprimir todos los nFmeros primos entre I " >>> inclusive *H 2scribir un programa para imprimir la suma de los nFmeros impares menores o iguales que n donde n es un nFmero digitado por teclado