1.2.2 電阻計(jì)算
求如下圖所示電路中A,B間的等效電阻r
算法分析如下:
把整個(gè)電路分為4級(jí),從左至右逐級(jí)遞推處理。
首先注意把電路中的電阻數(shù)據(jù)按順序?qū)懭霐?shù)組,最右端電阻在前,以后每級(jí)橫向電阻在前,豎向電阻在后。第三級(jí)沒有橫向電阻,相應(yīng)位置置數(shù)據(jù)0。最后,置兩個(gè)-1作為數(shù)據(jù)的終止標(biāo)志。
操作時(shí)r讀入最右端電阻。進(jìn)入i循環(huán)(預(yù)置20級(jí)),讀入data[i],data[i+1]兩個(gè)電阻,data[i]與右邊等效電阻串聯(lián),然后與data[i+1]并聯(lián),根據(jù)電阻計(jì)算公式操作:
r=r+data[i]; r=(r*data[i+1])/(r+data[i+1]);
當(dāng)讀入的data[i]為負(fù)時(shí),即已計(jì)算完畢,退出循環(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);
}
程序運(yùn)行結(jié)果如下:
A,B間的等效電阻為:11.932
注意:本程序只適用于II形式的電路電阻計(jì)算。如果對(duì)應(yīng)位置沒有電阻,必須相應(yīng)補(bǔ)0。同時(shí)在程序中循環(huán)體內(nèi)判斷data[i]<0 語(yǔ)句應(yīng)安排在具體計(jì)算語(yǔ)句之前。否則將導(dǎo)致計(jì)算結(jié)果出錯(cuò)。
求如下圖所示電路中A,B間的等效電阻r
算法分析如下:
把整個(gè)電路分為4級(jí),從左至右逐級(jí)遞推處理。
首先注意把電路中的電阻數(shù)據(jù)按順序?qū)懭霐?shù)組,最右端電阻在前,以后每級(jí)橫向電阻在前,豎向電阻在后。第三級(jí)沒有橫向電阻,相應(yīng)位置置數(shù)據(jù)0。最后,置兩個(gè)-1作為數(shù)據(jù)的終止標(biāo)志。
操作時(shí)r讀入最右端電阻。進(jìn)入i循環(huán)(預(yù)置20級(jí)),讀入data[i],data[i+1]兩個(gè)電阻,data[i]與右邊等效電阻串聯(lián),然后與data[i+1]并聯(lián),根據(jù)電阻計(jì)算公式操作:
r=r+data[i]; r=(r*data[i+1])/(r+data[i+1]);
當(dāng)讀入的data[i]為負(fù)時(shí),即已計(jì)算完畢,退出循環(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);
}
程序運(yùn)行結(jié)果如下:
A,B間的等效電阻為:11.932
注意:本程序只適用于II形式的電路電阻計(jì)算。如果對(duì)應(yīng)位置沒有電阻,必須相應(yīng)補(bǔ)0。同時(shí)在程序中循環(huán)體內(nèi)判斷data[i]<0 語(yǔ)句應(yīng)安排在具體計(jì)算語(yǔ)句之前。否則將導(dǎo)致計(jì)算結(jié)果出錯(cuò)。