import java.util.Scanner;
public class promedios {

	public static void main(String[] args) {
		/*instancia y creacion del objeto para capturar desde teclado*/
		Scanner capturar=new Scanner(System.in);
		
		/*declaracion de variables*/
		double num1,num2,num3,op,resultado;
		
		/*caprtura de las variables desde la consola*/
		System.out.print("por favor seleccione la asignatura deseada:\npara fpoo 1\npara festruc digite 2\n para digital digite 3\n");
		op=capturar.nextDouble();
		/*
		 * evaluacion cuando se ingrese un numero que no pertenezca a las opciones validas
		 * usando un metodo llamada error()
		 */
		while(error(op)){
		/*
		 * repite hasta que la opcion sea valida para continuar con el proceso de la calculadora
		 * dependiendo del metodo error() que devuelva falso o verdadero
		*/
			System.out.print("por favor seleccione la asignatura deseada:\npara fpoo 1\npara festruc digite 2\n para digital digite 3\n");
			op=capturar.nextInt();
			
		}
		/*
		 * ejecucion del programa
		*/
		System.out.print("digite nota1 a calcular calcular\n\n");
		num1=capturar.nextDouble();
		System.out.print("digite nota2 a calcular calcular\n\n");
		num2=capturar.nextDouble();
		System.out.print("digite nota3 a calcular calcular\n\n");
		num3=capturar.nextDouble();
		/*llamado del metodo calculadora*/
		resultado=promedio(num1,num2,num3);
		System.out.print("el promedio es:\n\n"+resultado+"\nDE\n"+curso(op)+"usted"+paso(resultado)+"paso el curso");
	//	}
	}

	
	
	/* *******************************************************************************************
	 * ****************************************************************************************** */
	//declaracion de un metodo
	public static double promedio (double x,double y, double z){
	double resultado=0;
	resultado=(x+y+z)/3;
		return resultado;
	}
	/* ******************************************************************************************
	 * ******************************************************************************************
	 */
	/*DECLARACION DE OTRO METODO DE TIPO boolean EL CUAL 
	 * DEVUELVE UNA IMPRESION EN PANTALLA y un estado falso o verdadero*/
	public static boolean error(double op){
		if(op<1||op>3){
		System.out.print("ERROR EN OPCION INGRESADA VUELVA A EJECUTAR EL PROGRAMA\n\n");
		return true;
		}else return false;
	}
	
	
	
	/* ******************************************************************************************
	 * ******************************************************************************************
	 */
	/*DECLARACION DE OTRO METODO DE TIPO String EL CUAL recibe la variable de operacion y
	 * DEVUELVE una variable de tipo String basado en la operacion ejecutada*/
	public static String curso(double op){
		String opera = null;
		if (op==1){
			opera="LA asignatura es fpoo\n\nGRACIAS\n";
		}else if(op==2){
			opera="LA asignatura estruc prog\n\nGRACIAS\n";
		}else if(op==3){
			opera="LA asignatura es digital\n\nGRACIAS\n";
		}else {
			opera="no hay seleccion\n\nGRACIAS\n";
		}
		return opera;
	}
	
	public static String paso(double prom){
		String paso=null;
		if(prom>3){
			paso="SI";
		}else{
			paso="NO";
		}
		return paso;
	}
}

