JAVA SE6 & Swing Capitulo 02 pag.33 Ej.2

0 comentarios

Construir un programa en que se declare una lista de números de tipo float y calcular su media.

image

Como podemos observar hemos reaprovechado el código que hemos usado con anterioridad ya que teníamos creada una lista que se podía reaprovechar.

El ultimo print que hacemos es para comprobar la media, para ello cogemos el total de la suma y lo dividimos por el total de números que hemos pasado, seria lo mismo que si lo dividiéramos con la variable “i” pero como lo hemos declarado en el for ya no se puede utilizar fuera, esto es lo que se denomina el ámbito de una variable.

Respecto al ámbito de una variable, éste puede ser:

  • Local: Cuando la misma sólo es accesible desde un único procedimiento hijo, no pudiendo ser leída o modificada desde otro procedimiento hermano o desde el propio procedimiento padre. Es posible declarar variables en bloques de condición, bucles, etc de tal modo que sólo pueda accederse a ellas en el propio bloque.
  • Global: Cuando la misma es accesible tanto desde rutinas o macros de la aplicación, como en todos los procedimientos y funciones de la misma.

public class MediaFloat {
public static void main(String[] args) {
float lista[] = {1,3,5,7,9,2,4,6,8};
float total = 0;

for (int i=0;i<lista.length;i++){
if(i==0)
System.out.print(lista[i]);
else if (i==lista.length-1)
System.out.println(", "+lista[i]);
else
System.out.print(", "+lista[i]);
total += lista[i];
}

System.out.println(""+ total/lista.length);
}
}

JAVA SE6 & Swing Capitulo 02 pag.33 Ej.1

0 comentarios

Construir un programa en que se declare una lista de números de tipo double y mostrar esa lista en pantalla por orden de declaración y por orden inverso.

Poco hace falta decir, este ejercicio se supone que era para tener un primer acercamiento al for, pero como ya lo hemos echo antes pues simplemente pongo el resultado como siempre. En esta ocasión voy a probar un plug-in que he puesto en el blogger hace nada, de todas maneras os dejo la imagen para que no sufráis mucha nostalgia

image

public class Lista {
public static void main(String[] args) {
double lista[] = {1,3,5,7,9,2,4,6,8};

for (int i=0;i<lista.length;i++){
if(i==0)
System.out.print(lista[i]);
else if (i==lista.length-1)
System.out.println(", "+lista[i]);
else
System.out.print(", "+lista[i]);
}
for (int i=0;i<lista.length;i++){
if(i==0)
System.out.print(lista[(lista.length-1)-i]);
else if (i==lista.length-1)
System.out.println(", "+lista[(lista.length-1)-i]);
else
System.out.print(", "+lista[(lista.length-1)-i]);
}
}
}

JAVA SE6 & Swing Capitulo 02 pag.28 Ej.2

0 comentarios

Construir un programa que calcule mediante números de tipo float el factorial de un número que no se pueda calcular empleados números de tipo int.

image

Viendo que en el anterior ejercicio el tipo no respetaba sus propias enseñanzas ni sus propios métodos pues yo no pienso ser menos, arriba se puede ver la solución al ejercicio.

Podemos observar que el máximo factorial es 12 que nos da un resultado de 479001600, el siguiente nos daría 6227020800 el cual superaría el máximo lógico de los integer.

Explicando un poco el código podemos ver una estructura de control, este while se ejecutara siempre y que se cumpla lo que tiene dentro del paréntesis, le he puesto un true por que no quiero que salga nunca asta que no se cumpla lo que tengo en el if, realmente podría haber puesto la condición dentro de otro tipo de estructura de control pero he elegido esta manera por que me parece que es la manera más cómoda para comprender.

En el if tengo puesto para que se haga una división entre el actual resultado factorial y el siguiente, de esta manera consigo el factorial en el que nos encontramos, como los integers son cíclicos esta es la única manera de saberlo, por que si no nos iriamos a 13 ciclos para poder comprobar que es negativo.

JAVA SE6 & Swing Capitulo 02 pag.28 Ej.1

0 comentarios

Construir un programa que calcule el número de segundos que hay.

a) en una semana

Lo primero que tenemos que recordar es cuantos segundos hay en un día, para ello tenemos que recordar que un día tiene 24 horas, una hora tiene 60 minutos y cada minuto 60 segundos. Tras calcular los segundos de un día ya podremos calcular los segundos de tantos días como queramos.

Nuestro primer objetivo es una semana por lo tanto son 7 días. La solución es la siguiente.

image

b) en un mes

Ahora nos solicitan un mes, lo cual es un problema por que no es un numero estándar, tenemos cuatro opciones que son 28 o 29 días en año bisiesto y luego tenemos los meses de 30 y 31 días.

image

c) en un año

En este caso tenemos solamente dos opciones, año normal y año bisiesto.

image

JAVA SE6 & Swing Capitulo 02 pag.25 Ej.3

0 comentarios

Construir un programa que calcule el producto de los 10 primeros números enteros. ¿Cuál es el mayor factorial calculable con números de tipo int, esto es, hasta qué valor de n se puede calcular el producto de los n primeros números enteros?

Me encontraba en una encrucijada con este ejercicio, me parecía demasiado trabajo para un ejercicio del segundo tema y después de estar picando y cabreándome me pare a mirar que es lo que decía la pagina web de esta pequeña practica y me encontré con lo que se puede observar aquí debajo, me parece una manera muy burda de engañar a la gente, imaginaros todas las líneas que llevaba escritas para encontrarme con que esta gente lo realizo con un for, una estructura de control que aunque todos conocemos forma parte del capitulo tres y no tendría que haber aparecido en este capitulo de manera que nos quedamos con el formato que nos ofrece José Rafael y asta que lleguemos allí hacemos un acto de fe de que el for solucionara todo lo que necesitamos.

image