package busquedaenarray;
import java.util.Scanner;
import java.util.Arrays;
import java.util.Random;
/**
*
* @author juan
*/
public class BusquedaEnArray {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Random al = new Random();
Este blog está dedicado a la recolección de información relacionada con las nuevas tecnologías ( tecnoloxía xa), especialmente, con las vinculadas a la informática. La idea es centralizar y compartir la información y cada manual o tutorial que voy recolectando para las clases tanto de administración de sistemas como de explotación de sistemas informáticos de modo que estén disponibles para alumnos y resto de interesados. (IES A Carballeira, Ourense)
jueves, 11 de diciembre de 2014
Buscar un número en un array
Etiquetas:
DAM,
ejercicios,
programación
Ejercicio 69: Calcular el máximo común divisor de dos números mediante el método de Euclídes
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package ejercicio69;
import java.util.Scanner;
/**
*
* @author juan
*/
public class Ejercicio69 {
Etiquetas:
DAM,
ejercicios,
programación
miércoles, 10 de diciembre de 2014
Leer 10 notas usando arrays y calcular la media y la nota mayor
package notasymayorconarrays;
import java.util.Scanner;
/**
*
* @author juan
*/
public class NotasYMayorConArrays {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner leer = new Scanner(System.in);
int [] notas= new int[10];
int total, media, mayor;
Etiquetas:
DAM,
ejercicios,
programación
Empezando con arrays
package explicacionarray;
import java.util.Scanner;
/**
*
* @author juan
*/
public class ExplicacionArray {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int [] unArray;
int [] otroArray = new int[20];
int lon=10;
Scanner leer = new Scanner(System.in);
Etiquetas:
DAM,
explicación,
programación
viernes, 5 de diciembre de 2014
Último dígito del factorial (acepta el reto 114
Ultimo dígito del factorial
Tu primo Luis, de 12 años, está aprendiendo a usar la calculadora. Su profesor le ha dicho que calcule el factorial de varios números. Pero, para evitar que le tengan que copiar números muy largos en el cuaderno, les ha pedido únicamente el último dígito, el de más a la derecha.
Recordando que el factorial es la multiplicación de todos los números entre el número y el uno (por ejemplo, el factorial de 8, escrito 8!, es 8 · 7 · 6 · 5 · 4 · 3 · 2 · 1), demuestra a tu primo Luis que tú eres capaz de hacerlo mucho más rápido que él.
Entrada
El programa recibirá en la primera línea de la entrada el número de casos de prueba. A continuación, cada caso de prueba estará compuesto de una única línea que contendrá un número (positivo).
Salida
Por cada caso de prueba n, se mostrará el último dígito (el de la derecha) de su factorial, n!.
Entrada de ejemplo
3 2 3 4
Salida de ejemplo
2 6 4
Etiquetas:
acepta el reto,
factorial,
programame
jueves, 4 de diciembre de 2014
Explicación cadenas
package buscarunapalabra;
import java.util.Scanner;
/**
*
* @author juan
*/
public class BuscarunaPalabra {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner leer = new Scanner(System.in);
boolean encontrada=false;
int pos=0,cont,coinciden=0;
String cadena, buscada;
System.out.println("Introduzca la cadena a buscar");
cadena= leer.nextLine();
System.out.println("Introduzca palabra: ");
buscada= leer.nextLine();
cont=0;
while (!encontrada && cont <= (cadena.length()-buscada.length()))
{
if (cadena.charAt(cont)==buscada.charAt(0))
{
Etiquetas:
DAM,
ejercicios,
programación
lunes, 1 de diciembre de 2014
Ejercicio 46
Autor: Miguel Ángel Romero
package ejer46;
import java.util.Scanner;
/**
*
* @author juan
*/
public class Ejer46 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner leer = new Scanner(System.in);
int num;
do {
System.out.println("Introduzca un número por teclado entre 3 y 10:");
num = leer.nextInt();
} while (num < 3 || num > 15 || num % 2 == 0);
for (int i = 1; i < num; i = i + 2) {
for (int k = i; k < num; k = k + 2) {
System.out.print(" ");
}
for (int j = 0; j < i; j++) {
if (j == 0 || j == i - 1) {
System.out.print("*");
} else {
System.out.print(" ");
}
Etiquetas:
DAM,
programacion
miércoles, 26 de noviembre de 2014
3n + 1 (uva 100)
Los problemas en informática se clasifican a menudo de acuerdo a un cierto tipo (p.e. irresolubles, recursivos, imposibles,...). En este problema analizareis una propiedad de un algoritmo cuya clasificación no es conocida para todas las posibles entradas.
1. input n
2. print n
3. if n = 1 then STOP
4. if n is odd then tex2html_wrap_inline44
5. else tex2html_wrap_inline46
6. GOTO 2
Dada como entrada el número 22, se imprimirían la siguiente secuencia de números 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
Se supone que el algoritmo anterior terminará (cuando se imprime un uno) para cualquier valor entero. A pesar de la simplicidad del algoritmo, se desconoce si la suposición/conjetura es cierta. Ha sido verificada, sin embargo, para todos los enteros n tales que 0
Dada una entrada n, es posible detrerminar el número de números impresos (incluyendo al uno). Para un número n se le llama longitud de ciclo n. En el ejemplo superior, la longitud de ciclo de 22 es 16.
Para cualesquiera números i y j tienes que determinar la longitud de ciclo para todos los números entre i y j.
Debes procesar todos los pares de enteros y determinar el ciclo de longitud máxima comprendida entre esos dos valores incluyendo i y j.
Ppuedes asumir que no habrá operaciones mayores que enteros de 32 bits.
Sample Input
1 10
100 200
201 210
900 1000
Sample Output
1 10 20
100 200 125
201 210 89
900 1000 174
Explicación y solución: serverfault.com/questions/40156/puppet-force-service-restart-after-configuration-file-was-modified
El Problema:
Considera el siguiente algoritmo1. input n
2. print n
3. if n = 1 then STOP
4. if n is odd then tex2html_wrap_inline44
5. else tex2html_wrap_inline46
6. GOTO 2
Dada como entrada el número 22, se imprimirían la siguiente secuencia de números 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
Se supone que el algoritmo anterior terminará (cuando se imprime un uno) para cualquier valor entero. A pesar de la simplicidad del algoritmo, se desconoce si la suposición/conjetura es cierta. Ha sido verificada, sin embargo, para todos los enteros n tales que 0
Dada una entrada n, es posible detrerminar el número de números impresos (incluyendo al uno). Para un número n se le llama longitud de ciclo n. En el ejemplo superior, la longitud de ciclo de 22 es 16.
Para cualesquiera números i y j tienes que determinar la longitud de ciclo para todos los números entre i y j.
La entrada.
Consistirá en un par de enteros i y j, un par de enteros por línea. Todos los enteros menores que 1000000 y mayores que cero.Debes procesar todos los pares de enteros y determinar el ciclo de longitud máxima comprendida entre esos dos valores incluyendo i y j.
Ppuedes asumir que no habrá operaciones mayores que enteros de 32 bits.
La salida.
Para cada par de enteros i y j debes mostrar i, j y la máxima longitud de ciclo para los enteros comprendidos e incluyendo i y j. Estos tres números se mostrarán separados por un espacio, uno por línea. Los enteros i y j deben aparecer en el mismo orden que aparecen en la entrada y deben ir seguidos de la longitud de ciclo máxima (en la misma línea.Sample Input
1 10
100 200
201 210
900 1000
Sample Output
1 10 20
100 200 125
201 210 89
900 1000 174
Explicación y solución: serverfault.com/questions/40156/puppet-force-service-restart-after-configuration-file-was-modified
package pkg3nmas1;
import java.util.Scanner;
/**
*
* @author juan
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner leer = new Scanner(System.in);
int num1,num2,mayor,menor,maximo;
while (leer.hasNextInt()) {
num1=leer.nextInt();
num2=leer.nextInt();
menor=Math.min(num2, num1);
mayor=Math.max(num2, num1);
maximo=0;
for (int i = menor; i <=mayor; i++) {
maximo= Math.max(maximo, cuentaSaltos(i));
}
System.out.println(num1+ " " + num2 + " " + maximo);
}
lunes, 24 de noviembre de 2014
Ejercicio 39
package ejercicio38;
/**
*
* @author juan
*/
public class Ejercicio38 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String cadena;
int centenas, decenas, unidades;
//unidades=decenas=centenas=0;
for (int i = 100; i < 1000; i++) {
cadena=String.valueOf(i);
unidades=Character.getNumericValue(cadena.charAt(cadena.length()-1));
decenas = Character.getNumericValue(cadena.charAt(1));
centenas=Character.getNumericValue(cadena.charAt(0));
if (i==(int)(Math.pow(unidades, 3)+Math.pow(decenas, 3)+Math.pow(centenas, 3)))
Etiquetas:
ejercicios,
java,
programación
Ejercicio 34: Divisiones mediante restas sucesivas
package ejercicio34;
import java.util.Scanner;
/**
*
* @author juan
*/
public class Ejercicio34 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner leer = new Scanner(System.in);
int cont, dividendo, divisor, dividendoInicial,divisorInicial;
boolean salir=false;
Etiquetas:
ejercicios,
java,
programación
viernes, 21 de noviembre de 2014
Modificar el programa para que calcule la media de todos los alumnos
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package notas;
import java.util.Scanner;
/**
*
* @author juan
*/
public class Notas {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int nota,media,numAlus,suma=0,numAsig=10;
Scanner leer = new Scanner(System.in);
do {
System.out.println("Introduzca el número de alumnos");
numAlus= leer.nextInt();
} while (numAlus<=0);
for (int i = 0; i < numAlus; i++) {
suma=0;
for (int j = 1; j <= numAsig; j++) {
System.out.println("Introduzca la nota de la asignatura "+j);
do {
nota=leer.nextInt();
} while (nota<0 || nota >10);
suma+=nota;
}
System.out.println("La media es: " + (suma/numAsig));
}
}
}
miércoles, 19 de noviembre de 2014
Ejercicio 32: Acertar un número aleatorio en x intentos
package ejercicio32;
import java.util.Scanner;
import java.util.Random;
/**
*
* @author juan
*/
public class Ejercicio32 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int cont=0,intentos;
int num,oculto;
Random al = new Random();
Scanner leer = new Scanner(System.in);
boolean acertado= false;
Etiquetas:
DAM,
ejercicios,
programación
Programame: Hola mundo ( 116 )
¡Hola mundo!
Dicen los viejos que en este país el latín era una asignatura obligatoria por la que todos los estudiantes de bachillerato tenían que pasar.
Dicen los viejos que el primer día de clase de latín cualquiera esperaba que los alumnos salieran sabiendo el "rosa rosae".
Dicen los viejos que esa era la primera declinación.
Quizá, dentro de muchos años, nosotros seamos los viejos que contemos batallitas de cómo se enseñaba informática. Y quizá entonces, digamos que en la primera clase de cualquier curso en el que se explicara un lenguaje de programación, se tenía que salir habiendo escrito "un hola mundo".
Y eso es lo que vamos a hacer. Escribir un programa que escriba tantos "hola mundo" como nos pidan.
Entrada
La entrada consta de una única línea que contiene un número n, 0 ≤ n ≤ 5, que indica cuántos mensajes hay que emitir.
Salida
Cada mensaje a escribir aparecerá en una única línea y será la cadena "Hola mundo.".
Entrada de ejemplo
3
Salida de ejemplo
Hola mundo. Hola mundo. Hola mundo.
Etiquetas:
ejercicios,
programame
lunes, 17 de noviembre de 2014
UVA 11715 - Car (coche)
Estás en un coche y vas a la velocidad u m/s. Tu aceleración a es constante. Tras un tiempo particular t, tu velocidad será v m/s y tu desplazamiento es s. Ahora se te dan algunos (no todos) los valores para dichas variables. Tienes que encontrar los parámetros perdidos.
| |
Entrada/Input
| |
El fichero de entrada puede contener múltiples casos de prueba. Cada caso puede ser uno de los siguientes:
1 u v t
2 u v a
3 u a s
4 v a s
La entrada terminará con un simple 0.
| |
Salida/Output
| |
Para cada caso de tu entrada tienes que imprimir una línea que contenga el número de caso y:
Si es 1 u v t se te darán y deberás imprimir s y a
Si es 2 u v a se te darán y deberás imprimir s y t
Si es 3 u a s se te darán y deberás imprimir v y t
Si es 4 v a s se te darán y deberás imprimir u y t
Comprueba los ejemplos para mas detalles. Puedes asumir que los casos dados no te conducirán a una situación no válida. Usa 'double' para todos los cálculos y la salida de todos los números con tres decimales.
| |
Sample Input
|
Output for Sample Input
|
1 10 5 2.0
1 5 10.0 2
2 10 11 2
3 5 1 6
4 5.0 -1 6
0
|
Case 1: 15.000 -2.500
Case 2: 15.000 2.500
Case 3: 5.250 0.500
Case 4: 6.083 1.083
Case 5: 6.083 1.083
|
Problem Setter: Jane Alam Jan
Special Thanks: Md. Shiplu Hawlader
|
Etiquetas:
ejercicios,
programame,
uva
viernes, 14 de noviembre de 2014
Fórmulas para el concurso programame
Movimiento: http://www.educa.madrid.org/web/ies.alonsoquijano.alcala/carpeta5/carpetas/quienes/departamentos/ccnn/CCNN-1-2-ESO/2eso/2ESO-12-13/Bloque-III/T-1-Movimiento/ecuaciones/T-1-movimiento-ecuaciones.html
http://www.aulafacil.com/fisica-matematicas/curso/Lecc-24.htm
https://es.answers.yahoo.com/question/index?qid=20120219153418AA4XuPM
http://www.aulafacil.com/fisica-matematicas/curso/Lecc-24.htm
https://es.answers.yahoo.com/question/index?qid=20120219153418AA4XuPM
jueves, 13 de noviembre de 2014
Ejercicio 30 bis: Sumar los x primeros números primos
package ejercicio302;
import java.util.Scanner;
/**
*
* @author juan
*/
public class Ejercicio302 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner leer = new Scanner (System.in);
int num,suma=0,cont,i;
String cadena="";
System.out.println("Introduzca el número de primos a sumar");
num=leer.nextInt();
cont=0;
i=1;
Etiquetas:
DAM,
ejercicios,
programación
Ejercicio 30: Listar los números primos hasta un número dado
package ejercicio30;
import java.util.Scanner;
/**
*
* @author juan
*/
public class Ejercicio30 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner leer = new Scanner (System.in);
int numero;
System.out.println("Introduzca un número (para mostrar los primos entre 1 y se número");
numero = leer.nextInt();
for (int i = 1; i <=numero ; i++) {
if (esPrimo(i)) System.out.print(" "+i);
}
}
//Devuelve true en caso de que el número sea primo o false en caso contrario
public static boolean esPrimo(int num){
boolean primo;
int cont,raiz;
primo=true;
cont=2;
raiz = (int)Math.sqrt(num);
while (primo &&(cont<=raiz)){
if (num%cont ==0) primo=false;
else ++cont;
}
return primo;
}
}
Etiquetas:
DAM,
ejercicios,
programación
Ejercicio 29: Comprobar si un número es primo
los primos hay que comprobarlos hasta la raíz cuadrada del número...
package ejercicio29numerosprimos;
import java.util.Scanner;
/**
*
* @author juan
*/
public class Ejercicio29NumerosPrimos {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
boolean primo;
int num;
int cont,raiz;
Scanner leer = new Scanner(System.in);
System.out.println("Introduzca un número para comprobar si es primo");
num=leer.nextInt();
primo=true;
cont=2;
raiz = (int)Math.sqrt(num);
while (primo &&(cont<=raiz)){
if (num%cont ==0) primo=false;
else ++cont;
}
if (primo==true) System.out.println("El número es primo");
else System.out.println("NO es primo, es divisible al menos entre "+cont);
}
}
Etiquetas:
DAM,
ejercicios,
programación
miércoles, 12 de noviembre de 2014
Ejercicio 27: Cálculo de la media de una serie de notas
package ejercicio27;
import java.util.Scanner;
/**
*
* @author juan
*/
public class Ejercicio27 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner leer = new Scanner(System.in);
int nota, suma, cont;
char seguir;
do {
suma = cont = 0;
do {
System.out.println("Introduzca una nota (negativa para salir)");
nota = leer.nextInt();
if (nota > 10) {
System.out.println("Por favor introduzca notas menores de 10");
} else if (nota >= 0) {
suma += nota;
++cont;
}
} while (nota >= 0);
System.out.println("La media del alumno es: " + suma / cont);
System.out.println("Desea introducir la nota de más alumnos");
seguir = leer.next().toUpperCase().charAt(0);
} while (seguir == 'S');
}
}
Etiquetas:
DAM,
ejercicios,
programación
Ejercicio 26: Descomponer una cantidad en billetes
package ejercicio26;
import java.util.Scanner;
/**
*
* @author juan
*/
public class Ejercicio26 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner leer = new Scanner (System.in);
int cantidad, numB,resta;
do {
System.out.println("Introduzca cantidad");
cantidad = leer.nextInt();
} while (cantidad<0);
/*
numB=0;
while (cantidad>=100) {
numB++;
cantidad-=100;
}
if (numB!=0)System.out.println("El número de billetes de 100 es: "+numB);
*/
cantidad= getNumBilletes(cantidad,100);
cantidad= getNumBilletes(cantidad,50);
cantidad= getNumBilletes(cantidad,20);
cantidad= getNumBilletes(cantidad,10);
cantidad= getNumBilletes(cantidad,5);
cantidad= getNumBilletes(cantidad,2);
cantidad= getNumBilletes(cantidad,1);
Etiquetas:
DAM,
ejercicios,
programación
Ejercicio 24: Suma de pares e impares entre dos números dados
package ejercicio24;
import java.util.Scanner;
/**
*
* @author juan
*/
public class Ejercicio24 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner leer = new Scanner(System.in);
int mayor, menor, num1, num2, par=0, impar=0;
do {
num1=getNum();
num2=getNum();
if (num1==num2) System.out.println("Los números de la serie no pueden ser iguales");
} while (num1==num2);
if (num1>num2) {
mayor = num1;
menor = num2;
}
else
{
mayor = num2;
menor = num1;
}
for (int i = menor; i <= mayor; i++) {
if (i%2==0) par+=i;
else impar+=i;
}
Etiquetas:
DAM,
ejercicios,
programación
viernes, 7 de noviembre de 2014
Ejercicio 22: Triángulo de Floyd
package ejercicio22floyd;
import java.util.Scanner;
/**
*
* @author juan
*/
public class Ejercicio22Floyd {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner leer = new Scanner(System.in);
int num,cont=1;
do {
System.out.println("Introduzca la cantidad de números que se leerán: ");
num = leer.nextInt();
} while (num<=0);
for (int linea = 1; linea <= num; linea++)
{
for (int j = 1; j <= linea; j++) {
System.out.print(cont+" ");
++cont;
}
System.out.println("");
}
}
}
Etiquetas:
ejercicios,
java
Ejercicio 21: Calcular el mayor y el menor de una serie de números
Esta solución publicada es la de una lectura fuera del bucle (podríamos emplear el valor máximo de enteros modificando el if de dentro del bucle (eliminando la palabra else)).
public class Ejercicio21 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner leer = new Scanner (System.in);
int num, cantidad,mayor, menor;
//mayor= Integer.MIN_VALUE;
//menor= Integer.MAX_VALUE;
do {
System.out.println("Introduzca la cantidad de números que se leerán: ");
cantidad = leer.nextInt();
} while (cantidad<=0);
ejercicio 18: Sumar pares e impares con uno / dos bucles
public class Ejercicio18 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int sumPar=0,sumImpar=0;
for (int i = 1; i <= 1000; i++) {
if (i%2==0) {
sumPar+=i;
} else sumImpar+=i;
}
System.out.println("pares: "+ sumPar);
System.out.println("impares: "+ sumImpar);
sumImpar=0;
for (int i = 1; i <= 1000; i+=2) {
sumImpar+=i;
}
sumPar=0;
for (int i = 2; i <= 1000; i+=2) {
sumPar+=i;
}
System.out.println("pares: "+ sumPar);
System.out.println("impares: "+ sumImpar);
}
}
Etiquetas:
java,
programación
Ejercicio 17: Media de 30 valores
public class Ejercicio17AcumuladoresMedia {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int suma=0;
for (int i = 1; i <= 1000; i++) {
suma+=i;//suma=suma+i;
System.out.println(i+": "+ suma);
}
System.out.println("Media"+((double)suma/30));
}
}
Etiquetas:
ejercicios,
java
Ejercicio 15: comprobar si la fecha es correcta
package ejercicio15fechascorrectas;
import java.util.Scanner;
/**
*
* @author juan
*/
public class Ejercicio15FechasCorrectas {
/**
* @param args the command line arguments
*/
public static boolean esBisiesto(int num){
return ( (num%4==0 && num%100!=0)|| (num%500==0) );
}
public static void main(String[] args) {
int dia,mes,anho;
Scanner leer = new Scanner(System.in);
boolean correcta=true;
String mensaje="";
System.out.println("Introduzca el día");
dia = leer.nextInt();
System.out.println("Introduzca el día");
mes = leer.nextInt();
System.out.println("Introduzca el día");
anho = leer.nextInt();
Etiquetas:
ejercicios,
java
miércoles, 5 de noviembre de 2014
Ejercicio 14: Fechas correctas
package ejercicio15fechascorrectas;
import java.util.Scanner;
/**
*
* @author juan
*/
public class Ejercicio15FechasCorrectas {
/**
* @param args the command line arguments
*/
public static boolean esBisiesto(int num){
return ( (num%4==0 && num%100!=0)|| (num%500==0) );
}
public static void main(String[] args) {
int dia,mes,anho;
Scanner leer = new Scanner(System.in);
boolean correcta=true;
String mensaje="";
System.out.println("Introduzca el día");
dia = leer.nextInt();
System.out.println("Introduzca el día");
mes = leer.nextInt();
System.out.println("Introduzca el día");
anho = leer.nextInt();
switch (mes) {
case 1:
case 3:
case 5:
case 7:
case 8:
lunes, 3 de noviembre de 2014
Recursividad: fibonacci
public static void main(String[] args) {
String cadena;
for (int i =1; i < 9; i++) {
System.out.print(fibo(i)+ ",");
}
}
public static int fibo (int num){
int retorno;
if ( (num == 1) || (num ==2) ){
retorno=1;
}
else {
retorno = fibo(num-1)+fibo(num-2);
}
return retorno;
}
}
jueves, 30 de octubre de 2014
Tabla rara
public static void main(String[] args) {
int menor=0,mayor=5;
int diferencia;
int inicial;
diferencia= mayor-menor+1;
for (int i = menor; i <= mayor; i++) {
inicial = i;
for (int cont = 0; cont < diferencia; cont++) {
System.out.print(inicial + " ");
if (inicial==mayor) inicial=menor;
else ++inicial;
}
System.out.println("");
}
}
Tabla de multiplicar (bucles anidados)
public static void main(String[] args) {
for (int i = 1; i < 11; i++) {
System.out.println("");
System.out.println("TABLA DEL "+i);
System.out.println("===========");
for (int j = 1; j < 11; j++) {
System.out.println(i +" * "+ j + " = " + i*j);
}
}
}
Etiquetas:
programación
Explicación Switch case
public static void main(String[] args) {
Scanner leer = new Scanner(System.in);
int num;
String mes="", diaSemana="";
do {
System.out.println("Por favor introduzca el día de la semana (1-7)");
num = leer.nextInt();
} while (num<1 || num >7);
switch (num) {
case 1:
diaSemana= "Lunes";
break;
case 2:
diaSemana= "Martes";
break;
case 3:
diaSemana= "Miércoles";
break;
case 4:
diaSemana= "Jueves";
Etiquetas:
explicación,
programación
lunes, 27 de octubre de 2014
Leer artículos y calcular precios con funciones
public class FraVariosArticulos {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner leer = new Scanner(System.in);
String descripcion;
char seguir;
double pvp, totalFra, numArticulos, precio;
totalFra=0;
do {
System.out.println("Descripción");
descripcion=leer.next();
numArticulos = getNum("numero de artículos");
precio = getNum("precio del artículo");
pvp = numArticulos*precio*1.21;
System.out.println("Precio del artículo "+pvp);
totalFra+= pvp; // totalFra = totalFra + pvp;
do {
System.out.println("Desea introducir más artículos ( S para seguir N para salir)");
seguir = leer.next().toUpperCase().charAt(0);
} while (seguir!='S' && seguir!='N');
} while (seguir=='S');
System.out.println("Total a pagar: "+totalFra);
}
public static double getNum(String tipoDeDato){
Scanner leer = new Scanner(System.in);
double numero;
do {
System.out.println("Introduzca el "+tipoDeDato + " (el valor debe ser mayor que cero)");
numero=leer.nextDouble();
} while (numero<=0);
return numero;
}
}
Leer artículos y calcular precios (solución simple 1)
public static void main(String[] args) {
Scanner leer = new Scanner(System.in);
String descripcion;
char seguir;
double pvp, totalFra, numArticulos, precio;
totalFra=0;
do {
System.out.println("Descripción");
descripcion=leer.next();
System.out.println("Número de artículos");
numArticulos = leer.nextDouble();
System.out.println("Precio");
precio = leer.nextDouble();
pvp = numArticulos*precio*1.21;
System.out.println("Precio del artículo "+pvp);
totalFra+= pvp; // totalFra = totalFra + pvp;
do {
System.out.println("Desea introducir más artículos ( S para seguir N para salir)");
seguir = leer.next().toUpperCase().charAt(0);
} while (seguir!='S' && seguir!='N');
} while (seguir=='S');
System.out.println("Total a pagar: "+totalFra);
lunes, 20 de octubre de 2014
Área de un círculo
public static void main(String[] args) {
Scanner leer = new Scanner(System.in);
double radio;
System.out.println("Introduzca el radio del círculo");
radio = leer.nextDouble();
System.out.println("El área del círculo es : "+ areaCirculo(radio));
}
static double areaCirculo(double radio)
{
return Math.PI*Math.pow(radio, 2);
}
Determinar si una letra es vocal o no
public static void main(String[] args) {
Scanner leer = new Scanner(System.in);
String cadena;
char letra;
/*
//leer una cadena
cadena= leer.nextLine();
//convertir a mayúscula
cadena = cadena.toUpperCase();
//tomamos la primera letra de la cadena
letra = cadena.charAt(0);
*/
do {
System.out.println("Introduzca una letra y pulse INTRO");
//LO MISMO EN UN SOLO PASO
letra = leer.nextLine().toUpperCase().charAt(0);
if (letra == 'A' || letra == 'E' || letra == 'I' || letra == 'O' || letra == 'U' ) {
System.out.println("La letra es una vocal");
} else {
System.out.println("La letra NO es una vocal");
}
System.out.println("Quiere introducir otro carácter?? (N para salir)");
letra = leer.nextLine().toUpperCase().charAt(0);
} while (letra !='N');
}
viernes, 17 de octubre de 2014
Cálculo del factorial
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package aplicacionfactorial;
import java.util.Scanner;
/**
*
* @author juan
*/
public class AplicacionFactorial {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner leer = new Scanner(System.in);
int num,fact=1;
String salida="";
do{
System.out.println("introduzca el número (mayor que cero)");
num= leer.nextInt();
if (num<=0) System.out.println("El número debe ser mayor que cero");
}while(num<=0);
salida+= num+"!= ";
for (int i = num; i > 1; i--) {
fact*=i; //fact = fact*i;
salida+= i + "*";
}
salida += "1 = " + fact;
System.out.println(salida);
}
}
miércoles, 15 de octubre de 2014
Seudocódigo 7 con función boolean
package seudocodigo7;
import java.util.Scanner;
/**
*
* @author juan
*/
public class Seudocodigo7 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
if (esPar(leerNumero())) {
System.out.println(" es par");
} else {
System.out.println(" es impar");
}
}
static int leerNumero(){
Scanner leer = new Scanner(System.in);
int num;
System.out.println("Introduzca el número");
num = leer.nextInt();
return num;
}
static boolean esPar(int valor){
return (valor%2==0);
}
}
Pseudocódigo 4 con funciones: leer cantidad, precio e iva
package seudocódigo4;
import java.util.Scanner;
/**
*
* @author juan
*/
public class Seudocódigo4 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
float cantidad, precio, iva;
Scanner leer = new Scanner(System.in);
cantidad=leerNum("cantidad");
precio = leerNum("precio");
iva = leerNum("iva");
iva=iva/100;
System.out.println(cantidad*precio*(1+iva));
}
Seudocódigo 1: comparar dos números
package pseudocodigo1;
import java.util.Scanner;
/**
*
* @author juan
*/
public class otro {
public static void main(String[] args) {
Scanner entrada = new Scanner (System.in);
int num1, num2,mayor,menor;
//Leo el primer número
System.out.println("Introduzca un número");
num1= entrada.nextInt();
//Leo el segundo número
System.out.println("Introduzca un número");
num2= entrada.nextInt();
//Los comparo
if (num1>num2) {
mayor=num1;
menor=num2;
} else {
mayor=num2;
menor=num1;
}
//mostrar resultado
System.out.println("El mayor es: "+mayor+" el menor, es : "+menor);
}
lunes, 13 de octubre de 2014
Empezando con funciones: media de tes números
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package mediadetresnumeros;
import java.util.Scanner;
/**
*
* @author juan
*/
public class MediaDeTresNumeros {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
//float num1,num2,num3;
float suma=0,mediaVal;
int numItems=3;
for (int i = 0; i < numItems; i++) {
suma=suma+leerValor();
}
mostrar(suma);
// mediaVal=media(suma,numItems);
mostrar(media(suma,numItems));
miércoles, 8 de octubre de 2014
Ordinograma 18: Mostrar los múltiplos de 4
comprendidos entre 64 y 44... o entre dos números cualesquiera,...
Solución a
Solución b
Solución c
Solución d
Imagen del dfd, solución D
Solución a
Solución b
Solución c
Solución d
Etiquetas:
ordinogramas
viernes, 3 de octubre de 2014
Ordinograma 17: Mostrar el mes a partir de su ordinal
Etiquetas:
ordinogramas
Ordinograma 14 y 15: Mostrar los cuadrados de los 20 primeros números
enlace al dfd
Etiquetas:
ordinogramas
jueves, 2 de octubre de 2014
Ordinograma 12: Contar números introducidos
Etiquetas:
ordinograma
miércoles, 1 de octubre de 2014
Ordinograma 9: Calcular el área de un círculo
Enlace al dfd
Etiquetas:
ordinogramas
Ordinograma 8: Comprobar si una letra es vocal o no
Etiquetas:
ordinogramas
Ordinograma 7: Comprobar si un número es par o impar
El cero se considera como caso especial, la condición de salida es que el número sea negativo
Enlace al dfd
Enlace al dfd
Etiquetas:
ordinogramas
Ordinograma 6: Calcular el área de un rectángulo
Enlace al fichero
Etiquetas:
ordinogramas
lunes, 29 de septiembre de 2014
Ordinogramas 1: Calcular la media de tres números
Enlace al Fichero
Etiquetas:
ejercicios,
ordinograma
viernes, 26 de septiembre de 2014
Ordinogramas pendientes
Os copio los dfds de los ordiongramas que todavía no había subido:
https://drive.google.com/file/d/0B44-0lmgCwxZNTdOM3RqNTJDYjQ/edit?usp=sharing
https://drive.google.com/file/d/0B44-0lmgCwxZQXM5RzV4UkJHenM/edit?usp=sharing
https://drive.google.com/file/d/0B44-0lmgCwxZRjU0SjliTVBZQ2s/edit?usp=sharing
https://drive.google.com/file/d/0B44-0lmgCwxZUEh6d2xHZ29Bb3c/edit?usp=sharing
https://drive.google.com/file/d/0B44-0lmgCwxZVENmNlpmS1BzSWs/edit?usp=sharing
https://drive.google.com/file/d/0B44-0lmgCwxZVmpSSWJ3LXBSRVU/edit?usp=sharing
https://drive.google.com/file/d/0B44-0lmgCwxZXzJ3ZGwtOTZLM0U/edit?usp=sharing
https://drive.google.com/file/d/0B44-0lmgCwxZYUY2NXVXN0oxN3M/edit?usp=sharing
https://drive.google.com/file/d/0B44-0lmgCwxZaWw5OG8wQVdfT0k/edit?usp=sharing
https://drive.google.com/file/d/0B44-0lmgCwxZNTdOM3RqNTJDYjQ/edit?usp=sharing
https://drive.google.com/file/d/0B44-0lmgCwxZQXM5RzV4UkJHenM/edit?usp=sharing
https://drive.google.com/file/d/0B44-0lmgCwxZRjU0SjliTVBZQ2s/edit?usp=sharing
https://drive.google.com/file/d/0B44-0lmgCwxZUEh6d2xHZ29Bb3c/edit?usp=sharing
https://drive.google.com/file/d/0B44-0lmgCwxZVENmNlpmS1BzSWs/edit?usp=sharing
https://drive.google.com/file/d/0B44-0lmgCwxZVmpSSWJ3LXBSRVU/edit?usp=sharing
https://drive.google.com/file/d/0B44-0lmgCwxZXzJ3ZGwtOTZLM0U/edit?usp=sharing
https://drive.google.com/file/d/0B44-0lmgCwxZYUY2NXVXN0oxN3M/edit?usp=sharing
https://drive.google.com/file/d/0B44-0lmgCwxZaWw5OG8wQVdfT0k/edit?usp=sharing
Etiquetas:
ejercicios,
ordinogramas
División de una red en subredes
Os copio el enlace de la explicación de la división en subredes de distinto tamaño (dinámico) y protocolos de enrutamiento afectados
http://www.profesores.frc.utn.edu.ar/sistemas/ingsanchez/redes/Archivos/CreacSubr.asp
http://www.profesores.frc.utn.edu.ar/sistemas/ingsanchez/redes/Archivos/CreacSubr.asp
lunes, 22 de septiembre de 2014
viernes, 19 de septiembre de 2014
viernes, 30 de mayo de 2014
Simular tiradas de un dado
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package simulartiradas;
Etiquetas:
DAM,
explicación,
programación
Contar vocales de un cuadro de texto "preparando examen"
package unidad4u352;
public class Vocales {
String cadena;
int vocales[];
public Vocales(String cadena) {
Etiquetas:
DAM,
explicación,
programación
miércoles, 28 de mayo de 2014
Palíndromas en Swing "preparando examen"
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package unidad4palindromas;
/**
*
* @author juan
*/
public class Ventana extends javax.swing.JFrame {
private boolean palindroma(String miCadena){
Etiquetas:
DAM,
explicación,
programación
Cálculo de las potencias de 2 hasta ese número "preparando examen"
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
* Fuente:
* http://garabatoslinux.net/validacion-de-jtextfield-textfield-numerico-binario-o-solo-letras.html
*/
package unidad4u2e19;
import javax.swing.JOptionPane;
/**
*
* @author juan
*/
public class Potencias extends javax.swing.JFrame {
/**
* Creates new form Potencias
Etiquetas:
DAM,
explicación,
programación
Interfaz cálculo DNI sencilla "tipo examen"
En un ejemplo real controlad las pulsaciones para permitir sólo dígitos:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package dni;
import javax.swing.JOptionPane;
/**
*
* @author juan
*/
public class AplicacionDNI extends javax.swing.JFrame {
public static final String NIF_STRING_ASOCIATION = "TRWAGMYFPDXBNJZSQVHLCKE";
/**
* Devuelve un NIF completo a partir de un DNI. Es decir, añade la letra del NIF
* @param dni dni al que se quiere añadir la letra del NIF
* @return NIF completo.
*/
public static String letraDNI(int dni) {
return String.valueOf(dni) + NIF_STRING_ASOCIATION.charAt(dni % 23);
}
/**
* Creates new form AplicacionDNI
*/
public AplicacionDNI() {
initComponents();
}
Etiquetas:
DAM,
explicación,
programación
viernes, 23 de mayo de 2014
Controles Swing: Botones de radio, casillas verificación, spinner, slider,...
Continuamos viendo el uso de controles Swing en java, para ello hacemos una aplicación muy sencilla que permite modificar el estilo, tamaño y tipo de letra de un área de texto.
La ventana de la aplicación será algo como:
y el código (prestad atención en que alguno de los eventos llaman ya a la función p.e. cambiarTamano pero otros controles tratan el evento directamente,...es lo explicado en clase, todas deberían llamar al método para no estar repitiendo código y tratando lo mismo en veinte sitios ya que dificulta además de la programación el mantenimiento de las aplicaciones):
La ventana de la aplicación será algo como:
y el código (prestad atención en que alguno de los eventos llaman ya a la función p.e. cambiarTamano pero otros controles tratan el evento directamente,...es lo explicado en clase, todas deberían llamar al método para no estar repitiendo código y tratando lo mismo en veinte sitios ya que dificulta además de la programación el mantenimiento de las aplicaciones):
Etiquetas:
DAM,
explicación,
programación
lunes, 12 de mayo de 2014
Agregando botones gridLayout y clase manejador
Agregamos a una ventana una serie de botones cuyo manejador es la clase manejador. La ventana ha sido creada desde netBeans pero el panel es el genérico.
package cuadradosadivina;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JOptionPane;
Botón con imagen cambiando color de fondo
package explicacionventana;
import java.awt.Color;
import java.awt.Image;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import java.util.Random;
/**
*
* @author juan
*/
public class Ventana extends javax.swing.JFrame {
/**
* Creates new form Ventana
*/
JButton boton1;
public Ventana() {
initComponents();
Etiquetas:
DAM,
explicación,
programación
viernes, 9 de mayo de 2014
Unidad 4 Ejercicio 8: Usar border layout para cambiar los colores de sus paneles respectivos
Usar border layout para cambiar los colores de sus paneles respectivos:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package unidad4ejercicio8;
import java.awt.Color;
import java.util.Random;
import javax.swing.JPanel;
/**
*
* @author Juan
*/
Etiquetas:
DAM,
ejercicios,
programación
Unidad 4 Ejercicio 10: Diseño de la apariencia de una calculadora
Diseño provisional de la ventana, iremos añadiendo código a lo largo de la semana:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package unidad4ejercicio10;
import java.awt.Component;
import java.awt.Font;
/**
*
* @author Juan
*/
public class Calculadora extends javax.swing.JFrame {
Etiquetas:
DAM,
ejercicios,
programación
miércoles, 7 de mayo de 2014
Unidad 4 Ejercicio 5
Repetir el programa anterior, pero utilizando el gestor de diseño GridLayout, definiendo 2 filas y 2 columnas. En la primera fila se incluyen dos JTextField, y en la segunda dos JLabel. Mirar en la ayuda
el método setFont, y la clase Font.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package unidad4ejercicio5;
import java.awt.Font;
import java.awt.Image;
import java.text.DecimalFormat;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
public class VentanaExplica extends javax.swing.JFrame {
/**
* Creates new form VentanaExplica
*/
public VentanaExplica() {
initComponents();
txtEuros.setFont(this.getFuenteLetra());
Etiquetas:
DAM,
ejercicios,
programación
Unidad 4 Ejercicio 4
Hacer un programa que visualice dos campos de texto
(JtextField). En el primer campo se puede teclear un valor numérico en euros,
que será convertido a pesetas en el segundo campo. Si el valor se teclea en el
segundo campo, se convertirá a euros en el primero.
Emplear la clase DecimalFormat para establecer la salida a dos decimales:
Emplear la clase DecimalFormat para establecer la salida a dos decimales:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package ejercicio4;
import java.text.DecimalFormat;
import javax.swing.JOptionPane;
/**
*
* @author juan
*/
public class Conversion extends javax.swing.JFrame {
/**
* Creates new form Conversion
*/
public Conversion() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
Etiquetas:
DAM,
ejercicios,
programación
lunes, 5 de mayo de 2014
Convertir a Pesetas
Método que permite convertir a pesetas el texto tecleado en un campo de texto (supuestamente en euros llamado txtEuros). Se podría llamar en el caso del evento ActionPerformed y/o KeyReleased:
private void convAPesetas() {
double pesetas,euros;
DecimalFormat formato = new DecimalFormat("######.##");
if (!txtEuros.getText().equals(""))
try {
euros = Double.parseDouble(txtEuros.getText());
pesetas=euros*166.386;
txtPesetas.setText(formato.format(pesetas));
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(this, "Los datos introducidos no se pueden convertir a moneda", "Error en la conversión", JOptionPane.ERROR_MESSAGE);
txtEuros.setText("");
txtEuros.requestFocus();
}
}
Etiquetas:
DAM,
explicación,
java
Suscribirse a:
Entradas (Atom)