Tutorial: Escribir un programa que lea 10 números, identificar el mayor y desplegar cuantas veces se repite

Java es uno de los lenguajes de programación más orientados al manejo de objetos que otros lenguajes. También ofrece un código robusto que presenta un manejo automático de la memoria, lo que reduce el número de errores.

Una de las características que tiene el lenguaje de programación Java, es el manejo de arreglos unidimensionales y bidimensionales (vectores o matrices en Java).

Los arreglos o matrices en java son homogéneos, es decir que solo se puede manejar un tipo de dato a la vez, como pueden ser de tipo int, char, float, double, String, etc.

En este tutorial les traemos un ejemplo básico en Java en el manejo de arreglos, usando la plataforma Eclipse.

Un arreglo está dividido en celdas, dependiendo de la magnitud del arreglo, y una de las formas de declarar e inicializarla puede ser:

tipo_de_dato [] nombre_de_variable; // se declara
 
nombre_de_variable = new tipo_de_dato[dimensión]; // se inicializa

En el caso del programa a realizar puede quedar de la siguiente forma:

 [10]; // Se inicializa int[] numero; // declaración de variable
numero = new int el arreglo con una dimensión de 10 elementos
Cada elemento del arreglo se almacena en una celda

Valores almacenados

128103792137253710
0123456789
Número de Celda

Una de las formas básicas de leer 10 números desde el teclado, es el uso del ciclo for, que puede quedar de la siguiente forma:

for (x=0; x<10; x++)
{	System.out.print("Introduce el número: ");
        numero[x]=digito.nextInt(); 
}

En el arreglo con el ejemplo de los valores anteriores almacenados se puede visualizar de la siguiente manera:

Elementos almacenados

128103792137253710
numero[0]numero[1]numero[2]numero[3]numero[4]numero[5]numero[6]numero[7]numero[8]numero[9]
Número de Celda

Con el ciclo anterior podemos leer los 10 números, pero ahora la tarea es identificar el número mayor en esos 10 números, para después contar cuantas veces se repite, como lo pide el enunciado del problema.

Si todos los números fueran positivos, pudiéramos declarar una variable que identifique al mayor y asignarle el número ‘0’, pues sería el número positivo menor que pudiéramos tener.

int Mayor = 0;

Pero en el caso de que también se pudieran leer números negativos, entonces sería un error lógico asignarle el número 0 a la variable Mayor, pues el usuario pudiera escribir solamente números negativos, y si asignamos el cero al inicio, el programa arrojaría que el mayor es “0”, cuando quizá nunca fue tecleado.

Entonces para resolver este problema tendríamos que asignar a la variable Mayor el primer número leído, y después leer los otros 9 para buscar quien es el Mayor.

Esta parte podemos codificarla de la siguiente manera:

import java.util.Scanner;//librería scanner
public class NumeroMayor 
{
	public static void main(String[] args) 
	{
		int[] numero; // declaración de variable
		numero = new int[10]; // longitud de 10 elementos

		Scanner digito = new Scanner(System.in);
		int mayor,x=0,repite=0;
		
		System.out.print("Introduce un número: ");
		numero[x]=digito.nextInt();
		mayor= numero[x];
		
		for (x=1; x<10; x++)
		{
		   System.out.print("Introduce otro número: ");
		   numero[x]=digito.nextInt();
		   if (numero[x]>mayor)
			   mayor = numero[x];
		}
}

Después de haber identificado el número mayor, ahora solo resta saber cuantas veces se repite; para esto utilizaremos otro ciclo para contar las veces que se repite el número mayor. El código completo para este problema queda de la siguiente forma:

import java.util.Scanner;//librería scanner
public class Ejercicio3 
{
	public static void main(String[] args) 
	{
		int[] numero; // declaración de variable
		numero = new int[10]; 

		Scanner digito = new Scanner(System.in);
		int mayor,x=0,repite=0;
		
		System.out.print("Introduce un número: ");
		numero[x]=digito.nextInt();
		mayor= numero[x];
		
		for (x=1;x<10;x++)
		{
		   System.out.print("Introduce otro número: ");
		   numero[x]=digito.nextInt();
		   if (numero[x]>mayor)
			   mayor = numero[x];
		}
		
		for (x=0;x<10;x++)
			
		{
		   if (numero[x]==mayor)
			   repite++;
		}
		   System.out.println(" El número mayor es: " + mayor);
		   System.out.println(" Se repite " + repite + " veces");
		 }
	}

También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.