| | |
Calculating resistance
![]() |
•
•
Join Date: Nov 2008
Posts: 5
Reputation:
Solved Threads: 0
Ok well my assignment is to write a program to gives me the total resistance in a circuit.
The user is prompted for the resistance type and resistor value such as <1 200> 1 meaning in series, and 200 being the value of the resistor. When the user imputs -1 for the type the program stops and gives the total resistance. 0 goes for the starting resistor, then 1 is for series, and 2 for parallel. Here is what i have so far, I know its not calculating correctly and I can understand what to do in my head, I just cant translate it to code :/ any help or suggestions would be great, thanks
An example of what a user would input would be
"Input resistance type(0 starting: 1 series: 2 parallel) and resistor value"
0 100
1 100
1 100
2 200
2 200
1 25
2 200
1 50
-1
"total resistance is" 100
The user is prompted for the resistance type and resistor value such as <1 200> 1 meaning in series, and 200 being the value of the resistor. When the user imputs -1 for the type the program stops and gives the total resistance. 0 goes for the starting resistor, then 1 is for series, and 2 for parallel. Here is what i have so far, I know its not calculating correctly and I can understand what to do in my head, I just cant translate it to code :/ any help or suggestions would be great, thanks

An example of what a user would input would be
"Input resistance type(0 starting: 1 series: 2 parallel) and resistor value"
0 100
1 100
1 100
2 200
2 200
1 25
2 200
1 50
-1
"total resistance is" 100
C++ Syntax (Toggle Plain Text)
#include <iostream> using namespace std; int main(){ int code=0; //This is the connectivity type double rv=0;//This is the resistor value double total=0; double sumD=0; //Sum of the denominator while (code!=-1){ cout<<"Input connectivity type(0 starting: 1 series: 2 parallel) and Resistor Value:"; cin>>code>>rv; if (code==1){ total += rv;} else { sumD += 1.0/rv;} } if (code==2){ total += 1.0/(sumD);} cout<<total<<endl; return 0;}
Last edited by kbpszs; Nov 20th, 2008 at 3:04 am.
•
•
Join Date: Jan 2008
Posts: 3,747
Reputation:
Solved Threads: 491
if (code==1){
total += rv;}
else {
sumD += 1.0/rv;}
}
if (code==2){
total += 1.0/(sumD);}Both red lines of code execute when code == 2. Is this what you want?
•
•
Join Date: Jan 2008
Posts: 3,747
Reputation:
Solved Threads: 491
•
•
•
•
Ok well my assignment is to write a program to gives me the total resistance in a circuit.
The user is prompted for the resistance type and resistor value such as <1 200> 1 meaning in series, and 200 being the value of the resistor. When the user imputs -1 for the type the program stops and gives the total resistance. 0 goes for the starting resistor, then 1 is for series, and 2 for parallel. Here is what i have so far, I know its not calculating correctly and I can understand what to do in my head, I just cant translate it to code :/ any help or suggestions would be great, thanks
An example of what a user would input would be
0 100
1 100
1 100
2 200
2 200
1 25
2 200
1 50
-1
And the total resistance would be 100.
•
•
Join Date: Jan 2008
Posts: 3,747
Reputation:
Solved Threads: 491
I see how you got 100. I would say that you are assuming a lot if you are assuming that people will know that that is the circuit you are intending with that input. You should spell out the rules a little more, in my opinion, but if everyone knows how to enter the circuit (I THINK I understand the rules and the assumptions you are making regarding how a circuit is created from the input), your calculation boils down to this:
100 + 100 + 100 = 300 (first three resistors are in series). Replace with a single 300 ohm resistor.
1 / (1/300 + 1/200 + 1/200) = 75. Replace these parallel resistors with a single 75 ohm resistor.
75 + 25 = 100 (replace these two resistors in series with a single 100 ohm resistor.
1 / (1/100 + 1/100) = 50
50 + 50 = 100, which is the answer.
So make two functions. One that takes an array of resistors in series and calculates their resistance, one that takes an array of resistors in parallel and calculates their resistance. I'd change the "starting resistor" to simply a "series" resistor, since it's the same thing in your schematic. You'll need to set up an array to read the input into, then when it changes from series to parallel or vice versa, call the appropriate function. But start with writing these functions:
Then go from there. You may want to set up a struct for input since you are dealing with paired data.
Yee-ha! Post number 2000!
100 + 100 + 100 = 300 (first three resistors are in series). Replace with a single 300 ohm resistor.
1 / (1/300 + 1/200 + 1/200) = 75. Replace these parallel resistors with a single 75 ohm resistor.
75 + 25 = 100 (replace these two resistors in series with a single 100 ohm resistor.
1 / (1/100 + 1/100) = 50
50 + 50 = 100, which is the answer.
So make two functions. One that takes an array of resistors in series and calculates their resistance, one that takes an array of resistors in parallel and calculates their resistance. I'd change the "starting resistor" to simply a "series" resistor, since it's the same thing in your schematic. You'll need to set up an array to read the input into, then when it changes from series to parallel or vice versa, call the appropriate function. But start with writing these functions:
C++ Syntax (Toggle Plain Text)
double SeriesResistance (int resistorValues[], int numResistors) { // returns resistance of the resistors in series } double ParallelResistance (int resistorValues[], int numResistors) { // returns resistance of the resistors in parallel }
Then go from there. You may want to set up a struct for input since you are dealing with paired data.
Yee-ha! Post number 2000!
Last edited by VernonDozier; Nov 20th, 2008 at 3:53 am.
![]() |
Similar Threads
- Arrays (C++)
- Problem with Switch statement ? (C++)
Other Threads in the C++ Forum
- Previous Thread: How to insert a combox to a column of list ctrl in MFC?
- Next Thread: Linked List: Inserting a new node
| Thread Tools | Search this Thread |
api array based binary bitmap c++ c/c++ cdialogbar char class classes code coding compile console conversion convert count delete deploy desktop developer directshow dissertations dll double-linkedlist download dynamic dynamiccharacterarray email encryption error file forms fstream function functions game givemetehcodez graph gui homeworkhelp homeworkhelper iamthwee ifstream input int integer java lib linkedlist linker loan loop looping loops map math matrix memory multiple news node number online output pagerank pointer problem program programming project python random read recursion recursive reference risk rpg string strings superclass temperature template test text text-file tree tutorial url validator variable vector video win32 windows winsock wordfrequency wxwidgets






