Beruflich Dokumente
Kultur Dokumente
PROGRAMACIÓN DE ALGORITMOS–
Sistemas Informáticos y Computación
Modalidad Abierta y a Distancia
Periodo: Octubre 2015–Febrero 2016
Tercer Ciclo
package batorres2_.impuestorenta.java;
import java.util.Scanner;
import java.util.InputMismatchException;
import java.text.DecimalFormat;//para poder mostrar double con 2 decimales.
if(noFacturas <= 0 ){
System.out.println("El nùmero no puede ser negativo! Intente nuevamente...\n");
validadorEntero=true;
}
}
do{
try{
vivienda[i] = Math.random()*1000;
if(vivienda[i]<100)vivienda[i]=0;
educacion[i] = Math.random()*1000;
if(educacion[i]<100)educacion[i]=0;
salud[i] = Math.random()*2000;
if(salud[i]<200)salud[i]=0;
alimentacion[i] = Math.random()*1000;
if(alimentacion[i]<100)alimentacion[i]=0;
vestimenta[i] = Math.random()*1000;
if(vestimenta[i]<100)vestimenta[i]=0;
varios[i] = Math.random()*1000;
if(varios[i]<100)varios[i]=0;
totalFactura[i]=vivienda[i]+educacion[i]+salud[i]+alimentacion[i]+vestimenta[i]+varios[i];
//aquí se suman de una vez los valores por tipo de rubro y se almacena en las variables de totales
totalVivienda=totalVivienda+vivienda[i];
totalEducacion=totalEducacion+educacion[i];
totalSalud=totalSalud+salud[i];
totalAlimentacion=totalAlimentacion+alimentacion[i];
totalVestimenta=totalVestimenta+vestimenta[i];
totalVarios=totalVarios+varios[i];
granTotal=granTotal+totalFactura[i];
}
validadorDouble=false;
}
catch(InputMismatchException eIME){//catch que maneja el ingreso de tipo de dato incorrecto
scanner.nextLine();
System.out.println("ERROR! Revisar el còdigo ya que no se ha ingresado nùmeros de tipo Double");
validadorDouble=true;
}
} while (validadorDouble);
System.out.println("______________________________________________________________________________________________
_______________________________");
System.out.println("\nTotales Rubros"+"\t"+df.format(totalVivienda)+"\t\t"+df.format(totalEducacion)+"\t\t"+df.format(totalSalud)+
"\t\t"+df.format(totalAlimentacion)+"\t\t"+df.format(totalVestimenta)+"\t\t"+df.format(totalVarios)+"\t\t"+df.format(granTotal));
//bloques para calcular los màximos deducibles para cada tipo de rubro
if (totalVivienda>3510){
deducibleVivienda=3510;
} else {
deducibleVivienda=totalVivienda;
}
if (totalEducacion>3510){
deducibleEducacion=3510;
} else {
deducibleEducacion=totalEducacion;
}
if (totalSalud>14040){
deducibleSalud=14040;
} else {
deducibleSalud=totalSalud;
}
if (totalAlimentacion>3510){
deducibleAlimentacion=3510;
} else {
deducibleAlimentacion=totalAlimentacion;
}
if (totalVestimenta>3510){
deducibleVestimenta=3510;
} else {
deducibleVestimenta=totalVestimenta;
}
// se calcula el maximo de deducibles. De acuerdo al ejercicio planteado, no se toma en cuenta para este total el rubro VARIOS
deducibleTotal=deducibleVivienda + deducibleEducacion + deducibleSalud + deducibleAlimentacion + deducibleVestimenta;
System.out.println("\nDeducibles");
System.out.println("Máximos"+"\t\t"+df.format(deducibleVivienda)+"\t\t"+df.format(deducibleEducacion)+"\t\t"+df.format(deducible
Salud)+
"\t\t"+df.format(deducibleAlimentacion)+"\t\t"+df.format(deducibleVestimenta)+"\t\t\t\t"+df.format(deducibleTotal));
promedioSalud = totalSalud/noFacturas;
System.out.println("\nPromedio Salud\t\t\t\t\t"+df.format(promedioSalud));
if(deducibleTotal<10800){
System.out.println("\nEl empleado debe declarar impuestos?:\tNO");
} else{
System.out.println("\nEl empleado debe declarar impuestos?:\tSI");
}
else{
if(deducibleTotal>61980){
impuestoRenta = ((deducibleTotal-61980)*25/100)+8137;
}
else{
if(deducibleTotal>41330){
impuestoRenta= ((deducibleTotal-41330)*20/100)+4007;
}
else{
if(deducibleTotal>20670){
impuestoRenta = ((deducibleTotal-20670)*15/100)+908;
}
else{
if(deducibleTotal>17210){
impuestoRenta = ((deducibleTotal-17210)*12/100)+493;
}
else{
if(deducibleTotal>13770){
impuestoRenta = ((deducibleTotal-13770)*10/100)+149;
}
else{
if(deducibleTotal>10800){
impuestoRenta = ((deducibleTotal-10800)*5/100);
}
else{
impuestoRenta = 0;
}
}
}
}
}
}
}
}
facturaMenor = 2000;
posicionMenor = 0;
//for para calcular el valor menor en tipo de facturas de salud, se inicializa variable en 2000 que es el máximo
for (int i=0; i<noFacturas;i++){
if (salud[i]<facturaMenor&&salud[i]>0){
facturaMenor=salud[i];
posicionMenor=i;
}
}
System.out.println("\nLa factura con el menor valor de salud correponde a la factura "+(posicionMenor+1)+", por un valor
de:\t"+df.format(facturaMenor));
rubroMayor=null;
//bloques for para identificar cual es el valor mayor, y el tipo de rubro mayor, y la posición para obtener la factura
// al momento que se ejecuten todos los for, se obtendrán los valores mayores
for(int i=0;i<noFacturas;i++){
if (vivienda[i]>valorMayor){
valorMayor=vivienda[i];
rubroMayor="VIVIENDA";
posicionMayor=i;
}
}
for(int i=0;i<noFacturas;i++){
if (educacion[i]>valorMayor){
valorMayor=educacion[i];
rubroMayor="EDUCACION";
posicionMayor=i;
}
}
for(int i=0;i<noFacturas;i++){
if (salud[i]>valorMayor){
valorMayor=salud[i];
rubroMayor="SALUD";
posicionMayor=i;
}
}
for(int i=0;i<noFacturas;i++){
if (alimentacion[i]>valorMayor){
valorMayor=alimentacion[i];
rubroMayor="ALIMENTACION";
posicionMayor=i;
}
}
for(int i=0;i<noFacturas;i++){
if (vestimenta[i]>valorMayor){
valorMayor=vestimenta[i];
rubroMayor="VESTIMENTA";
posicionMayor=i;
}
}
for(int i=0;i<noFacturas;i++){
if (varios[i]>valorMayor){
valorMayor=varios[i];
rubroMayor="VARIOS";
posicionMayor=i;
}
}
//presentaciòn de datos en pantalla de acuerdo a si sobre pasa o no el promedio total. Se calcula con IF
if(valorMayor>promedioAnual){
System.out.println("\nLa factura con el mayor rubro es la Factura 00"+(posicionMayor+1)+" por el valor de
"+df.format(valorMayor)+
", correspondiente al rubro "+rubroMayor+";\ny esta SI supera el promedio de gastos anuales por facturas que es de
"+df.format(promedioAnual));
}
else{
System.out.println("\nLa factura con el mayor rubro es la Factura 00"+(posicionMayor+1)+" por el valor de "+df.format(valorMayor)+
", correspondiente al rubro "+rubroMayor+";ny esta NO supera el promedio de gastos anuales por facturas que es de
"+df.format(promedioAnual));
}
/*
*RUN
*/