/*Práctica 2. Ejercicio1  Trabajando con estructuras de selección

*/

/*Programa 1:  Estructura if(){ }

Implemente un programa que reciba una nota numérica de un alumno entre 0 y 10 y responda:

Si nota=10 Matrícula de Honor

Si 9<=nota<10 Sobresaliente

Si 7<=nota<9 Notable

Si 6<=nota<7 Bien

Si 5<=nota<6 Suficiente

Si 4<=nota<5 Insuficiente

Si 3<=nota<4 Deficiente

Si nota<3 Muy Deficiente

Si la nota está fuera de rango debe responder con nota numérica no valida.

Sólo puede usar if(){ } (observa no hay else).

Programa 2 a continuación realiza el mismo programa pero usando una estructura

if(){

}else if(){ //Repetir else if las veces sea necesaria

......

......

}else{

}

Nota: Implemente los programas 1 y 2 en la zona indicada. Se han añadido unas líneas para determinar el tiempo de calculo de cada estructura. Responda en el lugar indicado las cuestiones se planteen

*/

import java.util.Scanner;

public class Main{

    public static void main(String[] args) {

     

     

      //Bloque entrada datos

      Scanner tec= new Scanner(System.in);

      System.out.print("Introduce nota (0 a 10): ");

      float nota =tec.nextFloat();

      String calificacion="";

      //Cerrar teclado
        
      tec.close();

      //Instrucción para obtener en ns (nanosegundos) el instante temporal previo a la ejecución.

      long startTime = System.nanoTime();

      //Programa aquí el código del Programa 1
        
      if(nota==10){calificacion = "una matricula de honor ";}    
      if(nota<10 && nota>=9){calificacion= "un excelencente ";}
      if(nota<9 && nota>=7){calificacion= "un notable ";}
      if(nota<7 && nota>=6){calificacion= "un bien ";}
      if(nota<6 && nota>5){calificacion= "un suficiente ";}
      if(nota<5 && nota>=4){calificacion= "un insuficiente ";}
      if(nota<4 && nota>=3){calificacion= "un deficiente ";}
      if(nota<3){calificacion= "un muy deficiente ";}
      if(nota>10 ^ nota<0){calificacion= "una nota no valida";}


      //Instrucciones para leer el instante de tiempo tras la ejecución de la estructura y para evaluar la resta de los instantes temporales de inicio y fin en microsegundos.

      long endTime=System.nanoTime();

      double timeRun =(endTime - startTime)/1000.0;

     

      //Muestra en pantalla el resultado de la nota y el tiempo de ejecución del fragmento de código.

      System.out.println("Has sacado " +calificacion+ " "+ timeRun+ " \u03bc" +"s");


     

      //Fin del programa 1

      //Inicio del programa 2. Añádelo sin comentar el bloque del programa 1, con el fin se ejecuten uno detrás de otro,

     //nstrucción para obtener en ns (nanosegundos) el instante temporal previo a la ejecución.

      startTime = System.nanoTime();
     

      //Implemente aquí código del programa 2

     
      if(nota==10){calificacion = "una matricula de honor ";}    
      else if(nota<10 && nota>=9){calificacion= "un excelencente ";}
      else if(nota<9 && nota>=7){calificacion= "un notable ";}
      else if(nota<7 && nota>=6){calificacion= "un bien ";}
      else if(nota<6 && nota>5){calificacion= "un suficiente ";}
      else if(nota<5 && nota>=4){calificacion= "un insuficiente ";}
      else if(nota<4 && nota>=3){calificacion= "un deficiente ";}
      else if(nota<3){calificacion= "un muy deficiente ";}
      else {calificacion= "una nota no valida";}


     

      //Instrucciones para leer el instante de tiempo tras la ejecución de la estructura y para evaluar la resta de los instantes temporales de inicio y fin en microsegundos.

      endTime=System.nanoTime();

      timeRun =(endTime - startTime)/1000.0;

     

      //Muestra en pantalla el resultado de la nota y el tiempo de ejecución del fragmento de código.

 System.out.println("Has sacado " +calificacion+ " "+ timeRun+ " \u03bc" +"s");

     

    }
}
      //Fin del programa 2

        
//Responda a las cuestiones

//¿Por qué cree que la ejecución del programa 2 es más rápida?

/*Porque el segundo bloque cuando ya ejecuta uno de los bloques anteriories se salta los 
siguientes else if y el else ahorando lineas donde procesa informacion que ya no es posible*/

// Considera que el orden de la estructura del programa 2 puede hacer que aún sea más rápida su ejecución ¿Por qué?

/* Si porque nos ayudan a hacer el programa mas rapido gracias a descartar informacion que 
nosotros como programadores ya sabemos que no hay que volver a evaluar*/

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: