Ejercicios Prácticos de Programación en JAVA
Ejercicios Prácticos de Programación en JAVA
Ejercicios Prácticos de Programación en JAVA
1.1) .Dado 1 número que representa una cara de un cubo, calcular y mostrar la Volumen.
package app;
import java.util.Scanner;
int n1;
int volumen;
volumen = n1*n1*n1;
/**
0 */
1.2) .Dados 2 números que representan los lados de una cara de un cubo, calcular y
mostrar la superficie.
package app;
import java.util.Scanner;
//Declaracion de variables
int n1;
int n2;
int superficie;
int ladosDelCubo = 6;
//Calculo de la superficie
superficie = ladosDelCubo * n1 * n2; //Math.pow(n,m)
}
}
package app;
import java.util.Scanner;
//Haga la suma
suma = n1 + n2;
resta = n1 - n2;
multiplicar = n1 * n2;
}
}
3) Dado un número real que representa el importe de una compra informar las posibles
formas de pago, según la siguiente tabla: (Segundo ejercicio de la guia)
1 cuota de $.................
2 cuotas de $................. total $................. ( 5% de recargo)
6 cuotas de $................. total $................. ( 40% de recargo)
package app;
import java.util.Scanner;
public class App {
c1 = x;
c2_Cargo = x * 1.05;
c6_Cargo = x * 1.40;
c2 = c2_Cargo / 2;
c6 = c6_Cargo / 6;
System.out.println("Su pago de 1 cuota es de: " + c1);
System.out.println("Su pago en 2 cuotas con un recargo del 5% es de: " + c2);
System.out.println("Su pago en 6 cuotas con un recargo del 40% es de: " + c6);
}
}
package app;
import java.util.Scanner;
System.out.println("Ingresar un valor");
n1 = Teclado.nextInt();
x = n1 / 5;
y = n1 % 5;
z = x / 7;
}
}
package app;
import java.util.Scanner;
String mes;
int anio;
System.out.println("Ingresar mes");
mes = Teclado.nextLine();
System.out.println("Ingresar año");
anio = Teclado.nextInt();
mes = mes.toLowerCase();
switch (mes) {
case "enero":
case "marzo":
case "mayo":
case "julio":
case "agosto":
case "octubre":
case "diciembre":
System.out.println("Su mes " + mes + " tiene 31 dias");
break;
case "abril":
case "junio":
case "sepiembre":
case "noviembre":
System.out.println("Su mes " + mes + " tiene 30 dias");
break;
case "febrero":
if(anio % 4 == 0 && ((anio % 100 != 0) || (anio % 400 == 0)) ) {
System.out.println("Su mes " + mes + " tiene 29 dias");
} else {
System.out.println("Su mes " + mes + " tiene 28 dias");
}
break;
default:
System.out.println("el mes ingresado no se reconoce");
break;
}
}
}
package app;
import java.util.Scanner;
/// Imprimir las siguientes opciones y luego hacer que el usuario ingrese una
/// opcion
// Opcion 1: 1 cuota
// Opcion 2: 2 cuotas
// Opcion 6: 6 cuotas.
int cuotas;
// switch(expresion)
switch (cuotas) {
case 1:
// no abre llaves
System.out.println("Ud eligio la cuota 1");
break; // <-- El brake hace que no caiga en los otros cases.
case 2:
System.out.println("Ud eligio pagar en 2 cuotas");
break;
case 6:
System.out.println("Ud eligio pagar en 6 cuotas");
break;
default: //No es ninguno de los anteriores.
System.out.println("Opcion no valida");
break;
}
}
}
1) Dado dos números, mostrar menú con opciones de sumar, restar o multiplicar dichos
números. Solicite elegir una opción y mostrar resultados.
4) Dado un año, que representa la fecha de nacimiento de una perssona, indicar si es:
babyboomer, generacion X, millenial, centenial u otro
5) Dada una N cantidad de temperaturas de una region, se requiere informar cual fue la
mayor temperatura.
6) Se pide ingresar una cantidad de personas. Por cada persona ingresar el año de
nacimiento e informar el promedio de edad de aquellos que son millenials
import java.util.Scanner;
int numero;
int cantidad;
// int cantidad = 0;
System.out.println("Ingrese un numero");
numero = Teclado.nextInt();
cantidad = 0;
numero = Teclado.nextInt();
}
}
}
import java.util.Scanner;
int numero;
int cantidad = 0;
do {
System.out.println("Ingrese un numero");
numero = Teclado.nextInt();
if (numero >= 0) {
cantidad++;
}
} while (numero >= 0);
1) Dado un colegio de N aulas, ingresar para casa aula nombre, anio de nacimiento y
promedio del alumno. Cada ingreso por aula termina cuadno alguien ingresa el
nombre "NADIE". Puede haber aulas vacias. Se pide como resultado final, el nombre
y nota del promedio mas alto. Cantidad de alumnos que sacaron menos de 4.
Cantidad de alumnos que nacieron en un anio bisiesto
package app;
import java.util.Scanner;
public class App {
int aulas;
String nombre ;
int cantidad;
int anio;
int promedio;
int promedioT = 0;
while(nombre != "NADIE") {
System.out.println("Ingresar nombre");
nombre = Teclado.nextLine();
System.out.println("Ingresar anio de nacimiento");
anio = Teclado.nextInt();
System.out.println("Ingresar promedio del alumno");
promedio = Teclado.nextInt();
promedioT += promedio;
cantidad++;
}
promedioT = promedioT/cantidad;
}
public static boolean nombreAlumno(){
if(alumno)
return false;
}
}
Ej. MI-3: Dada una terna de números naturales que representan al día, al mes y al año
de una determinada fecha informarla como un solo número natural de 8 dígitos
(AAAAMMDD).
int dia;
int mes;
int año;
System.out.println("ingresar dia");
dia = Teclado.nextInt();
System.out.println("ingresar mes");
mes = Teclado.nextInt();
System.out.println("ingresar año");
año = Teclado.nextInt();
System.out.println("Fecha Actual: "+ año + "/" + (mes) + "/" + dia);
System.out.println(Math.abs(año) + " " + Math.abs(mes) + " " + Math.abs(dia));
Ej. MI-4: A partir de un valor entero ingresado por teclado, se pide informar:
int n1;
int x;
int y;
double z;
System.out.println("Ingresar un valor entero");
n1 = Teclado.nextInt();
x = n1 / 5;
y = n1 % 5;
z = (double)x / 7;
Ej. MI-5
Enunciado: Dados dos valores enteros y distintos, emitir una leyenda apropiada que
informe cuál es el mayor entre ellos.
Ej. MI-6 Dadas dos fechas informar cual es la más reciente. Determine cuales serían
los datos de entrada y las leyendas a informar de acuerdo al proceso solicitado.
int dia1;
int mes1;
int año1;
dia1 = Teclado.nextInt();
mes1 = Teclado.nextInt();
año1 = Teclado.nextInt();
int dia2;
int mes2;
int año2;
dia2 = Teclado.nextInt();
mes2 = Teclado.nextInt();
año2 = Teclado.nextInt();
} else {
} else {
break;
Ej. MI-7: Dado un triángulo representado por sus lados L1, L2, L3, determinar e
imprimir una leyenda según sea: equilátero, isósceles o escálenos.
int l1;
int l2;
int l3;
l1 = Teclado.nextInt();
l2 = Teclado.nextInt();
l3 = Teclado.nextInt();
} else {
Ej. MI-8:
Enunciado: Dados un mes y el año correspondiente informar cuantos días tiene el mes.
String mes;
int anio;
System.out.println("Ingresar mes");
mes = Tecla.readLine();
System.out.println("Ingresar año");
anio = Teclado.nextInt();
mes = mes.toLowerCase();
switch (mes) {
case "enero":
case "marzo":
case "mayo":
case "julio":
case "agosto":
case "octubre":
case "diciembre":
break;
case "abril":
case "junio":
case "sepiembre":
case "noviembre":
break;
case "febrero":
} else {
break;
default:
break; }
Ej. MI-9:
Enunciado: Dados dos números, mostrar un menú con opciones de sumar, restar o
multiplicar dichos números. Solicite elegir una opción.
int nx;
int ny;
int opcion;
int sumar;
int restar;
int multiplicar;
nx = Teclado.nextInt();
ny = Teclado.nextInt();
System.out.println("Sumar: 11");
System.out.println("Restar: 22");
System.out.println("Multiplicar: 33");
opcion = Teclado.nextInt();
switch (opcion) {
case 11:
sumar = nx + ny;
break;
case 22:
restar = nx - ny;
break;
case 33:
multiplicar = nx * ny;
break;
default:
System.out.println("Resultado Incorrecto");
break;
}
Ej. MI-10 Se ingresa una edad, mostrar por pantalla alguna de las siguientes leyendas:
●
‘menor’ si la edad es menor o igual a 12
int edad;
System.out.println("ingresar edad");
edad = Teclado.nextInt();
} else {
Ej. MI-11
Ej. MI-12: Dados N y M números naturales, informar su producto por sumas sucesivas.
int n;
int m;
int cantidad = 0;
System.out.println("Ingrese un numero");
n = Teclado.nextInt();
m = Teclado.nextInt();
cantidad += m;
System.out.println("Su producto entre: " + m + " Y " + n + " fue: " + cantidad);
Ej. MI-13: Dados 50 números enteros, informar el promedio de los mayores que 100 y
la suma de los menores que –10.
int numero;
int promedio = 0;
int suma = 0;
int suma2 = 0;
int contador = 0;
numero = Teclado.nextInt();
suma += numero;
promedio++;
suma2 += numero;
}
numero = Teclado.nextInt();
contador++;
1.
Nro. de equipo,
Se arma un lote de datos con todos los resultados del torneo, agrupados por
Nro. de equipo.
String codigo;
int puntos;
int k;
k = Teclado.nextInt();
for(int i = 1; i <= k; i++){
codigo = Teclado.nextLine();
switch(codigo){
case "P":
puntos = 0;
break;
case "E":
puntos = 1;
break;
case "G":
puntos = 3;
break;
default:
break;
Ej. MI-15: Ingresar e informar valores, mientras que el valor ingresado no sea
negativo. Informar la cantidad de valores ingresados.
Ej. MI-16: Se ingresa un conjunto de valores reales, cada uno de los cuales
representan el sueldo de un empleado, excepto el último valor que es cero e indica el fin
del conjunto. Se pide desarrollar un programa que determine e informe:
1.
Cuántos empleados ganan menos $1.520.
Ej. MI-17: Dado un valor M determinar y emitir un listado con los M primeros múltiplos
de 3 que no lo sean de 5, dentro del conjunto de los números naturales.
Ej. MI-18: Reescribir los algoritmos MI-15 al MI-17, utilizando ciclos 1-n
IV Máximos y Mínimos.
Ej. MI-20: Dados N valores informar el mayor, el menor y en que posición del conjunto
fueron ingresados.
Ej. MI-22. Dado un conjunto de valores, que finaliza con un valor nulo, determinar e
imprimir (si hubo valores):
1.
por cada sublote el promedio de valores
Nota: el lote puede estar vacío (primer valor negativo), o puede haber uno, varios o
todos los sublotes vacíos (ceros consecutivos)
Ej. MI-24: Dada una serie de M pares {color, número} que corresponden a los tiros de
una ruleta. Se pide informar:
1.
cuántas veces salió el número cero y el número anterior a cada cero
IV Ejercicios Integradores
Ej. MI-25: Dada una serie de caracteres que conforman una oración, donde cada
palabra está separada de la siguiente por un carácter blanco y la oración finaliza con un
punto. Se pide informar:
1.
cantidad de veces que apareció cada vocal
Ej. MI-27: Dado un conjunto de valores enteros, calcular e informar a) cuántos valores
cero hubo, b) promedio de valores positivos, c) sumatoria de valores negativos.
1.
167 valores enteros
Ej. MI-28: El gobierno de la Ciudad de Buenos Aires realiza una encuesta en casas de
familia. De cada familia conoce: domicilio, tipo de vivienda (‘C’:casa, ‘D’:departamento),
y cantidad de integrantes.
De cada integrante de la familia se conoce: nombre y apellido, edad, sexo (‘F’, ‘M’, ’O’),
nivel de estudios alcanzados (‘N’: no posee, ‘P’: primario, ‘S’: secundario, ‘T’: terciario,
‘U’: universitario), y un indicador (‘I’: incompleto, ‘C’: completo) que se refiere al ítem
anterior.
1.
los datos de los encuestados que hayan completado los estudios primarios
99999999 999.99
99999999 999.99
VI a. Funciones
Ej. MI-30: Desarrollar una función que calcule el máximo común divisor de dos
números enteros A, B con el siguiente algoritmo:
1.
Dividir A por B, y calcular el resto (0 < R < B)
2. Si R = 0, el MCD es B, si no seguir en 3)
Ej. MI-31: Desarrollar una función tal que dado un número entero positivo calcule y
retorne su factorial.
1.
su factorial
2. cuantos múltiplos de 3
3. cuantos múltiplos de 5
4. cuantos múltiplos de 3 y de 5
Ej. MI-33: Dada la fracción P/Q, para P y Q naturales informar la mayor cantidad de
simplificaciones. Desarrolle y utilice una función que reciba dos números naturales y
retorne el menor factor común. Ej: 360/60 = 180/30 = 90/15 = 30/5 = 6/1
VI b. Procedimientos
Ej. MI-34. Diseñar un procedimiento que imprima el cartel:
PRESIONE ENTER
PARA CONTINUAR
Ej. MI-36: Desarrollar un procedimiento tal que dados una base y un exponente,
enteros positivos, calcule y retorne la potencia.
Ej. MI-37: Desarrollar un procedimiento tal que dada una fecha (AAAAMMDD) y un
número natural que representa una cantidad de días, calcule y retorne la nueva fecha en
tres parámetros año (AAAA), mes (MM) y día (DD) que resulte de incrementar al
parámetro fecha con el parámetro cantidad de días.
Ej. MI-38: Desarrollar un procedimiento tal que dada una hora (HHMMSS) y un tiempo
también en formato HHMMSS devuelva la nueva hora que surge de sumar el tiempo a la
hora inicial, considere también si cambió el día.
1.
Ejercicios integradores Subprogramas
Ej. MI-39: Una bodega quiere lanzar una oferta para terminar con el stock de dos
productos. Para ello cuenta con B cantidad de cajas de vino blanco y T cantidad de cajas
de vino tinto. Desea armar la mayor cantidad posible de paquetes con la oferta y que
todos los paquetes tengan igual cantidad de cajas de vino blanco y de vino tinto.
●
Día de nacimiento (2 dig.)
● Mes (2 dig.)
● Año (4 dig.)
Con estos datos de cada habitante se forma un lote finalizado con un día cero.
Desarrollar el programa que determine e imprima:
Ej. MI-42: Un buque de carga traslada 100 contenedores a tres diferentes puertos del
país.
1.
El peso total que el buque debe trasladar
Ej. MI-43: Dado un conjunto de 20 elementos, donde cada elemento son dos
puntos que representan las esquinas opuestas de un rectángulo x1, y1, x2, y2.
(x2, y2)
(x1, y1)
Se pide:
1.
Informe el perímetro de cada rectángulo que sea un cuadrado
●
Tipo de Infracción (1, 2, 3, ó 4)
● Motivo de la infracción
● Valor de la multa
●
Los valores totales de la multa a pagar de acuerdo al tipo de gravedad.
1.
Una función que reciba un número natural de 4 dígitos en formato de
HHMM que corresponde a un tiempo determinado en horas y minutos,
retorne ese tiempo en minutos.
Desarrolle un algoritmo que resuelva la siguiente situación problemática: Todos los fines
de mes, una empresa de telefonía celular debe confeccionar las facturas con los
consumos de todos sus abonados, que se realizan en tres turnos de trabajo: Mañana,
Tarde y Noche.
●
Número de celular 9 dígitos ( 0 indica cambio de turno)
Dependiendo del tipo de abono que se tenga, el usuario tiene cierta cantidad de
minutos libres, por los cuales no abona cargo extra, pero por cada minuto que se
exceda debe abonar una suma extra según la siguiente tabla:
Plan
A B C D
E
Costo
Minutos
Libres
300 200 100 60 40
Cargo
por minuto
excedente $0.09 $0.15 $0.21 $0.29 $0.37
Turno Mañana
Nombre del Abonado Dirección Minutos libres Minutos Excedidos Monto Total a Abonar
……………………………………………………………………………………………………………
…
Turno Tarde
……………………………………………………………………………………………………………
…
Turno Noche
……………………………………………………………………………………………………………
…
●
El nombre del abonado que debe abonar la factura más costosa y el monto de
ésta.
● En que turno y en que orden dentro del turno apareció el abonado que utilizó la
menor cantidad de minutos en el mes.
package app;
import java.util.Scanner;
int aulas;
String nombre ;
int cantidad;
int anio;
int promedio;
int promedioT = 0;
while(nombre != "NADIE") {
System.out.println("Ingresar nombre");
nombre = Teclado.nextLine();
System.out.println("Ingresar anio de nacimiento");
anio = Teclado.nextInt();
System.out.println("Ingresar promedio del alumno");
promedio = Teclado.nextInt();
promedioT += promedio;
cantidad++;
}
promedioT = promedioT/cantidad;
}
public static boolean nombreAlumno(){
if(alumno)
return false;