希爾排序算法: 基本思想:將整個無序序列分割成若干小的子序列分別進(jìn)行插入排序。 序列分割方法:將相隔某個增量h的元素構(gòu)成一個子序列。在排序過程中,逐次減小這個增量,最后當(dāng)h減到1時,進(jìn)行一次插入排序,排序就完成。增量序列一般采用:ht=2t-1,1≤t≤[log2n],其中n為待排序序列的長度。
上傳時間: 2013-12-19
上傳用戶:kikye
learningMatlab PhÇ n 1 c¬ së Mat lab Ch ¬ ng 1: Cµ i ® Æ t matlab 1.1.Cµ i ® Æ t ch ¬ ng tr×nh: Qui tr×nh cµ i ® Æ t Matlab còng t ¬ ng tù nh viÖ c cµ i ® Æ t c¸ c ch ¬ ng tr×nh phÇ n mÒ m kh¸ c, chØ cÇ n theo c¸ c h íng dÉ n vµ bæ xung thª m c¸ c th« ng sè cho phï hî p. 1.1.1 Khë i ® éng windows. 1.1.2 Do ch ¬ ng tr×nh ® î c cÊ u h×nh theo Autorun nª n khi g¾ n dÜ a CD vµ o æ ® Ü a th× ch ¬ ng tr×nh tù ho¹ t ® éng, cö a sæ
標(biāo)簽: learningMatlab 172 199 173
上傳時間: 2013-12-20
上傳用戶:lanwei
metricmatlab ch ¬ ng 4 Ma trË n - c¸ c phÐ p to¸ n vÒ ma trË n. 4.1 Kh¸ i niÖ m: - Trong MATLAB d÷ liÖ u ® Ó ® a vµ o xö lý d íi d¹ ng ma trË n. - Ma trË n A cã n hµ ng, m cét ® î c gä i lµ ma trË n cì n m. § î c ký hiÖ u An m - PhÇ n tö aij cñ a ma trË n An m lµ phÇ n tö n» m ë hµ ng thø i, cét j . - Ma trË n ® ¬ n ( sè ® ¬ n lÎ ) lµ ma trË n 1 hµ ng 1 cét. - Ma trË n hµ ng ( 1 m ) sè liÖ u ® î c bè trÝ trª n mét hµ ng. a11 a12 a13 ... a1m - Ma trË n cét ( n 1) sè liÖ u ® î c bè trÝ trª n 1 cét.
標(biāo)簽: metricmatlab 203 184 tr
上傳時間: 2017-07-29
上傳用戶:來茴
#include <malloc.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #define NULL 0 #define MaxSize 30 typedef struct athletestruct /*運動員*/ { char name[20]; int score; /*分?jǐn)?shù)*/ int range; /**/ int item; /*項目*/ }ATH; typedef struct schoolstruct /*學(xué)校*/ { int count; /*編號*/ 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輸入運動項目序號 (x<=%d):",ntsp); scanf("%d",pafirst); overgame = *pafirst; if ( pafirst != phead ) { for ( pasecond = phead ; pasecond < pafirst ; pasecond ++ ) { if ( overgame == *pasecond ) { printf("\n這個項目已經(jīng)存在請選擇其他的數(shù)字\n"); goto Is_Game_DoMain; } } } pafirst = pafirst + 1; if ( overgame > ntsp ) { printf("\n項目不存在"); 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輸入序號 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)?"); 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號學(xué)校的結(jié)果成績:",pfirst->serial); printf("\n\n項目的數(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運動會結(jié)果:\n\n學(xué)校編號\t男運動員成績\t女運動員成績\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 運動會分?jǐn)?shù)統(tǒng)計\n"); printf("輸入學(xué)校數(shù)目 (x>= 5):"); scanf("%d",&nsc); printf("輸入男選手的項目(x<=20):"); scanf("%d",&msp); printf("輸入女選手項目(<=20):"); scanf("%d",&wsp); ntsp = msp + wsp; phead = (int *)calloc(ntsp,sizeof(int)); pafirst = phead; pasecond = phead; input(); calculate(); output(); Save(); }
標(biāo)簽: 源代碼
上傳時間: 2016-12-28
上傳用戶:150501
產(chǎn)品型號(封裝形式): VK3702DM VK3702TM VK3702OM——(SOP8 ) VK3706OM VK3706OM VK3706DM VK3708BM VK3710IM——(SOP16) 產(chǎn)品品牌:VINTEK/元泰 產(chǎn)品年份:新年份 深圳永嘉微電原廠直銷,大量現(xiàn)貨更有優(yōu)勢!讓您的生產(chǎn)高枕無憂。 聯(lián)系人:許碩 QQ:191 888 5898 TEL:188 9858 2398(微信) ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 產(chǎn)品描述 VK3702DM提供2個觸摸感應(yīng)按鍵,一對一直接輸出,提供低功耗模式,可使用於電池應(yīng)用的產(chǎn)品。對於防水和抗干擾方面有很優(yōu)異的表現(xiàn)。 ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 產(chǎn)品描述 VK3702TM提供 2 個觸摸感應(yīng)按鍵,一對一的 Toggle 模式輸出,提供低功耗模式,可使用於電池應(yīng)用的產(chǎn)品。對於防水和抗干擾方面有很優(yōu)異的表現(xiàn) ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 產(chǎn)品描述 VK3702OM提供 2 個觸摸感應(yīng)按鍵,一對一直接輸出,輸出為開漏(open drain)型態(tài),適合作 AD 鍵。提供低功耗模式,可使用於電池應(yīng)用的產(chǎn)品。對於防水和抗干擾方面有很優(yōu)異的表現(xiàn)。 ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 產(chǎn)品描述 VK3706OM提供6個觸摸感應(yīng)按鍵,一對一直接輸出,輸出為開漏(open drain)型態(tài),適合作AD鍵。提供低功耗模式,可使用於電池應(yīng)用的產(chǎn)品。對於防水和抗干擾方面有很優(yōu)異的表現(xiàn)! ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 產(chǎn)品描述 VK3706DM提供6個觸摸感應(yīng)按鍵,一對一直接輸出,提供低功耗模式,可使用於電池應(yīng)用的產(chǎn)品。對於防水和抗干擾方面有很優(yōu)異的表現(xiàn)! ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 產(chǎn)品描述 VK3708BM提供8個觸摸感應(yīng)按鍵,二進(jìn)制(BCD)編碼輸出,具有一個按鍵承認(rèn)輸出的顯示,按鍵後的資料會維持到下次按鍵,可先判斷按鍵承認(rèn)的狀態(tài)。提供低功耗模式,可使用於電池應(yīng)用的產(chǎn)品。對於防水和抗干擾方面有很優(yōu)異的表現(xiàn)! ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 產(chǎn)品描述 VK3710IM提供10個觸摸感應(yīng)按鍵及兩線式串列界面,並有中斷輸出INT腳與MCU聯(lián)繫。提供低功耗模式,可使用於電池應(yīng)用的產(chǎn)品。特性上對於防水和抗干擾方面有很優(yōu)異的表現(xiàn)! 我們的優(yōu)勢 1:我司為VINTEK/臺灣元泰半導(dǎo)體股份有限公司/VINKA的授權(quán)大中華區(qū)代理商,產(chǎn)品渠道正宗,確保原裝,大量庫存現(xiàn)貨! 2:公司工程力量雄厚,真誠技術(shù)服務(wù)支持,搭配原廠服務(wù)各種應(yīng)用產(chǎn)品客戶。 3:好價格源自連接原廠直銷,你有量,我有價,確保原裝的好價格。 優(yōu)勢代理元泰VKD常用觸控按鍵IC,簡介如下: 標(biāo)準(zhǔn)觸控IC-電池供電系列 VKD223EB --- 工作電壓/電流:2.0V-5.5V/5uA-3V 感應(yīng)通道數(shù):1 通訊接口 更長響應(yīng)時間快速模式60mS,低功耗模式220ms 封裝:SOT23-6 VKD223B --- 工作電壓/電流:2.0V-5.5V/5uA-3V 感應(yīng)通道數(shù):1 通訊接口 更長響應(yīng)時間快速模式60mS,低功耗模式220ms 封裝:SOT23-6 VKD232C --- 工作電壓/電流: 2.4V-5.5V/2.5uA-3V 感應(yīng)通道數(shù):2封裝:SOT23-6 通訊接口:直接輸出,低電平有效 固定為多鍵輸出模式,內(nèi)建穩(wěn)壓電路 VKD233DH(更小體積2*2)---工作電壓/電流: 2.4V-5.5V/2.5uA-3V 1按鍵 封裝:DFN6L 通訊接口:直接輸出,鎖存(toggle)輸出 有效鍵更長時間檢測16S VKD233DB(推薦) --- 工作電壓/電流: 2.4V-5.5V/2.5uA-3V 1感應(yīng)按鍵 封裝:SOT23-6 通訊接口:直接輸出,鎖存(toggle)輸出 低功耗模式電流2.5uA-3V VKD233DH(推薦)---工作電壓/電流: 2.4V-5.5V/2.5uA-3V 1感應(yīng)按鍵 封裝:SOT23-6 通訊接口:直接輸出,鎖存(toggle)輸出 有效鍵更長時間檢測16S 標(biāo)準(zhǔn)觸控IC-多鍵觸摸按鈕系列 VKD104SB/N --- 工作電壓/電流:2.4V-5.5V/13uA-3V 感應(yīng)通道數(shù)/按鍵數(shù):4 通訊接口:直接輸出,鎖存輸出,開漏輸出 封裝:SSOP-16 VKD104BC --- 工作電壓/電流:2.4V-5.5V/13uA-3V 感應(yīng)通道數(shù)/按鍵數(shù):4 通訊接口:直接輸出,鎖存輸出,開漏輸出 封裝:SOP-16 VKD104BR --- 工作電壓/電流:2.4V-5.5V/13uA-3V 感應(yīng)通道數(shù)/按鍵數(shù):2 通訊接口:直接輸出, toggle輸出 封裝:SOP-8 VKD104QB --- 工作電壓/電流:2.4V-5.5V/13uA-3V 感應(yīng)通道數(shù)/按鍵數(shù):4 通訊接口:直接輸出,鎖存輸出,開漏輸出 封裝:QFN-16 VKD1016B --- 工作電壓/電流:2.4V-5.5V/20uA-3V 感應(yīng)通道數(shù)/按鍵數(shù):16-8 通訊接口:直接輸出,鎖存輸出,開漏輸出 封裝:SSOP-28 VKD1016L --- 工作電壓/電流:2.4V-5.5V/20uA-3V 感應(yīng)通道數(shù):16-8 通訊接口:直接輸出,鎖存輸出,開漏輸出 封裝:SSOP-28 (元泰原廠授權(quán) 原裝保障 工程技術(shù)支持 大量現(xiàn)貨庫存) 標(biāo)準(zhǔn)觸控IC-VK36系列 VK3601SS --- 工作電壓/電流:2.4V-5.5V/1mA-5.0V 感應(yīng)通道數(shù):1 通訊接口:1 INPUT/1PWM OUT 封裝:SOP-8 VK3601S --- 工作電壓/電流:2.4V-5.5V/4mA-3.3V 感應(yīng)通道數(shù):1 通訊接口:1 INPUT/1PWM OUT 封裝:SOP-8 VK3602XS --- 工作電壓/電流:2.4V-5.5V/ 60uA-3V 感應(yīng)通道數(shù):2 通訊接口:2對2 toggle輸出 封裝:SOP-8 VK3602K --- 工作電壓/電流:2.4V-5.5V/ 60uA-3V 感應(yīng)通道數(shù):2 通訊接口:2對2 toggle輸出 封裝:SOP-8 VK3606DM --- 工作電壓/電流:3.1V-5.5V/ 3mA-5V 感應(yīng)通道數(shù):6 通訊接口:1對1直接輸出 封裝:SOP-16 VK3606OM --- 工作電壓/電流:3.1V-5.5V/ 3mA-5V 感應(yīng)通道數(shù):6 通訊接口:1對1開漏輸出 封裝:SOP-16 VK3608BM --- 工作電壓/電流:3.1V-5.5V/ 3mA-5V 感應(yīng)通道數(shù):6 通訊接口:BCD碼直接輸出 封裝:SOP-16 VK3610IM --- 工作電壓/電流:3.1V-5.5V/ 3mA-5V 感應(yīng)通道數(shù):6 通訊接口:SCL/SDA/INT通訊口 封裝:SOP-16 標(biāo)準(zhǔn)觸控IC-VK37系列 VK3702DM --- 工作電壓/電流:3.1V-5.5V/ 3mA-5V 感應(yīng)通道數(shù):2 通訊接口:1對1直接輸出 封裝:SOP-8 VK3702OM --- 工作電壓/電流:3.1V-5.5V/ 3mA-5V 感應(yīng)通道數(shù):2 通訊接口:1對1開漏輸出 封裝:SOP-8 VK3702TM --- 工作電壓/電流:3.1V-5.5V/ 3mA-5V 感應(yīng)通道數(shù):2 通訊接口:1對1toggle輸出 封裝:SOP-8 VK3706DM --- 工作電壓/電流:3.1V-5.5V/ 3mA-5V 感應(yīng)通道數(shù):6 通訊接口:1對1直接輸出 封裝:SOP-16 VK3706OM --- 工作電壓/電流:3.1V-5.5V/ 3mA-5V 感應(yīng)通道數(shù):6 通訊接口:1對1開漏輸出 封裝:SOP-16 VK3708BM --- 工作電壓/電流:3.1V-5.5V/ 3mA-5V 感應(yīng)通道數(shù):8 通訊接口:BCD碼直接輸出 封裝:SOP-16 VK3710IM --- 工作電壓/電流:3.1V-5.5V/ 3mA-5V 感應(yīng)通道數(shù):10 通訊接口:SCL/SDA/INT通訊口 封裝:SOP-16 標(biāo)準(zhǔn)觸控IC-VK38系列 VK3809IP --- 工作電壓/電流:2.5V-5.5V/1.1mA-3V 感應(yīng)通道數(shù):9 通訊接口:IIC/INT通訊口 封裝:SSOP-16 VK3813IP --- 工作電壓/電流:2.5V-5.5V/1.1mA-3V 感應(yīng)通道數(shù):13 通訊接口:IIC/INT通訊口 封裝:SSOP-20 VK3816IP --- 工作電壓/電流:2.5V-5.5V/1.1mA-3V 感應(yīng)通道數(shù):16 通訊接口:IIC/INT通訊口 封裝:SSOP-28 VK3816IP-A --- 工作電壓/電流:2.5V-5.5V/1.1mA-3V 感應(yīng)通道數(shù):16 通訊接口:IIC/INT通訊口 封裝:SSOP-28 以上介紹內(nèi)容為IC參數(shù)簡介,難免有錯漏,且相關(guān)IC型號眾多,未能一一收錄。歡迎聯(lián)系索取完整資料及樣品! 生意無論大小,做人首重誠信!本公司全體員工將既往開來,再接再厲。爭取為各位帶來更專業(yè)的技術(shù)支持,更優(yōu)質(zhì)的銷售服務(wù),更高性價比的好產(chǎn)品.竭誠希望能與各位客戶朋友深入溝通,攜手共進(jìn),共同成長,合作共贏!謝謝。
標(biāo)簽: VK 3708 3710 BM IM 多按鍵 抗干擾 防水 操作 觸控
上傳時間: 2019-07-10
上傳用戶:szqxw1688
#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é)點數(shù) "); printf("\n\t\t 7---------求樹深度 "); printf("\n\t\t 0---------返 回 "); printf("\n\t\t*****************************************"); printf("\n\t\t 請選擇菜單號 (0--7)"); scanf("%c",&ch2); getchar(); printf("\n"); switch(ch2) { case'1': printf("\n\t\t請按先序序列輸入二叉樹的結(jié)點:\n"); printf("\n\t\t說明:輸入結(jié)點(‘0’代表后繼結(jié)點為空)后按回車。\n"); printf("\n\t\t請輸入根結(jié)點:"); 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個葉子。\n",count);break; case'6': count=0;Nodenum(T); printf("\n\t\t該二叉樹總共有%d個結(jié)點。\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é)點的左子結(jié)點:",t->data); t->lchild=CreateTree(); printf("\n\t\t請輸入%c結(jié)點的右子結(jié)點:",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; } }
上傳時間: 2020-06-11
上傳用戶:ccccy
#include <stdio.h> #include <stdlib.h> #define SMAX 100 typedef struct SPNode { int i,j,v; }SPNode; struct sparmatrix { int rows,cols,terms; SPNode data [SMAX]; }; sparmatrix CreateSparmatrix() { sparmatrix A; printf("\n\t\t請輸入稀疏矩陣的行數(shù),列數(shù)和非零元素個數(shù)(用逗號隔開):"); scanf("%d,%d,%d",&A.cols,&A.terms); for(int n=0;n<=A.terms-1;n++) { printf("\n\t\t輸入非零元素值(格式:行號,列號,值):"); scanf("%d,%d,%d",&A.data[n].i,&A.data[n].j,&A.data[n].v); } return A; } void ShowSparmatrix(sparmatrix A) { int k; printf("\n\t\t"); for(int x=0;x<=A.rows-1;x++) { for(int y=0;y<=A.cols-1;y++) { k=0; for(int n=0;n<=A.terms-1;n++) { if((A.data[n].i-1==x)&&(A.data[n].j-1==y)) { printf("%8d",A.data[n].v); k=1; } } if(k==0) printf("%8d",k); } printf("\n\t\t"); } } void sumsparmatrix(sparmatrix A) { SPNode *p; p=(SPNode*)malloc(sizeof(SPNode)); p->v=0; int k; k=0; printf("\n\t\t"); for(int x=0;x<=A.rows-1;x++) { for(int y=0;y<=A.cols-1;y++) { for(int n=0;n<=A.terms;n++) { if((A.data[n].i==x)&&(A.data[n].j==y)&&(x==y)) { p->v=p->v+A.data[n].v; k=1; } } } printf("\n\t\t"); } if(k==1) printf("\n\t\t對角線元素的和::%d\n",p->v); else printf("\n\t\t對角線元素的和為::0"); } int main() { int ch=1,choice; struct sparmatrix A; A.terms=0; while(ch) { printf("\n"); printf("\n\t\t 稀疏矩陣的三元組系統(tǒng) "); printf("\n\t\t*********************************"); printf("\n\t\t 1------------創(chuàng)建 "); printf("\n\t\t 2------------顯示 "); printf("\n\t\t 3------------求對角線元素和"); printf("\n\t\t 4------------返回 "); printf("\n\t\t*********************************"); printf("\n\t\t請選擇菜單號(0-3):"); scanf("%d",&choice); switch(choice) { case 1: A=CreateSparmatrix(); break; case 2: ShowSparmatrix(A); break; case 3: SumSparmatrix(A); break; default: system("cls"); printf("\n\t\t輸入錯誤!請重新輸入!\n"); break; } if (choice==1||choice==2||choice==3) { printf("\n\t\t"); system("pause"); system("cls"); } else system("cls"); } }
上傳時間: 2020-06-11
上傳用戶:ccccy
程序功能說明:1、通過STM32的硬件I2C讀寫控制BH1750光照度傳感器模塊測量環(huán)境光照強(qiáng)度。2、程序通過串口打印輸出光照強(qiáng)度值。3、程序?qū)⒐庹諒?qiáng)度值在LCD屏上顯示。程序注意事項:1、根據(jù)BH1750傳感器手冊可知,在One Time H-Resolution Mode2測量模式下測量光照強(qiáng)度大于會要120ms以上的測量時間,所以程序在發(fā)送測量命令以后應(yīng)該盡量延時120ms以上,否則測量出來的數(shù)據(jù)不準(zhǔn)確。2、在兩次測量之間最好加個延時,也就是在第一次測量結(jié)束和下次測量命令發(fā)出之間加個100ms左右的延時,否則也會出現(xiàn)測量錯誤的問題。3、在使用FSMC驅(qū)動LCD時不能用I2C1,只能用I2C2,或者將I2C1的時鐘和引腳重映射。4、測量結(jié)果保存在兩個字節(jié)中的,所以需要作移位處理,具體處理方式可以產(chǎn)考手冊和程序。
上傳時間: 2022-06-15
上傳用戶:jason_vip1
IGBT直流斬波電路的設(shè)計1設(shè)計原理分析1.1總體結(jié)構(gòu)分析直流斬波電路的功能是將直流電變?yōu)榱硪还潭妷夯蚩烧{(diào)電壓的直流電。它在電源的設(shè)計上有很重要的應(yīng)用。一般來說,斬波電路的實現(xiàn)都要依靠全控型器件。在這里,我所設(shè)計的是基于IGBT的降壓斬波短路。直流降壓斬波電路主要分為三個部分,分別為主電路模塊,控制電路模塊和驅(qū)動電路模塊。電路的結(jié)構(gòu)框圖如下圖(圖1)所示。除了上述主要結(jié)構(gòu)之外,還必須考慮電路中電力電子器件的保護(hù),以及控制電路與主電路的電器隔離。1.2主電路的設(shè)計主電路是整個斬波電路的核心,降壓過程就由此模塊完成。其原理圖如圖2所示。如圖,IGBT在控制信號的作用下開通與關(guān)斷。開通時,二極管截止,電流io流過大電感L,電源給電感充電,同時為負(fù)載供電。而IGBT截止時,電感L開始放電為負(fù)載供電,二極管VD導(dǎo)通,形成回路。IGBT以這種方式不斷重復(fù)開通和關(guān)斷,而電感L足夠大,使得負(fù)載電流連續(xù),而電壓斷續(xù)。從總體上看,輸出電壓的平均值減小了。輸出電壓與輸入電壓之比a由控制信號的占空比來決定。這也就是降壓斬波電路的工作原理。降壓斬波的典型波形如下圖所示。
上傳時間: 2022-06-20
上傳用戶:
摘要:商用無人機(jī)云臺是立足于無人機(jī)高空操控優(yōu)勢,通過無線遙控來進(jìn)行航空攝影、系統(tǒng)立體測繪地面圖像或者準(zhǔn)確操控附帶設(shè)備的驅(qū)動裝置,主要功能是利用高精度電機(jī)控制,實現(xiàn)攝像設(shè)備對X,Y,2三維空間的精準(zhǔn)角度控制,以達(dá)到精確控制設(shè)備操作角度的效果。云臺系統(tǒng)的控制精度對這個無人機(jī)的攝像性能及操控效果有著至關(guān)重要的作用。目前在云臺控制算法上比較先進(jìn)的控制算法都本掌握在國內(nèi)領(lǐng)先的幾家廠家手上,大部分云臺設(shè)計都沿用了傳統(tǒng)的直流有刷電機(jī)的控制或者120°BLDC控制,在防抖效果及控制精度上都有需要改進(jìn)的地方,通過對產(chǎn)品的分析將FOC算法融入云臺控制,將有助于達(dá)到提升防抖效果及控制精度的效果,尤其是將磁編碼器替換傳統(tǒng)的電位器設(shè)計,可以在控制精度,提高使用壽命,降低噪聲,減少生產(chǎn)難度等方便帶來極大優(yōu)勢。關(guān)鍵字:無人機(jī)云臺PISMFOC控制算法磁編碼器正文:引言:云臺控制的核心主要分為兩大部分:電機(jī)控制和角度控制,電機(jī)控制的關(guān)鍵包括MCU編程及功率器件的控制,角度控制則包括編碼器的結(jié)構(gòu)安裝設(shè)計及控制等。將FOC控制及磁編應(yīng)用穩(wěn)定運用到無人機(jī)云臺控制系統(tǒng)中,有助于提高電機(jī)控制精度,減低系統(tǒng)噪聲,降低功耗,減少飛行控制主系統(tǒng)的運算開銷,提高產(chǎn)品工作壽命等作用,從而提升無人機(jī)整體性能。
標(biāo)簽: 帶磁編碼器 無人機(jī) foc 云臺控制器
上傳時間: 2022-06-30
上傳用戶:
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1