Hola a todo@s, bienvenidos a este curso de programacin.
Como casi todos sabis, el objetivo de este curso es ayudaros a mejorar vuestra habilidad en la programacin. Este curso comienza desde cero, pero quiero adelantaros que est pensado para los alumnos que ya han intentado hacer algo de programacin previamente, es decir, que aunque os recordar los conceptos bsicos, no dedicaremos un tiempo excesivo a la teora, todo lo contrario, intentaremos que sea lo ms prctico posible con la realizacin de un gran nmero de ejercicios. El curso estar dividido en dos partes, esta es la primera y se dedicar a ver las herramientas ms bsicas que nos suministra el lenguaje Java para resolver los problemas. El tipo de programacin empleado en esta primera parte ser programacin secuencial (convencional). En la segunda parte veremos la programacin orientada a objetos, orientada a Java, y las herramientas con las que contamos para hacerlo. El objetivo en esta segunda parte es ver las clases, acceso a ficheros y si nos da tiempo, que espero que s, el acceso a las bases de datos. Toda la programacin que vamos a realizar es en modo consola, es decir nuestros programas no se ejecutarn en modo ventanas de Windows, ese ser el paso siguiente que tendris que dar aquellos que deseis crear aplicaciones de escritorio para Windows o Linux. Tambin os adelanto que es la primera vez hacemos un proyecto como ste, y espero que colaboris lo ms posible en detectar los fallos que existan para corregirlos lo antes posible. Adems lo que ms nos gustara es que el curso fuese dinmico y entre los alumnos se compartieran las dudas, las soluciones, las posibles variantes de los problemas que se proponen, etc. Algo de lo que estamos seguros es que cuando solucionas un problema has aprendido algo, pero cuando se lo explicas a alguien ests fijando an ms tus conocimientos y pasas a dominarlo. Bien, comezamos. Nuestro primer paso es elegir el entorno a utilizar. Nos hemos decidido por Eclipse. Se que algunos de vosotros empleis otros IDEs ms sencillos, o bien NetBeans que ya lo podemos encontrar con el JDK incorporado, pero para nosotros estos cursos son un primer paso para lo que nos llegar el prximo ao con la programacin de dispositivos mviles, y lo poco que hemos probado es con Eclipse y el SDK de Android. Como pensamos que ese entorno ser el ms utilizado hemos decidido que ser bueno ir acostumbrandose a l. De todas formas, aunque sea el que nosotros recomendamos, cada uno puede emplear el que desee. No hay problema, las soluciones deben funcionar en cualquiera de ellos. Siguiente Entorno El entorno que vamos a emplear es el IDE Eclipse con el JDK de Java. Podis descargar el software desde la siguiente direccin: http://www.edusoft.es/descargas O bien descargarlo desde las pginas oficiales de ambas organizaciones: http://www.eclipse.org/downloads/ http://www.oracle.com/technetwork/java/javase/downloads/index.html El primer paso ser instalar el JDK de Java. Es una aplicacin Windows que simplemente se instalar con un doble clic. Debemos tener en cuenta que se necesitarn permisos de administrador para algunos de los cambios que se realizarn en el sistema. El segundo paso es descomprimir el archivo ZIP de eclipse y colocarlo en una carpeta. Por ltimo es aconsejable crear un acceso directo al archivo eclipse.exe de la carpeta anterior.
Anterior | Siguiente Probando el entorno Nuestro Hola Mundo. Para comprobar si funciona nuestro entorno y ver como utilizarlo comenzaremos con el primer programaque habitualmente hacemos en clase. Se trata de hacer un programa que muestre en pantalla el texto "Hola Mundo". El primer paso es ejecutar Eclipse. Despus elegiremos en el men las opciones: Window >Open Perspective > Java El siguiente paso es crear un nuevo proyecto Java. Para ello elegiremos: File > New > Java Project Aparecer una ventana donde tenemos que teclear el nombre de nuestro nuevo proyecto. En nuestro ejemplo ser: Hola_Mundo
El siguiente paso es crear la clase que vamos a utilizar. Para ello utilizaremos las opciones: File > New > Class Tecleamos el nombre de la clase y marcamos la opcin public static void main. Debemos tener en cuenta que el nombre de la clase debe ser el mismo nombre del archivo .java para que todo funcione correctamente.
Si todo ha funcionado correctamente tenemos el preparado el documento y la clase para teclear nuestro cdigo.
Ahora tecleamos el cdigo para mostrar el saludo en pantalla. tecleamos: System.out.print("Hola Mundo."); Quedando de la siguiente forma:
Una vez terminado el programa lo guardamos, para ello bastar con hacer clic sobre el botn: o bien pulsando la combinacin de teclas Ctrl + S Para ejecutar nuestro programa utilizaremos: Run > Run En la parte inferior aparecer el resultado de la ejecucin de nuestro programa.
Bien, espero que todo haya funcionado correctamente y hayamos obtenido el resultado buscado. Enhorabuena. Anterior | Siguiente Comenzando con Java El lenguaje de programacin Java: - Java es un lenguaje de programacion de propsito general.
- Es un lenguaje Orientado a Objetos.
- La sintaxis de Java est inspirada en la de C/C++. Si conoces este lenguaje te ser muy fcil empezar con Java.
- Lenguaje multiplataforma: Los programas Java se ejecutan sin variacin (sin recompilar) en cualquier plataforma soportada (Windows, UNIX, Mac...)
- Lenguaje interpretado: El intrprete a cdigo mquina (dependiente de la plataforma) se llama Java Virtual Machine (JVM). El compilador produce un cdigo intermedio independiente del sistema denominado bytecode que despus es ejecutado por la mquina virtual de cada sistema.
- Es un lenguaje gratuito: Creado por SUN Microsystems, que distribuye gratuitamente el producto base, denominado JDK (Java Development Toolkit) o J2SE (Java 2 Standard Edition). Anterior | Siguiente
Tipos Primitivos de Datos Los tipos primitivos son los que permiten manipular valores numricos (con distintos grados de precisin), caracteres y valores booleanos (verdadero / falso). Los Tipos Primitivos son: boolean : Puede contener los valores true o false. byte : Enteros. Tamao 8-bits. Valores entre -128 y 127. short : Enteros. Tamao 16-bits. Entre -32768 y 32767. int : Enteros. Tamao 32-bits. Entre -2147483648 y 2147483647. long : Enteros. Tamao 64-bits. Entre -9223372036854775808 y 9223372036854775807. float : Nmeros en coma flotante. Tamao 32-bits. double : Nmeros en coma flotante. Tamao 64-bits. char : Caracteres. Tamao 16-bits. Unicode. Desde '\u0000' a'\uffff' inclusive. Esto es desde 0 a 65535 El tamao de los tipos de datos no depende de la implementacin de Java. Son siempre los mismos. Anterior | Siguiente Variables Una variable es un rea en memoria que tiene un nombre y un Tipo asociado. Es obligatorio declarar las variables antes de usarlas. Para declararlas se indica su nombre y su Tipo, de la siguiente forma: tipo_variable nombre ; Ejemplos: int i; // Declaracin de un entero char letra; // Declaracin de un carcter boolean flag; // Declaracin de un booleano Debemos tener en cuenta: - Que el ; es el separador de sentencias en Java. - El smbolo // indica comentarios de lnea. - Podemos indicar comentarios de varias lneas con /* y */. Adems como veremos ms adelante tenemos los comentarios de documentacin que son generados a partir de /** y */.
- En Java (es case sensitive) las maysculas y minsculas son significativas. No es lo mismo el nombre letra que Letra o LeTrA.Normalmente las variables siempre comenzarn por minscula y si el nombre de la variable est formada por varias palabras, cada una de las siguientes palabras comienza con mayscula, p.e.letraInicialPalabra. - Todas las palabras reservadas del lenguaje van en minsculas. - Se pueden asignar valores a las variables mediante la instruccin de asignacin. Por ejemplo: i = 5; // a la variable i se le asigna el valor 5 letra = 'c'; // a la variable letra se le asigna el valor 'c' flag = false; // a la variable flag se le asigna el valor false La declaracin y la asignacin se pueden combinar en una sola expresin: int i = 5; char letra = 'c'; boolean flag = false;
Anterior | Siguiente Literales En los literales numricos puede forzarse un tipo determinado con un sufijo: Entero largo: l L. Float: f F Double: d D. Por ejemplo: long l = 5L; float numero = 5f; En los literales numricos para float y double puede usarse el exponente (10 elevado a...) de la forma: 1.5e3D (equivale a 1500 de tipo double) Podemos convertir de un tipo numrico a otro utilizando los conversores explcitos (int), (long), etc. Literales hexadecimales: Al valor en hexadecimal se antepone el smbolo 0x. Por ejemplo: 0xf (valor 15) Literales booleanos: true (verdadero) y false (falso) Literales carcter: Un carcter entre apstrofes (') o bien una secuencia de escape (tambin entre '). Las secuencias de escape estn formadas por el smbolo \ y una letra o un nmero. Algunas secuencias de escape tiles: \n: Salto de lnea \t: Tabulador \b: Backspace. \r: Retorno de carro \uxxxx: donde xxxx es el cdigo Unicode del carcter. Por ejemplo \u0027 es el apostrofe (') Las cadenas literales se encerrarn entre comillas dobles: Esto es una cadena de caracteres Anterior | Siguiente
Operadores Matemticos Operador Uso Descripcin + op1 + op2 Suma op1 y op2 - op1 - op2 Resta op2 de op1 * op1 * op2 Multiplica op1 y op2 / op1 / op2 Divide op1 por op2 (ojo, la divisin de dos enteros da la parte entera del resultado) % op1 % op2 Obtiene el resto de dividir op1 por op2 Adems, existen dos operadores de atajos aritmticos, ++ que incrementa en uno su operando, y -- que decrementa en uno el valor de su operando. Operador Uso Descripcin ++ op ++ Incrementa op en 1; evala el valor antes de incrementar ++ ++ op Incrementa op en 1; evala el valor despus de incrementar -- op -- Decrementa op en 1; evala el valor antes de decrementar -- -- op Decrementa op en 1; evala el valor despus de decrementar Tambin podemos abreviar las expresiones utilizando los operadores: Operador Uso Equivale a += op1 += op2 op1 = op1 + op2 -= op1 -= op2 op1 = op1 - op2 *= op1 *= op2 op1 = op1 * op2 /= op1 /= op2 op1 = op1 / op2 %= op1 %= op2 op1 = op1 % op2
Anterior | Siguiente
Operadores de relacin y operadores lgicos Operadores de relacin.
Mayor que > Menor que < Mayor o igual >= Menor o igual <= Igual a == Distinto !=
Operadores lgicos.
AND && Con el operador && para que la condicin sea verdadera ambas condiciones deben ser verdaderas. OR || Con el operador || para que la condicin sea verdadera basta con que una de las dos condiones sea verdadera (tambin cuando lo son las dos) NOT ! Con el operador ! si el resultado de la condicin es verdadero el operador lo cambia a falso y al contrario
Anterior | Siguiente Creando el primer programa Vamos a crear nuestro primer programa en Java. Para ello debemos tener en cuenta una serie de cosas: Es importante saber que el programa fuente tendr extensin .java y que su nombre debe ser el mismo que el de la clase principal del archivo, la clase pblica (public) en este caso ser suma_dos_numeros.java (cuidado con maysculas o minsculas, es diferente si estamos en Windows o en Linux). El esquema general que aparecer en el editor ser: public class suma_dos_numeros {
/** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ..... Aqu teclearemos el cdigo de nuestro programa.... }
}
Cuando tecleamos el cdigo de nuestro programa puede aparecer en la parte izquierda una marca de alerta indicando que hemos cometido un error, no hay que darle importancia hasta que no hayamos terminado de teclear la lnea, pues mientras no est completada la marcar como errnea. Si al terminar sigue la marca, posiblemente hayamos cometido un error. Para ver el error que nos indica bastar con situar el puntero del ratn sobre la marca y nos mostrar una leyenda con un mensaje sobre el posible error detectado.
Indica un posible error en la lnea.
Nos situamos con el ratn sobre y nos muestra el posible error.
Es importante conocer que las variables locales deben ser inicializadas obligatoriamente antes de ser utilizadas, si no es as, el compilador mostrar un error.
El punto donde comienza la ejecucin de los programas es el mtodo: public static void main (String[ ] args)
Para mostrar un mensaje en pantalla podemos utilizar System.out.print( )o bien System.out.println( ), la diferencia entre la primera y la segunda es que esta ltima aade un salto de lnea a la salida en pantalla. Actividad Se trata de realizar un programa que declara tres variables de tipo entero, una con valor 5, otra con valor 10 y otra para el resultado. Realiza la suma de las dos primeras y lo guarda en la tercera. Por ltimo mostrar el resultado en pantalla. Cdigo:
Resultado esperado:
Anterior | Siguiente Primeros ejercicios Podemos estar tentados de leer el cdigo de los ejemplos, y si lo entendemos o sabemos como hacerlos ya considerar que es suficiente y limitarnos a pasar al siguiente o bien copiar y pegar el cdigo para probarlo. Pues bien, nuestra experiencia nos dice que eso es un error. Aunque os parezca una tarea repetitiva y un poco absurda , el teclear el cdigo nos permitir adquirir rapidez y mejorar nuestra destreza a la hora de afrontar problemas, seguramente cometeremos errores al teclear el cdigo, solucionaremos rpidamente esos errores en los programas pequeos, cuando vuelvan a aparecer posteriormente con programas de ms tamao sabremos la forma de solucionarlos de memoria despus de haberlo resuelto tantas veces, etc. De verdad, la decisin es vuestra, pero el teclear cdigo en lugar de ser una prdida de tiempo, es una forma de adquirir o mejorar nuestra destreza. Actividad. Ejemplo_03 Realizar un programa que declara tres variables enteras una con valor 50, otra con valor 10 y otra para el resultado. Realiza la suma, la resta, la multiplicacin y la divisin de las dos primeras y va mostrando en pantalla cada una de las operaciones con el resultado correspondiente. Para unir cadenas literales y valores en la salida de printlnutilizaremos el operador + que concatena cadenas de caracteres. Solucin. public class Ejemplo_03 { public static void main(String[] args) { int a=50, b=10, res; res=a+b; System.out.println("La suma de "+a+" y "+b+" es :"+res); res=a-b; System.out.println("La resta de "+a+" menos "+b+" es :"+res); res=a*b; System.out.println("El producto de "+a+" por "+b+" es :"+res); res=a/b; System.out.println("La divisin de "+a+" entre "+b+" es :"+res); } }
Pregunta Si los valores de las variables en el ejercicio anterior hubiesen sido 50 y 15 cules habran sido los resultados en la salida? La suma de 50 y 15 es: 65 La resta de 50 menos 15 es: 35 El producto de 50 por 15 es: 750 La divisin de 50 entre 15 es: 3
Cual es el motivo del ltimo resultado de la divisin?
Recuerda que la divisin de dos nmeros enteros da como resultado solamente la parte entera de la divisin.
Ejercicio. Ejemplo_04 A partir de aqu recomendamos intentar realizar los programas sin ver la solucin. Si despus de intentarlo varias veces no damos con la solucin correcta podemos utilizar el botn Click Aqu para ver como hacerlo. Realizar un programa que tiene dos variables de tipo entero que contienen la informacin de un rectngulo: base con valor 7 y altura con valor 4, y otras dos p y a para almacenar el clculo del permetro del rectngulo y su rea. Mostrar la informacin calculada por pantalla. public class Ejemplo_04 { public static void main(String[] args) { int base=7,altura=4; int p=0,a=0; //No es imprescindible inicializarlas pues van a recibir un valor a partir de la expresin que realiza el clculo p=2*base + 2*altura; a=base * altura; System.out.println("El rectngulo con lados "+base+" y "+altura+" tiene de permetro "+p+" y de rea "+a); } } Ejercicio. Ejemplo_05 Realizar un programa que tiene dos variables que contienen la informacin de un triangulo: base con valor 5 yaltura con valor 3, y otra a para almacenar el clculo su rea. Mostrar la informacin calculada por pantalla. public class Ejemplo_05 { public static void main(String[] args) { int base=5,altura=3; double a=0; a=base*altura/2.0; //ponemos 2.0 para que sea un nmero real y el resultado de la operacin sera real (con decimales)
System.out.println("El rea de un tringulo de base "+base+" y altura "+altura+" es "+a); } } Ejercicio. Ejemplo_06 Realizar un programa que tiene una variable que contienen la informacin de un crculo: radio con valor 3, y otras doslongitud y area para almacenar el clculo de la longitud de su circunferencia y de su rea. Mostrar la informacin calculada por pantalla. Podemos emplear la constante matemtica PI de la claseMath de la siguiente forma: Math.PI public class Ejemplo_06 { public static void main(String[] args) { int radio=3; double longitud=0,area=0; longitud= 2 * Math.PI * radio; area= Math.PI * radio * radio; System.out.println("La longitud de la circunferencia de radio "+radio+" es "+longitud+" y su rea "+area); } } Anterior | Siguiente
Estructuras de control Las estructuras de control nos permitirn alterar la lnea de ejecucin de un programa. Las estructuras que vamos a estudiar en esta seccin son sencillas:
- Alternativas, incluido el operador ternario. - Alternativas mltiples. - Variables con un tratamiento especfico: Contadores, acumuladores y switches. - Bucles. - Bucle while - Bucle do-while - Bucle for
Anterior | Siguiente Alternativas Las alternativas permiten variar el curso de la ejecucin de un programa en funcin del resultado de una condicin. Si la condicin es verdadera se ejecutarn una o varias sentencias y, opcionalmente, si es falsa se ejecutarn otras sentencias. Debemos tener en cuenta que para las condiciones emplearemos los operadores relacionales que vimos anteriormente y los operadores lgicos. Por ejemplo: Si tenemos una variable var1 de tipo entero con valor 5 y otra var2 de tipo entero con valor 10 podramos tener expresiones como: (var1 > 10) resultado falso (var1 <= 7) resultado verdadero (var1 > 5 || var2 > 5) resultado verdadero (var1 > 3 || var2 < 5) resultado verdadero (var1 > 10 || var2 > 20) resultado falso (var1 > 3 && var2 > 3) resultado verdadero (var1 > 3 && var2 < 3) resultado falso Podemos tener expresiones ms complejas. Cuando esto ocurre es mejor encerrar las condiciones entre parntesis para indicar la prioridad en la que tienen que ser evaluadas. Por ejemplo: (var1 > 3 && (var2 >5 || var2 < 25)) resultado verdadero (var1 < 3 || (var1 < var2 && var2 < 20)) resultado verdadero Tambin podemos incluir en una condicin una expresin matemtica. En estos casos tambin es mejor emplear parntesis para indicar la prioridad en la que se tienen que resolver las expresiones. Por ejemplo: (var1 > (var2 / 2) || (var2 >= (var1 *2) && var2 >7)) Para evaluar esto el compilador primero ejecuta los parntesis ms internos, es decir, calcula var2/2 y var1*2 quedando la expresin como: (var1 > 5 || (var2 >= 10 && var2 > 7)) resultado verdadero
Es importante tener en cuenta que si utilizamos parntesis innecesarios nunca tendremos ningn problema pues el compilador ignorar todos los parntesis extras que coloquemos, sin embargo, si dejamos de poner algn parntesis que s sea necesario el resultado que obtendremos seguramente no sea el deseado, por eso nuestro consejo es que siempre que podamos tener alguna duda sobre como se va a evaluar la expresin, siempre utilizar parntesis.
Anterior | Siguiente Instruccin if La instruccin if es la alternativa ms simple que nos presenta el lenguaje de programacin Java. Tenemos varios formatos de esta instruccin que pasamos a ver a continuacin. if ( condicin ) { Instrucciones cuando la condicin es verdadera..... } Si la condicin es verdadera se ejecutarn todas las instrucciones que hay entre las llaves { }, si la condicin es falsa no har nada, seguir con la siguiente instruccin que haya despus de la llave de cierre de la instruccin. Cuando solamente hay que ejecutar una instruccin se pueden omitir las llaves, sin embargo, aconsejamos utilizarlas siempre, pues muchas veces tenemos que modificar los programas que hemos hecho y si tenemos que aadir instrucciones dentro de un if y no estn las llaves, es fcil que se nos olviden y que eso nos provoque errores no deseados.Consejo, siempre poner las llaves. Otro de los formatos es: if ( condicin ) { Instrucciones cuando la condicin es verdadera..... } else { Instrucciones cuando la condicin es falsa..... } Si la condicin es verdadera se ejecutarn todas las instrucciones que hay entre las primeras llaves { }, si la condicin es falsa se ejecutarn las instrucciones que hay entre las llaves que estn situadas detrs de la palabra reservada else. Igual que en el caso anterior, cuando solamente hay que ejecutar una instruccin se pueden omitir las llaves, sin embargo, de nuevo aconsejamos utilizarlas siempre.
Anterior | Siguiente Ejemplos con if Estos primeros ejercicios con la intruccin if van a ser muy sencillos y el nico objetivo que tienen es acostumbrarnos a utilizar la instruccin en un programa. Actividad Realizar un programa que tiene una variable a de tipo entero y valor 10. Que muestre su valor en pantalla y nos diga si es mayor que el valor 5 (obviamente si lo va a ser, solamente es para ver como emplear la instruccin), si no fuese mayor no tiene que decir nada.
Actividad Realizar un programa que tiene una variable a de tipo entero y valor 10. Que muestre su valor en pantalla y nos diga si es mayor que el valor 5 y en caso de que no lo sea que muestre un mensaje indicando que no lo es (aunque esto nunca se ejecutar pues no se cumplir).
Anterior | Siguiente
Ejercicios con if Pgina 1 Para poder realizar ejercicios en los que desconozcamos previamente cual es el resultado que debe salir vamos a aprender a generar nmeros aleatorios. la generacin de nmeros aleatorios en Java es sencillo. Para ello Java suministra la clase (ya veremos ms adelante que es una clase)Math. Esta clase dispone de un mtodo llamado random( ) que genera un nmero aleatorio real entre 0 y 1. Para emplear un mtodo de una clase siempre pondremos primero el nombre de la clase, despus un punto y a continuacin el nombre del mtodo. Math.random( ) Para obtener un nmero entero entre 1 y 10 ser necesario multiplicar el numero aleatorio por 10 y despus sumarle 1. El resultado de esta operacin seguira siendo un nmero real, es decir, debemos aplicar a ese resultado un coversor explicito (int) para convertir el resultado a un nmero entero. Por ejemplo: (int)(Math.random( ) * 10 + 1) Si deseamos un nmero aleatorio entero entre 1 y 50 la expresin sera: (int) (Math.random( ) * 50 + 1) Si deseamos un nmero aleatorio entero entre 1 y 3000 la expresin sera: (int)(Math.random( ) * 3000 +1)
Actividad Realizar un programa que genera un nmero aleatorio entre 1 y 20 y nos indica si el nmero obtenido es mayor o igual que 10 o si no lo es.
Actividad Realizar un programa que genera un nmero aleatorio entre 1 y 20 y nos indica si el nmero obtenido es par o impar. Para saber si un nmero es par o impar utilizaremos el operador matemtico mdulo que nos da el resto de una divisin entera. Si el resto de dividir un nmero entre dos es 0 indicar que el nmero es par, por el contrario, si el resto es 1 el nmero es impar.
Anterior | Siguiente Ejercicios con if Pgina 2 Ejercicio. Ejemplo_07. Realizar un programa que genera dos nmeros aleatorios entre 1 y 20 y muestre en pantalla el mayor de ellos.
Ejercicio. Ejemplo_08. Realizar un programa que genera dos nmeros aleatorios entre 1 y 20 y los muestre en pantalla ordenados de mayor a menor.
Ejercicio. Ejemplo_09. Realizar un programa que genera tres nmeros aleatorios entre 1 y 50 y muestre en pantalla el mayor de ellos. Este ejercicio tiene varias soluciones posibles. Vamos a mostrar tres de ellas para que puedas probar que todas son correctas, no obstante, la ltima que te vamos a mostrar es la ms eficaz, ya que es la que menos cdigo tiene que ejecutar y por tanto la ms rpida. Este ejemplo te debe servir para reflexionar ante un problema sobre las posibles soluciones que se pueden aplicar a un problemas y despus seleccionar la ms apropiada.
Primera solucin. Comparamos los nmeros entre s en una sola condicin.
Segunda solucin. Utilizamos condiciones anidadas.
Tercera solucin. La mejor solucin. Utilizamos una cuarta variable para ir guardando el mayor valor de los tres.
Anterior | Siguiente
Ejercicios con if Pgina 3 Ejercicio. Ejemplo_10. Realizar un programa que genera una nota aleatoria entre 1 y 10 y los muestra en pantalla su correspondiente valoracin en texto: Insuficiente, suficiente, bien, notable o sobresaliente.
Otra forma de la instruccin if en Java es el siguiente. if (condicin1) {Instrucciones;} else if(condicin2) {Instrucciones;} else if(condicin3) {Instrucciones;} else {Instrucciones;}
Ejemplo. Utilizar else if. Rehacer el ejercicio anterior, nmero 10, empleando la nueva instruccin else if.
Operador ternario.
Java tambin cuenta con el operador ternario, igual que el lenguaje C y otros lenguajes. Este operador es simplemente un if abreviado. Variable = (condicin que devuelve un valor booleano) ? (valor si devuelve true) : (valor si devuelve false); Por ejemplo si queremos obtener el mayor valor de dos variables a y b utilizaremos:
mayor = (a > b)? a : b;
O tambin podemos emplearlo directamente al imprimir. System.out.println("El mayor es :"+((a>b)?a:b));
Anterior | Siguiente Ejercicios con if Pgina 4 Los ejercicios que se presentan en esta pgina vienen sin solucin. Espero que podis solucionarlos y si no es as que planteeis vuestras dudas sobre ellos para ponerlos en comn y ofreceros la mejor solucin para cada uno de ellos. Ejercicio. Ejemplo_11. Realizar un programa que genera un ao aleatorio entre 1950 y 2050, lo muestre en pantalla y nos diga si es un ao bisiesto o no. Segn Wikipedia un ao bisiesto es: Un ao es bisiesto si es divisible entre 4, a menos que sea divisible entre 100. Sin embargo, si un ao es divisible entre 100 y adems es divisible entre 400, tambin resulta bisiesto.
Ejercicio. Ejemplo_12. Realizar un programa que genera tres nmeros aleatorios entre 1 y 50 y los muestra en pantalla ordenados de mayor a menor.
Ejercicio. Ejemplo_13. Realizar un programa que genera una cantidad entera de euros de forma aleatoria entre 1 y 1000 y nos muestre cuantos billetes y monedas de cada clase son necesarias para representar esa cantidad con el mnimo nmero de billetes y monedas.
Ejercicio. Ejemplo_14. Realizar un programa que genera cuatro nmeros enteros aleatorios entre 1 y 50 y muestra en pantalla el valor mayor y el valor menor de los cuatro.
Anterior | Siguiente
Alternativa mltiple Alternativas mltiples. La instruccin switch permite seleccionar un conjunto de instrucciones a ejecutar a partir de una expresin con resultado entero. La expresin puede ser una variable o una operacin matemtica o similar con resultado entero. Si la expresin devuelve el valor1 se ejecutarn todas las instrucciones que hay desde el signo : (dos puntos) hasta que se encuentre la instruccinbreak; Si una vez que ha entrado por una de las opciones (valores) no ponemos la instruccin break, se continuarn ejecutando las instrucciones de los siguientes valores hasta que se encuentre un break o se termine el switch.
switch (expresin) { case valor1: instrucciones; break; case valor2: instrucciones; break; ... case valorN: instrucciones; break; default: instrucciones; break; } La opcin default es opcional. Las instrucciones incluidas en esta opcin sern ejecutadas si no hemos entrado por ninguna opcin de las anteriores. Anterior | Siguiente Ejemplos con switch Ejemplo. Alternativa mltiple 01. Realizar un programa que genera aleatoriamente un nmero del 1 al 7 y nos muestra en pantalla el da de la semana siendo 1 lunes, 2 martes y as sucesivamente.
Ejemplo. Alternativa mltiple 02. Vamos a repetir un ejercicio realizado anteriormente pero empleando ahora la instruccin switch. Realizar un programa que genera de forma aleatoria una nota entre 1 y 10 y muestra en letras la calificacin (suspenso, aprobado, bien, notable....)
Anterior | Siguiente
Ejercicios con switch Pgina 1
Ejercicio. Ejemplo_15. Realizar un programa que genera un nmero de mes (de 1 a 12) aleatoriamente y nos muestra en pantalla el nombre del mes .
Ejercicio. Ejemplo_16. Realizar un programa que genera un nmero de mes (de 1 a 12) aleatoriamente y nos muestra slo el nmero de das que tiene ese mes. Para Febrero utilizaremos 28 das.
Ejercicio. Ejemplo_17. Bueno, aqu va este sin solucin para ver como sale. Se trata de realizar un programa que genera de forma aleatoria un nmero de ao entre 1950 y 2050 y un nmero de mes entre 1 y 12 y nos indica el nmero de das del mes obtenido en el ao generado. Hay que tener en cuenta que si el ao es bisiesto febrero tendr 29 das en caso contrario sern 28 das.
Anterior | Siguiente Cierre de la primera semana. Bien, si habis llegado hasta aqu quiere decir que todo va bien. Esta primera semana espero que haya sido sencilla y que no os haya llevado mucho tiempo. Evidentemente, la dificultad del curso se ir incrementando semana a semana y los ejercicios cada vez sern ms largos y complejos. Pero no os preocupis, intentaremos que esa dificultad sea gradual para que poco a poco vayamos ganando en conocimientos y habilidad en esto de la programacin. Por supuesto que si disponis de ejercicios que sean interesantes para cada una de las partes que vamos viendo os invito a que los compartis entre todos y por supuesto si detectis algn error en el curso (es muy posible pues es la primera vez que se est utilizando) no dudis en decirlo para corregirlo lo antes posible. Igualmente sern bienvenidas las sugerencias que deseis aportar para mejorarlo. Muchas gracias a todos por vuestra participacin en este proyecto y hasta la prxima semana.