#include <stdio.h>
#include <stdlib.h>
#include <16F877.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)


#include <lcd.c>
#include <kbd.c>



void main(void)

{  

      
      
     int z,y,vardet;
     float a11,b11,c11,a21,b21,c21;
     float a1,b1,c1,d1;
     float a2,b2,c2,d2;
     float a3,b3,c3,d3;
     float a,b,c,d,e,f,g,h,i,j;
     
    
     
     
     
     lcd_init()
     kbd_init()
     
     lcd_putc("\fMENU PRINCIPAL\n");
     lcd_putc("1_Suma  4_Divisi\n");
     lcd_putc("2_Resta 5_Promed\n");
     lcd_putc("3_Multi 6_Determ\n");
     
    scanf("%d",&z);
    switch (z) {
           
           case 1 : 
                 system("cls");
                    lcd_putc("\f1er digito:");
                    scanf("%f",&a);
                    lcd_putc("2do digito:");
                    scanf("%f",&b);
                    lcd_putc("3er digito:");
                    scanf("%f",&c);
                    lcd_putc("Rta: %f ",a+b+c);
                    getche();
                    break;
               
               case 2 :
                    system("cls");
                    lcd_putc("1er digito:");
                    scanf("%f",&a);
                    lcd_putc("2do digito:");
                    scanf("%f",&b);
                    lcd_putc("3er digito:");
                    scanf("%f",&c);
                    lcd_putc("Rta: %f",a - b -c);
                    getche();
                    break;
               
               case 3 :
                    system("cls");
                    lcd_putc("1er digito:");
                    scanf("%f",&a);
                    lcd_putc("2do digito:");
                    scanf("%f",&b);
                    lcd_putc("3er digito:");
                    scanf("%f",&c);
                    lcd_putc("Resultado: %f",a * b * c);
                    getche();
                    break;
               
               case 4 :
                    system("cls");
                    lcd_putc("1er digito:");
                    scanf("%f",&a);
                    lcd_putc("2do digito:");
                    scanf("%f",&b);
                    lcd_putc("Rta: %f",a / b);
                    getche();
                    break;
                    
                    case 5 :
    
    system("cls");                     
    lcd_putc("Hasta 10 num\n");
     lcd_putc("Numero de notas: ");
     scanf("%d",&y);
     switch(y)  {
     
         case 1 :
              system("cls");
              lcd_putc("Primer nota:");
              scanf("%f",&a);
              lcd_putc("Resultado: %f",a);
              break;
         case 2 :
              system("cls");
              lcd_putc("Primer nota:");
              scanf("%f",&a);
              lcd_putc("Segunda nota:");
              scanf("%f",&b);
              lcd_putc("Resultado: %f",(a+b)/2);
              break;
         case 3 :
              system("cls");
              lcd_putc("Primer nota:");
              scanf("%f",&a);
              lcd_putc("Segunda nota:");
              scanf("%f",&b);
              lcd_putc("Tercera nota:");
              scanf("%f",&c);
              lcd_putc("Resultado: %f",(a+b+c)/3);
              break;
         case 4 :
              system("cls");
              lcd_putc("Primer nota:");
              scanf("%f",&a);
              lcd_putc("Segunda nota:");
              scanf("%f",&b);
              lcd_putc("Tercera nota:");
              scanf("%f",&c);
              lcd_putc("Cuarta nota:");
              scanf("%f",&d);
              system("cls");
              lcd_putc("Resultado: %f",(a+b+c+d)/4);
              break;
         case 5 :
              system("cls");
              lcd_putc("Primer nota:");
              scanf("%f",&a);
              lcd_putc("Segunda nota:");
              scanf("%f",&b);
              lcd_putc("Tercera nota:");
              scanf("%f",&c);
              lcd_putc("Cuarta nota:");
              scanf("%f",&d);
              system("cls");
              lcd_putc("Quinta nota:");
              scanf("%f",&e);
              lcd_putc("Resultado: %f",(a+b+c+d+e)/5);
              break;
         case 6 :
              system("cls");
              lcd_putc("Primer nota:");
              scanf("%f",&a);
              lcd_putc("Segunda nota:");
              scanf("%f",&b);
              lcd_putc("Tercera nota:");
              scanf("%f",&c);
              lcd_putc("Cuarta nota:");
              scanf("%f",&d);
              system("cls");
              lcd_putc("Quinta nota:");
              scanf("%f",&e);
              lcd_putc("Sexta nota:");
              scanf("%f",&f);
              lcd_putc("Resultado: %f",(a+b+c+d+e+f)/6);
              break;
         case 7 :
              system("cls");
              lcd_putc("Primer nota:");
              scanf("%f",&a);
              lcd_putc("Segunda nota:");
              scanf("%f",&b);
              lcd_putc("Tercera nota:");
              scanf("%f",&c);
              lcd_putc("Cuarta nota:");
              system("cls");
              scanf("%f",&d);
              lcd_putc("Quinta nota:");
              scanf("%f",&e);
              lcd_putc("Sexta nota:");
              scanf("%f",&f);
              lcd_putc("Septima nota:");
              scanf("%f",&g);
              lcd_putc("Resultado: %f",(a+b+c+d+e+f+g)/7);
              break;
         case 8 :
              system("cls");
              lcd_putc("Primer nota:");
              scanf("%f",&a);
              lcd_putc("Segunda nota:");
              scanf("%f",&b);
              lcd_putc("Tercera nota:");
              scanf("%f",&c);
              lcd_putc("Cuarta nota:");
              scanf("%f",&d);
              system("cls");
              lcd_putc("Quinta nota:");
              scanf("%f",&e);
              lcd_putc("Sexta nota:");
              scanf("%f",&f);
              lcd_putc("Septima nota:");
              scanf("%f",&g);
              lcd_putc("Octava nota:");
              scanf("%f",&h);
              system("cls");
              lcd_putc("Resultado: %f",(a+b+c+d+e+f+g+h)/8);
              break;
         case 9 :
              system("cls");
              lcd_putc("Primer nota:");
              scanf("%f",&a);
              lcd_putc("Segunda nota:");
              scanf("%f",&b);
              lcd_putc("Tercera nota:");
              scanf("%f",&c);
              lcd_putc("Cuarta nota:");
              scanf("%f",&d);
              system("cls");
              lcd_putc("Quinta nota:");
              scanf("%f",&e);
              lcd_putc("Sexta nota:");
              scanf("%f",&f);
              lcd_putc("Septima nota:");
              scanf("%f",&g);
              lcd_putc("Octava nota:");
              scanf("%f",&h);
              system("cls");
              lcd_putc("Novena nota:");
              scanf("%f",&i);
              lcd_putc("Resultado: %f",(a+b+c+d+e+f+g+h+i)/9);
              break;
         case 10 :
              system("cls");
              lcd_putc("Primer nota:");
              scanf("%f",&a);
              lcd_putc("Segunda nota:");
              scanf("%f",&b);
              lcd_putc("Tercera nota:");
              scanf("%f",&c);
              lcd_putc("Cuarta nota:");
              scanf("%f",&d);
              system("cls");
              lcd_putc("Quinta nota:");
              scanf("%f",&e);
              lcd_putc("Sexta nota:");
              scanf("%f",&f);
              lcd_putc("Septima nota:");
              scanf("%f",&g);
              lcd_putc("Octava nota:");
              scanf("%f",&h);
              system("cls");
              lcd_putc("Novena nota:");
              scanf("%f",&i);
              lcd_putc("Decima nota:");
              scanf("%f",&j);
              lcd_putc("Resultado: %f",(a+b+c+d+e+f+g+h+i+j)/10);
              break;
              
              default:
                      
                      system("cls");
                      lcd_putc("\fValor incorrecto");
                      }
                      getche();
                      break;
    
    case 6:
         
         system("cls");
         lcd_putc("2 o 3 incog? ");
         scanf("%d",&vardet);
         
         switch (vardet) {
                
                case 2 :
                     
     system("cls");
     lcd_putc("Valor de a1: ");
     scanf("%f",&a11);
     lcd_putc("Valor de b1: ");
     scanf("%f",&b11);
     lcd_putc("Valor de c1: ");
     scanf("%f",&c11);
     
     system("cls");
     lcd_putc("Valor de a2: ");
     scanf("%f",&a21);
     lcd_putc("Valor de b2: ");
     scanf("%f",&b21);
     lcd_putc("Valor de c2: ");
     scanf("%f",&c21);
     
     system("cls");
     
     float d1=(((a11)*(b21))-((a21)*(b11)));
     float i11=((((c11)*(b21))-((c21)*(b11)))/(((a11)*(b21))-((a21)*(b11))));
     float i21=((((a11)*(c21))-((a21)*(c11)))/(((a11)*(b21))-((a21)*(b11))));
     
     
     
     system("cls");
     lcd_putc("Delta: %f",d1);
     getche();
             system("cls");
     lcd_putc("X : %f\n",i11);
     
     if (i11 < 0) {
             lcd_putc("Valor Negativo\n");
             lcd_putc("Signo Contrario\n");
             lcd_putc("En la malla");
             }
             getche();
             system("cls");
     lcd_putc("Y : %f\n",i21);     
             
     if(i21 < 0) {
             lcd_putc("Valor Negativo\n");
             lcd_putc("Signo Contrario\n");
             lcd_putc("En la malla\n");
             }
     
     getche();
     
     break;
         
    
    case 3:
         
         system("cls");
     
     lcd_putc("Valor de a1: ");
     scanf("%f",&a1);
     lcd_putc("Valor de b1: ");
     scanf("%f",&b1);
     lcd_putc("Valor de c1: ");
     scanf("%f",&c1);
     lcd_putc("Valor de d1: ");
     scanf("%f",&d1);
     
     system("cls");
     
     
     lcd_putc("Valor de a2: ");
     scanf("%f",&a2);
     lcd_putc("Valor de b2: ");
     scanf("%f",&b2);
     lcd_putc("Valor de c2: ");
     scanf("%f",&c2);
     lcd_putc("Valor de d2: ");
     scanf("%f",&d2);
     
     system("cls");
     
     lcd_putc("Valor de a3: ");
     scanf("%f",&a3);
     lcd_putc("Valor de b3: ");
     scanf("%f",&b3);
     lcd_putc("Valor de c3: ");
     scanf("%f",&c3);
     lcd_putc("Valor de d3: ");
     scanf("%f",&d3);
     
     system("cls");
     
     float d=((a1)*(b2)*(c3))+((b1)*(c2)*(a3))+((c1)*(a2)*(b3))-((a3)*(b2)*(c1))-((b3)*(c2)*(a1))-((c3)*(a2)*(b1));
     float i1=(((d1)*(b2)*(c3))+((b1)*(c2)*(d3))+((c1)*(d2)*(b3))-((d3)*(b2)*(c1))-((b3)*(c2)*(d1))-((c3)*(d2)*(b1)))/(((a1)*(b2)*(c3))+((b1)*(c2)*(a3))+((c1)*(a2)*(b3))-((a3)*(b2)*(c1))-((b3)*(c2)*(a1))-((c3)*(a2)*(b1)));
     float i2=(((a1)*(d2)*(c3))+((d1)*(c2)*(a3))+((c1)*(a2)*(d3))-((a3)*(d2)*(c1))-((d3)*(c2)*(a1))-((c3)*(a2)*(d1)))/(((a1)*(b2)*(c3))+((b1)*(c2)*(a3))+((c1)*(a2)*(b3))-((a3)*(b2)*(c1))-((b3)*(c2)*(a1))-((c3)*(a2)*(b1)));
     float i3=(((a1)*(b2)*(d3))+((b1)*(d2)*(a3))+((d1)*(a2)*(b3))-((a3)*(b2)*(d1))-((b3)*(d2)*(a1))-((d3)*(a2)*(b1)))/(((a1)*(b2)*(c3))+((b1)*(c2)*(a3))+((c1)*(a2)*(b3))-((a3)*(b2)*(c1))-((b3)*(c2)*(a1))-((c3)*(a2)*(b1)));
     
    
     
     system("cls");
     lcd_putc("D: %f",d);
     getche();
             system("cls");
     lcd_putc("X : %f\n",i1);
     
     if (i1 < 0) {
             lcd_putc("Valor Negativo\n");
             lcd_putc("Signo Contrario\n");
             lcd_putc("En la malla");
             }
             getche();
             system("cls");
     lcd_putc("Y : %f\n",i2);     
             
     if(i2 < 0) {
             lcd_putc("Valor Negativo\n");
             lcd_putc("Sent Contrario\n");
             lcd_putc("En la malla\n");
             }
             getche();
             system("cls");
     lcd_putc("Z : %f\n",i3);     
             
     if(i3 < 0) {
             lcd_putc("Valor Negativo\n");
             lcd_putc("Sent Contrario\n");
             lcd_putc("En la malla\n");
             }
     
     
     getche();
     
     
     
     break;
    
    default :
            system("cls");
            lcd_putc("Valor incorrecto");
            getche();
            
            }
    
    
            
            
    

     
  system("cls");
  lcd_putc("Software-Juanfran");  
     
     
  system("PAUSE>nul");   
  return 0;
}
