primera semana

37
Introducción Hola a todo@s, bienvenidos a este curso de programación. Como casi todos sabéis, el objetivo de este curso es ayudaros a mejorar vuestra habilidad en la programación. Este curso comienza desde cero, pero quiero adelantaros que está pensado para los alumnos que ya han intentado hacer algo de programación previamente, es decir, que aunque os recordará los conceptos básicos, no dedicaremos un tiempo excesivo a la teoría, todo lo contrario, intentaremos que sea lo más práctico posible con la realización de un gran número de ejercicios. El curso estará dividido en dos partes, esta es la primera y se dedicará a ver las herramientas más básicas que nos suministra el lenguaje Java para resolver los problemas. El tipo de programación empleado en esta primera parte será programación secuencial (convencional). En la segunda parte veremos la programación 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 programación que vamos a realizar es en modo consola, es decir nuestros programas no se ejecutarán en modo ventanas de Windows, ese será el paso siguiente que tendréis que dar aquellos que deseéis crear aplicaciones de escritorio para Windows o Linux. También os adelanto que es la primera vez hacemos un proyecto como éste, y espero que colaboréis lo más posible en detectar los fallos que existan para corregirlos lo antes posible. Además lo que más nos gustaría es que el curso fuese dinámico 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 estás fijando aún más 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 empleáis otros IDE´s más 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 próximo año con la programación de dispositivos móviles, y lo poco que hemos probado es con Eclipse y el SDK de Android. Como pensamos que ese entorno será el más 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.

Upload: krules1

Post on 19-Jan-2016

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Primera Semana

Introducción

Hola a todo@s, bienvenidos a este curso de programación.

Como casi todos sabéis, el objetivo de este curso es ayudaros a mejorar vuestra habilidad en la programación. Este curso comienza desde cero, pero quiero adelantaros que está pensado para los alumnos que ya han intentado hacer algo de programación previamente, es decir, que aunque os recordará los conceptos básicos, no dedicaremos un tiempo excesivo a la teoría, todo lo contrario, intentaremos que sea lo más práctico posible con la realización de un gran número de ejercicios.

El curso estará dividido en dos partes, esta es la primera y se dedicará a ver las herramientas más básicas que nos suministra el lenguaje Java para resolver los problemas. El tipo de programación empleado en esta primera parte será programación secuencial (convencional). En la segunda parte veremos la programación 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 programación que vamos a realizar es en modo consola, es decir nuestros programas no se ejecutarán en modo ventanas de Windows, ese será el paso siguiente que tendréis que dar aquellos que deseéis crear aplicaciones de escritorio para Windows o Linux.

También os adelanto que es la primera vez hacemos un proyecto como éste, y espero que colaboréis lo más posible en detectar los fallos que existan para corregirlos lo antes posible. Además lo que más nos gustaría es que el curso fuese dinámico 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 estás fijando aún más 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 empleáis otros IDE´s más 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 próximo año con la programación de dispositivos móviles, y lo poco que hemos probado es con Eclipse y el SDK de Android. Como pensamos que ese entorno será el más 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. Podéis descargar el software desde la siguiente dirección:

http://www.edusoft.es/descargas

O bien descargarlo desde las páginas oficiales de ambas organizaciones:

Page 2: Primera Semana

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 aplicación Windows que simplemente se instalará con un doble clic. Debemos tener en cuenta que se necesitarán permisos de administrador para algunos de los cambios que se realizarán 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.

Después 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

Page 3: Primera Semana

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 opción 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.

Page 4: Primera Semana
Page 5: Primera Semana

  Si todo ha funcionado correctamente tenemos el preparado el documento y la clase para teclear nuestro código.

 Ahora tecleamos el código 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 botón:

 o bien pulsando la combinación de teclas Ctrl + S

Para ejecutar nuestro programa utilizaremos:

Page 6: Primera Semana

Run > Run

En la parte inferior aparecerá el resultado de la ejecución 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 programación Java:

- Java es un lenguaje de programacion de propósito 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 fácil empezar con Java.

- Lenguaje multiplataforma: Los programas Java se ejecutan sin variación (sin recompilar) en cualquier plataforma soportada (Windows, UNIX, Mac...)

- Lenguaje interpretado: El intérprete a código máquina (dependiente de la plataforma) se llama Java Virtual Machine (JVM). El compilador produce un código intermedio independiente del sistema denominado bytecode que después es ejecutado por la máquina 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 »

Page 7: Primera Semana

Tipos Primitivos de Datos

Los tipos primitivos son los que permiten manipular valores numéricos (con distintos grados de precisión), caracteres y valores booleanos (verdadero / falso). Los Tipos Primitivos son:

boolean : Puede contener los valores true o false. byte : Enteros. Tamaño 8-bits. Valores entre -128 y 127. short : Enteros. Tamaño 16-bits. Entre -32768 y 32767. int : Enteros. Tamaño 32-bits. Entre -2147483648 y 2147483647. long : Enteros. Tamaño 64-bits. Entre -9223372036854775808 y

9223372036854775807. float : Números en coma flotante. Tamaño 32-bits. double : Números en coma flotante. Tamaño 64-bits. char : Caracteres. Tamaño 16-bits. Unicode. Desde '\u0000' a'\uffff' inclusive.

Esto es desde 0 a 65535

El tamaño de los tipos de datos no depende de la implementación 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;         // Declaración de un entero char letra;    // Declaración de un carácterboolean flag;  // Declaración de un booleano

Debemos tener en cuenta: 

- Que el ; es el separador de sentencias en Java.

- El símbolo // indica comentarios de línea.

- Podemos indicar comentarios de varias líneas con /* y */. Además como veremos más adelante tenemos los comentarios de documentación que son generados a partir de /** y */.

- En Java (es case sensitive) las mayúsculas y minúsculas son significativas. No es lo mismo el nombre letra que Letra o LeTrA.Normalmente   las variables siempre comenzarán por

minúscula y si el nombre de la variable está formada por varias palabras, cada una de las siguientes palabras comienza con mayúscula, p.e.letraInicialPalabra.

- Todas las palabras reservadas del lenguaje van en minúsculas.

Page 8: Primera Semana

- Se pueden asignar valores a las variables mediante la instrucción de asignación. Por ejemplo:

i = 5;          // a la variable i se le asigna el valor 5letra = 'c';    // a la variable letra se le asigna el valor 'c'flag = false;  // a la variable flag se le asigna el valor false

La declaración y la asignación se pueden combinar en una sola expresión:

int i = 5;         char letra = 'c';   boolean flag = false; 

 

 

« Anterior | Siguiente »

Literales

En los literales numéricos 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 numéricos 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 numérico a otro utilizando los conversores explícitos (int), (long), etc.

Literales hexadecimales: Al valor en hexadecimal se antepone el símbolo 0x. Por ejemplo: 0xf (valor 15)

Literales booleanos: true (verdadero) y false (falso)

Literales carácter: Un carácter entre apóstrofes (') o bien una secuencia de escape (también entre '). Las secuencias de escape están formadas por el símbolo \ y una letra o un número. Algunas secuencias de escape útiles:

\n:    Salto de línea \t:    Tabulador \b:    Backspace. \r:    Retorno de carro \uxxxx: donde xxxx es el código Unicode del carácter. Por ejemplo \u0027 es el

apostrofe (')

Las cadenas literales se encerrarán entre comillas dobles:

                “Esto es una cadena de caracteres”

Page 9: Primera Semana

« Anterior | Siguiente »

Operadores Matemáticos

Operador                 Uso                     Descripción

+                             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 división de dos enteros da la parte entera del resultado)

%                            op1 % op2            Obtiene el resto de dividir op1 por op2

Además, existen dos operadores de atajos aritméticos, ++ que incrementa en uno su operando, y -- que decrementa en uno el valor de su operando.

Operador Uso Descripción

++ op ++ Incrementa op en 1; evalúa el valor antes de incrementar

++ ++ op Incrementa op en 1; evalúa el valor después de incrementar

-- op -- Decrementa op en 1; evalúa el valor antes de decrementar

-- -- op Decrementa op en 1; evalúa el valor después de decrementar

También 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 »

Page 10: Primera Semana

Operadores de relación y operadores lógicos

Operadores de relación.

 

Mayor que >

Menor que <

Mayor o igual >=

Menor o igual <=

Igual a ==

Distinto !=

 

 

Operadores lógicos.

 

AND &&  Con el operador && para que la condición sea verdadera ambas condiciones deben ser verdaderas.

OR ||    Con el operador || para que la condición sea verdadera basta con que una de las dos condiones sea verdadera (también cuando lo son las dos)

NOT !   Con el operador ! si el resultado de la condición 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á extensión .java y que su nombre debe ser el mismo que el de la clase principal del archivo, la clase pública (public) en este caso será suma_dos_numeros.java (cuidado con mayúsculas o minúsculas, es diferente si estamos en Windows o en Linux).

El esquema general que aparecerá en el editor será:

public class suma_dos_numeros {

Page 11: Primera Semana

/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stub

..... Aquí teclearemos el código de nuestro programa....

}

}

 

Cuando tecleamos el código 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 línea, pues mientras no esté completada la marcará como errónea. Si al terminar sigue la marca, posiblemente hayamos cometido un error. Para ver el error que nos indica bastará con situar el puntero del ratón sobre la marca y nos mostrará una leyenda con un mensaje sobre el posible error detectado.

 

Indica un posible error en la línea.

Nos situamos con el ratón 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 ejecución de los programas es el método:

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 añade un salto de línea a la salida en pantalla.

Page 12: Primera Semana

 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.

Código:

Resultado esperado:

 

« Anterior | Siguiente »

Primeros ejercicios

Podemos estar tentados de leer el código 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 código 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 código nos permitirá adquirir rapidez y mejorar nuestra destreza a la hora de afrontar problemas, seguramente cometeremos errores al teclear el código, solucionaremos rápidamente esos errores en los programas pequeños, cuando vuelvan a aparecer posteriormente con programas de más tamaño

Page 13: Primera Semana

sabremos la forma de solucionarlos de memoria después de haberlo resuelto tantas veces, etc. De verdad, la decisión es vuestra, pero el teclear código en lugar de ser una pérdida 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 multiplicación y la división 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.

Solución.

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 división de "+a+" entre "+b+" es :"+res);

}

}

 PreguntaSi los valores de las variables en el ejercicio anterior hubiesen sido 50 y 15 ¿cuáles habrían 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 división de 50 entre 15 es: 3

Page 14: Primera Semana

 

¿Cual es el motivo del último resultado de la división?

 

Recuerda que la división de dos números enteros da como resultado solamente la parte entera de la división. 

 

 Ejercicio. Ejemplo_04

A partir de aquí recomendamos intentar realizar los programas sin ver la solución. Si después de intentarlo varias veces no damos con la solución correcta podemos utilizar el botón Click Aquí para ver como hacerlo.

Realizar un programa que tiene dos variables de tipo entero que contienen la información de un rectángulo: base con valor 7 y altura con valor 4, y otras dos p y a para almacenar el cálculo del perímetro del rectángulo y su área. Mostrar la información 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 expresión que realiza el cálculo

p=2*base + 2*altura;

a=base * altura;

System.out.println("El rectángulo con lados "+base+" y "+altura+" tiene de perímetro "+p+" y de área "+a);

}

}

 Ejercicio. Ejemplo_05

Realizar un programa que tiene dos variables que contienen la información de un triangulo: base con valor 5 yaltura con valor 3, y otra a para almacenar el cálculo su área. Mostrar la información calculada por pantalla.

public class Ejemplo_05 {

Page 15: Primera Semana

    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 número real y el resultado de la operación sera real (con decimales)      

        System.out.println("El área de un triángulo de base "+base+" y altura "+altura+" es "+a);

    }

}

 Ejercicio. Ejemplo_06

Realizar un programa que tiene una variable que contienen la información de un círculo: radio con valor 3, y otras doslongitud y area para almacenar el cálculo de la longitud de su circunferencia y de su área. Mostrar la información calculada por pantalla.

Podemos emplear la constante matemática 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 »

Page 16: Primera Semana

Estructuras de control

Las estructuras de control nos permitirán alterar la línea de ejecución de un programa. Las estructuras que vamos a estudiar en esta sección son sencillas:

 

- Alternativas, incluido el operador ternario.

- Alternativas múltiples.

- Variables con un tratamiento específico: Contadores, acumuladores y switches.

- Bucles.

        - Bucle while

        - Bucle do-while

        - Bucle for

 

« Anterior | Siguiente »

Alternativas

Las alternativas permiten variar el curso de la ejecución de un programa en función del resultado de una condición. Si la condición es verdadera se ejecutarán una o varias sentencias y, opcionalmente, si es falsa se ejecutarán otras sentencias.

Debemos tener en cuenta que para las condiciones emplearemos los operadores relacionales que vimos anteriormente y los operadores lógicos. Por ejemplo:

Si tenemos una variable var1 de tipo entero con valor 5 y otra var2 de tipo entero con valor 10 podríamos 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

Page 17: Primera Semana

(var1 > 3 && var2 < 3) resultado falso

Podemos tener expresiones más complejas. Cuando esto ocurre es mejor encerrar las condiciones entre paréntesis 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 

También podemos incluir en una condición una expresión matemática. En estos casos también es mejor emplear paréntesis 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 paréntesis más internos, es decir, calcula var2/2 y var1*2 quedando la expresión como:

(var1 > 5 || (var2 >= 10 && var2 > 7)) resultado verdadero

Es importante tener en cuenta que si utilizamos paréntesis innecesarios nunca tendremos ningún problema pues el compilador ignorará todos los paréntesis extras que coloquemos, sin embargo, si dejamos de poner algún paréntesis 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 expresión, siempre   utilizar paréntesis.

 

« Anterior | Siguiente »

Instrucción if

La instrucción if es la alternativa más simple que nos presenta el lenguaje de programación Java. Tenemos varios formatos de esta instrucción que pasamos a ver a continuación.

if ( condición )

{

Instrucciones cuando la condición es verdadera..... 

}

Si la condición es verdadera se ejecutarán todas las instrucciones que hay entre las llaves { }, si la condición es falsa no hará nada, seguirá con la siguiente instrucción que haya después de la llave de cierre de la instrucción. Cuando solamente hay que ejecutar una instrucción se

Page 18: Primera Semana

pueden omitir las llaves, sin embargo, aconsejamos utilizarlas siempre, pues muchas veces tenemos que modificar los programas que hemos hecho y si tenemos que añadir instrucciones dentro de un if y no están las llaves, es fácil que se nos olviden y que eso nos provoque errores no deseados.Consejo, siempre poner las llaves.

Otro de los formatos es:

if ( condición )

{

Instrucciones cuando la condición es verdadera..... 

}

else

{

Instrucciones cuando la condición es falsa.....

}

Si la condición es verdadera se ejecutarán todas las instrucciones que hay entre las primeras llaves { }, si la condición es falsa se ejecutarán las instrucciones que hay entre las llaves que están situadas detrás de la palabra reservada else. Igual que en el caso anterior, cuando solamente hay que ejecutar una instrucción se pueden omitir las llaves, sin embargo, de nuevo aconsejamos utilizarlas siempre.

 

« Anterior | Siguiente »

Ejemplos con if

Estos primeros ejercicios con la intrucción if van a ser muy sencillos y el único objetivo que tienen es acostumbrarnos  a utilizar la instrucción 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 instrucción), si no fuese mayor no tiene que decir nada.

Page 19: Primera Semana

 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 »

Page 20: Primera Semana

Ejercicios con if Página 1

Para poder realizar ejercicios en los que desconozcamos previamente cual es el resultado que debe salir vamos a aprender a generar números aleatorios. la generación de números aleatorios en Java es sencillo. Para ello Java suministra la clase (ya veremos más adelante que es una clase)Math. Esta clase dispone de un método llamado random( ) que genera un número aleatorio real entre 0 y 1.

Para emplear un método de una clase siempre pondremos primero el nombre de la clase, después un punto y a continuación el nombre del método.

Math.random( )

Para obtener un número entero entre 1 y 10 será necesario multiplicar el numero aleatorio por 10 y después sumarle 1. El resultado de esta operación seguiría siendo un número real, es decir, debemos aplicar a ese resultado un coversor explicito (int) para convertir el resultado a un número entero. Por ejemplo:

(int)(Math.random( ) * 10 + 1)

Si deseamos un número aleatorio entero entre 1 y 50 la expresión sería:

(int) (Math.random( ) * 50 + 1)

Si deseamos un número aleatorio entero entre 1 y 3000 la expresión sería:

(int)(Math.random( ) * 3000 +1)

 

 

Page 21: Primera Semana

 Actividad

Realizar un programa que genera un número aleatorio entre 1 y 20 y nos indica si el número obtenido es mayor o igual que 10 o si no lo es.

 Actividad

Realizar un programa que genera un número aleatorio entre 1 y 20 y nos indica si el número obtenido es par o impar.

Para saber si un número es par o impar utilizaremos el operador matemático módulo que nos da el resto de una división entera. Si el resto de dividir un número entre dos es  0 indicará que el número es par, por el contrario, si el resto es 1 el número es impar.

Page 22: Primera Semana

« Anterior | Siguiente »

Ejercicios con if Página 2

 Ejercicio. Ejemplo_07.

Realizar un programa que genera dos números aleatorios entre 1 y 20 y muestre en pantalla el mayor de ellos.

Page 23: Primera Semana

 Ejercicio. Ejemplo_08.

Realizar un programa que genera dos números aleatorios entre 1 y 20 y los muestre en pantalla ordenados de mayor a menor.

 Ejercicio. Ejemplo_09.

Realizar un programa que genera tres números 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 más eficaz, ya que es la que menos código tiene que ejecutar y por tanto la más rápida. Este ejemplo te debe servir para reflexionar ante un problema sobre las posibles soluciones que se pueden aplicar a un problemas y después seleccionar la más apropiada.

Primera solución. Comparamos los números entre sí en una sola condición.

Page 24: Primera Semana

Segunda solución. Utilizamos condiciones anidadas.

Page 25: Primera Semana

Tercera solución. La mejor solución. Utilizamos una cuarta variable para ir guardando el mayor valor de los tres.

Page 26: Primera Semana

« Anterior | Siguiente »

Page 27: Primera Semana

Ejercicios con if Página 3

 Ejercicio. Ejemplo_10.

Realizar un programa que genera una nota aleatoria entre 1 y 10 y los muestra en pantalla su correspondiente valoración en texto: Insuficiente, suficiente, bien, notable o sobresaliente.

Otra forma de la instrucción if en Java es el siguiente.

if (condición1)

{Instrucciones;}

else if(condición2)

{Instrucciones;}

else if(condición3)

Page 28: Primera Semana

{Instrucciones;}

else

{Instrucciones;}

 

 Ejemplo. Utilizar else if.Rehacer el ejercicio anterior, número 10, empleando la nueva instrucción else if.

Operador ternario.

 

Java también cuenta con el operador ternario, igual que el lenguaje C y otros lenguajes. Este operador es simplemente un if abreviado.

Variable = (condición 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:

 

Page 29: Primera Semana

mayor = (a > b)? a : b;

 

O también podemos emplearlo directamente al imprimir.System.out.println("El mayor es :"+((a>b)?a:b));

 « Anterior | Siguiente »

Ejercicios con if Página 4

Los ejercicios que se presentan en esta página vienen sin solución. Espero que podáis solucionarlos y si no es así que planteeis vuestras dudas sobre ellos para  ponerlos en común y ofreceros la mejor solución para cada uno de ellos.

 Ejercicio. Ejemplo_11.

Realizar un programa que genera un año aleatorio entre 1950 y 2050, lo muestre en pantalla y nos diga si es un año bisiesto o no.

Según Wikipedia un año bisiesto es: Un año es bisiesto si es divisible entre 4, a menos que sea divisible entre 100. Sin embargo, si un año es divisible entre 100 y además es divisible entre 400, también resulta bisiesto.

 Ejercicio. Ejemplo_12.

Realizar un programa que genera tres números 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 mínimo número de billetes y monedas.

 Ejercicio. Ejemplo_14.

Realizar un programa que genera cuatro números enteros aleatorios entre 1 y 50 y muestra en pantalla el valor mayor y el valor menor de los cuatro.

« Anterior | Siguiente »

Page 30: Primera Semana

Alternativa múltiple

Alternativas múltiples.

La instrucción switch permite seleccionar un conjunto de instrucciones a ejecutar a partir de una expresión con resultado entero. La expresión puede ser una variable o una operación matemática o similar con resultado entero.

Si  la expresión devuelve el valor1 se ejecutarán todas las instrucciones que hay desde el signo : (dos puntos) hasta que se encuentre la instrucciónbreak;

Si una vez que ha entrado por una de las opciones (valores) no ponemos la instrucción break, se continuarán ejecutando las instrucciones de los siguientes valores hasta que se encuentre un break o se termine el switch.

switch (expresión){ case valor1:  instrucciones;  break; case valor2:  instrucciones;  break; ... case valorN:  instrucciones;  break; default:  instrucciones;  break;}

La opción default es opcional. Las instrucciones incluidas en esta opción serán ejecutadas si no  hemos entrado por  ninguna opción de las anteriores.

« Anterior | Siguiente »

Ejemplos con switch

 Ejemplo. Alternativa múltiple 01.

Realizar un programa que genera aleatoriamente un número del 1 al 7 y nos muestra en pantalla el día de la semana siendo 1 lunes, 2 martes y así sucesivamente.

Page 31: Primera Semana

 Ejemplo. Alternativa múltiple 02.

Vamos a repetir un ejercicio  realizado anteriormente pero empleando ahora la instrucción switch.

Realizar un programa que genera de forma aleatoria una nota entre 1 y 10 y  muestra en letras la calificación (suspenso, aprobado, bien, notable....)

Page 32: Primera Semana

« Anterior | Siguiente »

Ejercicios con switch Página 1

 Ejercicio. Ejemplo_15.

Realizar un programa que genera un número de mes (de 1 a 12) aleatoriamente y nos muestra en pantalla el nombre del mes .

Page 33: Primera Semana

 Ejercicio. Ejemplo_16.

Realizar un programa que genera un número de mes (de 1 a 12) aleatoriamente y nos muestra sólo el número de días que tiene ese mes. Para Febrero utilizaremos 28 días.

Page 34: Primera Semana

 Ejercicio. Ejemplo_17.

Bueno, aquí va este sin solución para ver como sale.

Se trata de realizar un programa que genera de forma aleatoria un número de año entre 1950 y 2050 y un número de mes entre 1 y 12 y nos indica el número de días  del mes obtenido en el año generado. Hay que tener en cuenta que si el año es bisiesto febrero tendrá 29 días en caso contrario serán 28 días.

« Anterior | Siguiente »

Cierre de la primera semana.

Bien, si habéis 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 serán más largos y complejos.  Pero no  os preocupéis, intentaremos que esa dificultad sea gradual para que  poco a poco vayamos ganando en conocimientos y  habilidad en esto de la programación.

Page 35: Primera Semana

Por supuesto que si disponéis de ejercicios que sean interesantes para cada una de las partes que vamos viendo os invito a que los compartáis entre todos y por supuesto si  detectáis algún error en el curso (es muy posible pues es la primera vez que se está utilizando) no dudéis en decirlo para  corregirlo lo antes posible.

Igualmente serán bienvenidas las sugerencias que deseéis aportar para mejorarlo.

Muchas gracias a todos por vuestra participación en este proyecto y hasta la próxima semana. 

 

« Anterior