Thread: Resistor value to color code and vice versa

  1. #1
    Registered User Eddie Ramos's Avatar
    Join Date
    Jan 2012
    Location
    CA
    Posts
    6

    Resistor value to color code and vice versa

    I'd like to thank you all for your time and help in advanced much appreciated.

    Microsoft Visual Studio 2012
    C++ Console Application

    What my program is to do:
    -ask user for value ex. 200 ohms
    - output the value in color ex brown black brown
    and vice versa
    -ask user for color ex brown black brown
    -output the value ex 200 ohms

    a few background summary:
    I'm very new to C++(2 days) i have self taught myself c++ enough to make my very first working program. i got it to output the value based on the color numbers entered. basically am trying to make a resistor color code calculator.

    My problem:
    - it only outputs the value based on color numbers
    how do i make it output value in colors?
    - is there better ways of doing this?

    Code:
    #include <iostream>
    #include <cmath>
    using namespace std;
    
    
    int main() {
        double colornum,multiplier;
    
    
        cout<<"0 = black"<<endl;
        cout<<"1 = brown"<<endl;
        cout<<"2 = red"<<endl;
        cout<<"3 = orange"<<endl;
        cout<<"4 = yellow"<<endl;
        cout<<"5 = green"<<endl;
        cout<<"6 = blue"<<endl;
        cout<<"7 = violet"<<endl;
        cout<<"8 = grey"<<endl;
        cout<<"9 = white" <<endl<<endl;
    
    
        cout<<"Enter 1st & 2nd band color numbers: ";
        cin>>colornum;
        cout<<"Enter 3rd band color number(Multiplier): ";
        cin>>multiplier;
    
    
        cout <<"The color code of a "<<colornum<<multiplier<< " resistor is: ";
    
    
        if ( multiplier == 0) {
            multiplier = colornum * pow( 10,0 );
        } else if ( multiplier == 1 ) {
            multiplier = colornum * pow( 10,1 );
        } else if ( multiplier == 2 ) {
            multiplier = colornum * pow( 10,2 );
        } else if ( multiplier == 3 ) {
            multiplier = colornum * pow( 10,3 );
        } else if ( multiplier == 4 ) {
            multiplier = colornum * pow( 10,4 );
        } else if ( multiplier == 5 ) {
            multiplier = colornum * pow( 10,5 );
        } else if ( multiplier == 6 ) {
            multiplier = colornum * pow( 10,6 );
        } else if ( multiplier == 7 ) {
            multiplier = colornum * pow( 10,7 );
        } else if ( multiplier == 8 ) {
            multiplier = colornum * pow( 10,8 );
        } else {
            multiplier = colornum * pow( 10,9 );
        }
        cout <<multiplier<<endl;
        return 0;
    }
    Last edited by Eddie Ramos; 09-29-2012 at 04:01 AM.

  2. #2
    SAMARAS std10093's Avatar
    Join Date
    Jan 2011
    Location
    Nice, France
    Posts
    2,694
    Notice that
    Code:
    cout <<"The color code of a "<<colornum<<multiplier<< " resistor is: ";
    will print the value of colornum and multiplier with no space between them.For example if colornum=2 and multiplier=5 it will output The color code of a 25 resistor is:

    As for your problem ,i do not understand what you mean :/

  3. #3
    Registered User Eddie Ramos's Avatar
    Join Date
    Jan 2012
    Location
    CA
    Posts
    6
    am trying to make my program output the colors rather then the numbers

    resister references:
    http://www.dannyg.com/examples/res2/resistor.htm
    Electronic color code - Wikipedia, the free encyclopedia

    the basic calculation is

    color1color2 x 10^multiplier

    12 x 10^2 = 1000 ohms (1k ohms) color = brown black red
    1 being brown
    2 being red
    multiplier being red which is 2

  4. #4
    SAMARAS std10093's Avatar
    Join Date
    Jan 2011
    Location
    Nice, France
    Posts
    2,694
    I cannot load both pages for some reason(mine problem i would say).

    If i input 0 2 i get the output
    Code:
    Enter 1st & 2nd band color numbers: Enter 3rd band color number(Multiplier): The color code of a 02 resistor is: 0
    What do you want the output to be?Just give me an example please

  5. #5
    Registered User Eddie Ramos's Avatar
    Join Date
    Jan 2012
    Location
    CA
    Posts
    6
    the first input asked the user for 2 values from the color code number list no spaces btw all stuck together

    cout<<"0 = black"<<endl;
    cout<<"1 = brown"<<endl;
    cout<<"2 = red"<<endl;
    cout<<"3 = orange"<<endl;
    cout<<"4 = yellow"<<endl;
    cout<<"5 = green"<<endl;
    cout<<"6 = blue"<<endl;
    cout<<"7 = violet"<<endl;
    cout<<"8 = grey"<<endl;
    cout<<"9 = white" <<endl<<endl;

    Say i enter 10 for brown and black

    then it will ask the user for a third band color

    say i enter 2 for red

    output is 102 which should be brown black red

    i want the output to be the name of the color relating to the numbers the user entered.

    OUTPUT:
    a 102 resistor is brown black red
    Last edited by Eddie Ramos; 09-29-2012 at 08:56 AM.

  6. #6
    SAMARAS std10093's Avatar
    Join Date
    Jan 2011
    Location
    Nice, France
    Posts
    2,694
    Sorry for my difficulty to understand .

    So what you want to do is to isolate every digit of the result and then make an if-else structure in order to print the colors.

    I made an example (in c by accident.If this bothers you tell me to convert it to c++).The example has more things that you need,because i wanted to show you how the mod and division are used to extract the digits of a number.Surely this algorithm can be way better.

    Code:
    #include <stdio.h>
    
    int main(void)
    {
    	int n=152;
    	int a,b,c,d,f,g,z;
    	 a=n/100;
    	 b=n/10;
    	 c=n/1;
    	printf("a= %d  b = %d  c=%d\n",a,b,c);
    	d=n%100;
    	f=n%10;
    	g=n%1;
    	printf("with mod->d= %d  f = %d  g=%d\n",d,f,g);
    	z=b%10;
    	printf("z=%d\n",z);
    	
    	if(a==0)
    	{
    		printf("black\t");
    	}
    	else if(a==1)
    	{
    		printf("brown\t");
    	}
    	...
    	
    	return 0;
    }

  7. #7
    Registered User Eddie Ramos's Avatar
    Join Date
    Jan 2012
    Location
    CA
    Posts
    6
    Np my problem is actually pretty hard to explain and understand as well but yes that's exactly what i want to do
    my compiler can't run C can you pleas convert it to c++ if its not too much trouble.

  8. #8
    SAMARAS std10093's Avatar
    Join Date
    Jan 2011
    Location
    Nice, France
    Posts
    2,694
    Code:
    #include <iostream>
    using namespace std;
    
     
    int main(void)
    {
        int n=152;
        int a,b,c,d,f,g,z;
        a=n/100;
        b=n/10;
        c=n/1;
        cout<<"a= "<< a <<"  b = "<< b <<"  c= " << c <<endl;
        d=n%100;
        f=n%10;
        g=n%1;
        cout<<"with mod->d= " << d <<"  f = "<< f <<" g= "<< g <<endl;
        z=b%10;
        cout<<"z = "<< z <<endl;
         
        if(a==0)
        {
            cout<<"black    ";
        }
        else if(a==1)
        {
            cout<<"brown    ";
        }
        ...
         
        return 0;
    }
    hope this helps

  9. #9
    Tweaking master Aslaville's Avatar
    Join Date
    Sep 2012
    Location
    Rogueport
    Posts
    528
    Could you help me understand this please,what do you mean by "pow()" in your code?

  10. #10
    SAMARAS std10093's Avatar
    Join Date
    Jan 2011
    Location
    Nice, France
    Posts
    2,694
    Quote Originally Posted by Aslaville View Post
    Could you help me understand this please,what do you mean by "pow()" in your code?
    It is a function

    pow - C++ Reference

  11. #11
    Tweaking master Aslaville's Avatar
    Join Date
    Sep 2012
    Location
    Rogueport
    Posts
    528
    Is that code compiling in your compiler?Mine is developing some crazy things.Am on Microsoft Visual 2010
    Last edited by Aslaville; 09-30-2012 at 08:49 AM.

  12. #12
    SAMARAS std10093's Avatar
    Join Date
    Jan 2011
    Location
    Nice, France
    Posts
    2,694
    Quote Originally Posted by Aslaville View Post
    Is that code compiling in your compiler?
    If you are referring to the code of post #1,yes it compiled

    What errors do you get?

  13. #13
    Tweaking master Aslaville's Avatar
    Join Date
    Sep 2012
    Location
    Rogueport
    Posts
    528
    It simply says that the 'pow' identifier is undefined

  14. #14
    SAMARAS std10093's Avatar
    Join Date
    Jan 2011
    Location
    Nice, France
    Posts
    2,694
    Have you included this library <cmath> ?

  15. #15
    Tweaking master Aslaville's Avatar
    Join Date
    Sep 2012
    Location
    Rogueport
    Posts
    528
    yes of course.I do not know what is wrong with the compiler.It is developing about six hundred lines of different code when I compile and try to get the error from the output section but the same code compiled on Code::blocks.I did not however know of the function prior to this conversation.Thanks for the update.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Chaning AM to PM and vice versa
    By EssiJoon in forum C Programming
    Replies: 2
    Last Post: 04-19-2012, 09:36 PM
  2. Resistor Color Decoder for a 6 band resistor
    By nivoca in forum C Programming
    Replies: 2
    Last Post: 06-25-2011, 12:44 PM
  3. int to char and vice versa
    By mekaj in forum C++ Programming
    Replies: 13
    Last Post: 12-12-2005, 11:35 AM
  4. Problem: far to near copy, and vice versa
    By aaronc in forum C Programming
    Replies: 1
    Last Post: 06-16-2004, 06:37 AM
  5. Binary to ascii and vice versa
    By thenrkst in forum C++ Programming
    Replies: 13
    Last Post: 03-30-2003, 01:17 AM