一:需求分析 1. 問題描述 魔王總是使用自己的一種非常精練而抽象的語言講話,沒人能聽懂,但他的語言是可逐步解釋成人能聽懂的語言,因?yàn)樗恼Z言是由以下兩種形式的規(guī)則由人的語言逐步抽象上去的: ----------------------------------------------------------- (1) a---> (B1)(B2)....(Bm) (2)[(op1)(p2)...(pn)]---->[o(pn)][o(p(n-1))].....[o(p1)o] ----------------------------------------------------------- 在這兩種形式中,從左到右均表示解釋.試寫一個(gè)魔王語言的解釋系統(tǒng),把 他的話解釋成人能聽得懂的話. 2. 基本要求: 用下述兩條具體規(guī)則和上述規(guī)則形式(2)實(shí)現(xiàn).設(shè)大寫字母表示魔王語言的詞匯 小寫字母表示人的語言的詞匯 希臘字母表示可以用大寫字母或小寫字母代換的變量.魔王語言可含人的詞匯. (1) B --> tAdA (2) A --> sae 3. 測試數(shù)據(jù): B(ehnxgz)B 解釋成 tsaedsaeezegexenehetsaedsae若將小寫字母與漢字建立下表所示的對(duì)應(yīng)關(guān)系,則魔王說的話是:"天上一只鵝地上一只鵝鵝追鵝趕鵝下鵝蛋鵝恨鵝天上一只鵝地上一只鵝". | t | d | s | a | e | z | g | x | n | h | | 天 | 地 | 上 | 一只| 鵝 | 追 | 趕 | 下 | 蛋 | 恨 |
上傳時(shí)間: 2014-12-02
上傳用戶:jkhjkh1982
一 . 需求分析: 1) 輸入形式和輸入值范圍: 輸入形式是要壓縮(或者要解壓)的文件路徑,輸入范圍是字符串,而且要是文件的路徑。 2) 輸出形式: 輸出相應(yīng)的編碼壓縮文件和解碼原文件 3) 程序所能達(dá)到的功能: 利用哈夫曼對(duì)ASCII文件做不等長編碼,達(dá)到壓縮文件。利用哈夫曼樹的遍歷,達(dá)到解壓文件的目的。程序的功能也就是實(shí)現(xiàn)壓縮和解壓ASCII類型文件的目的。 4)測試數(shù)據(jù):(包括正確的輸入數(shù)據(jù)及其輸出結(jié)果和含有錯(cuò)誤輸入及其輸出結(jié)果) 測試輸入或者輸出文本框是不是有空的,是不是不是有效路徑。進(jìn)行條件判斷,實(shí)現(xiàn)錯(cuò)誤處理。 比如要壓縮:c:\a.txt 文件路徑就是:c:\a.txt。如果輸入框是空的,就判斷,然后用MessageBox處理信息。 如果文件路徑和文件的輸出路徑都寫正確的話,就會(huì)輸出相應(yīng)的壓縮或者解壓文件,否則用函數(shù)MessageBox提示錯(cuò)誤。然后進(jìn)行更正。 二 . 概要設(shè)計(jì): 1) 哈夫曼樹的特點(diǎn) a) 是二叉樹的一種,而且是一種沒有度數(shù)是1的二叉樹 b) 一棵樹有n個(gè)葉子,就會(huì)用2n-1個(gè)節(jié)點(diǎn) c) 一種“最優(yōu)”二叉樹,由于樹的帶權(quán)路徑(WPL)最小 d) 由于它是由下到上順序構(gòu)造的,使得分支節(jié)點(diǎn)和葉子節(jié)點(diǎn)從下到上,權(quán)值都是從小到大的順序排列的
上傳時(shí)間: 2013-12-03
上傳用戶:zsjzc
漢諾塔!!! Simulate the movement of the Towers of Hanoi puzzle Bonus is possible for using animation eg. if n = 2 A→B A→C B→C if n = 3 A→C A→B C→B A→C B→A B→C A→C
標(biāo)簽: the animation Simulate movement
上傳時(shí)間: 2017-02-11
上傳用戶:waizhang
實(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("請(qǐng)輸入矩陣第%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("請(qǐng)輸入矩陣的行數(shù) i: "); scanf("%d",&k); 四川大學(xué)實(shí)驗(yàn)報(bào)告 printf("請(qǐng)輸入矩陣的列數(shù) j: "); scanf("%d",&n); warshall(k,n); }
標(biāo)簽: warshall 離散 實(shí)驗(yàn)
上傳時(shí)間: 2016-06-27
上傳用戶:梁雪文以
#include "iostream" using namespace std; class Matrix { private: double** A; //矩陣A double *b; //向量b public: int size; Matrix(int ); ~Matrix(); friend double* Dooli(Matrix& ); void Input(); void Disp(); }; Matrix::Matrix(int x) { size=x; //為向量b分配空間并初始化為0 b=new double [x]; for(int j=0;j<x;j++) b[j]=0; //為向量A分配空間并初始化為0 A=new double* [x]; for(int i=0;i<x;i++) A[i]=new double [x]; for(int m=0;m<x;m++) for(int n=0;n<x;n++) A[m][n]=0; } Matrix::~Matrix() { cout<<"正在析構(gòu)中~~~~"<<endl; delete b; for(int i=0;i<size;i++) delete A[i]; delete A; } void Matrix::Disp() { for(int i=0;i<size;i++) { for(int j=0;j<size;j++) cout<<A[i][j]<<" "; cout<<endl; } } void Matrix::Input() { cout<<"請(qǐng)輸入A:"<<endl; for(int i=0;i<size;i++) for(int j=0;j<size;j++){ cout<<"第"<<i+1<<"行"<<"第"<<j+1<<"列:"<<endl; cin>>A[i][j]; } cout<<"請(qǐng)輸入b:"<<endl; for(int j=0;j<size;j++){ cout<<"第"<<j+1<<"個(gè):"<<endl; cin>>b[j]; } } double* Dooli(Matrix& A) { double *Xn=new double [A.size]; Matrix L(A.size),U(A.size); //分別求得U,L的第一行與第一列 for(int i=0;i<A.size;i++) U.A[0][i]=A.A[0][i]; for(int j=1;j<A.size;j++) L.A[j][0]=A.A[j][0]/U.A[0][0]; //分別求得U,L的第r行,第r列 double temp1=0,temp2=0; for(int r=1;r<A.size;r++){ //U for(int i=r;i<A.size;i++){ for(int k=0;k<r-1;k++) temp1=temp1+L.A[r][k]*U.A[k][i]; U.A[r][i]=A.A[r][i]-temp1; } //L for(int i=r+1;i<A.size;i++){ for(int k=0;k<r-1;k++) temp2=temp2+L.A[i][k]*U.A[k][r]; L.A[i][r]=(A.A[i][r]-temp2)/U.A[r][r]; } } cout<<"計(jì)算U得:"<<endl; U.Disp(); cout<<"計(jì)算L的:"<<endl; L.Disp(); double *Y=new double [A.size]; Y[0]=A.b[0]; for(int i=1;i<A.size;i++ ){ double temp3=0; for(int k=0;k<i-1;k++) temp3=temp3+L.A[i][k]*Y[k]; Y[i]=A.b[i]-temp3; } Xn[A.size-1]=Y[A.size-1]/U.A[A.size-1][A.size-1]; for(int i=A.size-1;i>=0;i--){ double temp4=0; for(int k=i+1;k<A.size;k++) temp4=temp4+U.A[i][k]*Xn[k]; Xn[i]=(Y[i]-temp4)/U.A[i][i]; } return Xn; } int main() { Matrix B(4); B.Input(); double *X; X=Dooli(B); cout<<"~~~~解得:"<<endl; for(int i=0;i<B.size;i++) cout<<"X["<<i<<"]:"<<X[i]<<" "; cout<<endl<<"呵呵呵呵呵"; return 0; }
標(biāo)簽: 道理特分解法
上傳時(shí)間: 2018-05-20
上傳用戶:Aa123456789
PCB聯(lián)盟網(wǎng)-科普知識(shí)--《電子封裝材料與工藝》 學(xué)習(xí)筆記 54頁本人主要從事 IC 封裝化學(xué)材料(電子膠水)工作,為更好的理解 IC 封裝產(chǎn)業(yè)的動(dòng)態(tài)和技術(shù),自學(xué)了《電子封裝材料 與工藝》,貌似一本不錯(cuò)的教材,在此總結(jié)出一些個(gè)人的學(xué)習(xí)筆記和大家分享。此筆記原發(fā)在本人的“電子中,有興趣的朋友可以前去查看一起探討第一章 集成電路芯片的發(fā)展與制造 1、原子結(jié)構(gòu):原子是由高度密集的質(zhì)子和中子組成的原子核以及圍繞它在一定軌道(或能級(jí))上旋 轉(zhuǎn)的荷負(fù)電的電子組成(Neils Bohr 于 1913 年提出)。當(dāng)原子彼此靠近時(shí),它們之間發(fā)生交互作用 的形成所謂的化學(xué)鍵,化學(xué)鍵可以分成離子鍵、共價(jià)鍵、分子鍵、氫鍵或金屬鍵; 2、真空管(電子管): a.真空管問世于 1883 年 Edison(愛迪生)發(fā)明白熾燈時(shí),1903 年英格蘭的 J.A.Fleming 發(fā)現(xiàn)了真 空管類似極管的作用。在愛迪生的真空管里,燈絲為陰極、金屬板為陽極; b.當(dāng)電子管含有兩個(gè)電極(陽極和陰極)時(shí),這種電路被稱為二極管,1906 年美國發(fā)明家 Lee DeForest 在陰極和陽極之間加入了一個(gè)柵極(一個(gè)精細(xì)的金屬絲網(wǎng)),此為最早的三極管,另外更 多的電極如以致柵極和簾柵極也可以密封在電子管中,以擴(kuò)大電子管的功能; c.真空管盡管廣泛應(yīng)用于工業(yè)已有半個(gè)多世紀(jì),但是有很多缺點(diǎn),包括體積大,產(chǎn)生的熱量大、容 易燒壞而需要頻繁地更換,固態(tài)器件的進(jìn)展消除了真空管的缺點(diǎn),真空管開始從許多電子產(chǎn)品的使 用中退出; 3、半導(dǎo)體理論: a.在 IC 芯片制造中使用的典型半導(dǎo)體材料有元素半導(dǎo)體硅、鍺、硒,半導(dǎo)體化合物有砷化鎵(GaAs)、 磷砷化鎵(GaAsP)、磷化銦(InP); b.二極管(一個(gè) p-n 結(jié)),當(dāng)結(jié)上為正向偏壓時(shí)可以導(dǎo)通電流,當(dāng)反向偏壓時(shí)則電流停止; c.結(jié)型雙極晶體管:把兩個(gè)或兩個(gè)以上的 p-n 結(jié)組合成一個(gè)器件,導(dǎo)致了之!
上傳時(shí)間: 2022-02-06
上傳用戶:
特點(diǎn): 精確度0.1%滿刻度 可作各式數(shù)學(xué)演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A|/ 16 BIT類比輸出功能 輸入與輸出絕緣耐壓2仟伏特/1分鐘(input/output/power) 寬范圍交直流兩用電源設(shè)計(jì) 尺寸小,穩(wěn)定性高
標(biāo)簽: 微電腦 數(shù)學(xué)演算 隔離傳送器
上傳時(shí)間: 2014-12-23
上傳用戶:ydd3625
特點(diǎn)(FEATURES) 精確度0.1%滿刻度 (Accuracy 0.1%F.S.) 可作各式數(shù)學(xué)演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A| (Math functioA+B/A-B/AxB/A/B/A&B(Hi&Lo)/|A|/etc.....) 16 BIT 類比輸出功能(16 bit DAC isolating analog output function) 輸入/輸出1/輸出2絕緣耐壓2仟伏特/1分鐘(Dielectric strength 2KVac/1min. (input/output1/output2/power)) 寬范圍交直流兩用電源設(shè)計(jì)(Wide input range for auxiliary power) 尺寸小,穩(wěn)定性高(Dimension small and High stability)
標(biāo)簽: 微電腦 數(shù)學(xué)演算 輸出 隔離傳送器
上傳時(shí)間: 2013-11-24
上傳用戶:541657925
/*--------- 8051內(nèi)核特殊功能寄存器 -------------*/ sfr ACC = 0xE0; //累加器 sfr B = 0xF0; //B 寄存器 sfr PSW = 0xD0; //程序狀態(tài)字寄存器 sbit CY = PSW^7; //進(jìn)位標(biāo)志位 sbit AC = PSW^6; //輔助進(jìn)位標(biāo)志位 sbit F0 = PSW^5; //用戶標(biāo)志位0 sbit RS1 = PSW^4; //工作寄存器組選擇控制位 sbit RS0 = PSW^3; //工作寄存器組選擇控制位 sbit OV = PSW^2; //溢出標(biāo)志位 sbit F1 = PSW^1; //用戶標(biāo)志位1 sbit P = PSW^0; //奇偶標(biāo)志位 sfr SP = 0x81; //堆棧指針寄存器 sfr DPL = 0x82; //數(shù)據(jù)指針0低字節(jié) sfr DPH = 0x83; //數(shù)據(jù)指針0高字節(jié) /*------------ 系統(tǒng)管理特殊功能寄存器 -------------*/ sfr PCON = 0x87; //電源控制寄存器 sfr AUXR = 0x8E; //輔助寄存器 sfr AUXR1 = 0xA2; //輔助寄存器1 sfr WAKE_CLKO = 0x8F; //時(shí)鐘輸出和喚醒控制寄存器 sfr CLK_DIV = 0x97; //時(shí)鐘分頻控制寄存器 sfr BUS_SPEED = 0xA1; //總線速度控制寄存器 /*----------- 中斷控制特殊功能寄存器 --------------*/ sfr IE = 0xA8; //中斷允許寄存器 sbit EA = IE^7; //總中斷允許位 sbit ELVD = IE^6; //低電壓檢測中斷控制位 8051
上傳時(shí)間: 2013-10-30
上傳用戶:yxgi5
#include<iom16v.h> #include<macros.h> #define uint unsigned int #define uchar unsigned char uint a,b,c,d=0; void delay(c) { for for(a=0;a<c;a++) for(b=0;b<12;b++); }; uchar tab[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
標(biāo)簽: AVR 單片機(jī) 數(shù)碼管
上傳時(shí)間: 2013-10-21
上傳用戶:13788529953
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1