1.2.2 電阻計算
求如下圖所示電路中A,B間的等效電阻r
算法分析如下:
把整個電路分為4級,從左至右逐級遞推處理。
首先注意把電路中的電阻數(shù)據(jù)按順序寫入數(shù)組,最右端電阻在前,以后每級橫向電阻在前,豎向電阻在后。第三級沒有橫向電阻,相應位置置數(shù)據(jù)0。最后,置兩個-1作為數(shù)據(jù)的終止標志。
操作時r讀入最右端電阻。進入i循環(huán)(預置20級),讀入data[i],data[i+1]兩個電阻,data[i]與右邊等效電阻串聯(lián),然后與data[i+1]并聯(lián),根據(jù)電阻計算公式操作:
r=r+data[i]; r=(r*data[i+1])/(r+data[i+1]);
當讀入的data[i]為負時,即已計算完畢,退出循環(huán)等效電阻r
程序代碼如下:
#include
void main()
{
int i;
double r;
double data[]={25,4,13,50,3,0,15,17,31,-1,-1};
r=data[0];
for(i=1;i<=20;i+=2)
{
if(data[i]<0)
break;
r=r+data[i];
r=(r*data[i+1])/(r+data[i+1]);
}
printf("A,B間的等效電阻為:%.3f\n",(r*1000+0.5)/1000);
}
程序運行結果如下:
A,B間的等效電阻為:11.932
注意:本程序只適用于II形式的電路電阻計算。如果對應位置沒有電阻,必須相應補0。同時在程序中循環(huán)體內判斷data[i]<0 語句應安排在具體計算語句之前。否則將導致計算結果出錯。
求如下圖所示電路中A,B間的等效電阻r
算法分析如下:
把整個電路分為4級,從左至右逐級遞推處理。
首先注意把電路中的電阻數(shù)據(jù)按順序寫入數(shù)組,最右端電阻在前,以后每級橫向電阻在前,豎向電阻在后。第三級沒有橫向電阻,相應位置置數(shù)據(jù)0。最后,置兩個-1作為數(shù)據(jù)的終止標志。
操作時r讀入最右端電阻。進入i循環(huán)(預置20級),讀入data[i],data[i+1]兩個電阻,data[i]與右邊等效電阻串聯(lián),然后與data[i+1]并聯(lián),根據(jù)電阻計算公式操作:
r=r+data[i]; r=(r*data[i+1])/(r+data[i+1]);
當讀入的data[i]為負時,即已計算完畢,退出循環(huán)等效電阻r
程序代碼如下:
#include
void main()
{
int i;
double r;
double data[]={25,4,13,50,3,0,15,17,31,-1,-1};
r=data[0];
for(i=1;i<=20;i+=2)
{
if(data[i]<0)
break;
r=r+data[i];
r=(r*data[i+1])/(r+data[i+1]);
}
printf("A,B間的等效電阻為:%.3f\n",(r*1000+0.5)/1000);
}
程序運行結果如下:
A,B間的等效電阻為:11.932
注意:本程序只適用于II形式的電路電阻計算。如果對應位置沒有電阻,必須相應補0。同時在程序中循環(huán)體內判斷data[i]<0 語句應安排在具體計算語句之前。否則將導致計算結果出錯。

