Mensaje Fapko Hoy a las 12:16 pm
Hola a todos, soy nuevo en esto y preciso una ayudita ya que estoy trabado en un programa.
El ejercicio dice lo siguiente:
Desarrolle un método que recibe por parámetro un arreglo de números enteros y retorna si el arreglo esta ordenado de forma ascendente.
Realice también
- un método que permita cargar el arreglo con valores (ya lo hice).
- Un método que muestre un menú de 3 opciones cargar datos, verificar orden, salir (ya lo hice).
- El método main que utilice los 3 métodos anteriores (ya lo hice).
Lo que no me sale a mi es la verificación de que el array este ordenado de manera ascendente.
Cualquier cosa, acá les dejo lo que hice del programa.
public class Ejercicio_10_Consola {
static int[] ordenado;
static int opcion = -1;
static void verificarOrden() {
int i = 0, ascendente = 1;
while((i < ordenado.length - 1) && (ascendente == 1)){
if ((ordenado) > (ordenado[i + 1])){
ascendente = 0;
System.out.println("I: "+ordenado);
System.out.println("I + 1: "+ordenado[i + 1]);
}
System.out.println("I: "+ordenado);
System.out.println("I + 1: "+ordenado[i + 1]);
i++;
}
if (ascendente == 0) {
System.out.println("Se ingreso los numeros de manera ASCENDENTE.");
}
else {
System.out.println("Se ingreso los numeros de manera DESORDENADA.");
}
}
static void cargarNumeros(int cant){
ordenado = new int[cant];
for (int i = 0; i < ordenado.length; i++){
System.out.print("Ingrese un Numero en la Posicion "+(i + 1)+": ");
ordenado = TecladoIn.readLineInt();
}
}
static void cargarMenu(){
while (opcion != 0) {
System.out.println("--------------------------------------------------------");
System.out.println("Bienvenidos al menu elija la ocpion que desea realizar:");
System.out.println("--------------------------------------------------------");
System.out.println("MENU PRINCIPAL");
System.out.println("--------------------------------------------------------");
System.out.println("1 - Cargar Datos.");
System.out.println("2 - Verificar Orden.");
System.out.println("0 - Salir");
System.out.println("--------------------------------------------------------");
System.out.print("Seleccione una Opcion ---> ");
opcion = TecladoIn.readLineInt();
System.out.println("--------------------------------------------------------");
switch(opcion){
case 1: {
System.out.println("");
System.out.print("Ingrese la cantidad de numeros que desea ingresar ---> ");
int cantidad = TecladoIn.readLineInt();
cargarNumeros(cantidad);
break;
}
case 2: {
verificarOrden();
break;
}
case 0:{
System.out.println("El programa a Finalizado");
break;
}
default: {
System.out.println("ERROR ,la opcion es incorrecta.");
break;
}
}
}
}
public static void main (String[] args) {
cargarMenu();
}
}
Gracias por la atención prestada.
Bueno, puede parecer una tontería, pero si una array esta en ascendente o descendente quiero decir que esta ordenada.
Sabiendo esto, con tener el primer numero del array y el último se podría determinar si esta en orden descendente o ascendente, no se si sabes por donde quiero ir.
Corrigeme si no es lo que quieres decir.
Un saludo.
Parece estar bien, prueba así:
boolean ascendente = true;
int i = 1; //Empezamos desde la segunda posición del array
while (i < ordenado.length && ascendente) {
if (ordenado[i-1] > ordenado [i]) //Si no está ordenado
ascendente = false;
i++;
}
if(ordenado)
system.out.println("El array está ordenado.");
else
system.out.println("El array no está ordenado.");
Saludos.
public static boolean isOrdered(int array[]) {
boolean flag = false;
for(int index = 0; index < array.length - 1; index++) {
if(array[index]>array[index+1]) {
flag = false;
break;
} else {
flag = true;
}
}
return flag;
}
solo tengo una pregunta y si existe un arreglo así?
int array[] = {1, 2, 3, 3, 6};
Hola, si, si tengo el primer Numero entero dentro del arreglo, supongamos que es de 5 posiciones, tengo [1, 3, 2 ,5, 4], ¿ahí tenes un arreglo ordenado? Por mas que la primera y ultima posición son en orden ascendente.
No se si a eso te referís.
Gracias por contestarme y ayudarme.
Hola, siempre se toma uno de los 2 números repetidos, eso se toma como ordenado pero no esta mal tu pregunta. Gracias ahora voy a probar el código que me pasaste y te digo como me funciono.
Gracias por la preocupación de ayudarme.