自動控制原理習(xí)題及答案.doc
上傳時間: 2016-08-01
上傳用戶:qaz1008611
#include <iostream> #include <stdio.head> #include <stdlib.head> #include <string.head> #define ElemType int #define max 100 using namespace std; typedef struct node1 { ElemType data; struct node1 *next; }Node1,*LinkList;//鏈棧 typedef struct { ElemType *base; int top; }SqStack;//順序棧 typedef struct node2 { ElemType data; struct node2 *next; }Node2,*LinkQueue; typedef struct node22 { LinkQueue front; LinkQueue rear; }*LinkList;//鏈隊列 typedef struct { ElemType *base; int front,rear; }SqQueue;//順序隊列 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 //1.采用鏈?zhǔn)酱鎯崿F(xiàn)棧的初始化、入棧、出棧操作。 LinkList CreateStack()//創(chuàng)建棧 { LinkList top; top=NULL; return top; } bool StackEmpty(LinkList s)//判斷棧是否為空,0代表空 { if(s==NULL) return 0; else return 1; } LinkList Pushead(LinkList s,int x)//入棧 { LinkList q,top=s; q=(LinkList)malloc(sizeof(Node1)); q->data=x; q->next=top; top=q; return top; } LinkList Pop(LinkList s,int &e)//出棧 { if(!StackEmpty(s)) { printf("棧為空。"); } else { e=s->data; LinkList p=s; s=s->next; free(p); } return s; } void DisplayStack(LinkList s)//遍歷輸出棧中元素 { if(!StackEmpty(s)) printf("棧為空。"); else { wheadile(s!=NULL) { cout<<s->data<<" "; s=s->next; } cout<<endl; } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 //2.采用順序存儲實現(xiàn)棧的初始化、入棧、出棧操作。 int StackEmpty(int t)//判斷棧S是否為空 { SqStack.top=t; if (SqStack.top==0) return 0; else return 1; } int InitStack() { SqStack.top=0; return SqStack.top; } int pushead(int t,int e) { SqStack.top=t; SqStack.base[++SqStack.top]=e; return SqStack.top; } int pop(int t,int *e)//出棧 { SqStack.top=t; if(!StackEmpty(SqStack.top)) { printf("棧為空."); return SqStack.top; } *e=SqStack.base[s.top]; SqStack.top--; return SqStack.top; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 //3.采用鏈?zhǔn)酱鎯崿F(xiàn)隊列的初始化、入隊、出隊操作。 LinkList InitQueue()//創(chuàng)建 { LinkList head; head->rear=(LinkQueue)malloc(sizeof(Node)); head->front=head->rear; head->front->next=NULL; return head; } void deleteEle(LinkList head,int &e)//出隊 { LinkQueue p; p=head->front->next; e=p->data; head->front->next=p->next; if(head->rear==p) head->rear=head->front; free(p); } void EnQueue(LinkList head,int e)//入隊 { LinkQueue p=(LinkQueue)malloc(sizeof(Node)); p->data=e; p->next=NULL; head->rear->next=p; head->rear=p; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 //4.采用順序存儲實現(xiàn)循環(huán)隊列的初始化、入隊、出隊操作。 bool InitQueue(SqQueue &head)//創(chuàng)建隊列 { head.data=(int *)malloc(sizeof(int)); head.front=head.rear=0; return 1; } bool EnQueue(SqQueue &head,int e)//入隊 { if((head.rear+1)%MAXQSIZE==head.front) { printf("隊列已滿\n"); return 0; } head.data[head.rear]=e; head.rear=(head.rear+1)%MAXQSIZE; return 1; } int QueueLengthead(SqQueue &head)//返回隊列長度 { return (head.rear-head.front+MAXQSIZE)%MAXQSIZE; } bool deleteEle(SqQueue &head,int &e)//出隊 { if(head.front==head.rear) { cout<<"隊列為空!"<<endl; return 0; } e=head.data[head.front]; head.front=(head.front+1)%MAXQSIZE; return 1; } int gethead(SqQueue head)//得到隊列頭元素 { return head.data[head.front]; } int QueueEmpty(SqQueue head)//判斷隊列是否為空 { if (head.front==head.rear) return 1; else return 0; } void travelQueue(SqQueue head)//遍歷輸出 { wheadile(head.front!=head.rear) { printf("%d ",head.data[head.front]); head.front=(head.front+1)%MAXQSIZE; } cout<<endl; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 //5.在主函數(shù)中設(shè)計一個簡單的菜單,分別測試上述算法。 int main() { LinkList top=CreateStack(); int x; wheadile(scanf("%d",&x)!=-1) { top=Pushead(top,x); } int e; wheadile(StackEmpty(top)) { top=Pop(top,e); printf("%d ",e); }//以上是鏈棧的測試 int top=InitStack(); int x; wheadile(cin>>x) top=pushead(top,x); int e; wheadile(StackEmpty(top)) { top=pop(top,&e); printf("%d ",e); }//以上是順序棧的測試 LinkList Q; Q=InitQueue(); int x; wheadile(scanf("%d",&x)!=-1) { EnQueue(Q,x); } int e; wheadile(Q) { deleteEle(Q,e); printf("%d ",e); }//以上是鏈隊列的測試 SqQueue Q1; InitQueue(Q1); int x; wheadile(scanf("%d",&x)!=-1) { EnQueue(Q1,x); } int e; wheadile(QueueEmpty(Q1)) { deleteEle(Q1,e); printf("%d ",e); } return 0; }
標(biāo)簽: 數(shù)據(jù)結(jié)構(gòu) 實驗
上傳時間: 2018-05-09
上傳用戶:123456..
這是用C語言寫的結(jié)合TC圖形庫寫出來的貪吃蛇,大家可以從中學(xué)習(xí)學(xué)習(xí)~~~ 運行時別忘了修改初始化圖形的地址:initgraph(&driver,&mode,address); 比如說我的 address=D:\Win-TC\projects, 因為要有EGAVGA.BGI圖形文件支持才能正常運行
上傳時間: 2013-06-10
上傳用戶:zgu489
果園收獲作業(yè)機械化、自動化是廣大果農(nóng)們關(guān)注的熱點問題,開展果樹采摘機器人研究,不僅對于適應(yīng)市場需求、降低勞動強度、提高經(jīng)濟效率有著一定的現(xiàn)實意義,而且對于跟蹤世界農(nóng)業(yè)新技術(shù)、促進我國農(nóng)業(yè)科技進步,加速農(nóng)業(yè)現(xiàn)代化進程有著重大的歷史意義。 果樹采摘機器人是一個集環(huán)境感知、動態(tài)決策與規(guī)劃、行為控制與執(zhí)行等多種功能于一體的綜合系統(tǒng),它是由機械手固定在履帶式移動平臺上構(gòu)成的一類特殊的移動機器人系統(tǒng)。本文在國家“863”高技術(shù)項目“果樹采摘機器人關(guān)鍵技術(shù)研究”支持下,以自行設(shè)計的機器人機械結(jié)構(gòu)為研究對象,對果樹采摘機器人的控制系統(tǒng)進行了分析、研究和設(shè)計,設(shè)計了視覺伺服控制器,并對采摘機器人避障技術(shù)進行了探討。主要工作如下: 首先,分析了果樹采摘機器人機械結(jié)構(gòu),介紹了機器人運動學(xué)理論,根據(jù)自行設(shè)計的5自由度機械臂機械特性,采用幾何結(jié)構(gòu)算法,建立了果樹采摘機器人機械臂的正、逆運動學(xué)方程。 其次,基于開放、先進和可靠的考慮,采用開放式結(jié)構(gòu)設(shè)計機器人的控制系統(tǒng)。在開放式控制系統(tǒng)設(shè)計中,主要對果樹采摘機器人硬件組成部分主控計算機、運動控制器、數(shù)據(jù)采集卡等進行了選型設(shè)計。在分析果樹采摘機器人工作環(huán)境和工作特性的基礎(chǔ)上,設(shè)計了果樹采摘機器人的外圍傳感器。 再次,根據(jù)果樹采摘機器人機械結(jié)構(gòu)和控制系統(tǒng)結(jié)構(gòu)組成,設(shè)計了PID控制器,應(yīng)用于機器人視覺伺服控制,實現(xiàn)果樹采摘機器人的實時控制。在詳細論述關(guān)節(jié)式機器人避障方法的基礎(chǔ)上,對果樹采摘機器人避障方法進行了初步的探討,提出了采用C—空間法實現(xiàn)采摘機器人實時避障。 最后,建立了傳感器實驗平臺,通過實驗驗證了所設(shè)計傳感器的正確性。利用固高PAN&TILT兩維數(shù)控轉(zhuǎn)臺和實地拍攝的蘋果圖像,對所提出的控制方法通過轉(zhuǎn)臺控制實驗進行了驗證。
上傳時間: 2013-08-05
上傳用戶:liuxiaojie
C程序設(shè)計語言(第2版·新版)非掃描版&詳細書簽版.pdfC程序設(shè)計語言(第2版·新版)非掃描版&詳細書簽版.pdf
標(biāo)簽: C程序設(shè)計 語言
上傳時間: 2013-04-24
上傳用戶:busterman
為了讓公司新進人員及經(jīng)銷商伙伴們對交換式電源供應(yīng)器有基本的了解,明緯特別出版了 這本『交換式電源供應(yīng)器技術(shù)手冊』。這是我們編輯小組以明緯 22 年來從事設(shè)計、生產(chǎn)、 銷售交換式電源供應(yīng)器的經(jīng)驗為基礎(chǔ),結(jié)合教科書及安規(guī)文件而編輯出之成果。 此手冊包含電源供應(yīng)器簡介、規(guī)格解釋、安規(guī)、EMC 及 CE 簡介、信賴度、電源供應(yīng)器使 用注意事項、常見技術(shù)問題 Q&A、及簡易故障排除等主題。內(nèi)容著重于事實的描述而非理 論的推導(dǎo),非常適合無電源供應(yīng)器技術(shù)背景的從業(yè)人員研讀,讀者必可在短時間內(nèi)對交換 式電源供應(yīng)器及相關(guān)規(guī)格、應(yīng)用、安規(guī)有概略性的認識。 本手冊緣起于 1996 年 2 月發(fā)行之『交換式電源供應(yīng)器使用手冊』,歷經(jīng)多次修訂再版。而 本版主要加強了圖、表的輔助說明,讓非技術(shù)背景的讀者更容易接納此手冊的內(nèi)容。另外 針對安規(guī)及 EMC 的部分也參考最新規(guī)范予以修訂,整理出更完整的內(nèi)容以利讀者的了解。 最后感謝編輯小組各成員不吝分享自己在技術(shù)、研發(fā)、工程、品保、維修、安規(guī)及 EMC 等 領(lǐng)域的經(jīng)驗,然編輯小組組員均系工程背景人員,在文章撰寫上均并非專業(yè),期望讀者多 予包涵并能不吝指教提供您寶貴的意見,讓本手冊下一版的內(nèi)容更加完整、更有價值。 明緯企業(yè)股份有限公
標(biāo)簽: 明緯 開關(guān)電源 技術(shù)資料
上傳時間: 2013-07-11
上傳用戶:kksuyiwen
共有7個元件庫,如下: NO.1 CMOS&TTL74原理圖元件庫(896個) NO.2 IC集成電路原理圖元件庫(135個) NO.3 jointbar連接器原理圖元件庫(59個) NO.4 photounit光電元件原理圖元件庫(22個) NO.5 電阻電容電感晶振二極管三極管原理圖元件庫(54個) NO.6 others其他原理圖元件庫(42個) NO.7 雜原理圖元件庫(277個)
標(biāo)簽: AltiumDesigner 原理圖 元件庫
上傳時間: 2013-06-27
上傳用戶:lhc9102
調(diào)用方法(加密》解密》加密): unsigned char key1[] = "12345678"; unsigned char key2[] = "abcdefgh"; unsigned char key3[] = "~!@#$%^&"; //如果只需要兩組密鑰,則本組密鑰可以和密鑰1一樣。 unsigned char en_data[] = "龍的子孫"; unsigned char en_out_put[8]; //3DES 加密 des(en_data, key1, en_out_put, DES_ENCRYPT); des(en_out_put, key2, en_data, DES_DECRYPT); des(en_data, key3, en_out_put, DES_ENCRYPT);
上傳時間: 2013-07-10
上傳用戶:Poppy
Op Amp Applications Handbook
標(biāo)簽: 運算放大器 應(yīng)用手冊 英文
上傳時間: 2013-06-08
上傳用戶:哇哇哇哇哇
單電源運放使用指南《A Single-Supply Op-Amp Circuit Collection》
上傳時間: 2013-06-22
上傳用戶:17854267178
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1