7.10 (Comisión por ventas) Utilicele un arreglo unidimensional para resolver el siguiente problema: una compañía paga a sus vendedores por comisión. Los vendedores reciben $200 por semana más el 9% de sus ventas totales de esa semana. Por ejemplo, un vendedor que acumule $5000 en ventas en una semana recibirá $200 más el 9% de $5000, o un total de $650.00 Escriba una aplicación (utilizando un arreglo de contadores) que determine cuántos vendedores recibieron salarios en cada uno de los siguientes rangos. (Suponga que el salario de cada vendedor su trunca a una cantidad entera):
a) $200-299
b) $300-399
c) $400-499
d) $500-599
e) $600-699
f) $700-799
g) $800-899
h) $900-999
i) $1000
_______________________________________________________________________________________
SOLUCIÓN:
Este archivo debe guardarse con el nombre
public class UsaTrabajadores
public class UsaDeitel_7_10 { // Abre clase publica UsaDeitel_7_10 public static void main(String args[]) { //Abre main Deitel_7_10 miObjeto = new Deitel_7_10(); miObjeto.Recibe(); } // cierra main } //Cierra clase publica UsaDeitel_7_10
Éste código debe guardarse con el nombre Deitel_7_10.java
import java.util.Scanner; public class Deitel_7_10 { // Abre clase private int Trabajadores = 10; float ArregloA[] = new float[Trabajadores + 1]; int ArregloB[] = new int[Trabajadores + 1]; int ArregloC[] = new int[11]; public void Recibe() { // Abre metodo Recibe Scanner entrada = new Scanner(System.in); System.out.printf("\nEste programa recibe los rangos en los que estan"); System.out.printf("\nlos salarios de los %d empleados.\n", Trabajadores); float ventas; for ( int j = 0; j < Trabajadores; j++ ) { // Abre for ArregloC[j] = 0; } // Cierra for for ( int i = 1; i <= Trabajadores; i++ ) { // Abre for System.out.printf("\n\n\nIntroduzca las ventas del empleado numero %d ", i); ventas = entrada.nextFloat(); ArregloA[i] = ((float)(9)/100)*ventas + 200; System.out.printf("\nEl salario del empleado %d es: %.2f\n ", i, ArregloA[i]); ArregloB[i] = (int)(ArregloA[i])/100; } for (int k = 1; k <= Trabajadores; k++ ) { if (ArregloB[k] < 10) ArregloC[ArregloB[k]]++; else ArregloC[Trabajadores]++; } for (int j = 2; j < Trabajadores; j++ ) { System.out.printf("\nHay %d empleados que cobran entre %d", ArregloC[j], (j * 100)); System.out.printf(" y %d pesos.\n", (( j + 1 ) * 100 ) - 1 ); } System.out.printf("Hay %d empleados que cobran 1000 o mas.\n\n", ArregloC[Trabajadores]); } // Cierra metodo Recibe } // Cierra clase
BUENAS NOCHES:
ResponderEliminar¿ME PUEDEN AYUDAR A RESOLVER ESTE PROBLEMA?
POR LA VENTA DE UN AUTO UN VENDEDOR COBRA EL 3% DE COMISION, GASTA DICHO VENDEDOR EL 40% DE SU GANANCIA Y EL RESTO LO PRESTA CON UN INTERES DEL 5%, RECIBIENDO POR CONCEPTO DE INTERES $63, ¿CUAL ERA EL PRECIO DEL AUTO?
GRACIAS,ESPERO QUE PUEDA AYUDARME.
70,000.00 pesos
Eliminarhola
ResponderEliminarsoy nuevo en esto estoy ,estoy siguiendo el curso de Deitel..
si es posible podrias comentar un poco linea por linea.
gracias
Lo podrias hacer en c++? Gracias!
ResponderEliminarasdfghjklñ
ResponderEliminarhola sera que me pueden ayudar para enviarles un ejercicio confirmen
ResponderEliminarxfa
a mi me funciono asi!
ResponderEliminarpublic class ComisionPorVentas {
private static int sueldo;
private static int comisionValor;
private static int[] sueldoMasComision;
private static int[] totalPagos;
private static int[] ventasPorVendedor;
private static int[] sueldos;
//constructor
public ComisionPorVentas(int[] ventas) {
sueldo = 200;
comisionValor = 9;
ventasPorVendedor = ventas;
totalPagos = new int[ventas.length];
sueldos = new int[ventas.length];
}//fin constructor
public static void main(String[] args) {
int[] ventas = {4500, 6345, 9876, 3000, 4897};
ComisionPorVentas misVentas = new ComisionPorVentas(ventas);
calculoSueldoMasComision();
imprimirResultados();
mostrarGrafico();
}
//calcula el sueldo total
public static void calculoSueldoMasComision() {
for (int i = 0; i < sueldos.length; i++) {
sueldos[i] = 200;
}
for (int i = 0; i < ventasPorVendedor.length; i++) {
totalPagos[i] = sueldo + ventasPorVendedor[i] * comisionValor / 100;
}
// for (int i = 0; i < totalPagos.length; i++) {
// System.out.printf("%d ", totalPagos[i]);
// }
}//fin metodo
public static void imprimirResultados() {
System.out.printf("Los pagos semanales por vendedor son: \n");//encabezados
System.out.print(" ");
System.out.printf("\t%s\t%s\t%s %s", "Sueldo", "Venta", "Comision", "Total a Pagar");
for (int i = 0; i < totalPagos.length; i++) {
System.out.printf("\nVendedor %d\t", i + 1);
System.out.printf("$%3d\t$%d\t$%6d\t\t$%5d", sueldos[i], ventasPorVendedor[i],
ventasPorVendedor[i] * comisionValor / 100, totalPagos[i]);
}
System.out.println();
}//fin metodo imprimirResultados
public static void mostrarGrafico() {
System.out.println("\nDistribucion de Pagos");
int[] frecuencia = new int[11];
try {
for (int pagos : totalPagos) {
++frecuencia[pagos / 100];
}
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println(e);
}
for (int i = 2; i < frecuencia.length; i++) {
if (i == 10) {
System.out.printf("%5s: ", "1000 +");
} else {
System.out.printf("%2s-%2s: ",
i * 100, i * 100 + 99);
}
//fin else
//imprime los asteriscos por frecuencia
for (int j = 0; j < frecuencia[i]; j++) {
System.out.print("*");
}
System.out.println();
}//fin for
}
}
y la salida quedo asi:
run:
Los pagos semanales por vendedor son:
Sueldo Venta Comision Total a Pagar
Vendedor 1 $200 $4500 $ 405 $ 605
Vendedor 2 $200 $6345 $ 571 $ 771
Vendedor 3 $200 $9876 $ 888 $ 1088
Vendedor 4 $200 $3000 $ 270 $ 470
Vendedor 5 $200 $4897 $ 440 $ 640
Distribucion de Pagos
200-299:
300-399:
400-499: *
500-599:
600-699: **
700-799: *
800-899:
900-999:
1000 +: *
BUILD SUCCESSFUL (total time: 0 seconds)
Scanner leer = new Scanner(System.in);
ResponderEliminarint vendedores;
System.out.print("ingrese la cantidad de vendores de la empresa: ");
vendedores= leer.nextInt();
double[] vendedoresVector= new double[vendedores];
double[] valorAPagar= new double[vendedores];
int[] frecuencia = new int[10];
double x=0;
for (int i = 0; i < vendedores; i++) {
System.out.printf("Ingrese la cantidad acumulada de ventas por semana del "
+ "vendedor %d: ",i+1);
vendedoresVector[i]=leer.nextInt();
}
for (int i = 0; i < vendedores; i++) {
valorAPagar[i]=(vendedoresVector[i]*0.09)+ 200;
}
System.out.printf("%n%n---------------------------------------%n");
System.out.printf("%19s%22s","semanal","total");
System.out.println(" ");
for (int i = 0; i < valorAPagar.length; i++) {
System.out.printf("Usuario %d : %.2f %20.2f%n", i,vendedoresVector[i],valorAPagar[i]);
}
System.out.println("");
for (int i = 0; i < vendedores; i++) {
x=valorAPagar[i] ;
if(x>199 && x<300)
{
++frecuencia[0];
}
if(x>299 && x<400){
++frecuencia[1];
}
if(x>399 && x<500){
++frecuencia[2];
}
if(x>499 && x<600){
++frecuencia[3];
}
if(x>599 && x<700){
++frecuencia[4];
}
if(x>699 && x<800){
++frecuencia[5];
}
if(x>799 && x<900){
++frecuencia[6];
}
if(x>899 && x<100){
++frecuencia[7];
}
if(x>=1000){
++frecuencia[8];
}
}
for (int i = 0; i < frecuencia.length; i++) {
if(i>=0 && i<=8){
if (i==8) {
System.out.printf("1000: ");
}else
System.out.printf("%d-%d: ", 100*i+200,100*i+299);
}
for (int j = 0; j < frecuencia[i]; j++) {
System.out.printf("*");
}
System.out.println("");
}
estoy tratando hacerlo con do-wile pero no me sale
ResponderEliminarPodrían ayudarme????
ResponderEliminarDetermine el sueldo final de un vendedor:
- Declare e inicialice un sueldo base de S/. 2000.00
- Recibe una comisión de 10% (constante) por cada venta que
realiza. Los montos de cada venta son S/. 580.00, S/.1200.00 y
S/. 3200.00