Sunteți pe pagina 1din 35

Introduccin

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.

Anterior

S-ar putea să vă placă și