Anda di halaman 1dari 4

eadriazolah@hotmail.

com
1: Ingresar datos a un arreglo de enteros y mostrar el contenido en forma invers
a. (con recursividad)
void imprimirArreglo(int[] arreglo, int indice) {
if(indice == arreglo.length) {
return;
}
imprimirArreglo(arreglo, indice+1);
System.out.print(arreglo[indice] + ", ");
}
void imprimirArreglo(int[] arreglo) {
imprimirArreglo(arreglo, 0);
}
2: Hallar el mximo y mnimo elementos de un array (con recursividad).
//max
int max(int[] arreglo, int i, int f) {
if(i == f) {
return arreglo[i];
}
int m = (i+f)/2;
int m1 = max(arreglo, i, m-1);
int m2 = max(arreglo, m, f);
if(m1 > m2) {
return m1;
}
else {
return m2;
}
}
int max(int[] arreglo) {
return max(arreglo, 0, arreglo.length);
}
//min
int min(int[] arreglo, int i, int f) {
if(i == f) {
return arreglo[i];
}
int m = (i+f)/2;
int m1 = min(arreglo, i, m-1);
int m2 = min(arreglo, m, f);
if(m1 < m2) {
return m1;
}
else {
return m2;
}
}
int min(int[] arreglo) {
return min(arreglo, 0, arreglo.length);

}
3: Un casino desea llevar a cabo unas estadsticas sobre el juego de ruleta. Se s
olicita un programa que cuente el nmero de veces que cada nmero es ganador en un
a jornada y al final del da imprima un reporte con lo siguiente: (Puede realizar
se con funciones)
a)

Cuantas veces result ganador cada elemento de la ruleta?

b)

Cuales elementos no resultaron ganadores en toda la jornada?

c)

Cual fue el elemento que gan en ms ocasiones?

?Recuerde que la ruleta est formada por 70 elementos. El casino desconoce el nme
ro de juegos de una jornada.?
int[] ruleta = new int[70];
//a)
void ruletaGanadores() {
for(int i=0; i<ruleta.length; i++) {
System.out.println("Ruleta " + i + ": " + ruleta[i]);
}
}
//b)
void ruletaNoGanadores() {
for(int i=0; i<ruleta.length; i++) {
if(ruleta[i] == 0) {
System.out.println("Ruleta " + i + ": " + ruleta[i]);
}
}
}
//c)
void elemMasGanador() {
int elemGanador = 0, veces = 0;
for(int i=0; i<ruleta.length; i++) {
if(ruleta[i] > veces) {
veces = ruleta[i];
elemGanador = i;
}
}
System.out.println("Elemento mas ganador: " + elemGanador);
}
4: Dados dos arrays paralelos en los que se almacenan los cdigos y las ventas en
soles durante el mes de abril 2006 de los 20 vendedores de una empresa. Hacer l
os siguientes algoritmos:
a)

Calcule las ventas totales en la empresa.

b)
Calcule y muestre el sueldo de cada vendedor, teniendo en cuenta lo sig
uiente: (Puede realizarse con funciones)

Ventas

Monto Fijo

Comisin

Menos de 4000
4000 a 10000
Ms de 10000

250
350
450

8% de ventas
10% de ventas
14% de ventas

Sueldo = Monto Fijo + Comisin

c)

Mostrar el sueldo mnimo y a que vendedor(es) corresponde.

d)

Determinar cuantos y que vendedores tuvieron ventas menores de 5000.

//a)
double calcularVentas(double[] ventas) {
double total = 0;
for(int i=0; i<ventas.length; i++) {
total += ventas[i];
}
}
//b) y c)
void calcularSueldos(int[] codigos, double[] ventas) {
double[] montosFijos = {250.0, 350.0, 450.0};
double[] comisiones = {0.08, 0.10, 0.14};
int tipo, posMin;
double sueldo, sueldoMinimo = -1.0;
for(int i=0; i< ventas.length ; i++) {
if(ventas[i] < 4000) {
tipo = 0;
}
else if(ventas[i] < 10000) {
tipo = 1;
}
else {
tipo = 2;
}
sueldo = (ventas[i]*comisiones[tipo] + montosFijos[tipo]);
System.out.println("Vendedor " + codigos[i] + ": " + sueldo);
if(sueldoMinimo > sueldo) {
sueldoMinimo = sueldo;
posMin = i;
}
}
System.out.println("Sueldo Minimo: " + codigos[posMin] + ": " + sueldo);
}
//d)
void calcularSueldosMenores(int[] codigos, double[] ventas) {

int totalMin = 0;
for(int i=0; i<ventas.length; i++) {
if(ventas[i] < 5000) {
System.out.println("Vendedor " + codigos[i]);
totalMin ++;
}
}
System.out.println("Total de vendedores menores a 5000: " + totalMin);
}

Anda mungkin juga menyukai