Calculate Equivalent Resistance of Resistors in C++

In summary, the program prompts the user to enter the resistance of each resistor continuously by using a while loop until a zero resistance is entered and stores it in an array. The equivalent resistance is then calculated.
  • #1
Smiler7
2
0
Write a program that prompts the user to enter the resistance of each resistor continuously by using a while loop until a zero resistance is entered and store it in an array, then calculates the equivalent resistance R. Also count the number of resistors n. Test your program with R1 = 1 kΩ,R2 = 2 kΩ.,R3 = 4 kΩ and R4 = 8 kΩ . What is the equivalent resistance? Use another separate loop to print the resistances and the equivalent resistance.

I'm trying to do this question above but i don't actually get what its asking for?!
----------------------------------------------------------------------------------------
"Write a program that prompts the user to enter the resistance of each resistor continuously by using a while loop until a zero resistance is entered and store it in an array, then calculates the equivalent resistance R..."

/* Starting with this bit i could write a program where i enter the value of each resistor. But "continuously by using a while loop until a zero resistance is entered and store it in an array"?! */
 
Physics news on Phys.org
  • #2
It means you're supposed to enter 0 to signal that you've entered all the resistances. Something like this:

Enter your resistances one by one; enter a 0 when you're finished:
Resistance #1: 1
Resistance #2: 2
Resistance #3: 4
Resistance #4: 8
Resistance #5: 0

The result is...

Of course, you don't actually store "resistance #5" in the array or use it in the calculation.
 
  • #3
Read the value.

If it is not zero - add it to the end of the array, continue reading.

If it is zero - don't add to the array, stop reading, proceed to the next stage.

IMHO the way it is worded now it is ambiguous, as you are not told if the resistors are connected in series, or in parallel.
 
  • #4
Thanks guys.

but now I'm into it I am stuck...

So far i have created a program that asks straight away the value of resistance.

Say i type in 10 ohms it loops until i press 0 ohms. When i press 0 ohms it prints out the total. But the total always comes out to be zero.?!

My other problem... How do i save all my values > than zero into an array?!

I think we will try and tackle these problems first. Am i going the right way?

#include <stdio.h>

main()

{

double RTP,X;

/* The loop statement */

RTP=0;

do
{
printf ("Enter the value of Resistance in Ohms >");
scanf("%lf",&X);
RTP += (1/X);

if (X < 0)
{
printf ("Resistance can't be negative >\n");


}

else if (X == 0)

{
printf ("Zero Resistance entered. >\n");
printf ("\n The Total resistance is %lf Ohms.",(1/RTP));


}

}while (X > 0,X);

}
 
  • #5
To make your programs more readable, use [noparse]
Code:
[/noparse] tags, for example

[noparse]
Code:
int main()
{
   return 0;
}
[/noparse]

displays as

Code:
int main()
{
   return 0;
}

Are you sure you should be using printf and scanf, and not cin/cout for input/output?

Code:
while (X > 0,X)

works as expected only by accident - was it really your plan to use a comma operator?

When it comes to the result - it is not that unexpected. Simplest way of checking what is happening is to either run it under debugger, or to add a line

Code:
printf("%lf, %lf\n",X,RTP);

just before if (X < 0) check. This way you will see intermediate results, they should be helpful.

Storing the information in array is a different animal, and it can be a little bit tricky if you are not told how many elements to expect. Are you expected to use STL and vector, or Microsoft's CArray, or should you use a dynamically allocated memory and implement everything by yourself? The latter seems unlikely.
 

FAQ: Calculate Equivalent Resistance of Resistors in C++

How do I calculate equivalent resistance of resistors in C++?

To calculate the equivalent resistance of resistors in C++, you will need to use Ohm's law which states that resistance is equal to voltage divided by current. You will also need to know the specific values of the resistors you are working with, and use the formula for calculating resistors in parallel or series depending on the circuit configuration.

What is the formula for calculating resistors in parallel?

The formula for calculating resistors in parallel is 1/Rtotal = 1/R1 + 1/R2 + ... + 1/Rn, where Rtotal is the total resistance and R1, R2, etc. are the individual resistances. In C++, you can use the reciprocal function (1/x) to simplify this calculation.

How do I handle different units of measurement when calculating equivalent resistance in C++?

If the resistors you are working with have different units of measurement, such as ohms and kiloohms, you will need to convert them to a consistent unit before calculating the equivalent resistance. This can be done using conversion functions or by manually converting the values to a common unit.

Can I use a loop to calculate equivalent resistance for multiple resistors?

Yes, you can use a loop in your C++ program to calculate the equivalent resistance for multiple resistors. This can be useful when working with circuits that have a large number of resistors, as it allows for a more efficient and organized approach to the calculation.

Are there any built-in functions in C++ for calculating equivalent resistance?

No, there are no built-in functions in C++ specifically for calculating equivalent resistance of resistors. However, there are mathematical functions and operators that can be used to perform the necessary calculations, such as division, multiplication, and exponentiation.

Similar threads

Replies
17
Views
10K
Replies
4
Views
1K
Replies
8
Views
2K
Replies
8
Views
2K
Replies
3
Views
1K
Replies
8
Views
4K
Replies
5
Views
2K
Back
Top