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)
b)
c)
?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)
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
c)
d)
//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);
}