Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*====================================
- Equivalent Resistance
- ====================================*/
- //Series and Parallel Topologies
- double get_effective_resistance(double restarr[], int topology, int resist_no){
- double effective_resistance = 0.0;
- int i;
- double placeholder = 0.0;
- if(topology==1){
- for(i=0; i<resist_no; i++){
- placeholder += restarr[i];
- }
- effective_resistance = placeholder;
- }else if(topology==2){
- for(i=0; i<resist_no; i++ ){
- placeholder += (1/restarr[i]);
- }
- effective_resistance = placeholder;
- }else if(topology==3){
- printf("ResistNO. @case3\n",resist_no);
- effective_resistance = get_ladder_resistance(restarr,resist_no);
- }else{
- printf("Error in Function \"get_effective_resistance\" in file \"circuit.c\"");
- return -1;
- }
- return effective_resistance;
- }
- //Ladder Topology
- double get_ladder_resistance(double restarr[], int resist_no){
- double x = 0.0;
- int i = resist_no;
- int placeholder = 0;
- //printf("DEBUGLADDER: 1\n");
- while(i>=0){
- // printf("DEBUGLADDER: 2\n");
- printf("DEBUGladder: %d\n",i);
- if(i<3||i%3==0){
- // printf("DEBUGLADDER: 3\n");
- placeholder = i-3;
- printf("DebugPH: %d\n", placeholder);
- do{
- // printf("DEBUGLADDER: 4\n");
- x += restarr[i-1];
- // printf("DEBUGLADDER: 5\n");
- i--;
- printf("DEBUGLADDER: 6\n");
- }while(i>placeholder);
- continue;
- //printf("DEBUGLADDER: 7\n");
- }else if(i%3==2){
- //printf("DEBUGLADDER: 3.1\n");
- placeholder = i-2;
- do{
- // printf("DEBUGLADDER: 4.1\n");
- x += restarr[i-1];
- // printf("DEBUGLADDER: 5.1\n");
- i--;
- // printf("DEBUGLADDER: 6.1\n");
- }while(i>=placeholder);
- //printf("DEBUGLADDER: 7.1\n");
- continue;
- }else{
- //printf("DEBUGLADDER: 8\n");
- if(i==resist_no){
- x = (restarr[i-1]*restarr[i-2])/(restarr[i-1]+restarr[i-2]);
- printf("DEBUGLADDER: 8.1:%d\n",restarr[i-2]);
- }else{
- x = (x*restarr[i-2])/(x+restarr[i-2]);
- printf("DEBUGLADDER: 8.2\n");
- }
- //printf("DEBUGLADDER: 9\n");
- i--;
- printf("DEBUGLADDER: 10:%.6f\n",x);
- continue;
- }
- //printf("DEBUGLADDER: 11");
- }
- //printf("DEBUGLADDER: 12");
- double y = x;
- //printf("DEBUGLADDER: 13");
- return y;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement