實(shí)驗(yàn)源代碼 //Warshall.cpp #include<stdio.h> void warshall(int k,int n) { int i , j, t; int temp[20][20]; for(int a=0;a<k;a++) { printf("請輸入矩陣第%d 行元素:",a); for(int b=0;b<n;b++) { scanf ("%d",&temp[a][b]); } } for(i=0;i<k;i++){ for( j=0;j<k;j++){ if(temp[ j][i]==1) { for(t=0;t<n;t++) { temp[ j][t]=temp[i][t]||temp[ j][t]; } } } } printf("可傳遞閉包關(guān)系矩陣是:\n"); for(i=0;i<k;i++) { for( j=0;j<n;j++) { printf("%d", temp[i][ j]); } printf("\n"); } } void main() { printf("利用 Warshall 算法求二元關(guān)系的可傳遞閉包\n"); void warshall(int,int); int k , n; printf("請輸入矩陣的行數(shù) i: "); scanf("%d",&k); 四川大學(xué)實(shí)驗(yàn)報(bào)告 printf("請輸入矩陣的列數(shù) j: "); scanf("%d",&n); warshall(k,n); }
標(biāo)簽: warshall 離散 實(shí)驗(yàn)
上傳時(shí)間: 2016-06-27
上傳用戶:梁雪文以
#include <malloc.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #define NULL 0 #define MaxSize 30 typedef struct athletestruct /*運(yùn)動(dòng)員*/ { char name[20]; int score; /*分?jǐn)?shù)*/ int range; /**/ int item; /*項(xiàng)目*/ }ATH; typedef struct schoolstruct /*學(xué)校*/ { int count; /*編號(hào)*/ int serial; /**/ int menscore; /*男選手分?jǐn)?shù)*/ int womenscore; /*女選手分?jǐn)?shù)*/ int totalscore; /*總分*/ ATH athlete[MaxSize]; /**/ struct schoolstruct *next; }SCH; int nsc,msp,wsp; int ntsp; int i,j; int overgame; int serial,range; int n; SCH *head,*pfirst,*psecond; int *phead=NULL,*pafirst=NULL,*pasecond=NULL; void create(); void input () { char answer; head = (SCH *)malloc(sizeof(SCH)); /**/ head->next = NULL; pfirst = head; answer = 'y'; while ( answer == 'y' ) { Is_Game_DoMain: printf("\nGET Top 5 when odd\nGET Top 3 when even"); printf("\n輸入運(yùn)動(dòng)項(xiàng)目序號(hào) (x<=%d):",ntsp); scanf("%d",pafirst); overgame = *pafirst; if ( pafirst != phead ) { for ( pasecond = phead ; pasecond < pafirst ; pasecond ++ ) { if ( overgame == *pasecond ) { printf("\n這個(gè)項(xiàng)目已經(jīng)存在請選擇其他的數(shù)字\n"); goto Is_Game_DoMain; } } } pafirst = pafirst + 1; if ( overgame > ntsp ) { printf("\n項(xiàng)目不存在"); printf("\n請重新輸入"); goto Is_Game_DoMain; } switch ( overgame%2 ) { case 0: n = 3;break; case 1: n = 5;break; } for ( i = 1 ; i <= n ; i++ ) { Is_Serial_DoMain: printf("\n輸入序號(hào) of the NO.%d (0<x<=%d): ",i,nsc); scanf("%d",&serial); if ( serial > nsc ) { printf("\n超過學(xué)校數(shù)目,請重新輸入"); goto Is_Serial_DoMain; } if ( head->next == NULL ) { create(); } psecond = head->next ; while ( psecond != NULL ) { if ( psecond->serial == serial ) { pfirst = psecond; pfirst->count = pfirst->count + 1; goto Store_Data; } else { psecond = psecond->next; } } create(); Store_Data: pfirst->athlete[pfirst->count].item = overgame; pfirst->athlete[pfirst->count].range = i; pfirst->serial = serial; printf("Input name:) : "); scanf("%s",pfirst->athlete[pfirst->count].name); } printf("\n繼續(xù)輸入運(yùn)動(dòng)項(xiàng)目(y&n)?"); answer = getchar(); printf("\n"); } } void calculate() /**/ { pfirst = head->next; while ( pfirst->next != NULL ) { for (i=1;i<=pfirst->count;i++) { if ( pfirst->athlete[i].item % 2 == 0 ) { switch (pfirst->athlete[i].range) { case 1:pfirst->athlete[i].score = 5;break; case 2:pfirst->athlete[i].score = 3;break; case 3:pfirst->athlete[i].score = 2;break; } } else { switch (pfirst->athlete[i].range) { case 1:pfirst->athlete[i].score = 7;break; case 2:pfirst->athlete[i].score = 5;break; case 3:pfirst->athlete[i].score = 3;break; case 4:pfirst->athlete[i].score = 2;break; case 5:pfirst->athlete[i].score = 1;break; } } if ( pfirst->athlete[i].item <=msp ) { pfirst->menscore = pfirst->menscore + pfirst->athlete[i].score; } else { pfirst->womenscore = pfirst->womenscore + pfirst->athlete[i].score; } } pfirst->totalscore = pfirst->menscore + pfirst->womenscore; pfirst = pfirst->next; } } void output() { pfirst = head->next; psecond = head->next; while ( pfirst->next != NULL ) { // clrscr(); printf("\n第%d號(hào)學(xué)校的結(jié)果成績:",pfirst->serial); printf("\n\n項(xiàng)目的數(shù)目\t學(xué)校的名字\t分?jǐn)?shù)"); for (i=1;i<=ntsp;i++) { for (j=1;j<=pfirst->count;j++) { if ( pfirst->athlete[j].item == i ) { printf("\n %d\t\t\t\t\t\t%s\n %d",i,pfirst->athlete[j].name,pfirst->athlete[j].score);break; } } } printf("\n\n\n\t\t\t\t\t\t按任意建 進(jìn)入下一頁"); getchar(); pfirst = pfirst->next; } // clrscr(); printf("\n運(yùn)動(dòng)會(huì)結(jié)果:\n\n學(xué)校編號(hào)\t男運(yùn)動(dòng)員成績\t女運(yùn)動(dòng)員成績\t總分"); pfirst = head->next; while ( pfirst->next != NULL ) { printf("\n %d\t\t %d\t\t %d\t\t %d",pfirst->serial,pfirst->menscore,pfirst->womenscore,pfirst->totalscore); pfirst = pfirst->next; } printf("\n\n\n\t\t\t\t\t\t\t按任意建結(jié)束"); getchar(); } void create() { pfirst = (struct schoolstruct *)malloc(sizeof(struct schoolstruct)); pfirst->next = head->next ; head->next = pfirst ; pfirst->count = 1; pfirst->menscore = 0; pfirst->womenscore = 0; pfirst->totalscore = 0; } void Save() {FILE *fp; if((fp = fopen("school.dat","wb"))==NULL) {printf("can't open school.dat\n"); fclose(fp); return; } fwrite(pfirst,sizeof(SCH),10,fp); fclose(fp); printf("文件已經(jīng)成功保存\n"); } void main() { system("cls"); printf("\n\t\t\t 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)\n"); printf("輸入學(xué)校數(shù)目 (x>= 5):"); scanf("%d",&nsc); printf("輸入男選手的項(xiàng)目(x<=20):"); scanf("%d",&msp); printf("輸入女選手項(xiàng)目(<=20):"); scanf("%d",&wsp); ntsp = msp + wsp; phead = (int *)calloc(ntsp,sizeof(int)); pafirst = phead; pasecond = phead; input(); calculate(); output(); Save(); }
標(biāo)簽: 源代碼
上傳時(shí)間: 2016-12-28
上傳用戶:150501
#include<stdio.h> #define TREEMAX 100 typedef struct BT { char data; BT *lchild; BT *rchild; }BT; BT *CreateTree(); void Preorder(BT *T); void Postorder(BT *T); void Inorder(BT *T); void Leafnum(BT *T); void Nodenum(BT *T); int TreeDepth(BT *T); int count=0; void main() { BT *T=NULL; char ch1,ch2,a; ch1='y'; while(ch1=='y'||ch1=='y') { printf("\n"); printf("\n\t\t 二叉樹子系統(tǒng)"); printf("\n\t\t*****************************************"); printf("\n\t\t 1---------建二叉樹 "); printf("\n\t\t 2---------先序遍歷 "); printf("\n\t\t 3---------中序遍歷 "); printf("\n\t\t 4---------后序遍歷 "); printf("\n\t\t 5---------求葉子數(shù) "); printf("\n\t\t 6---------求結(jié)點(diǎn)數(shù) "); printf("\n\t\t 7---------求樹深度 "); printf("\n\t\t 0---------返 回 "); printf("\n\t\t*****************************************"); printf("\n\t\t 請選擇菜單號(hào) (0--7)"); scanf("%c",&ch2); getchar(); printf("\n"); switch(ch2) { case'1': printf("\n\t\t請按先序序列輸入二叉樹的結(jié)點(diǎn):\n"); printf("\n\t\t說明:輸入結(jié)點(diǎn)(‘0’代表后繼結(jié)點(diǎn)為空)后按回車。\n"); printf("\n\t\t請輸入根結(jié)點(diǎn):"); T=CreateTree(); printf("\n\t\t二叉樹成功建立!\n");break; case'2': printf("\n\t\t該二叉樹的先序遍歷序列為:"); Preorder(T);break; case'3': printf("\n\t\t該二叉樹的中序遍歷序列為:"); Inorder(T);break; case'4': printf("\n\t\t該二叉樹的后序遍歷序列為:"); Postorder(T);break; case'5': count=0;Leafnum(T); printf("\n\t\t該二叉樹有%d個(gè)葉子。\n",count);break; case'6': count=0;Nodenum(T); printf("\n\t\t該二叉樹總共有%d個(gè)結(jié)點(diǎn)。\n",count);break; case'7': printf("\n\t\t該樹的深度為:%d",TreeDepth(T)); break; case'0': ch1='n';break; default: printf("\n\t\t***請注意:輸入有誤!***"); } if(ch2!='0') { printf("\n\n\t\t按【Enter】鍵繼續(xù),按任意鍵返回主菜單!\n"); a=getchar(); if(a!='\xA') { getchar(); ch1='n'; } } } } BT *CreateTree() { BT *t; char x; scanf("%c",&x); getchar(); if(x=='0') t=NULL; else { t=new BT; t->data=x; printf("\n\t\t請輸入%c結(jié)點(diǎn)的左子結(jié)點(diǎn):",t->data); t->lchild=CreateTree(); printf("\n\t\t請輸入%c結(jié)點(diǎn)的右子結(jié)點(diǎn):",t->data); t->rchild=CreateTree(); } return t; } void Preorder(BT *T) { if(T) { printf("%3c",T->data); Preorder(T->lchild); Preorder(T->rchild); } } void Inorder(BT *T) { if(T) { Inorder(T->lchild); printf("%3c",T->data); Inorder(T->rchild); } } void Postorder(BT *T) { if(T) { Postorder(T->lchild); Postorder(T->rchild); printf("%3c",T->data); } } void Leafnum(BT *T) { if(T) { if(T->lchild==NULL&&T->rchild==NULL) count++; Leafnum(T->lchild); Leafnum(T->rchild); } } void Nodenum(BT *T) { if(T) { count++; Nodenum(T->lchild); Nodenum(T->rchild); } } int TreeDepth(BT *T) { int ldep,rdep; if(T==NULL) return 0; else { ldep=TreeDepth(T->lchild); rdep=TreeDepth(T->rchild); if(ldep>rdep) return ldep+1; else return rdep+1; } }
上傳時(shí)間: 2020-06-11
上傳用戶:ccccy
漏電感在開關(guān)電源主回路中一定存在,尤其在變壓器、電感器等中都是不可避免的。過去在討論中一般把它略而不計(jì),設(shè)計(jì)中更無從考慮。現(xiàn)在隨著開關(guān)電源的單機(jī)容量和整機(jī)容量的日益提高,這個(gè)參數(shù)影響到開關(guān)電源主要的參數(shù),例如,40A/5V輸出的開關(guān)電源,電壓損失竟達(dá)20%,還影響到開關(guān)電源的重量和效率。因此,漏電感問題討論、研究已擺到日程上了。加上脈沖電壓VS(t)到變壓器線圈就產(chǎn)生電流,沿著鐵心磁徑產(chǎn)生閉合的主磁通Φ(t)和部分路徑在鐵心附近的空氣中閉合的漏磁通Φσ(t)。Φ(t)和Φσ(t)將在線圈分別產(chǎn)生感應(yīng)電動(dòng)勢e(t)和eσ(t),兩者之和加上電阻壓降與外加電壓相平衡,遵從KVL方程。過去,一般書刊略去eσ(t), KVL方程簡化為Vs(t)=Δt 。
標(biāo)簽: 漏電 開關(guān)電源
上傳時(shí)間: 2021-11-23
上傳用戶:trh505
FOC的控制核心——坐標(biāo)變換■坐標(biāo)系口一定子坐標(biāo)系(靜止)一A-B-C坐標(biāo)系(三相定子繞組、相差120度)一a-β坐標(biāo)系(直角坐標(biāo)系:a軸與A軸重合、β軸超前a軸90度)口一轉(zhuǎn)子坐標(biāo)系(旋轉(zhuǎn))-d-q坐標(biāo)系(d軸一轉(zhuǎn)子磁極的軸線、q軸超前d軸90度)口一定向坐標(biāo)系(旋轉(zhuǎn))M-T坐標(biāo)系(M軸固定在定向的磁鏈?zhǔn)噶可希琓軸超前M軸90度)轉(zhuǎn)子磁場定向控制一-M-T坐標(biāo)系與d-q坐標(biāo)系重合FOC的控制核心——SVPWM■空間矢量口根據(jù)功率管的開關(guān)狀態(tài)(上管導(dǎo)通是“1",關(guān)閉是“0")定義了8個(gè)空間矢量。其中000和111是零矢量。■扇區(qū)口空間矢量構(gòu)成6個(gè)扇區(qū)口確定Vref位于哪個(gè)扇區(qū),才能知道用哪對相鄰的基本電壓空間矢量去合成Vref。■參考電壓矢量合成口利用基本電壓空間矢量的線性時(shí)間組合得到定子參考電壓Vref。■七段式SVPWM,由3段零矢量和4段相鄰的兩個(gè)非零矢量組成。3段零矢量分別位于PWM的開始、中間和結(jié)尾。■非零電壓空間矢量能使電機(jī)磁通空間矢量產(chǎn)生運(yùn)動(dòng),而零電壓空間矢量使磁通空間矢量靜止
標(biāo)簽: foc
上傳時(shí)間: 2022-06-30
上傳用戶:qdxqdxqdxqdx
有限期作業(yè)安排問題”描述如下:有n個(gè)任務(wù)J1,J2,...,Jn,每個(gè)任務(wù)Ji都有一個(gè)完成期限di,若任務(wù)Ji在它的期限di內(nèi)完成,則可以獲利Ci(1[i[n) 問如何安排使得總的收益最大(假設(shè)完成每一個(gè)任務(wù)所需時(shí)間均為一個(gè)單位時(shí)間).這個(gè)問題適合用貪心算法來解決,貪心算法的出發(fā)點(diǎn)是每一次都選擇利潤大的任務(wù)來完成以期得到最多的收益 但是對于本問題由于每一個(gè)任務(wù)都有一個(gè)完成的期限,因此在任務(wù)安排過程中除了考慮利潤C(jī)i外,還要考慮期限di.
上傳時(shí)間: 2016-06-27
上傳用戶:s363994250
摘 要:根據(jù)HFC網(wǎng)絡(luò)上行信道的特性,建立了信道模型 分析了上行信道中存在的各種噪聲對QPSK 調(diào)制技術(shù)的影響。結(jié)果表明在C /N (傳輸信道載噪比)較低的情況下,采用QPSK調(diào)制方式,可以提高系 統(tǒng)的抗干擾能力。 關(guān)鍵詞: QPSK 光纖同軸電纜混合網(wǎng) 上行信道 噪聲
上傳時(shí)間: 2017-06-15
上傳用戶:hn891122
目前在單片機(jī)的教學(xué)過程中,Labcenter Electronics 推出的 EDA 軟件 Proteus(普羅特斯)已越來越\r\n受到重視,并被提倡應(yīng)用于單片機(jī)數(shù)字實(shí)驗(yàn)室的構(gòu)建之中。Proteus 是一款功能較為全面的電子設(shè)計(jì)自動(dòng)\r\n化軟件,它不但可用于 PCB 設(shè)計(jì)以及模擬和數(shù)字電路仿真分析,還可應(yīng)用于單片機(jī)及其外圍電路的仿\r\n真,支持的微處理器芯片(Microprocessors ICs)包括 8051 系列、AVR 系列、PIC 系列、HC11 系列、\r\nARM7/LPC2000 系
上傳時(shí)間: 2013-08-27
上傳用戶:源弋弋
8051工作于11.0592MHZ,RAM擴(kuò)展為128KB的628128,FlashRom擴(kuò)展為128KB的AT29C010A\r\n 128KB的RAM分成4個(gè)區(qū)(Bank) 地址分配為0x0000-0x7FFF\r\n 128KB的FlashRom分成8個(gè)區(qū)(Bank) 地址分配為0x8000-0xBFFF\r\n 為了使8051能訪問整個(gè)128KB的RAM空間和128KB的FlashRom空間,在CPLD內(nèi)建兩個(gè)寄存器\r\n RamBankReg和FlashRomBankReg用于存放高位地址
標(biāo)簽: 128 FlashRom 8051 KB
上傳時(shí)間: 2013-08-30
上傳用戶:cainaifa
STC12系列單片機(jī)與PC機(jī)在數(shù)據(jù)采集系
標(biāo)簽: STC 12 PC機(jī) 單片機(jī)
上傳時(shí)間: 2013-11-03
上傳用戶:shirleyYim
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1