package Array;

import java.util.Scanner;

public class Array_ejercicio {

    public static void main(String[] args) {
        // EJERCICIO 1
//        //El array de que clase es
//        
//        //Declaramos e inicializamos el array.
//        Scanner scanner = new Scanner(System.in);
//        double[] notas = new double[5];
//        
//        //Almacenar en la "estantería" todos los libros necesarios.
//        for (int i = 0; i < notas.length; i++)
//        {
//            System.out.println("Introduzca la nota: " + i);
//            notas[i] = scanner.nextDouble();
//        }
//        
//        // MOSTRAR LA PUNTACION MEDIA
//        double puntuacionTotal = 0;
//        for (int puntacionIndice = 0; puntacionIndice < notas.length; puntacionIndice++)
//        {
//            double puntuacion = notas[puntacionIndice];
//            
//            System.out.println("Recorriendo dentro del array de puntuaciones la: "+puntacionIndice+" "+puntuacion);
//            //puntuacionTotal+=puntuacion;
//            //O pones uno u otro los dos no porque sino se suma 2 veces.
//            // CALCULAR LA MEDIA
//            puntuacionTotal = puntuacionTotal + puntuacion;
//            
//        }
//        double media = puntuacionTotal/notas.length;
//        System.out.println("La media es " + media);

// ==============================================================        
//        
//        // EJERCICIO 2
//               
//        //1. Introduce el tamaño del array.
//        //2. Solciita números (int) para rellenar cada una de las posiciones
//        //3. Muestra la suma total de todos los números almacenados en el array.
//        
//        // 1.
//        int[] numero = new int[5];
//        // 2.
//        Scanner scanner = new Scanner(System.in);
//        for (int posicion = 0; posicion < numero.length; posicion++)
//        {
//            System.out.println("Rellena una de las posiciones: " + posicion);
//            numero[posicion] = scanner.nextInt();
//        }
//        
//        // 3.
//        int sumaTotal=0;
//        for (int i = 0; i < numero.length; i++)
//        {
//            sumaTotal += numero[i];
//            // sumaTotal = sumaTotal + numero[i]; (FUNCIONA IGUAL)
//
//        }
//        System.out.println("Esta es la suma total " + sumaTotal);
// =======================================================
        // EJERCICIO 3.
        /*
        4. Conteo de Pares e Impares
        Enunciado: Crea un array de 15 números enteros. El programa debe recorrer el array y contar cuántos números son pares         y cuántos son impares. Además, debe mostrar la suma de los números pares por un lado y la de los impares por otro.
         */
        // 1. CREAR UN ARRAY DE 15 NÚMEROS
        /*int[] numeros = {15, 20, 31, 42, 56, 64, 72, 80, 99, 0, 17, 42, 53, 72, 83};
        

        // 2. CREAR PAR, IMPAR Y LAS SUMAS COMO VARIABLES.
        int par = 0;
        int impar = 0;
        int sumaPar = 0;
        int sumaImpar = 0;

        // 3. CONTAR LOS NÚMEROS SI SON PARES O IMPARES.
        //Recorrer el bucle.
        //Recorrer el valor dentro del índice.
        //le asigno a numero
        //Numero sea 1 numeros[0]
        for (int i = 0; i < numeros.length; i++) {
            //Obtengo el elemento del array.
            int numero = numeros[i];
            
            if (numero % 2 == 0) {
                par++;
                //sumaPar = sumaPar + par;                              sumaPar = sumaPar + numero;

            } else {
                impar++;
                //sumaImpar = sumaImpar + impar;                        sumaImpar = sumaImpar + numero;
                    
            }

        }
        //ÍNDICE vs VALOR DENTRO DEL ÍNDICE.

        System.out.println("La cantidad de par: " + par);
        System.out.println("La cantidad de impar: " + impar);
        System.out.println("La suma de par: " + sumaPar);
        System.out.println("La suma de impar: " + sumaImpar);

         */
        //Se quiere calcular la media de notas del 1er de la asignatura de programación, para ello se declara un array 10 elementos, pedirá 10  ,y calculará la media, la nota más alta y la más baja.
        // DECLARAR UN ARRAY DE 10 ELEMENTO.
        int[] notas = new int[10];
        Scanner scanner = new Scanner(System.in);

        //2 Bucles. 
        //Escribir los valores del array.
        for (int i = 0; i < notas.length; i++) {

            System.out.println("Introduce la nota " + i);
            //Sobreescribo
            notas[i] = scanner.nextInt();

            //Recorro.
            System.out.println("El array notas en la posicion " + i + " ha almacenado " + notas[i]);

        }

        //Leer los valores del array.
        for (int i = 0; i < notas.length; i++) {
            System.out.println("Notas posición " + i + " = " + notas[i]);

        }
        //Media
        //Suma de todos los valores de notas.
        //Cuando termina el bucle, dividimos la suma total entre la longitud del bucle.
        int suma = 0;
        int notamMedia = 0;

        for (int i = 0; i < notas.length; i++) {
            System.out.println("Valor de suma " + suma);
            System.out.println("Incrementando en " + notas[i] + " valores");

            suma += notas[i];

        }
        //El sumatorio se completa correctamente, cuando termino el buclo.
        notamMedia = suma / notas.length;
        System.out.println("La nota media es " + notamMedia);

        //Se indica por cada nota, cual es su condición SUSPENSO O APROBADO
        int contadorSuspenso = 0;
        int contadorSuficiente = 0;
        int contadorBien = 0;
        int contadorNotable = 0;
        int contadorSobresaliente = 0;
        int contadorHonor = 0;
        int contadorNoValida = 0;
        for (int i = 0; i < notas.length; i++) {
            int nota = notas[i]; //Valor que tiene el array en esa posición en concreto.

            //Se quiere saber si es SUSPENSO O SUFICIENTE, BIEN NOTABLE SOBRESALIENTE O MATRÍCULA DE HONOR 
            // 
            //nota == notas[i] 
            
            System.out.println("Nota "+nota);
            
            //[0,4] INSUFIECIENTE:
            if(nota >= 0 && nota <= 4)
            {
                contadorSuspenso++;
                System.out.println("NOTA SUSPENSA");
            }
            //[5]
            else if (nota == 5)
            {
                System.out.println("NOTA SUFICIENTE");
                contadorSuficiente++;
            }
            else if (nota == 6)
            {
                System.out.println("NOTA BIEN");
                contadorBien++;
            } //NOTABLE [7,8] 
            else if (nota >= 7 && nota <= 8)
            {
                System.out.println("NOTA NOTABLE");
                contadorNotable++;
            }
            else if (nota == 9 )
            {
                System.out.println("NOTA SOBRESALIENTE");
                contadorSobresaliente++;
            }
            else if (nota == 10)
            {
                System.out.println("MATRICULA DE HONOR");
                contadorHonor++;
            }
            else 
            {
                System.out.println("NOTA NO VÁLIDA");
                contadorNoValida++;
            }
        }
        
        System.out.println("Número de suspensos "+contadorSuspenso);  
        System.out.println("Numero de suficientes " + contadorSuficiente);
        System.out.println("Numero de bienes " + contadorBien);
        System.out.println("Numero de notables " + contadorNotable);
        System.out.println("Numero de sobresalientes " + contadorSobresaliente);
        System.out.println("Numero de matriculo de honor " + contadorHonor);
        System.out.println("Numero de No Valida " + contadorNoValida);
        
        int notaAlta = notas[0]; 
        int notaBaja = notas[0];
        
        //Recorras todo el array, y digas cual es el valor más grande y más pequeño.
        for(int posicion = 0; posicion<notas.length;posicion++){
            int nota = notas[posicion];
            if (nota>notaAlta){
                notaAlta = nota;
            }
            
            if (nota<notaBaja){
                notaBaja = nota;
            }
        }
        System.out.println("La nota más alta es "+notaAlta);
        System.out.println("La nota más baja es "+notaBaja);
        //
        int sobresaliente = 0;
        int matriculaHonor = 0;
        for (int contador = 0; contador < notas.length; contador++)
        {
            int nota = notas[contador];
            
        }
    } 
}