Ayuda, programa para calcular el valor de las resistencias y su color en C

Iniciado por atlasparks, 22 Noviembre 2012, 19:45 PM

0 Miembros y 1 Visitante están viendo este tema.

atlasparks

Hola a todos, soy nuevo en la comunidad y quisiera saber si me podrían ayudar, me encargaron un programa en C que calule el valor de las resistencias o sus colores, en el cual en un principio se tiene que elegir si uno quiere ingresar el valor de la resistencia para que devuelva los colores respectivos o si quiere ingresar los colores y devuelva el valor de la resistencia, pero tengo una duda, en el código me faltó algo y le pregunté al profesor el cual me dijo que lo mejor era incluir 3 librerias llamadas en éste caso "modulos/colores.h" , "modulos/resistencias.h" y "modulos/ohm.h", pero el profesor nunca nos dijo como agregar las librerias o que es lo que tenia que tener esas librerias, unicamente usabamos las librerias que contiene el compilador, el profesor, que la verdad no es muy bueno enseñando la materia, no me dijo nada mas y mi problema es que tengo que entregar el programa, esoty usando el dev c++, no se si me recomienden mejor otro compilador, pero el que yo uso me manda 3 errores el cual me supongo dice que la libreria no existe y me sale un error mas que dice "warning: unknown escape sequence '\T' " el cual creo que se genera por la ultima linea donde está el ultimo printf y eso no se que significa, aqui les pongo el código para ver si me puede ayudar, por que ya busqué en internet eso de agregar una libreria personal, pero no lo he hecho bien ya que me sigue saliendo lo mismo y no me compila el programa, y ya no se que hacer, ya me duele la cabeza de la desesperación  :( ojalá me puedan ayudar, muchas gracias por todo y que tengan buen día, saludos.


#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include <strings.h>
#include "modulos/colores.h"
#include "modulos/resistencias.h"
#include "modulos/ohm.h"


void color_numero();
void numero_color();


void codigo_colores(void){
int opcion;

printf("1.-Ingresar colores y mostrar valor de resistencia\n2.-Ingresar valor de resistencia y mostrar colores\n");
scanf("%d",&opcion);

switch(opcion){
case 1:
color_numero();
break;

case 2:
numero_color();
break;


default:
printf("Opcion no valida\n");
break;
}

}

void color_numero(){
char colores[3];
int valor;
printf("N=negro\nM=marron\nR=rojo\nn=naranja\nA=am arillo\nV=verde\na=azul\nv=vilotA\nG=gris\nB=blanc o\n");
printf("Ingresa las inicales de los colores de las resistencias: \n");
scanf("%s",colores);
//evaluamos el primer elemento del arreglo comparandolo con las letras que representan cada color
switch(colores[0]){
case 'N':
valor=0;
break;
case 'M':
valor=10;
break;
case 'R':
valor=20;
break;
case 'n':
valor=30;
break;
case 'A':
valor=40;
break;
case 'V':
valor=50;
break;
case 'a':
valor=60;
break;
case 'v':
valor=70;
break;
case 'G':
valor=80;
break;
case 'B':
valor=90;
break;
default:
printf("Opcion invalida");
break;




}
//evaluamos el segundo elemento
switch(colores[1]){
case 'N':
valor+=0;
break;
case 'M':
valor+=1;
break;
case 'R':
valor+=2;
break;
case 'n':
valor+=3;
break;
case 'A':
valor+=4;
break;
case 'V':
valor+=5;
break;
case 'a':
valor+=6;
break;
case 'v':
valor+=7;
break;
case 'G':
valor+=8;
break;
case 'B':
valor+=9;
break;
default:
printf("Opcion invalida");
break;
}
//evaluamos el tercer elemento que es el multiplicador
switch(colores[2]){
case 'N':
valor*=1;
break;
case 'M':
valor*=10;
break;
case 'R':
valor*=100;
break;
case 'n':
valor*=1000;
break;
case 'A':
valor*=10000;
break;
case 'V':
valor*=100000;
break;
case 'a':
valor*=1000000;
break;

default:
printf("Opcion invalida");
break;


}
//se imprime el valor
printf("El valor de la resistencia es: %d Ohms\n",valor);




}



void numero_color(){
char color[3];//arreglo donde se iran guardando los colores
int valor,b1,b2,multiplicador;//variables donde se guardaran los valores de las bandas y el valor total de la resistencia
printf("Ingresa el valor de la resistencia en Ohms:");
scanf("%d",&valor);
for(multiplicador=1;valor>=100;multiplicador++){
valor=valor/10;

}

b1=valor/10;
b2=(valor-(10*b1));
printf("%d %d\n",b1,b2);
switch(b1){//aqui se busca el color de la banda 1

case 1:
color[0]='M';
break;

case 2:
color[0]='R';
break;

case 3:
color[0]='n';
break;

case 4:
color[0]='A';
break;

case 5:
color[0]='V';
break;

case 6:
color[0]='a';
break;

case 7:
color[0]='v';
break;
case 8:
color[0]='G';
break;

case 9:
color[0]='B';
break;

default:
printf("Opcion invalida");
break;
}
switch(b2){//aqui se busca el color de la banda 2
case 0:
color[1]='N';
break;

case 1:
color[1]='M';
break;

case 2:
color[1]='R';
break;

case 3:
color[1]='n';
break;

case 4:
color[1]='A';
break;

case 5:
color[1]='V';
break;

case 6:
color[1]='a';
break;

case 7:
color[1]='v';
break;
case 8:
color[1]='G';
break;

case 9:
color[1]='B';
break;

default:
printf("Opcion invalida");
break;
}

switch(multiplicador){//aqui se busca el color de la banda multiplicadora
case 1:
color[2]='N';
break;

case 2:
color[2]='M';
break;

case 3:
color[2]='R';
break;

case 4:
color[2]='n';
break;

case 5:
color[2]='A';
break;

case 6:
color[2]='V';
break;

case 7:
color[2]='a';
break;


default:
printf("Opcion invalida");
break;
}


printf("Los colores correspondientes a este valor son: \n%s\n",color);
printf("\Tabla de colores:\nN=negro\nM=marron\nR=rojo\nn=naranja\nA= amarillo\nV=verde\na=azul\nv=vilotA\nG=gris\nB=bla nco\n");
}


Cabe aclarar que parte del programa nos lo dió el profesor, no se si esté bien o si lo que yo le agregué está bien, supuestamente el unico problema son las librerias o si me podrían decir una forma aunque no sea utilizando lo que me dijo el profesor para que funcione éste programa, por favor.

Saludos y muchas gracias.

leosansan

PARECE QUE IMPRIME UN CARÁCTER MÁS EN COLOR, sólo había que quitar las librerias y cambiar codigo_colores a main, no he tocado nada más:

Código (cpp) [Seleccionar]

#include <stdio.h>
#include <stdlib.h>





void color_numero();
void numero_color();


int main(){
int opcion;

printf("1.-Ingresar colores y mostrar valor de resistencia\n2.-Ingresar valor de resistencia y mostrar colores\n");
scanf("%d",&opcion);

switch(opcion){
case 1:
color_numero();
break;

case 2:
numero_color();
break;


default:
printf("Opcion no valida\n");
break;
}

}

void color_numero(){
char colores[3];
int valor;
printf("N=negro\nM=marron\nR=rojo\nn=naranja\nA=am arillo\nV=verde\na=azul\nv=vilotA\nG=gris\nB=blanc o\n");
printf("Ingresa las inicales de los colores de las resistencias: \n");
scanf("%s",colores);
//evaluamos el primer elemento del arreglo comparandolo con las letras que representan cada color
switch(colores[0]){
case 'N':
valor=0;
break;
case 'M':
valor=10;
break;
case 'R':
valor=20;
break;
case 'n':
valor=30;
break;
case 'A':
valor=40;
break;
case 'V':
valor=50;
break;
case 'a':
valor=60;
break;
case 'v':
valor=70;
break;
case 'G':
valor=80;
break;
case 'B':
valor=90;
break;
default:
printf("Opcion invalida");
break;




}
//evaluamos el segundo elemento
switch(colores[1]){
case 'N':
valor+=0;
break;
case 'M':
valor+=1;
break;
case 'R':
valor+=2;
break;
case 'n':
valor+=3;
break;
case 'A':
valor+=4;
break;
case 'V':
valor+=5;
break;
case 'a':
valor+=6;
break;
case 'v':
valor+=7;
break;
case 'G':
valor+=8;
break;
case 'B':
valor+=9;
break;
default:
printf("Opcion invalida");
break;
}
//evaluamos el tercer elemento que es el multiplicador
switch(colores[2]){
case 'N':
valor*=1;
break;
case 'M':
valor*=10;
break;
case 'R':
valor*=100;
break;
case 'n':
valor*=1000;
break;
case 'A':
valor*=10000;
break;
case 'V':
valor*=100000;
break;
case 'a':
valor*=1000000;
break;

default:
printf("Opcion invalida");
break;


}
//se imprime el valor
printf("El valor de la resistencia es: %d Ohms\n",valor);




}



void numero_color(){
char color[3];//arreglo donde se iran guardando los colores
int valor,b1,b2,multiplicador;//variables donde se guardaran los valores de las bandas y el valor total de la resistencia
printf("Ingresa el valor de la resistencia en Ohms:");
scanf("%d",&valor);
for(multiplicador=1;valor>=100;multiplicador++){
valor=valor/10;

}

b1=valor/10;
b2=(valor-(10*b1));
printf("%d %d\n",b1,b2);
switch(b1){//aqui se busca el color de la banda 1

case 1:
color[0]='M';
break;

case 2:
color[0]='R';
break;

case 3:
color[0]='n';
break;

case 4:
color[0]='A';
break;

case 5:
color[0]='V';
break;

case 6:
color[0]='a';
break;

case 7:
color[0]='v';
break;
case 8:
color[0]='G';
break;

case 9:
color[0]='B';
break;

default:
printf("Opcion invalida");
break;
}
switch(b2){//aqui se busca el color de la banda 2
case 0:
color[1]='N';
break;

case 1:
color[1]='M';
break;

case 2:
color[1]='R';
break;

case 3:
color[1]='n';
break;

case 4:
color[1]='A';
break;

case 5:
color[1]='V';
break;

case 6:
color[1]='a';
break;

case 7:
color[1]='v';
break;
case 8:
color[1]='G';
break;

case 9:
color[1]='B';
break;

default:
printf("Opcion invalida");
break;
}

switch(multiplicador){//aqui se busca el color de la banda multiplicadora
case 1:
color[2]='N';
break;

case 2:
color[2]='M';
break;

case 3:
color[2]='R';
break;

case 4:
color[2]='n';
break;

case 5:
color[2]='A';
break;

case 6:
color[2]='V';
break;

case 7:
color[2]='a';
break;


default:
printf("Opcion invalida");
break;
}


printf("Los colores correspondientes a este valor son: \n%s\n",color);
printf("\tTabla de colores:\nN=negro\nM=marron\nR=rojo\nn=naranja\nA= amarillo\nV=verde\na=azul\nv=vilotA\nG=gris\nB=bla nco\n");
}

Saluditos!.

atlasparks

 ;-) Es cierto, ya funciona, muchisimas gracias, eso quiere decir que el profe no me dijo bien, esas librerias que me dijo ni se utilizaban, ya estoy pensando que yo tambien no estoy muy bien en ésto de la programación, tendré que ver los tutoriales para saber mas de ésto, lo bueno es que ya estuve revisando el foro y la verdad hay muy buen material para entender mas sobre la programación, voy a prácticar mas y si tengo alguna duda, por aqui estaré, muchas gracias amig@, te agradezco mucho la ayuda, saludos  ;D