Está en la página 1de 58

Instituto Tecnolgico de Chilpancingo Academia de Ingeniera en Sistemas computacionales

Curso Propedutico Mtodos Formales de Programacin


Para las carreras Ingeniera en Informtica, Ingeniera en Sistemas Computacionales Junio del 2012

Contenido 1. INTRODUCCION A LA PROGRAMACION ESTRUCTURADA. 1.1. Orgenes y caractersticas del lenguaje de programacin JAVA 1.2. Definiciones bsicas. 1.2.1. Software. 1.2.1.1. Software de sistema. 1.2.1.2. Software de aplicacin. 1.2.2. Hardware. 1.2.3. Algoritmo y Programa 1.2.4. Lenguaje de programacin. 1.2.5. Cdigo fuente 1.2.6. Cdigo ejecutable. 1.2.7. Ciclo de desarrollo de un programa. 1.3. Estructura de un programa. 1.4. Entorno del compilador. 1.4.1. Instalacin del Lenguaje Java (J2SDK Ver. 1.4.0.0.3) 1.4.2. Instalacin del Ambiente de Programacin (JCreator Profesional 2.5) 1.4.3. Revisin del las opciones del ambiente de Programacin 1.4.4. Ajustes al rea de Trabajo. 2. ESTRUCTURA BSICA DE LA INFORMACION. 2.1. Representacin de datos. 2.1.1. Tipos de datos 2.1.2. Variables y constantes. 2.2. Aritmtica de los datos. 2.2.1. Introduccin. 2.2.2. Operadores matemticos. 2.2.3. Operadores lgicos. 2.2.4. Operadores relacinales. 2.2.5. Operadores de asignacin. 2.2.6. Operadores de incremento y decremento. 2.2.7. evaluacin de expresiones. 2.3. Manipulacin de datos. 2.3.1. Salida de datos. 2.3.2. Entrada de datos. 3. ESTRUCTURAS DE CONTROL. 3.1. Instruccin if simple. 3.2. Instruccin if compuesta (if else). 3.3. Instruccin switch. 3.4. Desarrollo de aplicaciones 4. ESTRUCTURAS DE CONTROL REPETITIVAS (CICLOS). 4.1. Instruccin for. 4.2. Instruccin while. 4.3. Instruccin do - while. 4.4. Desarrollo de aplicaciones

5. ARREGLOS. 5.1. Introduccin. 5.2. Arreglos unidimensionales. 5.2.1. Declaracin de un arreglo. 5.2.2. Introduccin de datos. 5.2.3. Operaciones con arreglos. 5.2.4. Desarrollo de aplicaciones 5.3. Arreglos bidimensionales. 5.3.1. Declaracin de un arreglo. 5.3.2. Introduccin de datos. 5.3.3. Operaciones con arreglos. 5.3.4. Desarrollo de aplicaciones

Bibliografa:
Como programar en JAVA H. M. Deitel / P. J. Deitel Prentice Hall Programacin en C. Metodologa, estructura de datos y objetos. Luis Joyanes Aguilar / Ignacio Zahonero Martnez Mc Graw Hill El lenguaje de programacin JAVA. Diseo e implementacin de programas Flix Garca / Jess Carretero / Javier Fernndez / Alejandro Caldern Prentice Hall JAVA para programadores Herbert Schildt Mc Graw Hill Programacin en JAVA. Algoritmos, estructuras de datos y objetos Luis Joyanes Aguilar Mc Graw Hill Problemas de metodologa de la programacin. Luis Joyanes Aguilar Mc Graw Hill

1.1 Orgenes y caractersticas del lenguaje de programacin JAVA Orgenes Los orgenes de Java se remontan al ao 1990, cuando un equipo de la compaa Sun Microsystems investigaba, bajo la direccin del ingeniero James Gosling, en el diseo y elaboracin de software para pequeos dispositivos electrnicos de consumo. En un primer momento se pens en la utilizacin de lenguajes de programacin como C o C++, pero para poder compilar un programa en estos lenguajes es preciso adaptarlo a las caractersticas de la plataforma en la que debe funcionar, esta situacin constitua un gran inconveniente para las compaas dedicadas a la construccin de dispositivos electrnicos, pues cada pocas semanas aparecen en el mercado versiones ms potentes y baratas de los chips utilizados, y por lo tanto, el software que se haba diseado para un chip determinado deba modificarse y adaptarse para explotar las caractersticas de los chips de reciente aparicin. Se hace patente la necesidad de introducir un nuevo lenguaje de programacin, que permita desarrollar programas independientes del tipo de plataforma. Los dispositivos que se pretenden fabricar son calculadoras, relojes, equipos de msica, cafeteras, etc., que no tienen una gran capacidad computacional, por lo que el nuevo lenguaje debe ser capaz de generar programas pequeos y rpidos, adems de ser fiables y robustos. La primera versin de este nuevo lenguaje se denomin Oak (roble), pero ms tarde Sun descubri que este nombre estaba ya registrado, y lo tuvieron que cambiar, el nuevo nombre fue Java (una de las versiones sobre el significado del nombre es que Java es un trmino popularmente empleado en California para designar caf de buena calidad). A comienzos de 1993 aparecieron nuevas herramientas grficas para facilitar la comunicacin y navegacin por Internet, se concibi la idea de aplicar tcnicas de documentos con enlaces de tipo hipertextual para facilitar la navegacin por Internet, y se desarroll el primer browser (navegador Web o visualizador) de lo que se comenz a denominar World Wide Web. Esta herramienta era denominada Mosaic. El equipo de James Gosling se plante como objetivo la utilizacin de Java como lenguaje en el que escribir aplicaciones que pudiesen funcionar a travs de Internet. Como resultado de su trabajo se desarroll un nuevo navegador completamente escrito en Java, llamado HotJava. Este navegador permita la integracin de pequeas aplicaciones en el interior de las pginas Web. El desarrollo de HotJava hizo patente que las caractersticas de Java se adaptan perfectamente a las peculiaridades de Internet. A partir de su primera y sencilla versin Java ha ido creciendo progresiva y espectacularmente para pasar a ofrecer un potente y complejo lenguaje con el que se pueden abarcar una gran cantidad de campos. Caractersticas de Java Las caractersticas principales que nos ofrece Java respecto a cualquier otro lenguaje de programacin, son: Es SIMPLE : Java ofrece toda la funcionalidad de un lenguaje potente, pero sin las caractersticas menos usadas y ms confusas de stos. C++ es un lenguaje que adolece de falta de seguridad, pero C y C++ son lenguajes ms difundidos, por ello Java se dise para ser parecido a C++ y as facilitar un rpido y fcil aprendizaje.

Java elimina muchas de las caractersticas de otros lenguajes como C++, para mantener reducidas las especificaciones del lenguaje y aadir caractersticas muy tiles como el garbage collector (reciclador de memoria dinmica). No es necesario preocuparse de liberar memoria, el reciclador se encarga de ello y como es un thread de baja prioridad, cuando entra en accin, permite liberar bloques de memoria muy grandes, lo que reduce la fragmentacin de la memoria. Java reduce en un 50% los errores ms comunes de programacin con lenguajes como C y C++ al eliminar muchas de las caractersticas de stos, entre las que destacan: aritmtica de punteros no existen referencias registros (struct) definicin de tipos (typedef) macros (#define) necesidad de liberar memoria (free) Aunque, en realidad, lo que hace es eliminar las palabras reservadas (struct, typedef), ya que las clases son algo parecido. Adems, el intrprete completo de Java que hay en este momento es muy pequeo, solamente ocupa 215 Kb de RAM.

Es ORIENTADO A OBJETOS : Java implementa la tecnologa bsica de C++ con algunas mejoras y elimina algunas cosas para mantener el objetivo de la simplicidad del lenguaje. Java trabaja con sus datos como objetos y con interfaces a esos objetos. Soporta las tres caractersticas propias del paradigma de la orientacin a objetos: encapsulacin, herencia y polimorfismo. Las plantillas de objetos son llamadas, como en C++, clases y sus copias, instancias . Estas instancias, como en C++, necesitan ser construidas y destruidas en espacios de memoria. Java incorpora funcionalidades inexistentes en C++ como por ejemplo, la resolucin dinmica de mtodos. Esta caracterstica deriva del lenguaje Objective C, propietario del sistema operativo Next. En C++ se suele trabajar con libreras dinmicas (DLLs) que obligan a recompilar la aplicacin cuando se retocan las funciones que se encuentran en su interior. Este inconveniente es resuelto por Java mediante una interfaz especfica llamada RTTI ( RunTime Type Identification ) que define la interaccin entre objetos excluyendo variables de instancias o implementacin de mtodos. Las clases en Java tienen una representacin en el runtime que permite a los programadores interrogar por el tipo de clase y enlazar dinmicamente la clase con el resultado de la bsqueda.

Es DISTRIBUIDO : Java se ha construido con extensas capacidades de interconexin TCP/IP. Existen libreras de rutinas para acceder e interactuar con protocolos como http y ftp . Esto permite a los programadores acceder a la informacin a travs de la red con tanta facilidad como a los ficheros locales. La verdad es que Java en s no es distribuido, sino que proporciona las libreras y herramientas para que los programas puedan ser distribuidos, es decir, que se corran en varias mquinas, interactuando.

Es ROBUSTO : Java realiza verificaciones en busca de problemas tanto en tiempo de compilacin como en tiempo de ejecucin. La comprobacin de tipos en Java ayuda a detectar errores, lo antes posible, en el ciclo de desarrollo. Java obliga a la declaracin explcita de mtodos, reduciendo as las posibilidades de error. Maneja la memoria para eliminar las preocupaciones por parte del programador de la liberacin o corrupcin de memoria. Tambin implementa los arrays autnticos , en vez de listas enlazadas de punteros, con comprobacin de lmites, para evitar la posibilidad de sobreescribir o corromper memoria resultado de punteros que sealan a zonas equivocadas. Estas caractersticas reducen drsticamente el tiempo de desarrollo de aplicaciones en Java. Adems, para asegurar el funcionamiento de la aplicacin, realiza una verificacin de los byte-codes , que son el resultado de la compilacin de un programa Java. Es un cdigo de mquina virtual que es interpretado por el intrprete Java. No es el cdigo mquina directamente entendible por el hardware, pero ya ha pasado todas las fases del compilador: anlisis de instrucciones, orden de operadores, etc., y ya tiene generada la pila de ejecucin de rdenes. Java proporciona, pues: Comprobacin de punteros Comprobacin de lmites de arrays Excepciones Verificacin de byte-codes Es de ARQUITECTURA NEUTRAL : Para establecer Java como parte integral de la red, el compilador Java compila su cdigo a un fichero objeto de formato independiente de la arquitectura de la mquina en que se ejecutar. Cualquier mquina que tenga el sistema de ejecucin ( run-time ) puede ejecutar ese cdigo objeto, sin importar en modo alguno la mquina en que ha sido generado. Actualmente existen sistemas run-time para Solaris 2.x, SunOs 4.1.x, Windows 95, Windows NT, Linux, Irix, Aix, Mac, Apple y probablemente haya grupos de desarrollo trabajando en el porting a otras plataformas.

El cdigo fuente Java se "compila" a un cdigo de bytes de alto nivel independiente de la mquina. Este cdigo (byte-codes) est diseado para ejecutarse en una mquina hipottica que es implementada por un sistema run-time, que s es dependiente de la mquina.

En una representacin en que tuvisemos que indicar todos los elementos que forman parte de la arquitectura de Java sobre una plataforma genrica, obtendramos una figura como la siguiente:

En ella podemos ver que lo verdaderamente dependiente del sistema es la Mquina Virtual Java (JVM) y las libreras fundamentales, que tambin nos permitiran acceder directamente al hardware de la mquina. Adems, habr APIs de Java que tambin entren en contacto directo con el hardware y sern dependientes de la mquina, como ejemplo de este tipo de APIs podemos citar: Java 2D: grficos 2D y manipulacin de imgenes Java Media Framework : Elementos crticos en el tiempo: audio, video... Java Animation: Animacin de objetos en 2D Java Telephony: Integracin con telefona Java Share: Interaccin entre aplicaciones multiusuario Java 3D: Grficos 3D y su manipulacin Es SEGURO : La seguridad en Java tiene dos facetas. En el lenguaje, caractersticas como los punteros o el casting implcito que hacen los compiladores de C y C++ se eliminan para prevenir el acceso ilegal a la memoria. Cuando se usa Java para crear un navegador, se combinan las caractersticas del lenguaje con protecciones de sentido comn aplicadas al propio navegador. El lenguaje C, por ejemplo, tiene lagunas de seguridad importantes, como son los errores de alineacin . Los programadores de C utilizan punteros en conjuncin con operaciones aritmticas. Esto le permite al programador que un puntero referencie a un lugar conocido de la memoria y pueda sumar (o restar) algn valor, para referirse a otro lugar de la memoria. Si otros programadores conocen nuestras estructuras de datos pueden extraer informacin confidencial de nuestro sistema. Con un lenguaje como C, se pueden tomar nmeros enteros aleatorios y convertirlos en punteros para luego acceder a la memoria: printf( "Escribe un valor entero: " ); scanf( "%u",&puntero );

printf( "Cadena de memoria: %sn",puntero ); Otra laguna de seguridad u otro tipo de ataque, es el Caballo de Troya . Se presenta un programa como una utilidad, resultando tener una funcionalidad destructiva. Por ejemplo, en UNIX se visualiza el contenido de un directorio con el comando ls . Si un programador deja un comando destructivo bajo esta referencia, se puede correr el riesgo de ejecutar cdigo malicioso, aunque el comando siga haciendo la funcionalidad que se le supone, despus de lanzar su carga destructiva. Por ejemplo, despus de que el caballo de Troya haya enviado por correo el /etc/shadow a su creador, ejecuta la funcionalidad de ls persentando el contenido del directorio. Se notar un retardo, pero nada inusual. El cdigo Java pasa muchos tests antes de ejecutarse en una mquina. El cdigo se pasa a travs de un verificador de byte-codes que comprueba el formato de los fragmentos de cdigo y aplica un probador de teoremas para detectar fragmentos de cdigo ilegal -cdigo que falsea punteros, viola derechos de acceso sobre objetos o intenta cambiar el tipo o clase de un objeto-. Si los byte-codes pasan la verificacin sin generar ningn mensaje de error, entonces sabemos que: El cdigo no produce desbordamiento de operandos en la pila El tipo de los parmetros de todos los cdigos de operacin son conocidos y correctos No ha ocurrido ninguna conversin ilegal de datos, tal como convertir enteros en punteros El acceso a los campos de un objeto se sabe que es legal: public, private, protected No hay ningn intento de violar las reglas de acceso y seguridad establecidas El Cargador de Clases tambin ayuda a Java a mantener su seguridad, separando el espacio de nombres del sistema de ficheros local, del de los recursos procedentes de la red. Esto limita cualquier aplicacin del tipo Caballo de Troya , ya que las clases se buscan primero entre las locales y luego entre las procedentes del exterior. Las clases importadas de la red se almacenan en un espacio de nombres privado, asociado con el origen. Cuando una clase del espacio de nombres privado accede a otra clase, primero se busca en las clases predefinidas (del sistema local) y luego en el espacio de nombres de la clase que hace la referencia. Esto imposibilita que una clase suplante a una predefinida. En resumen, las aplicaciones de Java resultan extremadamente seguras, ya que no acceden a zonas delicadas de memoria o de sistema, con lo cual evitan la interaccin de ciertos virus. Java no posee una semntica especfica para modificar la pila de programa, la memoria libre o utilizar objetos y mtodos de un programa sin los privilegios del kernel del sistema operativo. Adems, para evitar modificaciones por parte de los crackers de la red, implementa un mtodo ultraseguro de autentificacin por clave pblica. El Cargador de Clases puede verificar una firma digital antes de realizar una instancia de un objeto. Por tanto, ningn objeto se crea y almacena en memoria, sin que se validen los privilegios de acceso. Es decir, la seguridad se integra en el momento de compilacin, con el nivel de detalle y de privilegio que sea necesario. Dada, pues la concepcin del lenguaje y si todos los elementos se mantienen dentro del estndar marcado por Sun, no hay peligro. Java imposibilita, tambin, abrir ningn fichero de la mquina local (siempre que se realizan operaciones con archivos, stas trabajan sobre el disco duro de la mquina de donde parti el applet), no permite ejecutar ninguna aplicacin nativa de una plataforma e impide que se utilicen otros ordenadores como puente, es decir, nadie puede utilizar nuestra mquina para hacer peticiones o realizar operaciones con otra. Adems, los intrpretes que incorporan los navegadores de la Web son an ms restrictivos. Bajo estas condiciones (y dentro de la filosofa de que el nico ordenador seguro es el que est apagado, desenchufado, dentro de una cmara acorazada en un bunker y rodeado por mil soldados de los cuerpos especiales del ejrcito), se puede considerar que Java es un lenguaje seguro y que los applets estn libres de virus.

Respecto a la seguridad del cdigo fuente, no ya del lenguaje, JDK proporciona un desemsamblador de bytecode, que permite que cualquier programa pueda ser convertido a cdigo fuente, lo que para el programador significa una vulnerabilidad total a su cdigo. Utilizando javap no se obtiene el cdigo fuente original, pero s desmonta el programa mostrando el algoritmo que se utiliza, que es lo realmente interesante. La proteccin de los programadores ante esto es utilizar llamadas a programas nativos, externos (incluso en C o C++) de forma que no sea descompilable todo el cdigo; aunque as se pierda portabilidad. Esta es otra de las cuestiones que Java tiene pendientes.

Es PORTABLE : Ms all de la portabilidad bsica por ser de arquitectura independiente, Java implementa otros estndares de portabilidad para facilitar el desarrollo. Los enteros son siempre enteros y adems, enteros de 32 bits en complemento a 2. Adems, Java construye sus interfaces de usuario a travs de un sistema abstracto de ventanas de forma que las ventanas puedan ser implantadas en entornos Unix, Pc o Mac.

Es INTERPRETADO : El intrprete Java (sistema run-time) puede ejecutar directamente el cdigo objeto. Enlazar (linkar) un programa, normalmente, consume menos recursos que compilarlo, por lo que los desarrolladores con Java pasarn ms tiempo desarrollando y menos esperando por el ordenador. No obstante, el compilador actual del JDK es bastante lento. Por ahora, que todava no hay compiladores especficos de Java para las diversas plataformas, Java es ms lento que otros lenguajes de programacin, como C++, ya que debe ser interpretado y no ejecutado como sucede en cualquier programa tradicional. Se dice que Java es de 10 a 30 veces ms lento que C, y que tampoco existen en Java proyectos de gran envergadura como en otros lenguajes. La verdad es que ya hay comparaciones ventajosas entre Java y el resto de los lenguajes de programacin, y una ingente cantidad de folletos electrnicos que supuran fanatismo en favor y en contra de los distintos lenguajes contendientes con Java. Lo que se suele dejar de lado en todo esto, es que primero habra que decidir hasta que punto Java, un lenguaje en pleno desarrollo y todava sin definicin definitiva, est maduro como lenguaje de programacin para ser comparado con otros; como por ejemplo con Smalltalk, que lleva ms de 20 aos en cancha. La verdad es que Java para conseguir ser un lenguaje independiente del sistema operativo y del procesador que incorpore la mquina utilizada, es tanto interpretado como compilado. Y esto no es ningn contrasentido, me explico, el cdigo fuente escrito con cualquier editor se compila generando el byte-code. Este cdigo intermedio es de muy bajo nivel, pero sin alcanzar las instrucciones mquina propias de cada plataforma y no tiene nada que ver con el p-code de Visual Basic. El byte-code corresponde al 80% de las instrucciones de la aplicacin. Ese mismo cdigo es el que se puede ejecutar sobre cualquier plataforma. Para ello hace falta el run-time, que s es completamente dependiente de la mquina y del sistema operativo, que interpreta dinmicamente el byte-code y aade el 20% de instrucciones que faltaban para su ejecucin. Con este sistema es fcil crear aplicaciones multiplataforma, pero para ejecutarlas es necesario que exista el run-time correspondiente al sistema operativo utilizado.

Es MULTITHREADED :

Al ser multithreaded (multihilvanado, en mala traduccin), Java permite muchas actividades simultneas en un programa. Los threads (a veces llamados, procesos ligeros), son bsicamente pequeos procesos o piezas independientes de un gran proceso. Al estar los threads contruidos en el lenguaje, son ms fciles de usar y ms robustos que sus homlogos en C o C++. El beneficio de ser miltithreaded consiste en un mejor rendimiento interactivo y mejor comportamiento en tiempo real. Aunque el comportamiento en tiempo real est limitado a las capacidades del sistema operativo subyacente (Unix, Windows, etc.), an supera a los entornos de flujo nico de programa (single-threaded) tanto en facilidad de desarrollo como en rendimiento. Cualquiera que haya utilizado la tecnologa de navegacin concurrente, sabe lo frustrante que puede ser esperar por una gran imagen que se est trayendo. En Java, las imgenes se pueden ir trayendo en un thread independiente, permitiendo que el usuario pueda acceder a la informacin en la pgina sin tener que esperar por el navegador.

Es DINAMICO : Java se beneficia todo lo posible de la tecnologa orientada a objetos. Java no intenta conectar todos los mdulos que comprenden una aplicacin hasta el tiempo de ejecucin. Las librera nuevas o actualizadas no paralizarn las aplicaciones actuales (siempre que mantengan el API anterior).

Java tambin simplifica el uso de protocolos nuevos o actualizados. Si su sistema ejecuta una aplicacin Java sobre la red y encuentra una pieza de la aplicacin que no sabe manejar, tal como se ha explicado en prrafos anteriores, Java es capaz de traer automticamente cualquiera de esas piezas que el sistema necesita para funcionar.

Java, para evitar que los mdulos de byte-codes o los objetos o nuevas clases, haya que estar trayndolos de la red cada vez que se necesiten, implementa las opciones de persistencia, para que no se eliminen cuando de limpie la cach de la mquina. 1.2 Definiciones bsicas. 1.2.1 Software. Se llama Software de Sistema o Software de Base al conjunto de programas que sirven para interactuar con el sistema, confiriendo control sobre el hardware, adems de dar soporte a otros programas. 1.2.1.1 Software de sistema. El Software de Sistema se divide en:

Sistema Operativo Controladores de Dispositivos Programas Utilitarios

Sistema operativo El Sistema Operativo es un conjunto de programas que administran los recursos de la computadora y controlan su funcionamiento. Un Sistema Operativo realiza cinco funciones bsicas: Suministro de Interfaz al Usuario, Administracin de Recursos, Administracin de Archivos, Administracin de Tareas y Servicio de Soporte. 1. Suministro de interfaz al usuario: Permite al usuario comunicarse con la computadora por medio de interfaces que se basan en comandos, interfaces que utilizan mens, e interfaces grficas de usuario. 2. Administracin de recursos: Administran los recursos del hardware como la CPU, memoria, dispositivos de almacenamiento secundario y perifricos de entrada y de salida. 3. Administracin de archivos: Controla la creacin, borrado, copiado y acceso de archivos de datos y de programas. 4. Administracin de tareas: Administra la informacin sobre los programas y procesos que se estn ejecutando en la computadora. Puede cambiar la prioridad entre procesos, concluirlos y comprobar el uso de estos en la CPU, as como terminar programas. 5. Servicio de soporte: Los Servicios de Soporte de cada sistema operativo dependen de las implementaciones aadidas a este, y pueden consistir en inclusin de utilidades nuevas, actualizacin

de versiones, mejoras de seguridad, controladores de nuevos perifricos, o correccin de errores de software. Controladores de Dispositivos Los Controladores de Dispositivos son programas que permiten a otros programa de mayor nivel como un sistema operativo interactuar con un dispositivo de hardware. Programas Utilitarios Los Programas Utilitarios realizan diversas funciones para resolver problemas especficos, adems de realizar tareas en general y de mantenimiento. Algunos se incluyen en el sistema operativo. 1.2.1.2 Software de Aplicacin El Software de Aplicacin son los programas diseados para o por los usuarios para facilitar la realizacin de tareas especficas en la computadora, como pueden ser las aplicaciones ofimticas (procesador de texto, hoja de clculo, programa de presentacin, sistema de gestin de base de datos...), u otros tipos de software especializados como software mdico, software educativo, editores de msica, programas de contabilidad, etc. 1.2.2 Hardware. Los componentes y dispositivos del Hardware se dividen en Hardware Bsico y Hardware Complementario

El Hardware Bsico: son las piezas fundamentales e imprescindibles para que la computadora funcione como son: Placa base, monitor, teclado y ratn. El Hardware Complementario: son todos aquellos dispositivos adicionales no esenciales como pueden ser: impresora, escner, cmara de vdeo digital, webcam, etc.

1.2.3 Algoritmo y Programa Un algoritmo Es una formula para resolver un problema. Es un conjunto de acciones o secuencia de operaciones que ejecutadas en un determinado orden resuelven el problema. Sus caractersticas son: Tiene que ser preciso, Tiene que estar bien definido y Tiene que ser finito. La programacin es adaptar el algoritmo al ordenador, adems el algoritmo es independiente segn donde lo implemente. Un programa es un conjunto de instrucciones que ejecutadas ordenadamente la solucin de un problema. 1.2.4 Lenguaje de programacin. Un lenguaje de programacin es aquel elemento dentro de la informtica que nos permite crear programas mediante un conjunto de instrucciones, operadores y reglas de sintaxis; que pone a disposicin del programador para que este pueda comunicarse con los dispositivos hardware y software existentes. 1.2.5 Cdigo fuente

El cdigo fuente de un programa informtico (o software) es un conjunto de lneas de texto que son las instrucciones que debe seguir la computadora para ejecutar dicho programa. Por tanto, en el cdigo fuente de un programa est descrito por completo su funcionamiento. El cdigo fuente de un programa est escrito por un programador en algn lenguaje de programacin, pero en este primer estado no es directamente ejecutable por la computadora, sino que debe ser traducido a otro lenguaje (el lenguaje mquina o cdigo objeto) que s pueda ser ejecutado por el hardware de la computadora. Para esta traduccin se usan los llamados compiladores, ensambladores, intrpretes y otros sistemas de traduccin. 1.2.6 Cdigo ejecutable. Archivo que contiene instrucciones que comprende el CPU para ejecutarlas. Generalmente se confunde con el cdigo objeto, ya que al leer su estructura se comprende como smbolos. Pero en realidad, este cdigo se encuentra empaquetado y listo para ser ejecutado en cualquier computadora. Generalmente vienen con la extensin EXE o COM, si los han de ejecutar computadoras con Sistema Operativo de Windows o con bits de marca que trae Linux para ser ejecutable.

1.2.7 Ciclo de desarrollo de un programa. El proceso de produccin de cualquier aplicacin informtica lleva consigo realizar una serie de tareas repartidas en cinco etapas, llamadas: anlisis, diseo, codificacin, pruebas y mantenimiento. A stas cinco etapas se les conoce como ciclo de vida de un producto software, o dicho de otra forma, el ciclo de vida de un programa son las distintas etapas por las que ste tiene que pasar durante su existencia. Definicin de anlisis Se obtendr una documentacin, en donde se especificar, claramente, cuales son los requisitos que el programa deber tener. A dicho documento se le llama Especificacin de Requisitos Software (ERS) y en l quedar escrito qu tiene que hacer el programa que se va a desarrollar, tanto en lo que se refiere al comportamiento interno (gestin de los datos) como al externo (interaccin con el usuario y con otras aplicaciones). Definicin de diseo Una vez que los requisitos de un programa han sido establecidos en la fase de anlisis, ya se puede iniciar la fase de diseo. En esta etapa se tiene que encontrar una solucin informtica al problema planteado. Dicha solucin determinar cmo se va a resolver el problema. Definicin de codificacin Una vez que los algoritmos de una aplicacin han sido diseados, ya se puede iniciar la fase de codificacin. En esta etapa se tienen que traducir dichos algoritmos a un lenguaje de programacin especfico; es decir, las acciones definidas en los algoritmos hay que convertirlas a instrucciones. Definicin de pruebas

Una vez obtenido el cdigo ejecutable de un programa depurado lo mximo posible, hay que comprobar, exhaustivamente, su funcionalidad. Para ello, se tiene que ejecutar tantas veces como se considere necesario, proporcionndole, cada vez, datos de entrada distintos, y comprobando si los datos de salida son siempre los esperados. El cdigo ejecutable de un programa es imposible que tenga errores de sintaxis, ya que, estos habrn sido detectados por el compilador y corregidos por el programador. Por tanto, las pruebas a realizar se deben centrar en la bsqueda de errores de ejecucin o de lgica. Definicin de mantenimiento En el ciclo de vida de un programa, la fase de mantenimiento de un software se puede realizar, bsicamente, en dos sentidos: reparacin o modificacin. 1.2 Estructura de un programa

1.4.1 Instalacin del Lenguaje Java (J2SDK Ver. 1.4.0.0.3) 1.4.2 Instalacin del Ambiente de Programacin (JCreator Profesional 2.5)

MANUAL DE INSTALACIN
JAVA2 SDK 1.4.2.19 JCreator Pro 4.5

JAVA2 SDK 1.4.2.19


Localizacin de los archivos de instalacin

Hacer doble clic en el archivo j2sdk1_4_2_19-windows-i586 p para iniciar la instalacin

Contrato de Licencia

Seleccione la opcin I accept the terms in the license agreement y pulse el botn Next (Siguiente)

Eleccin de los elementos a instalar y el directorio donde se alojarn los archivos

Ntese que el directorio de instalacin ser C:\j2sdk1.4.2_19; dje los parmetros por default y pulse el botn Next (Siguiente)

Integracin de la Mquina Virtual de Java a los Navegadores Web

Aparecern seleccionados los navegadores web que tenga instalados en su computadora, djelos seleccionados y pulse el botn Install (Instalar)

Copiando archivos de instalacin

Aparecern una barra indicando el progreso de la instalacin; espere a que finalice la copia de los archivos de java2sdk.

Fin de la instalacin

Una vez terminada la instalacin, pulse el botn Finish (Finalizar) Nota: Ser necesario reiniciar la computadora para completar la instalacin.

Preparando los archivos de ayuda

Copie la carpeta DOCS al directorio donde se instal el j2sdk (C:\j2sdk1.4.2_19)

JCreator Pro 4.5


Localizacin de los archivos de instalacin

Hacer doble clic en el archivo jcreator450_setup para iniciar la instalacin.

Asistente de Instalacin del JCreator Pro

Se recomienda cerrar todas las dems aplicaciones abiertas y posteriormente pulsar el botn Next (Siguiente)

Contrato de Licencia

Seleccione la opcin I accept the agreement y pulse el botn Next (Siguiente)

Seleccin del directorio de instalacin

Deje el directorio por default y pulse el botn Next (Siguiente)

Creacin del Acceso Directo

Seleccione la opcin Create a desktop icon para crear un acceso directo en el escritorio y pulse el botn Next (Siguiente). En el siguiente cuadro de dialogo que dice que NO EXISTE la carpeta de instalacin, de un clic en el botn Si (Yes) para crearla.

Resumen de la Instalacin

Se muestra un resumen de los parmetros seleccionados en el asistente de instalacin, pulse el botn Install (Instalar)

Copiando archivos de Instalacin

Espere a que se terminen de copiar los archivos de instalacin del JCreator Pro 2.5

Fin de la instalacin y ejecucin del JCreator Pro

Cercirese de dejar seleccionada la opcin Launch JCreator Pro y pulse el botn Finish (Finalizar)

Configuracin del JCreator Pro

En este punto es importante mencionar que debemos indicarle al JCreator Pro donde se encuentran los archivos del J2sdk que previamente fue instalado. Seleccione Save setting per user y pulse el botn Next (Siguiente).

Asociacin de los archivos generados con el JCreator Pro

Cabe hacer hincapi en que los programas que se desarrollen debern tener la extensin .JAVA para que puedan ser ejecutados por el j2sdk. Pulse el botn Next (Siguiente).

Localizacin automtica de j2sdk

El asistente de instalacin del JCreator Pro localizar automticamente el directorio donde fue instalado el j2sdk. Pulse el botn Next (Siguiente).

Localizacin automtica de los archivos de ayuda

El asistente de instalacin del JCreator Pro, localizar automticamente el directorio DOCS que fue copiado previamente en la carpeta de instalacin del j2sdk. Pulse el botn Finish (finalizar).

El entorno de desarrollo del JCreator Pro

Cabe hacer mencin de que hemos instalado una versin de 30 das del JCreator Pro, para lo cual registraremos el productor a fin de que eliminemos esa restriccin con la ayuda de un crack.

REGISTRO DEL JCREATOR PRO


Localizacin del programa Crack

Localice y ejecute con un doble clic el archivo Keygen

Registrando el JCreator Pro

Seleccione el men Help - Enter Registration Details del JCreator. Se mostrar una ventana indicando el ingreso de los datos de registro. Copie uno a uno los datos mostrados por el keygen y peguelos en la ventana de registro del JCreator

Nuestro primer programa Hola Mundo

Realizaremos un primer programa denominado HolaMundo.java, para lo cual en el JCreator daremos clic en el triangulo invertido que tiene a la derecha el botn New File de la barra de herramientas y posteriormente seleccionaremos Java Class.

Edicin y guardado del programa

Elimine todo lo que aparece en el editor y escriba el siguiente cdigo respentanto las maysculas y minsculas. Finalmente de clic en el men File Save as y guarde el archivo con el nombre HolaMundo.java

Compilacin y Ejecucin de HolaMundo

Para ejecutar el programa siga los siguiente pasos: 1.- Pulse el botn Build File, 2.- Pulse el botn Run Proyect , finalmente observar en la ventana General Output en mensaje Hola Mundo que es el resultado correcto de nuestro programa.

Acceso a la ayuda del j2sdk

Para acceder a la ayuda de alguna instruccin, seleccionela y pulse simultneamente la tecla CRTL y la tecla F1, posteriormente aparecer una ventana mostrando la ayuda de dicha instruccin (en ingls).

2. Estructura bsica de la informacin 2.1 Representacin de datos 2.1.1. Tipos de datos bsicos En Java todo lo que se mueve es un objeto... excepto los tipos de datos bsicos, los tipos de datos se clasifican en primitivos y referenciados. Los tipos primitivos se pueden clasificar en tipos numricos y de tipo bolean. A su vez, los tipos numricos se clasifican en tipos primitivos y tipos referenciados. Tipos primitivos: byte, short, int, long, float, double, boolean, char. Tipos referenciados son tres: clases, interfaces y arrays. Los valores de tamao de a cuerdo a su tipo de dato son como se muestra en la siguiente tabla: Tipo char byte short int long float Descripcin Carcter Entero muy pequeo Entero pequeo Entero normal Entero grande Tamao Clase equivalente 1 bit 16 bit 8 bit 16 bit 32 bit 64 bit Integer Long Float Double Boolean Character

boolean Valor lgico

Nmero real de precisin simple 32 bit

double Nmero real de doble precisin 64 bit

void Tipo vaco Podemos crear variables de estos tipos de la manera normal en todos los lenguajes que siguen a C: 2.1.2. Variables y constantes int numero = 12; El definir un valor al declararlos no es necesario, especialmente porque en Java todos tienen un valor por defecto (0 en los nmeros, false en los booleanos y el carcter nmero cero); en ese caso escribiramos simplemente: int numero; En algunas ocasiones, que veremos en el futuro, es necesario utilizar clases que representen los mismos valores que los tipos de datos bsicos. En esos casos utilizamos la clase equivalente. En nuestro ejemplo haramos: Integer numero = new Integer(12); Literales Los literales son el mecanismo utilizado para expresar un valor constante. Java utiliza cinco tipos de elementos: enteros, reales en coma flotante, booleanos, caracteres y cadenas: Tipo Enteros Reales Ejemplo 21, 0xDC 3.14, 2e12

Booleanos true, false Caracteres 'x', \t, \u0234 Cadenas "Esto es una cadena" Conviene fijarse en que, mientras los caracteres se expresan encerrados en comillas simples, las cadenas lo hacen en comillas dobles. Otros elementos de sintaxis Existen ms pequeos ladrillos con los que se construye el lenguaje, que veremos a continuacin. Identificadores Un identificador es un nombre que le damos a un elemento, es decir, una clase, un mtodo, una propiedad... Java distingue entre maysculas y minsculas y los identificadores pueden comenzar por una letra, un subrayado o un smbolo de dolar, siendo los siguientes caracteres letras o dgitos. Por ejemplo, son identificadores vlidos: contador _nombre_usuario $dinero Declaracin de constantes simblicas Declarar una constante simblica significa decirle al compilador de Java el nombre de la constante y su valor. Esto se hace utilizando el calificador final y/o static. Por ejemplo: final static int iNumConstante = 4; final static String sCadenaCte = sta es una cadena constante final double dNumCte = 3.1416. 2.2 Aritmtica de datos Operadores Java dispone de los operadores aritmticos clsicos y algn que otro ms: Descripcin Smbolo Expresin de ejemplo Resultado del ejemplo Multiplicacin Suma Resta Incremento Decremento * + ++ -2*4 5%2 2+2 7-2 2++ --2 8 1 4 5 3 1 Resto de una divisin entera %

Menos unario -(2+4) -6 Los operadores de comparacin toman dos cantidades numricas y las comparan, devolviendo un valor lgico que ser true si la comparacin fue exitosa y false en caso contrario. Podemos usar los siguientes: Descripcin Igualdad Desigualdad Smbolo Expresin de ejemplo Resultado del ejemplo == != 2==2 2!==2 true false

Menor que Mayor que

< >

2<2 3>2 2<=2 1>=2

false true true false

Menor o igual que <= Mayor o igual que >=

Los operadores lgicos permiten evaluar expresiones lgicas complejas: Descripcin Smbolo Expresin de ejemplo Resultado del ejemplo Negacin Y lgico ! && !(2==2) false (2 == 2) && (2 >= 0) true

O lgico || (2 == 2) || (2 != 2) true Existen otros operadores La concatenacin de cadenas, por ejemplo, se realiza con el smbolo +. Separadores Existen otros caracteres con significado especial en Java. Son los separadores: Separador Descripcin () {} [] ; , . Contienen listas de parmetros, tanto en la definicin de un mtodo como en la llamada al mismo. Tambin se utilizan para modificar la precedencia en una expresin, contener expresiones para control de flujo y realizar conversiones de tipo. Se utilizan para definir bloques de cdigo, definir mbitos y contener los valores iniciales de los vectores. Se utiliza tanto para declarar vectores o matrices como para referenciar valores dentro de los mismos. Separa sentencias. Separa identificadores consecutivos en la declaracin de variables y en las listas de parmetros. Tambin se utiliza para encadenar sentencias dentro de una estructura for.

Separa un nombre de propiedad o mtodo de una variable de referencia. Tambin separa nombre de paquete de los de un sub paquete o una clase. Operadores de Asignacin El resultado de asignacin es al valor asignado en el operando izquierdo, lgicamente de que la asignacin se ha realizada. Se incluye los operadores en la tabla siguiente: Operador Operacin ++ -= *= /= %= += Incrementar Decremento Asignacin simple Multiplicacin ms asignacin Divisin ms asignacin Mdulo ms asignacin Suma ms asignacin

-= 2.3 Manipulacin de datos


2.3.1. Salida de datos Ejemplo de aplicacin

Resta ms asignacin

Creando nuestra primera clase Vamos a empezar pronto con las cosas prcticas creando nuestra primera clase y viendo as cmo se programa, compila y ejecuta el cdigo Java. En Java, todo lo que hagamos ser programar clases. Cualquier programa ser una clase que a su vez podr hacer uso de una, dos, tres o ms clases. As pues, escribiremos el siguiente cdigo: Ejemplo 2.3.1.1: Saludos01 // Nombre: Saludos01.java /* ----------------------------------------------------------------------------------------------------------------------------- --Programa que muestra como se trabaja una aplicacin en java y adems como se maneja la salida de una cadena usando print ---------------------------------------------------------------------------------------------------------------------------- */ public class Saludos01{ public static void main(String sArgumentos[]) { System.out.print("Bienvenidos a la programacin "); System.out.print("en Java un lenguaje muy bonito \n"); } } Ejemplo 2.3.1.2: Saludos01 // Nombre: Saludos02.java /* ----------------------------------------------------------------------------------------------------------------------------- --* Programa que muestra como se trabaja una aplicacin en java adems como se maneja la salida de una * cadena usando println * ---------------------------------------------------------------------------------------------------------------------------- */ public class Saludos02 { public static void main(String[] sArgumentos) { System.out.println("Bienvenidos a la programacin "); System.out.println("en Java un lenguaje muy bonito"); } } Ejemplo 2.3.1.3: Saludos01 //Nombre: Saludos03 /* -----------------------------------------------------------------------------------------------------------------------------* Programa que muestra como se trabaja una aplicacin en java adems como se maneja la salida de una * cadena usando Salida n un cuadro de dilogo

----------------------------------------------------------------------------------------------------------------------------*/

import javax.swing.*; class Saludos03 { public static void main(String[] sargs) { JOptionPane.showMessageDialog(null,"Bienvenidos al lenguaje Java\nque es un bonito\nlenguaje de programacin"); System.exit(1); } } revisar en la ayuda de java lo siguiente: System.out.print o System.out.println esto se puede interpretar como clase = System; objeto = out; mtodo = print para ver que indica y como se puede usar. Tambin la clase JOptionPane 2.3.2 Entrada de datos //Nombre: /* ---------------------------------------------------------------------------------------------------------------------* Programa que muestra como se meten datos mediante el teclado por medio de un de cuadro dilogo. * ---------------------------------------------------------------------------------------------------------------------*/ import javax.swing.*; class Entrada { public static void main(String[] sargs) { String snum; snum = JOptionPane.showInputDialog("Dame un entero"); System.exit(1); } } Entrada y Salida de datos //Nombre: EntradaSalida /* ----------------------------------------------------------------------------------------------------------------------* Programa que muestra como se meten datos mediante el teclado por medio de un de cuadro dilogo. * ---------------------------------------------------------------------------------------------------------------------*/ import javax.swing.*; class EntradaSalida

{ public static void main(String[] sargs) { String snum; int inum; snum = JOptionPane.showInputDialog("Dame un entero"); inum = Integer.parseInt(snum); System.out.println("El dato es: " + inum); System.exit(1); } }

3.

Estructuras de control

DEFINICIN Las sentencias de decisin o tambin llamadas de CONTROL DE FLUJO son estructuras de control que realizan una pregunta la cual retorna verdadero o falso (evala una condicin) y selecciona la siguiente instruccin a ejecutar dependiendo la respuesta o resultado. En algn momento dentro de nuestros algoritmos, es preciso cambiar el flujo de ejecucin de las instrucciones, es decir, el orden en que las instrucciones son ejecutadas. Muchas de las veces tenemos que tomar una decisin en cuanto a que se debe ejecutar basndonos en una respuesta de verdadero o falso (condicin). La ejecucin de las instrucciones incluyendo una estructura de control como el condicional funcionan de esta manera: Las instrucciones comienzan a ejecutarse de forma secuencial (en orden) y cuando se llega a una estructura condicional, la cual esta asociada a una condicin, se decide que camino tomar dependiendo siempre del resultado de la condicin siendo esta falsa o verdadera. Cuando se termina de ejecutar este bloque de instrucciones se reanuda la ejecucin en la instruccin siguiente a la de la condicional. Sentencia if La instruccin if es, por excelencia, la ms utilizada para construir estructuras de control de flujo. SINTAXIS Primera Forma Ahora bien, la sintaxis utilizada en la programacin de Java es la siguiente: if (condicion) { Set de instrucciones } siendo "condicin" el lugar donde se pondr la condicin que se tiene que cumplir para que sea verdadera la sentencia y as proceder a realizar el "set de instrucciones" o cdigo contenido dentro de la sentencia. Segunda Forma Ahora veremos la misma sintaxis pero ahora le aadiremos la parte "Falsa" de la sentencia: if (condicion) { Set de instrucciones //PARTE VERDADERA } else { Set de instrucciones 2 //Parte FALSA } La forma mostrada anterior mente muestra la unin de la parte "VERDADERA" con la nueva secuencia la cual es la parte "FALSA" de la sentencia de decisin "IF" en la cual esta compuesta por el: else { Set de instrucciones 2 //Parte FALSA }

la palabra "else" o "De lo contrario" indica al lenguaje que de lo contrario al no ser verdadera o no se cumpla la parte verdadera entonces realizara el "set de instrucciones 2". EJEMPLOS DE SENTENCIAS IF... Ejemplo 1: if(numero == 0) //La condicin indica que tiene que ser igual a Cero { System.out.println("El Numero Ingresado es Igual a Cero"); } /* * * ----------------------------------------------------------------------------Programa que muestra como trabaja el if simple del ejemplo 1 ----------------------------------------------------------------------------*/

import javax.swing.*; class If01 { public static void main(String[] sargs) { String snum; int inum; snum = JOptionPane.showInputDialog("Dame un entero"); inum = Integer.parseInt(snum); if(inum == 0) System.out.println("El Numero Ingresado es Igual a Cero"); System.exit(1); } } Ejemplo 2: if(numero > 0) // la condicin indica que tiene que ser mayor a Cero { System.out.println("El Numero Ingresado es Mayor a Cero"); }

/* * *

--------------------------------------------------------Programa que muestra como trabaja el if simple --------------------------------------------------------*/

import javax.swing.*; class If01 { public static void main(String[] sargs) {

String snum; int inum; snum = JOptionPane.showInputDialog("Dame un entero"); inum = Integer.parseInt(snum); if(inum > 0) System.out.println("El Numero Ingresado es Mayor a Cero"); System.exit(1); } } Ejemplo 3: if(numero < 0) // la condicin indica que tiene que ser menor a Cero { System.out.println("El Numero Ingresado es menor a Cero"); } Ahora uniremos todos estos ejemplos para formar un solo programa mediante la utilizacin de la sentencia "Else" e introduciremos el hecho de que se puede escribir en este espacio una sentencia if ya que podemos ingresar cualquier tipo de cdigo dentro de la sentencia escrita despus de un else. Ejemplo 4: if(numero == 0) //La condicin indica que tiene que ser igual a Cero System.out.println("El Numero Ingresado es igual a Cero"); else{ if(numero > 0) // la condicin indica que tiene que ser mayor a Cero System.out.println("El Numero Ingresado es Mayor a Cero"); else if(numero < 0) // la condicin indica que tiene que ser menor a Cero System.out.println("El Numero Ingresado es menor a Cero"); } } //Programa del ejemplo 4 /* ----------------------------------------------------------------------------* Programa que muestra como trabaja el if compuesto (if-else) * ----------------------------------------------------------------------------*/ import javax.swing.*; class IfElse { public static void main(String[] sargs) { String snum; int inum; snum = JOptionPane.showInputDialog("Dame un entero"); inum = Integer.parseInt(snum);

if(inum == 0) System.out.println("El Numero Ingresado es menor a Cero"); else if(inum > 0) System.out.println("El Numero Ingresado es Mayor a Cero"); else if(inum < 0) System.out.println("El Numero Ingresado es menor a Cero"); System.exit(1); } } Sentencia switch switch es otra de las instrucciones que permiten la construccin de estructuras de control. A diferencia de if, para controlar el flujo por medio de una sentencia switch se debe de combinar con el uso de las sentencias case y break. Notas: cualquier nmero de casos a evaluar por switch as como la sentencia default son opcionales. La sentencia switch es muy til en los casos de presentacin de mens. Sintaxis: switch (condicin) { case primer_caso: bloque de instrucciones 1 break; case segundo_caso: bloque de instrucciones 2 break; case caso_n: bloque de instrucciones n break; default: bloque de instrucciones por defecto } Ejemplo 1 switch (opcin) { case 0: cout << "Su opcion es cero"; break; case 1: cout << "Su opcion es uno"; break; case 2: cout << "Su opcion es dos"; } Ejemplo 3 switch (opcion) { case 1: cout << "Su opcion es 1"; break;

case 2: cout << "Su opcion es 2"; break; case 3: cout << "Su opcion es 3"; break; default: cout << "Elija una opcion entre 1 y 3"; } /* * * * -----------------------------------------------------------------------------------------------------------------------------Programa que muestra como trabaja el switch, este se usa cuando se tiene que seleccionar de una serie de decisiones ---------------------------------------------------------------------------------------------------------------------------*/

import javax.swing.*; class Switch { public static void main(String[] sargs) { String snum; int inum; snum = JOptionPane.showInputDialog("Dame un entero [0-5]"); inum = Integer.parseInt(snum); switch(inum) { case 0: System.out.println("El Numero Ingresado es Cero"); break; case 1: System.out.println("El Numero Ingresado es Uno"); break; case 2: System.out.println("El Numero Ingresado es Dos"); break; case 3: System.out.println("El Numero Ingresado es Tres"); break; case 4: System.out.println("El Numero Ingresado es Cuatro"); break; case 5: System.out.println("El Numero Ingresado es Cinco"); break; default: System.out.println("El numero que pulsaste esta fuera de rango");

break; } System.exit(1); } }

Sentencias de iteracin DEFINICIN Las Sentencias de Iteracin o Ciclos son estructuras de control que repiten la ejecucin de un grupo de instrucciones. Bsicamente, una sentencia de iteracin es una estructura de control condicional, ya que dentro de la misma se repite la ejecucin de una o ms instrucciones mientras o hasta que una a condicin especifica se cumpla. Muchas veces tenemos que repetir un nmero definido o indefinido de veces un grupo de instrucciones por lo que en estos casos utilizamos este tipo de sentencias. en JAVA los ciclos o bucles se construyen por medio de las sentencias for, while y do - while. La sentencia for es til para los casos en donde se conoce de antemano el nmero de veces que una o ms sentencias han de repetirse. Por otro lado, la sentencia while es til en aquellos casos en donde no se conoce de antemano el nmero de veces que una o ms sentencias se tienen que repetir. Sentencias For for(exp. Inicializadota; exp. controladora; exp. Incrementadota o exp. decrementadora) { Codigo a Repetir; } donde: 1. exp. inicializadora es una variable numrica (contador) 2. exp. controladora es la condicin que se evalua, o sea, el intervalo de las veces que se va a repetir el contador (cuerpo del ciclo, o cdigo a repetir) 3. incremento o decremento es el valor que se suma o resta del contador Ejemplo1: for(i=1; i<=10; i++) System.out.println("Hola Mundo"); Ejemplo 4.1: For01.java //Programa del Ejemplo 1 /* -------------------------------------------------------* Programa que muestra como trabaja el ciclo for * -------------------------------------------------------*/ class For01 { public static void main(String[] sargs) { int ij; for(ij = 1; ij <= 10; ij++) System.out.println("Hola Mundo"); System.exit(1); } }

Esto indica que el contador "i" inicia desde 1 y finaliza cuando el contador "i" sea menor o igual a 10 ( en este caso llegar hasta 10) e "i++" realiza la sumatoria por unidad lo que hace que el for y el contador se sumen. repitiendo 10 veces "HOLA MUNDO" en pantalla. Ejemplo 2: for(i=10; i>0; i--) { System.out.print("Hola Mundo"+" "); } Ejemplo 4.2: For02.java class For02 { public static void main(String[] sargs) { int ij; for(ij = 10; ij >= 1; ij--) System.out.print("Hola Mundo"+" "); System.out.println(); System.exit(1); } } Este ejemplo hace lo mismo que el primero, salvo que el contador se inicializa a 10 en lugar de 1; y por ello cambia la condicin que se evalua as como que el contador se decrementa en lugar de ser incrementado. Ejemplo 4.3: For03.java /* * * -------------------------------------------------------Programa que muestra como trabaja el ciclo for -------------------------------------------------------*/

class For03 { public static void main(String[] sargs) { int ij; for(ij = 1; ij <= 10; ij++) if(ij == 6){ System.out.println(); System.out.print("Hola Mundo"+" "); } else System.out.print("Hola Mundo"+" ");

System.out.println(); System.exit(1); } } Sentencia while Exp. inicializadora while(exp. controladora) { cdigo a Repetir exp. incrementadora o decrementadora } donde: exp. Inicializadora: se inicializa el contador si es necesario exp. controladora: es la expresin a evaluar exp. Incrementadora o decrementadora Ejemplo 1: int contador = 0; while(contador<=10) { contador=contador+1; System.out.print("Hola Mundo"+" "); } Ejemplo 4.4: While01.java

/* * *

------------------------------------------------------------------------------------------------------------Programa que muestra como trabaja el ciclo While, adems usando una sentencia if simple -----------------------------------------------------------------------------------------------------------*/

class While01 { public static void main(String[] sargs) { int ij; ij = 1; while(ij <= 10){ if(ij == 6){ System.out.println(); System.out.print("Hola Mundo"+" "); } else System.out.print("Hola Mundo"+" "); ij += 1;

} System.out.println(); System.exit(1); } } El contador Indica que hasta que este llegue a el total de 10 entonces se detendr y ya no se realizar el cdigo contenido dentro de la sentencia while, de lo contrario mientras el "contador" sea menor a 10 entonces el cdigo contenido se ejecutar desplegando hasta 10 veces "Hola Mundo" en pantalla. Sentencia do - while La sentencia do es usada generalmente en cooperacin con while para garantizar que una o ms instrucciones se ejecuten al menos una vez. Por ejemplo, en la siguiente construccin no se ejecuta nada dentro del ciclo while, el hecho es que el contador inicialmente vale cero y la condicin para que se ejecute lo que est dentro del while es "mientras el contador sea mayor que diez". Es evidente que a la primera evaluacin hecha por while la condicin deja de cumplirse. Exp. Inicializadora do { <Cdigo a repetir> Exp. Incrementadora o decrementadora }(exp. controladora); Ejemplo int contador = 0; do { contador ++; cout<<"Hola Mundo"; }while(contador < 10) Ejemplo 4.5: While02.java

/* * *

-----------------------------------------------------------------------------------------------------------Programa que muestra como trabaja el ciclo While, adems usando una sentencia if simple -----------------------------------------------------------------------------------------------------------*/

class While02 { public static void main(String[] sargs) { int ij; ij = 1; do{ if(ij == 6){ System.out.println();

System.out.print("Hola Mundo"+" "); } else System.out.print("Hola Mundo"+" "); ij += 1; }while(ij <= 10); System.out.println(); System.exit(1); } } Observe cmo en el caso de do la condicin es evaluada al final en lugar de al principio del bloque de instrucciones y, por lo tanto, el cdigo que le sigue al do se ejecuta al menos la primera vez. Sentencias break y continue En la seccin (Sentencia switch) vimos que la sentencia break es utilizada con el propsito de forzar un salto dentro del bloque switch hacia el final del mismo. En esta seccin volveremos a ver el uso de break, salvo que esta ocasin la usaremos junto con las sentencias for y la sentencia while. Adems, veremos el uso de la sentencia continue. Break La sentencia break se usa para forzar un salto hacia el final de un ciclo controlado por for o por while. Ejemplo: En el siguiente fragmento de cdigo la sentencia break cierra el ciclo for cuando la variable ( i ) es igual a 5. La salida para el mismo ser: 01234 for (i=0; i<10; i++) { if (i == 5) break; cout << i << " "; } Ejemplo 4.6: Break01.java /* ---------------------------------------------------------------------------------------------------------------------------* Programa que muestra como trabaja la palabra reservada break, (rompiendo el ciclo) para cualquiera de los ciclos para este ejemplo es el for * ---------------------------------------------------------------------------------------------------------------------------*/ class Break01 { public static void main(String[] sargs) { int ij; for(ij = 0; ij <= 10; ij++){ if(ij == 5)

break; System.out.println(" " + ij); } System.exit(1); } } continue La sentencia continue se usa para ignorar una iiteracin dentro de un ciclo controlado por for o por while. Ejemplo: En el siguiente fragmento de cdigo la sentencia continue ignora la iteracin cuando la variable ( i ) es igual a 5. La salida para el mismo ser: 012346789 for (i=0; i<10; i++) { if (i == 5) continue; cout << i << " "; } Ejemplo 4.7: Continue01.java /* * * * ---------------------------------------------------------------------------------------------------------------------Programa que muestra como trabaja la palabra reservada continue, (incrementando el contador sin imprimir el nmero que le corresponde) para cualquiera de los ciclos, para este ejemplo es el for ---------------------------------------------------------------------------------------------------------------------*/

class Continue01 { public static void main(String[] sargs) { int ij; for(ij = 0; ij <= 10; ij++){ if(ij == 5) continue; System.out.print(" " + ij); } System.out.println(); System.exit(1); } }

Arreglos Un arreglo, <<vector, matriz, listas>> (en ingles, array) es un tipo especial de objeto compuesto por una coleccin de elementos del mismo tipo de datos que se almacenan consecutivamente en memoria. Los arreglos pueden ser unidimensionales, conocidos tambin como vectores o como listas y multidimensionales, conocidos tambin como matrices o tablas, que pueden tener dos o ms dimensiones. Regla: un array tiene un nombre o identificador, un ndice que es un entero encerrado entre corchetes, un tamao o longitud, que es el nmero de elementos que se pueden almacenar en el arreglo, cuando se le asigna espacio en memoria. Un arreglo se puede representar por una variable arreglo y se debe declarar, crear, iniciar y utilizar. El proceso que se puede realizar con los arreglos abarca las siguientes operaciones, declaracin, creacin, inicializacin y utilizacin. Las operaciones de declaracin, creacin e inicializacin son necesarias para poder utilizar un arreglo. Declaracin La declaracin de un arreglo es la operacin mediante la cual se define su nombre un identificador vlido y el tipo de elementos del arreglo. la sintaxis para un arreglo puede adoptar dos formas: tipodato[] nombrearray tipodato nombrearray[] Ejemplo Supngase que se quiere declarar un arreglo de nmeros reales double[] darray; double darray[]; float[] farray; float farray[]; Las declaraciones no especifican el tamao del arreglo que se especificar cuando se cree el mismo. Creacin Un arreglo en Java es un objeto y la declaracin no asigna espacio en memoria para el arreglo. No se puede asignar elementos al arreglo al menos que el arreglo est ya creado. Despus de que se a declarado un arreglo se puede utilizar el operador new para crear el arreglo con la sintaxis siguiente: nombrearreglo = new tipodato[tamao]; donde: nombrearreglo: tipodato: tamao:

es el nombre del arreglo declarado previamente es el tipo de dato de los elementos del arreglo. es la longitud o tamao del arreglo y es expresin entera cuyo valor es el nmero de elementos el arreglo.

Ejemplo

darray = new double[10]; farray = new float[100];

// darray tiene 10 elementos // darray tiene 100 elementos

Consejo:.El formato ms conveniente tipodato[] nombrearray. El formato tipodato nombrearray se suele utilizar si se desea seguir el estilo de la escritura de C/C++. Precaucin: una vez que un arreglo se ha creado su tamao no se puede modificar Inicializacin y utilizacin Cuando se crea un arreglo, a los elementos se les asigna por defecto el valor cero para las variables numricas de tipos de datos primitivos, \u000 para variables de tipo carcter, char, false para variables lgicas, boolean, y null para variables objetos. A los elementos del arreglo se accede a travs del ndice. Los ndices del arreglo estan en el rango de 0 a tamao-1. as darray contiene 10 elementos y sus ndices son 0, 1, 2, ,9. Cada elemento del arreglo se representa con la siguiente sintaxis nombrearreglo[ndice] Regla: En Java, un ndice del arreglo es siempre un entero que comienza en cero y termina en tamao-1. Precaucin: Al contrario que en otros lenguajes de programacin, los ndices siempre se encierran entre corchetes. Un arreglo completo se puede inicializar con una sintaxis similar: double[] darray = {1.5, 2.45, 3.75, 8.36, 9.78}; Esta sentencia crea un arreglo darray que consta de 5 elementos Clculo de tamao El tamao de un arreglo se obtiene con una variable instancia length. As, por ejemplo si se crea un arreglo darray, la sentencia darray.length. Se pueden procesar elementos de un arreglo mediante ciclos, por las siguientes razones: Todos los elementos del arreglo son del mismo tipo y tienen las mismas propiedades, por esta razn, se procesan de igual forma y repetidamente utilizando un ciclo. El tamao de un arreglo se conoce, por lo que el ciclo ms idneo es el for. Ejemplo: int intA[5]; long longA[5] = { 1, 2, 3, 4, 5 }; char charA[] = { 'a', 'b', 'c' );
Ejemplo 5.1: Arreglos01.java

/* * * *

------------------------------------------------------------------------------------------------------------------Programa que muestra como declaran las variables (identificadores de arreglos) el programa solo imprime los elementos de los arreglos inicializados -------------------------------------------------------------------------------------------------------------------*/

import javax.swing.*; class Arreglos01 { public static void main(String[] sargs) { double[] darray = {1.25, 3.45, 6.89, 7.89, 4.69, 8.75, 3.14}; int[] iarray = {5, 3, 9, 12, 68}; long[] larray = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; char[] carray = { 'a', 'b', 'c' }; int ij;

System.out.println("Se imprime el arreglo de numeros reales"); // se imprime el arreglo de de tipo double for(ij = 0; ij < darray.length; ij++) System.out.print(" " + darray[ij]); System.out.println(); System.out.println("Se imprime el arreglo de numeros enteros"); // se imprime el arreglo de de tipo entero for(ij = 0; ij < iarray.length; ij++) System.out.print(" " + iarray[ij]); System.out.println(); System.out.println("Se imprime el arreglo de numeros entero largo"); // se imprime el arreglo de de tipo entero largo for(ij = 0; ij < larray.length; ij++) System.out.print(" " + larray[ij]); System.out.println(); System.out.println("Se imprime el arreglo de caracteres"); // se imprime el arreglo de de tipo caracter for(ij = 0; ij < carray.length; ij++) System.out.print(" " + carray[ij]); System.out.println(); System.exit(1); } }
Ejemplo 5.2: Arreglos02.java

/* *

---------------------------------------------------------------------------------------------------------------------------Programa que muestra como declaran las variables (identificadores de arreglos) el programa solo lee e imprime los elementos de un arreglo, los elementos son dados por el teclado, los datos son de tipo real.

--------------------------------------------------------------------------------------------------------------------------*/

import javax.swing.*; class Arreglos02 { public static void main(String[] sargs) { double darray[], dnum; int ij, inele; String snum; darray = new double[50]; snum = JOptionPane.showInputDialog("Cuantos elementos tiene el arreglo "); inele= Integer.parseInt(snum); for(ij = 0; ij < inele; ij++){ snum = JOptionPane.showInputDialog("Dame un numero real "); dnum = Double.parseDouble(snum); darray[ij] = dnum; } // se imprime el arreglo de de tipo double for(ij = 0; ij < inele; ij++) System.out.print(" " + darray[ij]); System.out.println(); System.exit(1); } }

Ejemplo 5.3: Arreglos03.java

/* * * * *

-----------------------------------------------------------------------------------------------------------------------------Programa que muestra como declaran las variables (identificadores de arreglos) el programa lee, calcula la suma de los elementos, imprime los elementos del arreglo y la suma. los elementos son dados por el teclado, los datos son reales. ----------------------------------------------------------------------------------------------------------------------------*/

import javax.swing.*; class Arreglos03 { public static void main(String[] sargs) { double darray[], dnum, dsuma; int ij, inele; String snum;

darray = new double[50]; snum = JOptionPane.showInputDialog("Cuantos elementos tiene el arreglo "); inele= Integer.parseInt(snum); // Se lee los elementos del arreglo for(ij = 0; ij < inele; ij++){ snum = JOptionPane.showInputDialog("Dame un numero real "); dnum = Double.parseDouble(snum); darray[ij] = dnum; } // Se Calcula la suma de los elementos del arreglos dsuma = 0.0; for(ij = 0; ij < inele; ij++) dsuma += darray[ij]; // se imprime el arreglo de de tipo double for(ij = 0; ij < inele; ij++) System.out.print(" " + darray[ij]); System.out.println(); System.out.println("La suma es: " + dsuma); System.out.println(); System.exit(1); } } Matrices En un principio, podemos decir que una matriz no es otra cosa que una tabla, como las que hemos visto en la leccin anterior, pero en dos dimensiones. Si nosotros representamos una tabla de 10 posiciones lo podramos hacer as:

En definitiva, en la tabla anterior tenemos 1 fila (horizontal) y 10 columnas (vertical), esto hace un total de 10 posiciones. Con lo que para referirnos a una posicin slo hace falta indicar la columna a la que nos estamos refiriendo. Valor[3] Hacemos referencia a la tercera posicin de la tabla llamada Valor. Ahora bien, en segn que caso, nos puede interesar tener lo que llamaremos matriz, una "tabla" pero con varias filas. Podramos representar, por ejemplo, una matriz de 2 filas con 10 columnas de la siguiente manera:

En esta matriz, tendramos 20 posiciones 2 x 10. Para referirnos a ellas tendremos que buscar una manera diferente a como lo hemos hecho con una tabla. En realidad, no es que la forma de llamar a cada una de las posiciones sea muy diferente, pero se aade un elemento ms. Recuerde que cuando utilizbamos una tabla lo que hacamos era indicar la columna que ocupaba el elemento Datos[4], pues bien, ahora nosotros

deberemos indicar la fila y la columna que ocupa. Esto lo haramos de la siguiente manera: para referirnos a una posicin siempre, al igual que en el caso de una tabla, pondremos el nombre de la tabla entre corchetes [ ], primero la fila y despus la columna separados por una coma de la siguiente forma: Datos[1, 4]. De esta manera, observe que los elementos que ocupan la cuarta columna se deben diferenciar entre ellos por la fila en la que se encuentran. Las tablas o matrices se representan mediante arreglos bidimensionales. Un arreglo bidimensional en Java e declara como un arreglo de objetos. tipodato tarray[][]; las tablas de valores constan de informacin dispuesta en filas y columnas. Para identificar un elemento de una tabla concreta se debe especificarlos dos subndices (por convenio. El primero identifica la fila, y el segundo identifica la columna del elemento). Cada elemento del arreglo tarray se identifica como tal elemento mediante el formato tarray[ij][ik], tarray es el nombre del arreglo, e ij, ik son los subndices que identifican unvocamente la fila y la columna de cada elemento de tarray, obsrvese que todos los elementos de la primera fila comienza por un primer subindice de 0 y el ltimo elemento de la columna tiene n-1 Declaracin de arreglos multidimensionales Los arreglos multidimensionales se declaran de la misma forma que los bidimensionales, es decir, con un par de corchetes para cada dimensin del arreglo tipodato tmatriz[][][]; Ejemplo 1 arreglo de 2x2 dimensiones se puede declarar e inicializar como: int iarray[][] = {(5, 6), (7, 8)}; 2 La declaracin Ejemplo .1 int iarray01[][] = {(5, 6, 7), (7, 8, 9)}; Crea un arreglo de dos filas y tres columnas, en el que la primera fila contiene 5, 6, 7, y la segunda fila tiene 7, 8, 9.
Ejemplo 5.4: Matriz01.java

/* * * *

-----------------------------------------------------------------------------------------------------------------------------Programa que muestra la declaracin de una matriz. As, como la impresin de la misma. La matriz es de 2x3. Ejemplo 1 ----------------------------------------------------------------------------------------------------------------------------*/

class Matriz01 { public static void main(String[] sargs) { int[][] imatriz = {{5, 6, 7}, {7, 8, 9}}; int ij, ik; for(ij = 0; ij < 2; ij++){ for(ik = 0; ik < 3; ik++)

System.out.print(" "+imatriz[ij][ik]); System.out.println(" "); } } } Los arreglos con mltiples subndices con el mismo nmero de columnas en cada fila se puede asinar dinmicamente. Por ejemplo, un arreglo de 3x3 se asigna como sigue Ejemplo 2 int [] iarray; b = new int [3][3];
Ejemplo 5.5: Matriz02.java

/* * * * *

----------------------------------------------------------------------------------------------------------------------------Programa que muestra la declaracin de una matriz, para almacenar enteros, * recibiendo los datos desde el teclado. As, como la impresin de la misma. La matriz es de 3x3, tambin muestra como se crea dicha matriz. Ejemplo 2 --------------------------------------------------------------------------------------------------------------------------*/

import javax.swing.*; class Matriz02 { public static void main(String[] sargs) { int[][] imatriz; int ij, ik, inum, ifil, icol; String snum; snum = JOptionPane.showInputDialog("Cuantas filas tiene la matriz"); ifil = Integer.parseInt(snum); snum = JOptionPane.showInputDialog("Cuantas columnas tiene la matriz"); icol = Integer.parseInt(snum); // Se crea la matriz en meooria o se reserva memoria imatriz = new int[ifil][icol]; // se leen los datos desde el teclado for(ij = 0; ij < ifil; ij++) for(ik = 0; ik < icol; ik++){ snum = JOptionPane.showInputDialog("Dame un entero "); inum = Integer.parseInt(snum); imatriz[ij][ik] = inum; } //Se imprime la matriz for(ij = 0; ij < ifil; ij++){ for(ik = 0; ik < icol; ik++)

System.out.print(" "+imatriz[ij][ik]); System.out.println(" "); } System.exit(1); } }


Ejemplo 5.6: SumaMatriz01.java

/* * * *

-----------------------------------------------------------------------------------------------------------------------------Programa que muestra una aplicacin de la matriz, a la solucin de los problemas. La operacin que realiza es la suma de todos los elementos de la matriz. ---------------------------------------------------------------------------------------------------------------------------- */

import javax.swing.*; class SumaMatriz { public static void main(String[] sargs) { int[][] imatriz; int ij, ik, inum, ifil, icol, isuma; String snum; snum = JOptionPane.showInputDialog("Cuantas filas tiene la matriz"); ifil = Integer.parseInt(snum); snum = JOptionPane.showInputDialog("Cuantas columnas tiene la matriz"); icol = Integer.parseInt(snum); // Se crea la matriz en meooria o se reserva memoria imatriz = new int[ifil][icol]; // se leen los datos desde el teclado for(ij = 0; ij < ifil; ij++) for(ik = 0; ik < icol; ik++){ snum = JOptionPane.showInputDialog("Dame un entero "); inum = Integer.parseInt(snum); imatriz[ij][ik] = inum; } // Se calcula la suma de la matriz isuma = 0; // se inicializa la variable isuma for(ij = 0; ij < ifil; ij++) for(ik = 0; ik < icol; ik++){ isuma += imatriz[ij][ik]; } //Se imprime la matriz for(ij = 0; ij < ifil; ij++){ for(ik = 0; ik < icol; ik++)

System.out.print(" "+imatriz[ij][ik]); System.out.println(" "); } // Se imprime la suma System.out.println("La suma es: "+isuma); System.exit(1); } } los arreglos con subndices mltiples en los que cada fila contiene un nmero diferente de columnas se puede asignar dinmicamente. Ejemplo: int imatriz [][]; imatriz = new int[3][]; imatriz [0] = new int[5]; imatriz [1] = new int[4]; imatriz [2] = new int[3];

// Asigna filas // Asigna 5 columnas a la fila 0 // Asigna 4 columnas a la fila 1 // Asigna 3 columnas a la fila 2

la expresin iarray.length devuelve el nmero de filas del arreglo, mientras iarray[1].length devuelve el nmero de columnas de la fila 1 del arreglo.

Ejemplo 5.7: MatrizColumnasVariables01.java

/* * *

-------------------------------------------------------------------------------------------------------------------Programa que muestra una aplicacin de la matriz, que contiene columnas variables en cada fila ------------------------------------------------------------------------------------------------------------------*/

import javax.swing.*; class MatrizColumnasVariables01 { public static void main(String[] sargs) { int[][] imatrizcolvariable; int[] iarraycol; int ij, ik, inum, ifil, icol; String snum; double dnum; snum = JOptionPane.showInputDialog("Cuantas filas tiene la matriz"); ifil = Integer.parseInt(snum); // se crea el arreglo en memoria iarraycol = new int[ifil]; // Se crea la matriz en meooria o se reserva memoria imatrizcolvariable= new int[ifil][]; // se crea la mmatriz con el numero de

// filas deseado // Segeneran numeros aleatorios para las columnas de cada fila for (ij = 0; ij < ifil; ij++){ dnum = Math.random()*10; iarraycol[ij] = (int)dnum; } // Se reserva memoria para las columnas para cada fila de la matriz for(ij = 0; ij < ifil; ij++) imatrizcolvariable[ij] = new int[iarraycol[ij]]; // Se meten los datos a la matriz for(ij = 0; ij < ifil; ij++) for(ik = 0; ik < imatrizcolvariable[ij].length; ik++){ dnum = Math.random() * 7500; imatrizcolvariable[ij][ik] = (int)dnum; } System.out.println("Estas son las filas de la matriz "); for(ij = 0; ij < ifil; ij++) System.out.println(" " + iarraycol[ij]); System.out.println("Estos son los datos de la matriz "); // Se imprimen los datos de la matriz for(ij = 0; ij < ifil; ij++){ for(ik = 0; ik < imatrizcolvariable[ij].length; ik++) System.out.print(" "+ imatrizcolvariable[ij][ik]); System.out.println(); } System.exit(1); } }

Problemas Propuestos Captulo 2 2.1. 2.2. 2.3. Realice un programa en Java que calcule e imprima la suma de dos nmeros dados por el teclado. Realice un programa en Java que calcule e imprima el rea de un tringulo, y su permetro el tringulo es equiltero Realice un programa en Java que calcule e imprima, para convertir de grados Celsius a grados Fahrenheit cuya frmula es: F= 9/5(C + 32), Comprobar el programa con los siguientes valores: 65, 42, 70, 0, -22, -200. Hacer un programa para calcular e imprima la masa de aire de un neumtico de automvil utilizando la frmula: PV = 0.37m(T + 460). Donde: P = presin, libras por pulgada cuadrada (psi) V = Volumen, en pies cbicos M = Masa de aire, en libras T = Temperatura, en grados Fahrenheit El neumtico con tiene dos pies cbicos de aire. Supngase que la presin es 32 psi a la temperatura ambiente. Realice un programa en Java que Calcule e Imprima el volumen y el rea de a esfera utilizando las frmulas: V = 4r3/3 y A= 4r2. Comprobar el programa utilizando los valores del radio: 1.6, 12.2, 0.2. Realice un programa en Java que Calcule e Imprima: el: seno, coseno tangente, para los grados que se dan por el teclado

2.4

2.5

2.6

Captulo 3 3.1. 3.2. Realice un programa en Java que determine e Imprima el mayor de dos nmeros. Dados por el usuario Realice un programa en Java que determine e Imprima, la equivalencia de dinero, (en pesos) si se tienen 525.12, dlares, Adems decir cuantos billetes y monedas de: 500, 200, 100, 50, 20, 10, 5, 2, 1, 0.5, usando switch. Realice un programa en Java que Calcule e Imprima para que examine para que examine el valor de la variable de tipo caracter llamado color y escriba un mensaje dependiendo de su valor, (Color por ejemplo: rojo si color tiene asignado r o R). Utilice el switch. Realice un programa en Java que examine e imprima el valor de una variable llamada indicador usando la instruccin switch y escriba uno de los siguientes mensajes dependiendo de su valor: Calor, si el indicador tiene el valor de 1. Templado, si el indicador tiene el valor de 2. Fro, si el indicador tiene el valor de 3. Fuera de rango, el indicador tiene el valor de 4 Realice un programa en Java que determine e imprime el mes y cuantos das tiene, de acuerdo a la peticin del usuario, use switch.

3.3.

3.4

3.5

Captulo 4 4.1 Realice un programa en Java que determine e imprime si un nmero es primo, el nmero ser ingresado por el teclado

4.2

4.3 4.4

4.5 4.6

4.7 4.8 4.9

Realice un programa en Java que determine e imprime la sucesin para un nmero n, como a continuacin se describe 1, 3, 5, 7,, n donde n ser ingresado por el teclado. Use una frmula para determinar la serie, hgala usted mismo. Realice un programa en Java para el problema anterior que determine la suma de la serie de los impares. Realice un programa en Java, para la ecuacin y = x5 + 3x2 -10, determine su tabulacin desde el intervalo -10 hasta 10 con incrementos de 0.5. Imprima su tabulacin. La ecuacin ser asignada dentro del programa. Realice un programa en Java que determine: cuantos son mayores que cero, iguales a cero, menores que cero, la entrada de datos ser cuando la variable de entrada sea de #. Realice un programa en Java que, usando ciclos que genere enteros de tres en tres comenzando por iJ = 2, hasta el valor mximo menor que 100. Calcular la suma de los enteros que sean divisibles por 5 Realice un programa en Java que determine la suma de los primeros n nmeros (1 + 4 + 7 + + 3n +1) n ser dado por el teclado. Realice un programa en Java que determine la tabla de multiplicar n que se desee, n ser dado por el teclado. Realice un programa en Java que imprima el mes que desea conocer, el resultado mostrar la distribucin de das (como se ve en un calendario) use ciclo y switch.

Captulo 5 5.1 Realice un programa en Java que determine e imprima la tabulacin, de una ecuacin, desde el intervalo -10 hasta 10 con incrementos de 0.5. La funcin es la siguiente: y = x5 + 3x2 - 10. La ecuacin ser asignada dentro del programa. Guarde los valores generados en un arreglo unidimensional Del Problema 5.1, tomando los valores guardados en el arreglo, determine e imprima cuantos elementos son menores que cero, cuantos mayores que cero y cuantos igual a cero y gurdelo con otro nombre. Del problema 5.2, utilice su programa para determine e imprima el promedio de los datos almacenados en el arreglo (ymedia). Gurdelo con otro nombre. Realice un programa en Java que Calcule e Imprima: el mayor, el menor, cuantos pares son, cuantos impares son, la suma de filas, por cada una y almacenar el resultado, las suma de las columnas, y almacenar el resultado, por cada una, y el promedio de de todos los datos, dichos datos sern almacenados en un arreglo bidimensional. Realice un programa en Java para procesar las notas de un grupo de estudiantes de un curso de programacin en Java. Empezar especificando el nmero de notas de examen por cada estudiante (suponer que este valor es el mismo para todos los estudiantes de la clase). Despus introducir en nombre de cada alumnos y las notas de los exmenes Calcular la nota media para cada estudiante y almacenarla, la media general del curso, la media de las medias de los estudiantes). Almacenar los nombres de los estudiantes en una matriz bidimensional de caracteres y las notas en una matriz bidimensional de enteros.

5.2

5.3 5.4

5.5

También podría gustarte