Está en la página 1de 6

Ejercicio de Algoritmo y Complejidad II Desarrollar los algoritmos que resuelvan el siguiente

problema:

1. Se desea el algoritmo que resuelva el siguiente problema: Calculo de los salarios


mensuales de los empleados de una empresa, sabiendo que estos se calculan en base a
las horas semanales trabajadas y de acuerdo a un precio especificado por horas. Si se
pasan de 40 horas semanales, las horas extraordinarias se pagarán a razón de 1.5 veces
la hora ordinaria.

public class AppEJE6 {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int hora_trabajada;
int hora_extras;
int pago_hora;
int hora_normales;
double salario;
double pago_horas_extras;
Scanner Dato= new Scanner (System.in);
System.out.println("Ingresa las horas trabajadas: ");
hora_trabajada = Dato.nextInt();
System.out.println("Tarifa: ");
pago_hora =Dato.nextInt();

if (hora_trabajada <=40 && hora_trabajada>=0);


{ hora_normales = hora_trabajada;
hora_extras =0;
pago_horas_extras =0;
}
else{
hora_normales =40;
hora_extras = hora_trabajada-40;
pago_horas_extras = pago_hora * 1.5;
}
salario =hora_normales*pago_hora+pago_horas_extras;
System.out.println("Su salario es de: s/. "+salario);

}
2. Desarrollar un programa que realice la suma de los números pares entre 2 y 100.

public class AppLab1 {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int numero=2;
int limite=100;
while(numero <= 100){
if(numero%2==0){
System.out.println(numero);
}
numero++;
}
}
}
3. La Escritura de algoritmos para realizar operaciones sencillas de conteo es una de las
primeras cosas que un ordenador puede aprender. Supongamos que se proporciona una
secuencia de números tales como: 5 3 0 2 4 4 0 0 2 3 6 0 2 Y lo que se desea es contar e
imprimir el número de ceros de la secuencia.
Scanner Dato=new Scanner(System.in);
System.out.print("Ingreseuna secuencia de 10 numeros: ");
String Num =Dato.next();
int contCeros =0;
for(int i=0; i< Num.length();i++)
{
if(Num.charAt(i)==‘0’)
{
contCeros++;
}
}
System.out.println("Hay" + contCeros+” ceros en “+Num);
}
}

4. Se desea calcular el salario neto semanal de un trabajador en función del número de


horas de trabajadas y la tasa de impuestos:

✓ Las primeras 35 horas se pagan a tarifa normal.


✓ Las horas que pasen de 35 horas se pagan a 1.5 veces la tarifa normal.
✓ Las tasas de impuestos son: o Los primeros S/. 6 000 nuevos soles son libres de
impuestos. o Los siguientes S/. 4 000 nuevos soles tienen un 25% de impuestos. o Los
restantes 45% de impuestos.
✓ La tarifa horaria es de S/. 50 nuevos soles. Se desea también imprimir el nombre, salario
bruto, tasas y salario neto.
public class AppEJE6 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner var=new Scanner(System.in);
int numHoras,numHorasAdic=0;
double Tarifa,TarifaHoraExtra=0,PagoExtra=0;
double PagoNormal=0,Impuesto=0,SueldoNeto=0;

System.out.print("Ingrese el Número de Horas Trabajadas: ");


numHoras=var.nextInt();
Tarifa=50;

if(numHoras>35)
{
PagoNormal=Tarifa*35;
numHorasAdic=numHoras-35;
TarifaHoraExtra=Tarifa*1.015;
PagoExtra=TarifaHoraExtra*numHorasAdic;
}
else
{
PagoNormal=Tarifa*numHoras;
}
SueldoNeto=PagoNormal+PagoExtra;
if(SueldoNeto>6000&&SueldoNeto<=10000)
{
Impuesto=(SueldoNeto-3000)*0.25;
}
else
{
if(SueldoNeto>10000)
{
Impuesto=(SueldoNeto-6000)*0.45;
}
}
System.out.println("El Sueldo Neto del Trabajador es S/. "+SueldoNeto);
System.out.println("El Impuesto a pagar es S/. "+Impuesto);
}
}
5. Averiguar si una palabra es un palíndromo. Un palíndromo es una palabra que se lee igual de
izquierda a derecha que de derecha a izquierda, como, por ejemplo, “radar”.

public static void main(String[] args) {


String cadena;
boolean valor=true;
int i,ind;
String cadena2="";
Scanner teclado= new Scanner(System.in);
String nuevo;
palindromo2 objclass=new palindromo2();
System.out.println("Ingresa la palabra");
nuevo = teclado.nextLine();
if(objclass.espalindromo(nuevo)){
System.out.println("Palindromo");
}
else
{
System.out.println("No Palindromo");
}
for (int x=0; x < cadena.length(); x++) {
if (cadena.charAt(x) != ' ')
cadena2 += cadena.charAt(x);
}
cadena=cadena2;
ind=cadena.length();
for (i= 0 ;i < (cadena.length()); i++){
if (cadena.substring(i, i+1).equals(cadena.substring(ind - 1, ind)) == false ) {
valor=false;
break;
}
ind--;
}
}
}

6.Una empresa de telefonía cobra una renta básica igual a S/. 49.37 (sin IGV) más un pago
por consumo que se calcula en base al tiempo total de llamadas de la siguiente forma: por
los 50 primeros minutos a 0 soles (libres), por los 100 minutos siguientes a S/. 0.10 el
minuto, por los 60 minutos siguientes a S/. 0.08 el minuto y por los siguientes minutos a S/.
0.05 el minuto. Estas tarifas no incluyen el IGV. Diseñe un pseucodigo que determine el valor
subtotal (renta básica más consumo, sin IGV), el valor del IGV (19% del valor de la factura) y
el valor total (con IGV) que debe pagar un cliente.
7. Para generar un numero aleatorio entero en el intervalo de min a max se usa la siguiente
expresión: N = (int) ( (max-min+1) * Math.random() + min) Diseñar un pseudocodigo que genere
10000 números aleatorios en el intervalo 1000 a 9999 y determine cuantos números estaban en
cada uno de los siguientes intervalos: 1000 a 1999, 2000 a 2999, 3000 a 3999,…8000 a 8999,
9000 a 9999.

public static void main(String[] args) {


int n, contmil = 0, cont2mil = 0, cont3mil = 0, cont4mil = 0, cont5mil = 0, cont6mil = 0,
cont7mil = 0, cont8mil = 0, cont9mil = 0;

for (int i = 0; i < 10000; i++) {


n = (int) (Math.random() * ((10000 - 1000) + 1) + 1000 );
System.out.println(n);
if (n >= 9000) {
cont9mil++;
}
else if (n >= 8000) {
cont8mil++;
}
else if (n >= 7000) {
cont7mil++;
} else if (n >= 6000) {
cont6mil++;
}
else if (n >= 5000) {
cont5mil++;
}
else if (n >= 4000) {
cont4mil++;
}
else if (n >= 3000) {
cont3mil++;
}
else if (n >= 2000) {
cont2mil++;
}
else
{
contmil++;
}
}
System.out.println("Hay " + contmil + " entre 1000 y 1999");
System.out.println("Hay " + cont2mil + " entre 2000 y 2999");
System.out.println("Hay " + cont3mil + " entre 3000 y 3999");
System.out.println("Hay " + cont4mil + " entre 4000 y 4999");
System.out.println("Hay " + cont5mil + " entre 5000 y 5999");
System.out.println("Hay " + cont6mil + " entre 6000 y 6999");
System.out.println("Hay " + cont7mil + " entre 7000 y 7999");
System.out.println("Hay " + cont8mil + " entre 8000 y 8999");
System.out.println("Hay " + cont9mil + " entre 9000 y 9999");
}
}
8. Diseñe un pseudocodigo que genere aleatoriamente los sueldos de 200 empleados de una
empresa, con valores entre S/.700 y S/.3500. Determinar: • El sueldo promedio total • El sueldo
promedio y número de empleados que ganan entre 700 y 1500. • El sueldo promedio y número
de empleados que ganan entre 1501 y 2500. • El sueldo promedio y número de empleados que
ganan entre 2501 y 3500.

También podría gustarte