/* Programa que diz qual o valor do resistor */
/* baseando-se nas cores (3) impressas nele  */

#include <stdio.h>
#include <conio.h>

char f1,f2,f3;
int v1,v2,v3,erro;
long valor;

void menu (void)
{
	printf ("                             +----------------+\n");
	printf ("                             |                |\n");
	printf ("                             |  Preto   :  P  |\n");
	printf ("                             |                |\n");
	printf ("                             |  Marrom  :  M  |\n");
	printf ("                             |                |\n");
	printf ("                             |  Vermelho:  V  |\n");
	printf ("                             |                |\n");
	printf ("                             |  Laranja :  L  |\n");
	printf ("                             |                |\n");
	printf ("                             |  Amarelo :  A  |\n");
	printf ("                             |                |\n");
	printf ("                             |  Verde   :  v  |\n");
	printf ("                             |                |\n");
	printf ("                             |  Azul    :  a  |\n");
	printf ("                             |                |\n");
	printf ("                             |  Roxo    :  R  |\n");
	printf ("                             |                |\n");
	printf ("                             |  Cinza   :  C  |\n");
	printf ("                             |                |\n");
	printf ("                             |  Branco  :  B  |\n");
	printf ("                             |                |\n");
	printf ("                             +----------------+\n");
	printf ("\n\n");
}

void digite (void)
{
	printf ("Baseado na tabela acima, digite as letras correspondentes as cores do RESISTOR:");
	printf ("* * * Lembrando que Letras MAIUSCULAS sao diferentes de letras minusculas * * *");
	printf ("\n\n\n\n\n                                  ");
	f1=getche ();
	printf ("   ");
	f2=getche ();
	printf ("   ");
	f3=getche ();
}

void mostra (void)
{
	switch (f1)
	{
		case 'P': valor=0;
			  break;
		case 'M': valor=1;
			  break;
		case 'V': valor=2;
			  break;
		case 'L': valor=3;
			  break;
		case 'A': valor=4;
			  break;
		case 'v': valor=5;
			  break;
		case 'a': valor=6;
			  break;
		case 'R': valor=7;
			  break;
		case 'C': valor=8;
			  break;
		case 'B': valor=9;
			  break;
		default:  printf ("1a faixa - COR INCORRETA...\n");
			  erro=999;
			  break;
	}
	switch (f2)
	{
		case 'P': valor=valor*10;
			  break;
		case 'M': valor=(valor*10)+1;
			  break;
		case 'V': valor=(valor*10)+2;
			  break;
		case 'L': valor=(valor*10)+3;
			  break;
		case 'A': valor=(valor*10)+4;
			  break;
		case 'v': valor=(valor*10)+5;
			  break;
		case 'a': valor=(valor*10)+6;
			  break;
		case 'R': valor=(valor*10)+7;
			  break;
		case 'C': valor=(valor*10)+8;
			  break;
		case 'B': valor=(valor*10)+9;
			  break;
		default:  printf ("2a faixa - COR INCORRETA...\n");
			  erro=999;
			  break;
	}
	switch (f3)
	{
		case 'P': valor=valor*1;
			  break;
		case 'M': valor=valor*10;
			  break;
		case 'V': valor=valor*100;
			  break;
		case 'L': valor=valor*1000;
			  break;
		case 'A': valor=valor*10000;
			  break;
		case 'v': valor=valor*100000;
			  break;
		case 'a': valor=valor*1000000;
			  break;
		case 'R': valor=valor*10000000;
			  break;
		case 'C': valor=valor*100000000;
			  break;
		case 'B': valor=valor*1000000000;
			  break;
		default:  printf ("3a faixa - COR INCORRETA...\n");
			  erro=999;
			  break;
	}
	if (erro==999)
	{
		printf ("Verifique cores corretas e execute programa novamente.");
	}
	else
	{
		printf ("O valor do resistor e: %ld ohms", valor);
	}
}

int main ()
{
	clrscr ();
	menu ();
	digite ();
	printf ("\n\n\n\n\n");
	mostra ();
	printf ("\n\n\n\n\n\n\n");
	printf ("Pressione qualquer tecla para FINALIZAR...");
	getch ();
	return 0;
}








/* desenvolvido por Cristian Bueno - FMU - 1o semestre TADS - RA 502.895/7 */