Part i, ex 1 is worth 1200 points, part1ex 2 is worth 800 points, part2 ex 1 is
ID: 2320565 • Letter: P
Question
Explanation / Answer
#include <stdio.h>
void getColorCode(char colorCode[]);
long getResistorValue( char colorCode[], int colorValue[], int r_value );
//void getResistorValue(char colorCode[], int colorValue[]);
int main (void)
{
long r_value = 0; //should be long to store large values
char colorCode[4];
int colorValue[4];
// int i;
printf("This program will calculate the value of a resistor. ");
printf("B = Black b = Brown R or r= Red O or o = Orange Y or y = Yellow ");
printf("G = Green U or u = Blue V or v = Violet g = Gray W or w = White ");
printf("Enter the 4-character color description of the resistor: ");
getColorCode(colorCode);
//for (i = 0; i < 4; i++)
//function returns a long , should be stored in a long variable
r_value = getResistorValue(colorCode, colorValue, r_value);
printf(" The resistor with color code %c %c %c %c has a value of %d Ohms. ",
colorCode[0], colorCode[1], colorCode[2], colorCode[3], r_value);
return 0;
}
void getColorCode(char colorCode[])
{
int i;
for(i = 0; i < 4; i++)
colorCode[i] = getchar();
}
long getResistorValue( char colorCode[], int colorValue[], int r_value )
{
int i;
int j;
long multiplier;
for( i = 0; i < 3; i++)
{
switch (colorCode[i])
{
case('B'):
colorValue[i] = 0;
break;
case('b'):
colorValue[i] = 1;
break;
case('r'):
case('R'):
colorValue[i] = 2;
break;
case('o'):
case('O'):
colorValue[i] = 3;
break;
case('y'):
case('Y'):
colorValue[i] = 4;
break;
case('G'):
colorValue[i] = 5;
break;
case('U'):
case('u'):
colorValue[i] = 6;
break;
case('v'):
case('V'):
colorValue[i] = 7;
break;
case('g'):
colorValue[i] = 8;
break;
case('w'):
case('W'):
colorValue[i] = 9;
break;
default: break;
}
}
for( j = 0; j < 8; j++)
{
switch (colorCode[3])
{
case('B'):
multiplier = 1;
break;
case('b'):
multiplier = 10;
break;
case('r'):
case('R'):
multiplier = 100;
break;
case('o'):
case('O'):
multiplier = 1000;
break;
case('y'):
case('Y'):
multiplier = 10000;
break;
case('G'):
multiplier = 100000;
break;
case('U'):
case('u'):
multiplier = 1000000;
break;
case('v'):
case('V'):
multiplier = 10000000;
break;
//case w not implemented
default: break;
}
r_value = ((colorValue[0] + (colorValue[1]) + (colorValue[2])) * multiplier);
}
return r_value;
}