martes, 21 de diciembre de 2021

APRENDER A PROGRAMAR EN JAVA

 

BREVE Y RÁPIDA INTRODUCCION A LA PROGRAMACIÓN

El aprendizaje de un lenguaje de programación es una tarea complicada, puesto que solamente podemos utilizar un conjunto limitado de instrucciones para decirle al ordenador cuál es la tarea que queremos que realice. Es algo que no lo has hecho nunca, hasta que empiezas a aprender a programar y por eso suele costar bastante pillar el tranquillo a la programación.

Un programa es un conjunto de instrucciones, debidamente ordenadas, que se realizan en ese mismo orden, para poder alcanzar un objetivo. Ésta también es la definición de ALGORITMO: Conjunto de instrucciones o pasos que hay que realizar para alcanzar un objetivo.

Todos seguimos Algoritmos desde hace muchos años, aunque no nos demos cuenta de ello. Por ejemplo, un Algoritmo puede ser el simple hecho de "Levantarse todos los días para ir al instituto", las instrucciones o pasos son las siguientes:

  1. Levantarse de la cama
  2. Ir al baño
  3. Ir a la cocina
  4. Preparar el desayuno
  5. Vestirse
  6. Coger la mochila
  7. Salir de casa para ir al Instituto

Estos 7 pasos, muy resumidamente, son los que realizamos para ir al Instituto por la mañana. Algunos de los pasos pueden cambiarse de orden (por ejemplo el 5 por el 2, o el 3y4 por el 2, etc...), pero otros no se pueden cambiar de orden (1, 6 y 7).

Otro ejemplo claro de un Algoritmo es una receta de cocina, en la cual nos va indicando paso a paso qué cosas tenemos que hacer para cocinar un plato determinado.

Para Definir los algoritmos hay varios métodos desarrollados a lo largo de los años. Pero son 2 métodos los más utilizados: el PSEUDOCÓDIGO y los DIAGRAMAS DE FLUJO.

El PSEUDOCÓDIGO consiste en escribir una a una las instrucciones con lenguaje natural, fácilmente entendible por los humanos.

Los DIAGRAMAS DE FLUJO consisten en unos diagramas realizados con formas geométricas (óvalos, rectángulos, rombos, líneas, etc...) que van indicando cada uno de los pasos o instrucciones que va siguiendo el algoritmo.

Tanto los DIAGRAMAS DE FLUJO cómo el PSEUDOCÓDIGO de los algoritmos se suelen escribir en papel, y suelen sufrir muchas modificaciones hasta que queda el ALGORITMO completo y correcto. Los algoritmos no se suelen hacer bien al primer intento, a no ser que sean Algoritmos sencillos, y necesitan depurarse y probarse varias veces.

Pero, desde hace poco tiempo, ha sido creado un programa gratuito, llamado PSeInt, que nos permite realizar de una forma muy sencilla los ALGORITMOS directamente en el ordenador (tanto en PSEUDOCÓDIGO como en DIAGRAMAS DE FLUJO). Y una ventaja muy buena que tiene PSeInt es que podemos ejecutar directamente los Algoritmos para ver si funcionan correctamente.

Nosotros aprenderemos en clase a utilizar PSeInt para realizar nuestros Algoritmos.

Una vez que los algoritmos están creados y funcionan correctamente, es la hora de traducirlos al lenguaje de programación que vayamos a utilizar. En nuestro caso vamos a utilizar JAVA, que es uno de los lenguajes de programación más utilizados en todo el mundo para crear multitud de aplicaciones, tanto para PC como para Teléfonos móviles y otras plataformas.

Existen muchos lenguajes de programación: C, C++, C#, JAVA, Python, Pascal, JavaScript, ... , y aprender a utilizar cada uno de ellos requiere su tiempo (normalmente varios meses). Pero lo bueno que tiene, cuando ya has aprendido tu primer lenguaje de programación, es que los demás suelen tener muchas cosas en común con ellos. Pero eso sí, el primero que aprendes suele costar bastante esfuerzo.

Normalmente la Metodología para aprender a programar en un lenguaje de programación, al principio sueles pasar varias semanas aprendiendo cosas teóricas del propio lenguaje, hasta que empiezas a realizar tu primer programa en el ordenador.

Nosotros, de momento, nos vamos a saltar toda esa teoría de varias semanas, y nos vamos a poner a programar prácticamente desde el segundo día. Para ello vamos a seguir una Metodología muy práctica y directa: vamos a ir siguiendo los vídeos de un canal de Youtube que se llama "Empieza a Programar" que tiene un curso de "Programación en Java". Son videos de una duración mas o menos corta (entre 15 y 25 minutos), en los que están muy bien explicados los conceptos e instrucciones fundamentales de JAVA.

En el primero de los vídeos se explica para qué se utiliza JAVA, y qué cosas tenemos que tener instaladas en nuestro ordenador. Y a partir del segundo video empezamos a realizar nuestro primer Programa en JAVA (el típico "Hola Mundo").

Seguiremos estos videos hasta donde nos dé tiempo llegar.

El entorno de desarrollo que utilizaremos será ECLIPSE, y tendremos que instalar también el JDK en nuestro ordenador. Pero para no tener que instalar nada, vamos a utilizar un ECLIPSE portable, en el que ya viene integrado el JDK. Lo puedes descargar en el archivo adjunto que añado aquí, llamado "Eclipse Portable 2021 con JDK incluido.7z". También tendremos que descargar "PSeInt aquí" para realizar los Algoritmos en Pseudocódigo y en Diagramas de Flujo.

Una vez descargado este archivo (que viene comprimido), hay que descomprimirlo utilizando el compresor gratuito 7Zip. Lo puedes descomprimir donde quieras en tu ordenador: en el Escritorio, en la carpeta de Mis Documentos, en un Pendrive, etc... . Da igual donde lo descomprimas: Te generará 2 carpetas llamadas "CommonFile" y "EclipsePortable". Esas 2 carpetas las tienes que meter dentro de otra llamada por ejemplo "Eclipse".

Para ejecutar nuestro Entorno de Desarrollo (Eclipse), abrimos la carpeta llamada "Eclipse" --> "EclipsePortable" --> "EclipsePortable.exe", y a continuación se abrirá dicho programa. Y después: A PROGRAMARRRR....

1 - El software necesario

En el primer video del curso veremos cuál es el software necesario usar para poder programar en JAVA. A parte de ECLIPSE existen otros Entornos de Desarrollo para poder programar en JAVA y otros lenguajes de programación, pero nosotros utilizaremos ECLIPSE, en su versión portable con el JDK instalado, que teneis en el enlace del apartado anterior.

Video 1

 

2- Nuestro primer programa

Todos los que hemos estudiado algún lenguaje de programación, hemos siempre realizado el mismo programa sencillo, que se conoce como "Hola Mundo" o "Hello World", porque en dicho programa, solamente se muestra un mensaje en pantalla que nos saluda de ésa manera. Es lo que vamos a aprender viendo el siguiente video:

Video 2

En este video ya podemos ver cuál es la estructura básica de todos los programas en JAVA, es decir, las instrucciones mínimas necesarias para que un programa de JAVA funcione correctamente. Es la siguiente:

public class Prueba2 { 
    public static void main(String[] args) { 
     
    } 
}

Es muy importante que los caracteres llave {  } esten debidamente balanceados, es decir, que haya el mismo número de llaves abiertas y llaves cerradas, sino el programa no llegará a ejecutarse. Además esos caracteres deberán estar situados en sus lugares correspondientes, porque sino tampoco se llegará a ejecutar el programa.

La primera instrucción que se suele aprender en programación es la de mostrar un mensaje por pantalla.

Esta instrucción es en JAVA:

System.out.print();

Entre los parentesis se pone lo que queremos que se imprima por pantalla, y hay que ponerlo entre dobles comillas. Por ejemplo:

System.out.print("Hola que tal?");

Esta instrucción imprimirá el mensaje Hola que tal? por pantalla.

Si queremos que al final de la linea saltemos a la linea siguiente, se debe utilizar otra instrucción muy similar a la anterior:

System.out.println();

Fíjate en el "ln" que lo diferencia de la otra instrucción. El funcionamiento es el mismo que para la anterior instrucción.

ACTIVIDADES

1.- Realizar un programa en JAVA, llamado "ejercicio1" que muestre tu Nombre y Apellidos y el curso en el que estás, todo en la misma linea.

2.- Programa en JAVA, llamado "ejercicio2" que muestre lo mismo que el ejercicio anterior, pero en líneas separadas.

3.- Programa en JAVA llamado "ejercicio3" que muestre una lista de personas (con nombres y apellidos), en distintas líneas, con una linea inicial que sirva de título, por ejemplo así:

LISTA DE PERSONAS:

=================

1.- Fernando Alonso Diaz

2.- Rafael Nadal Pérez

3.- Antonio López Torres

4.- Miguel Sanchez Alonso


 

3- ATRIBUTOS

En los lenguajes de programación se manejan datos, y esos datos se suelen almacenar en unos "objetos" llamados atributos o variables. El contenido de esos atributos o variables puede cambiar o variar a lo largo del programa, dependiendo de las instrucciones que se ejecuten:

Video 3

En JAVA (como en otros muchos lenguajes de programación) hay varios tipos fundamentales de Atributos o Variables:

- NUMÉRICOS: enteros (int), reales (float o double)

- DE TEXTO: cadenas de caracteres (String), carácter (char)

Las variables o atributos se suelen crear al principio del método main. Aqui se ven varios ejemplos de creación de variables:

int a;   // creación de una sola variable llamada a, de tipo entero (int)

double b, c;    // se pueden crear varias variables en una sola línea, estas 2 son de tipo double (números reales)

String nombre, apellidos;  // estas son 2 variables de tipo Cadena de Caracteres (string)

char letra1, letra2, letra3;   // estas son 2 variables o atributos de tipo carácter (char)

Cuando se crea un atributo, al principio no tienen ningun valor asignado. Se les puede asignar valores de varias formas:

int a=5 , b=663 , c=2778;  // al mismo tiempo que se crean las variables se les asigna un valor

nombre = "Emilio José";   // el valor de las variables de tipo String debe ir entre comillas dobles

double = 3.1416;   // los valores de las variables de tipo double deben usar el carácter punto para separar la parte entera de la parte decimal

char letra1='r' ;   // los valores de las variables de tipo char solo pueden ser un único carácter (letras, caractéres numéricos o caracteres especiales), y deben ir entre apostrofes o comillas simples.

Para mostrar el valor de una variable por la consola:

System.out.print(a);  // Esto mostrará por pantalla el valor de la variable a, que puede ser de cualquier tipo

System.out.print("Me llamo "+nombre);  // usando el simbolo "+" se pueden unir o concatenar variables y cadenas de caracteres

System.out.print("Mi nombre completo es "+nombre+apellidos);  // uniendo varias variables y una cadena de caracteres


Actividades

1.- Crea un programa en JAVA en el que creas un atributo de tipo int llamado "a" y guardas en él tu edad. A continuación dicho programa debe imprimir por pantalla el mensaje "Mi edad es " y la edad que tu tengas.

2.- Igual que el ejercicio anterior, pero añadiendo otras 2 variables más, una para la edad de tu padre y otra para la edad de tu madre, y después lo sacas por pantalla con mensajes como el del ejercicio anterior.

3.- Programa que tenga una variable de tipo int y otra de tipo String, en las que tienes que guardar respectivamente tu edad y tu nombre y apellidos. Después, saldrá por pantalla un mensaje que diga "Mi nombre es (tunombre) y mi edad es (edad)", con los valores que hayas puesto a las variables anteriores.

4- OPERACIONES CON ATRIBUTOS

Los datos guardados en los ATRIBUTOS suelen usarse para realizar operaciones con ellos, como sumas, restas, etc... Eso es lo que se verá en el siguiente video:

Video 4

Los valores de las variables o atributos (de tipo NUMÉRICO) pueden usarse para realizar sumas, restas, multiplicaciones y divisiones:

int a=6 , b=43 , c  ,  d;

c = a+b;    // sumamos las variables a y b y el resultado lo guardamos en c

d = a-b;    // también se pueden restar los valores y guardarlos en otra variable

e = a*b;   // para multiplicar se usa el asterisco

c = a/b;    // se puede reutilizar las variables para calcular otros valores, pero hay que tener en cuenta que la información que estuvieran guardando previamente va a ser sobreescrita, y por lo tanto se perderá. El operador aritmético "/" sirve para hacer divisiones enteras (divisiones que solamente devuelven la parte entera del cociente)

Existe otra operación aritmética (que todavía no conoces) llamada MÓDULO o RESTO ENTERO que me permite calcular el RESTO ENTERO de una división. Por ejemplo, si divido 5 entre 2, el cociente es 2, pero el RESTO ENTERO es 1. Para realizar esta operación que hasta ahora no conocías, se utiliza el operador "%"

c = 5 % 2;  //  la variable c tendría un valor de 1, puesto que la división 5/2 tiene un resto de 1.

FORMAS ABREVIADAS PARA LAS OPERACIONES ARITMÉTICAS

Cuando realizamos operaciones aritméticas como la siguiente:    a = a+b;  se puede expresar de forma abreviada para hacerlo más compacto, aunque el resultado será el mismo:

a += b;

Esto vale para todas las demás operaciones aritméticas:

a -= b;   //es igual que a = a-b;

a *= b;  //es igual que a=a*b;

a /= b;   //es igual que a=a/b;

a %= b;  //es igual que a=a%b;

ACTIVIDADES (utiliza también comentarios para explicar lo que vas haciendo en tus programas)

1.- Programa que tenga 3 variables int, las 2 primeras con el valor que tú quieras y en la tercera tendrás que calcular la suma de esas variables. Luego muestras el resultado por pantalla acompañado del mensaje "La suma de las 2 variables es ". Prueba a cambiar el valor de las variables para comprobar que el resultado va cambiando al ejecutar de nuevo el programa.

2.- Lo mismo que en el ejercicio anterior, pero haciendo la resta, multiplicación y división.

3.- Lo mismo que en el ejercicio anterior, pero calculando el RESTO ENTERO de las 2 variables que tienen valor.

4.- Igual que el ejercicio 2, pero utilizando la forma compacta de las operaciones aritméticas.

ALGORITMOS EN PSeInt:

Como ya vimos en un apartado anterior, a la hora de programar es recomendable realizar el Algoritmo en PSEUDOCÓDIGO o con un Diagrama de Flujo. Antiguamente esto se hacía sobre una hoja de papel, pero actualmente existe un programa muy bueno, llamado PSeInt, que nos permitirá diseñar los algoritmos de las 2 maneras anteriores, y también nos permitirá probar su funcionamiento antes de proceder a implementar el algoritmo en el lenguaje de programación que estemos usando, en nuestro caso JAVA:

Ejercicio1:



Ejercicio 2:




Ejercicio 3:




Ejercicio 4:




5- INTRODUCIR DATOS INTERACTIVAMENTE

Hasta ahora hemos visto cómo meter datos en los atributos o variables desde el código fuente del programa. Pero hay muchas veces que necesitamos obtener ciertos datos durante la ejecución de los programas. La forma para leer esos datos desde el teclado se explica en el siguiente video:

Video 5

A partir de ahora, en nuestros programas vamos a tener que usar la clase Scanner, con lo cual tendremos que añadir las siguientes lineas a nuestro código fuente:

import java.util.Scanner;   // Antes de la primera linea

Scanner s = new Scanner(System.in);   // En la sección de creación de atributos o variables

numero = s.nextInt();  // para leer desde el teclado un numero entero y guardarlo en una variable llamada numero

Los objetos de la clase Scanner tienen múltiples métodos disponibles, que se pueden consultar en la API online de JAVA. Los que utilizaremos nosotros serán los siguientes:

b = s.nextDouble();  //para leer un número real por teclado y guardarlo en una variable de tipo double

c = s.nextLine();   //para leer una cadena de caracteres por teclado y guardarlo en una variable de tipo String

d = s.next.charAt(0);  //fíjate que para leer un solo caracter y guardarlo en una variable de tipo char se hace de ésta manera.

ACTIVIDADES:

1.- Crea un programa que te pida un número entero y te lo muestre por la Consola con el siguiente texto: "El numero introducido es ..."

2.- Crea un programa que te pida introducir 2 números, y a continuación te muestre la suma de ambos por pantalla de esta forma: "La suma de .... + ..... es .....", en los huecos irán los números correspondientes.

3.- Crea un programa que te pida introducir tu altura en metros, como un número real (con parte entera y parte decimal), y a continuación te muestre un mensaje que diga: "Tu altura es 1, .... metros"

4.- Programa que calcule el área de un cuadrado. Para ello te pedirá la longitud de uno de sus lados (en número real), y a continuación calculará el área del cuadrado y te la mostrará por pantalla con un mensaje como el siguiente: "El área del cuadrado de lado ..... metros es ..... m2"

5.- Programa que calcule el área de un rectángulo. Te pedirá el ancho y el largo (en números reales) y a continuación te calculará el área de dicha figura. Te mostrará por pantalla un mensaje como el siguiente: "El área del rectángulo de ..... x ...... es ...... m2"

6.- Programa que calcule la longitud de la circunferencia de un circulo, y también su área. Para ello te tendrá que pedir el radio de dicho circulo y calcular esos 2 valores. Una vez calculados los tendrá que mostrar por pantalla con un mensaje adecuado.

7.- Programa que te pida tu Nombre, tus apellidos, tu pueblo, y el año de nacimiento. A continuación te saldrá un mensaje por pantalla similar a éste:  "Hola (nombre) (apellidos). Naciste en (tu pueblo) en el año (año de nacimiento)".

ALGORITMOS EN PSeInt:

Ejercicio 1:




Ejercicio 2:




Ejercicio 3:




Ejercicio 4:





Ejercicio 5:





Ejercicio 6:

Lo haceis vosotros.

Ejercicio 7:





6- INTERCAMBIO DE ATRIBUTOS

Hay muchas veces que tenemos que intercambiar el valor de 2 atributos entre sí, y cuando somos novatos programando, esta acción nos puede resultar muy dificil de realizar (pero no lo es). El truco está en usar un tercer atributo adicional que haga de intermediario entre los otros 2 atributos que queremos intercambiar sus valores:

Video 6

Si tenemos 2 variables o atributos, del tipo que sea, para intercambiar sus valores entre sí, necesitamos otra variable auxiliar, que me sirva para almacenar temporalmente el valor de una de ellas:

int a=8, b=2, c;   //creamos 3 variables int, y les asignamos un valor

c = b;    //en la variable auxiliar c, guardamos temporalmente el valor de la variable b

b = a;   //en la variable b guardamos el valor de la variable a

a = c;   //en la variable a guardamos en valor de c, que era el valor que tenía b al principio

// con estas tres instrucciones anteriores hemos conseguido intercambiar el valor entre a y b

ACTIVIDADES:

1.- Programa que te pida el valor de 2 variables numéricas (reales o enteras), y te muestre el valor de dichas variables con un mensaje. A continuación intercambiará el valor a dichas variables y lo volverá a mostrar por pantalla.

ALGORITMOS EN PSeInt:

Ejercicio 1:




7- ESTRUCTURA IF... ELSE

Hasta ahora los programas que hemos realizado son secuenciales, es decir que empiezan a ejecutarse en la primera instrucción y van pasando sucesivamente por las siguientes hasta terminar en la última.

Pero hay veces en las que es necesario bifurcar el programa para que se ejecuten unas instrucciones u otras. Esto se realiza utilizando la estructura if else

Video 7

La estructura if tiene la siguiente sintaxis:

if (condición) {    // en la primera linea se comprueba la condición de entrada

instrucciones;    // si esa condición es verdadera, se ejecutan estas instrucciones

} else {

instrucciones;   // pero si la condición es falsa, se ejecutan estas otras instrucciones

}

ACTIVIDADES:

1- Programa que te pida la edad y te diga si eres mayor o menor de edad

2- Programa que te pida la nota de un examen, con números decimales, y te diga si está aprobado o suspenso

3- Programa que pida dos números enteros y que calcule su división, escribiendo si la división es exacta o no.

4- Mejora el programa anterior haciendo que tenga en cuenta que no se puede dividir por cero.

5- Programa que pida dos números y que conteste cuál es el menor y cuál el mayor o que escriba que son iguales.

6- Programa que pida el año actual y un año cualquiera y que escriba cuántos años han pasado desde ese año o cuántos años faltan para llegar a ese año.

7- Programa que pida dos números enteros y que escriba si el mayor es múltiplo del menor.

8- Programa que pida tres números y que escriba si son los tres iguales, si hay dos iguales o si son los tres distintos.

9- Programa que pida un año y que escriba si es bisiesto o no. IMPORTANTE: los años bisiestos son múltiplos de 4, pero los múltiplos de 100 no lo son, aunque los múltiplos de 400 sí.

10- Programa que pregunte primero si se quiere calcular el área de un triángulo o la de un círculo. Si se contesta que se quiere calcular el área de un triángulo (escribiendo T o t), el programa tiene que pedir entonces la base y la altura y escribir el área. Si se contesta que se quiere calcular el área de un círculo (escribiendo C o c), el programa tiene que pedir entonces el radio y escribir el área.

11- Programa que pida una distancia en centímetros y que escriba esa distancia en kilómetros, metros y centímetros (escribiendo todas las unidades).


ALGORITMOS EN PSeInt:

Ejercicio 1:




Ejercicio 2:




Ejercicio 3:





Ejercicio 4:




Ejercicio 5:




Ejercicio 6:




Ejercicio 7:




Ejercicio 8:




Ejercicio 9:




Ejercicio 10:




8- Los if concatenados y el tipo Boolean

La estructura if else que hemos aprendido en el apartado anterior es muy util como ya hemos visto, pero hay casos en los que debemos comprobar si la condición tiene más de 2 posibles valores, entonces podemos usar varios if else concatenados:

Video 8

La sintaxis de los if concatenados es la siguiente:

if (condición1) {    // Comprobamos la primera condición

instrucciones;    // ejecutamos las instrucciones si esa condición1 se cumple

} else if(condición2){   //sino se cumple la condicion1 se comprueba la condición2

instrucciones;     //si esa condición2 se cumple, se ejecutan éstas instrucciones

}else if(condición3){    // si la condición2 no se cumple, se comprueba la condición3

...                                  // y así sucesivamente

}else if(condicion N){    //se comprueba la condición N (N es un numero entero positivo), que es la ultima condición

instrucciones;      // Si se cumple esta última condición, se ejecutan éstas instrucciones

}else{                                     //si hemos llegado hasta aquí y ninguna de las condiciones anteriores se han cumplido...

instrucciones;    // ... se ejecutarán éstas instrucciones

}


Los atributos o variables de tipo Boolean pueden tomar solamente 2 valores: true y false

ACTIVIDADES:

1.- Programa que te pida la temperatura y te diga si "Hace mucho frio" , "Hace frio" , "Temperatura fresca" , "Temperatura buena", "Un poco caluroso", "Hace calor", "Hace mucho calor". Las temperaturas numericas ponlas como consideres oportuno (Por ejemplo, mucho frío, a partir de -5 grados)





9- Estructura SWITCH y el tipo CHAR

Los if else concatenados que hemos visto en el apartado anterior, nos permite comprobar varios posibles valores que tenga una variable. Pero lo adecuado es utilizar una estructura de tipo SWITCH:

Video 9

La sintáxis de la estructura SWITCH es la siguiente:

switch (variable) {      //la variable que se comprueba puede ser de tipo int, de tipo, char, etc...

case 'valor1':     //si la variable que se utiliza es de tipo char, entonces el valor hay que ponerlo entre apostrofes o comillas simples (no confundirla con los acentos)

instrucciones;     // pero si la variable es de tipo int, no hay que poner los apostrofes o comillas simples

break;

case 'valor2':

instrucciones;

break;

case 'valor3':

instrucciones;

break;

....

case 'valorN':

instrucciones;

break;

default:
instrucciones;

}

Se pueden añadir tantos cases como sean necesario. Es importante no olvidar la instruccion break al final de cada case, puesto que sino se seguirían ejecutando las instrucciones del case siguiente. Y al final, cuando ninguno de los case se ha cumplido, no hay que olvidarse de añadir la opción default, en cuyo caso se ejecutarán sus instrucciones correspondientes. En el default no es necesario añadir la instrucción break.

Las variables o atributos de tipo char solamente pueden guardar un carácter.


ACTIVIDADES:

1.- Escribir un programa que pida un número de 1 a 12 y escriba el mes al que corresponde.

2.- Escribir un programa que pida el número de un mes, y te diga cuántos días tiene.

3.- Escribir un programa que tenga un menú con todos los planetas del sistema solar, y que te pida que elijas uno. A continuación te mostrará cuál es la distancia desde ese planeta al Sol, en millones de kilómetros.

4.- Escribir un programa que te pida una VOCAL minúscula, y te la devuelva escrita en Mayúscula.


SOLUCIONES:

1.-




2.-





3.- Aquí tienes que añadir los kilometros de distancia al sol de cada planeta. No me ha dado tiempo a mirarlos y ponerlos.





4.- 




10- Condiciones múltiples

 

Hasta ahora cuando hemos comprobado condiciones en las estructuras if, estas condiciones han sido simples. Pero existe la posibilidad de agrupar varias condiciones bajo una misma, uniendolas con el operador Y (dos ampersand  &&  ) y el operador O  (dos barras verticales  ||  )

Video 10

La forma de funcionar el operador Y   ( && )   es la siguiente:

si todas las condiciones son verdaderas, el resultado final será verdadero (true), pero si hay alguna o varias falsas, el resultado final será falso.

La forma de funcionar del operador O   ( || )  es la siguiente:

cuando alguna de las condiciones es verdadera, el resultado final será verdadero, aunque todas las demás sean falsas; pero si todas las condiciones que se comprueban son falsas, el resultado final será falso.

IMPORTANTE Preferencia de los operadores: En el caso de que tengamos condiciones múltiples con varios Y y varios O, las operaciones Y se ejecutan antes que las O; se pueden agrupar con paréntesis aquellas que nos interesen que se ejecutar primero para obtener el resultado final, como hacemos también con las operaciones matemáticas que tienen varios operadores.


ACTIVIDADES:

1.- Programa que te pida un año de 4 cifras y te diga si es bisiesto o no lo es. Ten en cuenta que los años bisiestos son los años múltiplos de 4, que no son múltiplos de 100, pero si lo son de 400.


SOLUCIONES:

1.- 




En este ejercicio, lo más difícil es poner correctamente la condición múltiple en el "SI". Dicha condición es:

- Si el año es divisible entre 4, y además no es divisible entre 100, entonces es BISIESTO

- Pero si el año además es divisible entre 400, también será BISIESTO.

Fíjate en la posición de los paréntesis, ya que es muy importante colocarlos en sus lugares correctos.

11- Bucles While y For

Una parte muy importante de los programas son los bucles.

Los bucles son un conjunto de instrucciones que se ejecutan varias veces seguidas.

En todos los lenguajes de programación existen los bucles de tipo WHILE y los del tipo FOR:

Video 11

La ejecución de los bucles depende de la condición que se comprueba en cada iteración del bucle. Esa condición suele ser la comprobacion del valor de una variable o atributo. Es muy importante que esa variable vaya cambiando en cada iteración del bucle, puesto que si siempre vale lo mismo y no se cambia su valor, el bucle se convertirá en un BUCLE INFINITO que se ejecute eternamente sin salir nunca de él.

Sintaxis del bucle While:

while (condicion){         // normalmente la condición es comprobar el valor de una variable

instrucciones;    //  dentro de éstas instrucciones debe haber alguna que vaya cambiando el valor de la variable que comprueba la condición, puesto que sino es así, el bucle sería infinito

}

Sintasis del bucle FOR:

for (  valor inicial   ;  condición   ;   incremento  ){    // valor inicial es el valor inicial de la variable, y el incremento es cuanto debe incrementarse o decrementarse una variable en cada iteración del bucle.

instrucciones;     // en los bucles for no es necesario añadir en éstas instrucciones la instruccion que va cambiando el valor de la variable que controla el bucle, puesto que ya se hace al principio del for

}


ACTIVIDADES:


1.- Muestra los múltiplos de 5, desde 0 hasta 100

2.- Muestra los números desde el 380 hasta al 80, contando de 20 en 20 y hacia atrás.

3.- Realiza el control de acceso a una caja fuerte. La combinación será un número de 4 cifras. El programa nos pedirá la combinación para abrirla. Sino acertamos, se nos mostrará el mensaje "CONTRASEÑA ERRONEA" y si la acertamos nos dirá "CAJA FUERTE ABIERTA". Habrá 5 oportunidades para abrir la caja fuerte.

4.- Muestra la tabla de multiplicar de un número introducido por teclado.

5.- Realiza un programa que nos diga cuantos digitos tiene un número introducido por teclado.

6.- Escribe un programa que calcule la media de un conjunto de números positivos introducidos por teclado. A priori, el programa no sabe cuantos números se introducirán. El usuario indicará que ha terminado de introducir los datos cuando meta un número negativo.

7.- Escribe un programa que muestre en tres columnas, el cuadrado y el cubo de los 5 primeros números enteros a partir de uno que se introduce por teclado.

8.- Escribe un programa que muestre los n primeros términos de la serie de Fibonacci. El número n se introduce por teclado.

9.- Escribe un programa que muestre los números del 5000 al 1 en orden descendente

10.- Escribe un programa que lea una lista de 10 números y determine cuántos son positivos y cuántos negativos.

11.- Escribe un programa que pida una base y un exponente (entero positivo) y que calcule la potencia.

12.-Escribe un programa que diga si un número introducido por teclado es o no primo. Un número primo es aquel que solo es divisible entre sí mismo y entre 1.

13.- Realiza un programa que sume los 10 números siguientes a uno positivo introducido por teclado. Se debe comprobar primero que el número introducido es positivo.

14.- Escribir un programa que pida 2 enteros, diferentes, y a continuación escriba todos los enteros que hay entre esos 2 números, empezando a contar desde el más pequeño.

15.- Realizar un programa que dibuje una piramide como la siguiente por pantalla. La altura de dicha pirámide se debe introducir por teclado.

 *
 ***
 *****
 ******
 *******

16.- Realiza un programa que me vaya pidiendo números enteros positivos, hasta que introduzca uno negativo. Después me tendrá que mostrar cuántos números positivos he introducido, así como la media de los números impares y el número mayor de los pares. El número negativo solo nos servirá para terminar el programa, pero no para calcular ningun calculo posterior de los pedidos.

17.- Escribe un programa que lea un número n e imprima una pirámide de números con n filas de la siguiente manera:

     1

    12

   123

  1234

18.- Realiza un programa que pida un número por teclado de varias cifras y que luego lo muestre al revés por pantalla.

19.- Realiza un programa que pida un número de varios digitos y después un número de un digito. El programa debe buscar el segundo número en el primero, e indicar en qué posición o posiciones se encuentra el segundo en el primero. Ejemplo: 

Primer número: 872687

Segundo número:  2

El programa debe buscar el número 2, de derecha a izquierda, en el primer número, y decir su posición, que sería la numero 4 empezando por la izquierda

20.- Escribe un programa que muestre, cuente y sume los múltiplos de 3 que hay entre 1 y un número leído por teclado.

21.- Escribe un programa que calcule el factorial de un número entero introducido por teclado.

22.- Escribe un programa que muestre por pantalla todos los números enteros positivos menores a uno leído por teclado que no sean divisibles entre otro también leído de igual forma.

23.- Realiza un programa que calcule las horas transcurridas entre 2 horas de 2 días de la semana. No se tendrán en cuenta los minutos ni los segundos. El día de la semana se puede pedir como un número (del 1 al 7) o como una cadena (de lunes a domingo). Se debe comprobar que el usuario introduce los datos correctamente y que el segundo día es posterior al primero. Ejemplo:

Introduzca la primera hora:

Dia: lunes

Hora: 5

Introduzca la segundad hora:

Dia: jueves

Hora: 16

Entre las 5:00h del lunes y las 16:00h del jueves hay 80 horas

24.- Realiza un programa que pinte la L mayúscula por pantalla, con almohadillas (#). El programa te pedirá la altura (numero entero), en filas. La base medirá la mitad que la altura más uno. Ejemplo:

Introduzca la altura de la L: 7

#

#

#

#

#

#

##########

25.- Realiza un programa similar al anterior, pero para imprimir una U mayúscula. La base tendrá una anchura fija, independiente de la altura. Ejemplo:

Introduzca la altura de la U: 5

#              #

#              #

#               #

#               #

#######


SOLUCIONES:


1 a .-  Con bucle PARA  (for)





1 b.- Con bucle MIENTRAS (while)

 



2 a.-  Con bucle PARA  (for)

 




2 b.- Con bucle MIENTRAS  (while)

 




3 a.- Con bucle PARA ( for )

 




3 b.- Con bucle MIENTRAS ( while )

  




4 a.- con PARA (for)


 




4 b.- con MIENTRAS (while)




 


5 a.- con PARA (for)


 




5 b.- con MIENTRAS (while)




6 a.- Bucle PARA (for)




6 b.- Con bucle MIENTRAS (while):





7 a.- con bucle PARA (for)




7 b.- con bucle MIENTRAS (while)





8 a.- con bucle PARA (for)





8 b.- con bucle MIENTRAS (while)





9 a.- con bucle PARA (for)




9 b.- con bucle MIENTRAS (while)





10 a.- con bucle PARA (for)




10 b.- con bucle MIENTRAS (while)





11 a.- con bucle PARA (for)




11 b.- con bucle MIENTRAS (while)




12 a.- con bucle PARA (for)




12 b.- con bucle MIENTRAS (while)




13 a.- con bucle PARA (for)




 

13 b.- con bucle MIENTRAS (while)




 

14 a.- con bucle PARA (for)




 

14 b.- con bucle MIENTRAS (while)




 

15 a.- con bucle PARA (for)




15 b.- con bucle MIENTRAS (while)




16 a.- con bucle PARA (for)




16 b.- con bucle MIENTRAS (while)

 




17 a.- con bucle PARA (for)




17 b.- con bucle MIENTRAS (while)




18 a.- con bucle PARA (for)




18 b.- con bucle MIENTRAS (while)




19 a.- con bucle PARA (for)




19 b.- con bucle MIENTRAS (while)




20 a.- con bucle PARA (for)




20 b.- con bucle MIENTRAS (while)




21 a.- con bucle PARA (for)




21 b.- con bucle MIENTRAS (while)




22 a.- con bucle PARA (for)

 



22 b.- con bucle MIENTRAS (while)

 



23 a.- con bucle PARA (for)




23 b.- con bucle MIENTRAS (while)




23 c.- sin bucles




24 a.- con bucle PARA (for)

 



24 b.- con bucle MIENTRAS (while)

 



25 a.- con bucle PARA (for)




25 b.- con bucle MIENTRAS (while)




12- Ejemplos bucles FOR y WHILE

En el siguiente video se ven varios ejemplos de utilización de los bucles FOR y WHILE

Video 12

 

13- Bucles DO..WHILE

Un tercer tipo de bucles son los bucles DO..WHILE.

Son muy parecidos a los bucles WHILE, lo único que los diferencia es en que la condición en los bucles WHILE se comprueba al principio del bucle, y en los DO...WHILE la condición se comprueba al final del bucle

Los bucles DO..WHILE se ejecutan siempre al menos una sola vez.

Video 13

La sintaxis del bucle DO..WHILE es la siguiente:

do {

instrucciones;

} while(condición);

 

 14- Ejemplo bucle DO...WHILE

En el siguiente video hay unos ejemplos de uso del bucle DO...WHILE

Video 14

 

15- Bucles anidados

La palabra ANIDAR nos sonará a algo relacionado con los nidos de los pájaros...

Bueno, en programación la palabra ANIDAR significa meter estructuras de instrucciones unas dentro de otras. Esto significa que podemos meter estructuras if dentro de otras estructuras if, o bucles for dentro de bucles for, o bucles while dentro de bucles while... etc...

También se pueden mezclar: es decir meter estructuras if dentro de for, de while; meter estructuras for dentro de ifs, etc...

No hay límite de anidamiento, pero lo que si es muy importante, y que suele dar bastantes dolores de cabeza muchas veces, es que los parentesis y las llaves que utilicemos en nuestros programas deben estar perfectamente balanceados. Es decir, que debe haber el mismo número de parentesis abiertos que de parentesis cerrados, y lo mismo con las llaves.

Como falte algún sólo paréntesis abierto o cerrado, o alguna llave abierta o cerrada en nuestro código fuente, nuestro programa no compilará y por lo tanto no se ejecutará. Deberemos revisar todo el código para encontrar este tipo de errores de sintaxis, lo cual puede llevar mucho esfuerzo y tiempo hasta encontrar el error. Cuantas más líneas de código tenga nuestro programa, más complicado será encontrar este tipo de errores.

Video 15

16- Depurar el código

Cuando nuestros programas tienen muchas líneas, es posible que a la hora de ejecutarlos el resultado no sea el esperado, porque suele haber algún error o errores en las instrucciones que hemos usado. Los Entornos de Desarrollo como ECLIPSE nos suelen ofrecer herramientas para ejecutar paso a paso el programa para así poder detectar los posibles errores que hayamos cometido, y poder DEPURAR y corregir el código fuente de nuestro programa:

Video 16

17- Eficiencia del Código y Cond. Múlt.

Como ya sabes, un ALGORITMO es un conjunto de instrucciones o pasos, DEBIDAMENTE ORDENADOS, que nos permiten realizar alguna tarea, ya sea SENCILLA o COMPLEJA.

Si un ALGORITMO tiene muchas instrucciones y bucles (como suele pasar con la mayoría de programas), es posible que su EFICIENCIA no sea la adecuada. La EFICIENCIA es el tiempo en el que se ejecuta un programa, y es un aspecto muy importante a la hora de programar. La eficiencia de los programas se suele estudiar en las carreras de Ingeniería Informática y en Matemáticas, y se aprenden técnicas para poder mejorar y optimizar los algoritmos. Muchas veces la eficiencia depende de las Condiciones Múltiples que indiquemos en los Bucles.

En el siguiente video se enseña de forma práctica lo que es la eficiencia:

Video 17

18- Vectores I

Hasta ahora los atributos o variables que hemos estudiado solamente permiten almacenar datos simples.

En todos los lenguajes de programación existen un tipo de datos que se llaman VECTORES, MATRICES o ARRAYS, que permiten almacenar bajo un mismo nombre, varios datos del mismo tipo. Y esto resulta muy útil en programación.

Los VECTORES se asemejan a una lista de elementos.

Las MATRICES (tambien llamadas ARRAYS) se asemejan a tablas de 2 o más dimensiones.

Video 18

Para CREAR un VECTOR vacío de enteros de 4 elementos:                           int[] lista = new int[4];

Para CREAR un ARRAY vacío de enteros de 2 dimensiones, de 4x5 elementos:         int[][] tabla = new[4][5];

Para CREAR un ARRAY vacío de enteros de 3 dimensiones, de 6x4x3 elementos:       int[][][] tabla2 = new[6][4][3];

Se pueden crear ARRAYS de varias dimensiones, con elementos de tipo int, double, char, String, etc... incluso ARRAYS cuyos elementos sean OBJETOS creados a partir de Clases.

Para rellenar las casillas o elementos de los arrays se suele hacer mediante bucles que los recorran de principio a fin, e insertando los datos en sus casillas como si fueran variables simples.

Para leer las casillas de los arrays de principio a fin, también se suelen usar bucles que lean dichas casillas como si fueran variables simples.

IMPORTANTE: La primera casilla de un array de N elementos en JAVA (y en otros lenguajes de programación) es la número 0, y por lo tanto la última será la N-1. Es decir, que en un array de 10 elementos, la primera casilla es la 0 y la última la 9.

19- Vectores II

En el apartado anterior vimos cómo se crean vectores o arrays de tamaño fijo predeterminado. Pero existe la posibilidad de crear vectores o arrays en tiempo de ejecución con un tamaño no conocido previamente. Se enseña en el siguiente video:



20- Vectores III

Los elementos de un vector muchas veces nos interesa ordenarlos de mayor a menor o al contrario. Y además muchas veces necesitamos saber cuál es el tamaño de un vector. Ésto lo podremos saber utilizando el método length de dicho vector.

Para ordenar los elementos de un vector hay distintos ALGORITMOS desarrollados durante años, unos más rápidos y eficientes que otros:

QUICKSORT, MERGESORT, BURBUJA, etc... . Estos se suelen aprender en carreras universitarias de Ingeniería Informática y en Matemáticas.

Video 20

21- Vectores IV

En el siguiente video se muestran metodos para comparar vectores

Video 21

22- Tipo String

El tipo de datos String nos permite guardar cadenas de caracteres en las variables o atributos. Una Cadena de Caracteres es un conjunto de caracteres alfabéticos (a,b,c,...), numéricos (1,2,3,...), o especiales (!,%,$,...).
Las cadenas de caracteres se meten entre caracteres de comillas dobles, como en el siguiente ejemplo:    "Hola que tal?"

 
 

23- Mas contenido

Podemos ampliar nuestro aprendizaje de JAVA con más contenido que se encuentra en los siguientes videos:

Cifrado Cesar (Encriptación Sencilla de Mensajes usando vectores):

Video 23

¿Qué son las matrices? (aunque ya lo hayamos visto antes)

Video 24

Comparación de matrices

Video 25

Introducción a la Programación Orientada a Objetos

Video 26

Public y Private en Programación Orientada a Objetos

Video 27

¿Qué son los métodos?

Video 28

Ejemplo de Programación Orientada a Objetos: Batalla por turnos

Video 29

¿Qué son los constructores?

Video 30

Static en Atributos y Métodos

Video 31

Ampliando Constructores

Video 32

Vector de Objetos y Referencias

Video 33

Polimorfismo: Introducción a la Sobrecarga

Video 34

Atributos Final

Video 35

Sobrecarga de constructores

Video 36

Clase Vector y ejemplo Pokemon

Video 37

¿Qué es la Herencia?

Video 38

Sobreescribir Métodos y Protected

Video 39

Polimorfismo en Referencias

Video 40

Clases Abstractas y ejemplo Pokemon

Video 41

¿Qué son las Interfaces?

Video 42

¿Qué son las Excepciones?

Video 43

Últimos conceptos sobre Herencia e Interfaces

Video 44

Final del curso de Java

Video 45


No hay comentarios:

Publicar un comentario