欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

c語言函數(shù)實(shí)驗(yàn)結(jié)及即分析 c語言實(shí)驗(yàn)結(jié)果及分析

C語言實(shí)驗(yàn)報(bào)告

我寫了個(gè),不知道行不,有什么不妥的請(qǐng)指出哈,如要格式請(qǐng)加我,將之發(fā)給你

師宗網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)建站成立于2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。

四 川 大 學(xué) 計(jì) 算 機(jī) 學(xué) 院、軟 件 學(xué) 院

實(shí) 驗(yàn) 報(bào) 告

學(xué)號(hào): 姓名: 專業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 班級(jí):5 第 13 周

課程名稱 c/C++ 實(shí)驗(yàn)課時(shí) 2

實(shí)驗(yàn)項(xiàng)目 字符串的復(fù)制與追加 實(shí)驗(yàn)時(shí)間 08.5. 16

實(shí)驗(yàn)?zāi)康? 1.掌握字符串的基本操作和理解數(shù)據(jù)結(jié)構(gòu)

實(shí)驗(yàn)環(huán)境 VC 6.0

實(shí)驗(yàn)內(nèi)容(算法、程序、步驟和方法) 先計(jì)算出S1和S2的字符個(gè)數(shù),為S3分配好空間,利用已有庫函數(shù)先將S1復(fù)制到S3中,再將S2追加到S3中,當(dāng)顯示完后要記住收回空間,做好善后處理。

源代碼如下:

#includeiostream

#includestring.h

using namespace std;

int main()

{

char *s1="abcdef";

char *s2="123456f";

int n=strlen(s1)+strlen(s2);//計(jì)算s1,和s2的總長度n

char *s3=new char[n+1]; //定義S3并分配空間大小為n

strcpy(s3,s1); //將s1復(fù)制到s3中

strcat(s3,s2); //將s2追加到s3后面

cout"s3="s3endl;

delete []s3; //收回空間

s3=NULL; //將指針指向空

return 0;

}

(接上)

實(shí)驗(yàn)內(nèi)容(算法、程序、步驟和方法)

結(jié)構(gòu)是順序存儲(chǔ)結(jié)構(gòu),算法順序鏈接法

數(shù)據(jù)記錄

和計(jì)算 數(shù)據(jù)有:字符串S1 ,S2;和一未知字符串S3

只需計(jì)算前兩個(gè)字符串長度之和

結(jié) 論

(結(jié) 果) 利用字符數(shù)組可以順序存儲(chǔ)字符數(shù)據(jù),并且能夠順序處理數(shù)據(jù);

算法復(fù)雜度O(n+m);處于中性

小 結(jié) 字符數(shù)組能夠帶來很好的存儲(chǔ)結(jié)構(gòu),便于操作,但是算法不是很好,只能順序遍歷數(shù)組,故復(fù)雜度不是很小

指導(dǎo)老師評(píng) 議

成績?cè)u(píng)定: 指導(dǎo)教師簽名:

計(jì)算機(jī)c語言實(shí)驗(yàn)報(bào)告的“實(shí)驗(yàn)結(jié)果和分析”怎么寫?

把你的運(yùn)行界面和你想要實(shí)現(xiàn)的目的聯(lián)系起來,總體上實(shí)現(xiàn)的是怎樣的功能,然后再對(duì)每一個(gè)函數(shù)的功能進(jìn)行分析,不用很長。

C語言運(yùn)行結(jié)果及其分析

第一題選C,函數(shù)不斷接受字符直到字符為E為止,類似于棧,輸出時(shí)會(huì)將后輸入緩沖區(qū)的字符先彈出緩沖區(qū),即逆序輸出。

第二題選A,前面兩個(gè)數(shù)字很明顯,后面的a和b是全局變量的a和b,不是f里面定義的兩個(gè)局部變量,也就是說它們即使名字相同,由于作用域不同,作用效果也不同。

C語言實(shí)訓(xùn)總結(jié)

在初學(xué)C語言的一個(gè)學(xué)期后,我們進(jìn)行了C語言實(shí)訓(xùn)階段,嘗試自己編寫一個(gè)比較復(fù)雜的程序系統(tǒng)。在為期兩周的時(shí)間中,我們同組的同學(xué)共同的感受是:C語言實(shí)訓(xùn)和平時(shí)上課所接觸的程序是有很大不同的,所經(jīng)受的考驗(yàn)和克服的困難是平時(shí)所無法比擬的。好在同組的搭檔們精誠合作,分工明確,有問題共同解決,攻克了C語言實(shí)訓(xùn)的復(fù)雜程序。在這里,我作為其中的參與者,自然感觸良多。

剛開始接觸到C的時(shí)候,我已經(jīng)學(xué)過一些有關(guān)VB的內(nèi)容,這個(gè)在算法和思維上稍微有點(diǎn)幫助?;叵氡緦W(xué)期的學(xué)習(xí),首先,最基本的,是C的數(shù)據(jù)格式,讓我們知道整數(shù),浮點(diǎn)數(shù)以及字符常量在C中的運(yùn)用。然后,在學(xué)會(huì)了數(shù)據(jù)轉(zhuǎn)化,以及熟練的可以對(duì)各種數(shù)據(jù)處理之后,我開始進(jìn)行有關(guān)數(shù)據(jù)結(jié)構(gòu),像數(shù)組,結(jié)構(gòu)體等的學(xué)習(xí),因?yàn)橛械臇|西從現(xiàn)有的知識(shí)來看都是非常簡單的,還沒有聯(lián)系到指針等等一些復(fù)雜的概念??墒牵瑑H僅學(xué)會(huì)這些是遠(yuǎn)遠(yuǎn)不夠的,C語言中,還有很多更加經(jīng)典、重要、實(shí)用的知識(shí)。

說說函數(shù)。雖說很多程序語言都有函數(shù)這一內(nèi)容,但我覺得C語言的函數(shù)是最有魅力的了。學(xué)習(xí)函數(shù)的方法是比較簡單的,只有兩個(gè)字“牢記”,即:牢記函數(shù)的功能,牢記函數(shù)的用途以及如何輸入輸出。函數(shù)從本質(zhì)上講是一段通用程序,用它可以幫助我們節(jié)約很多編程的時(shí)間,學(xué)習(xí)C語言的“高人”都說,一個(gè)聰明的編程者在編寫程序前往往總是先找自己所編寫的程序中有多少是可以用函數(shù)來代替的。比如,大家可以作一個(gè)比較字符串的實(shí)驗(yàn),用C語言中的strcmp()函數(shù)只要一句話,而自己編寫的話,30句都很難實(shí)現(xiàn),可想而知函數(shù)的實(shí)用和快捷。在我們C語言實(shí)訓(xùn)的代碼中,函數(shù)更是得到了充分的應(yīng)用,可以說,實(shí)訓(xùn)題目的復(fù)雜代碼,就是用無數(shù)個(gè)函數(shù)的調(diào)用和嵌套積累出來的。

要注意的是,有的同學(xué)剛剛開始的時(shí)候,都是被一些大的程序激勵(lì)的,所以當(dāng)開始的時(shí)候看到繁瑣的數(shù)據(jù)轉(zhuǎn)化和簡單的算法,都覺得很無聊,都想自己做幾個(gè)自己滿意的程序來看看,雖然這種想法很好,但是,我們說,沒有基礎(chǔ),純粹是搬照一些現(xiàn)成設(shè)計(jì)方法,是不足取的。要知道,程序設(shè)計(jì)講究的是個(gè)人的思維的,假如剛開始就被一些現(xiàn)成的思想束縛住,以后就會(huì)覺得很無趣。

我們知道,指針其實(shí)是C語言的靈魂,許多的數(shù)據(jù)結(jié)構(gòu)在我們學(xué)到這里之前都可以說是精通了。所以我們的任務(wù)就是,讓數(shù)據(jù)結(jié)構(gòu)在指針中運(yùn)行。當(dāng)然,剛剛開始接觸到這些新的東西,是一件非常痛苦的事情,所以我們一定要用非常形象的思維去看待指針,不能太固化。所以,新的東西,比如結(jié)構(gòu)體在指針中的表現(xiàn)方法,數(shù)組及多維數(shù)組在結(jié)構(gòu)體中的運(yùn)用,都一點(diǎn)一點(diǎn)的加了進(jìn)來,同時(shí)豐滿了我們對(duì)原來C的數(shù)據(jù)機(jī)構(gòu),數(shù)據(jù)表示的理解。當(dāng)我們完成了這三步的學(xué)習(xí),我們已經(jīng)可以自豪的說,我們的基礎(chǔ)都扎實(shí)了,可以進(jìn)一步的學(xué)習(xí)有關(guān)算法,設(shè)計(jì)概念等等深層次的東西了。

但是,指針,結(jié)構(gòu)體,這些太抽象的東西,在學(xué)習(xí)C語言的時(shí)候我們就有點(diǎn)“似懂非懂”,可是在眼下的C語言實(shí)訓(xùn)中,像這么重要的C語言知識(shí),一定要達(dá)到能熟練掌握,實(shí)際運(yùn)用的程度。在實(shí)訓(xùn)的大程序中,結(jié)構(gòu)體在指針中的表現(xiàn)方法,數(shù)組及在結(jié)構(gòu)體中的運(yùn)用等具體的技術(shù)環(huán)節(jié),都得到了體現(xiàn),不會(huì)指針,我們的工作是沒法展開的。所以,在實(shí)訓(xùn)期間,大家在鞏固基本知識(shí)的基礎(chǔ)上,逐塊攻克實(shí)訓(xùn)課題,克服了困難,自信心得到了提高。

最后,談?wù)勎覀兘M的程序軟件。商店商品管理系統(tǒng),是一個(gè)比較利于應(yīng)用,解決實(shí)際問題,方便實(shí)際管理的程序。設(shè)計(jì)代碼比較復(fù)雜,結(jié)構(gòu)比較嚴(yán)謹(jǐn)。在程序編寫的1周左右的時(shí)間里,組員們遇到了上述的困難,包括程序設(shè)計(jì)構(gòu)思,甚至是指針等某些知識(shí)點(diǎn)的欠缺,導(dǎo)致的工作中出現(xiàn)的困難。但是,當(dāng)大家一起團(tuán)結(jié)協(xié)作,解決了這些困難之后,發(fā)現(xiàn)自己也可以編寫復(fù)雜的、應(yīng)用性的程序了,更發(fā)現(xiàn)自己對(duì)C語言這門學(xué)科的興趣也提高了。

當(dāng)然,我們編寫的商店商品管理系統(tǒng),還存在很多疏漏和不合理之處。比如,程序復(fù)雜冗長,如果時(shí)間充裕,我們將在不改變程序運(yùn)行結(jié)果的基礎(chǔ)上,簡化程序,使每一句更加精辟,總體上更加簡化。另外,在程序的外觀上,我們由于時(shí)間問題,沒有做更多的修飾,運(yùn)行起來顯得比較死板、枯燥乏味。如果增添一些色彩和其他效果,我們的程序也許會(huì)更加完美。

以上就是我的C語言實(shí)訓(xùn)個(gè)人總結(jié)

c語言函數(shù)實(shí)驗(yàn)報(bào)告

#includestdio.h

int main()

{

int sum(int);

int factorial(int);

int n,s;

long int p;

printf("請(qǐng)輸入n值:\n");

scanf("%d",n);

s=sum(n);

p=factorial(n);

printf("1+2+3+...+n=%d\n",s);

printf("n!=%ld\n",p);

return 0;

}

int sum(int x)

{

int a=0;

for(int i=0;i=x;i++)

a=a+i;

return a;

}

int factorial(int y)

{

int b=1;

for(int i=1;i=y;i++)

b=b*i;

return b;

}

因?yàn)殡A乘會(huì)得到很大的結(jié)果,會(huì)超出p的范圍,所以n值不能太大,否則階乘沒有結(jié)果(或不對(duì)),只有加法的結(jié)果;

C語言實(shí)驗(yàn)

哈夫曼編碼(Huffman Coding)是一種編碼方式,以哈夫曼樹—即最優(yōu)二叉樹,帶權(quán)路徑長度最小的二叉樹,經(jīng)常應(yīng)用于數(shù)據(jù)壓縮。 在計(jì)算機(jī)信息處理中,“哈夫曼編碼”是一種一致性編碼法(又稱"熵編碼法"),用于數(shù)據(jù)的無損耗壓縮。這一術(shù)語是指使用一張?zhí)厥獾木幋a表將源字符(例如某文件中的一個(gè)符號(hào))進(jìn)行編碼。這張編碼表的特殊之處在于,它是根據(jù)每一個(gè)源字符出現(xiàn)的估算概率而建立起來的(出現(xiàn)概率高的字符使用較短的編碼,反之出現(xiàn)概率低的則使用較長的編碼,這便使編碼之后的字符串的平均期望長度降低,從而達(dá)到無損壓縮數(shù)據(jù)的目的)。這種方法是由David.A.Huffman發(fā)展起來的。 例如,在英文中,e的出現(xiàn)概率很高,而z的出現(xiàn)概率則最低。當(dāng)利用哈夫曼編碼對(duì)一篇英文進(jìn)行壓縮時(shí),e極有可能用一個(gè)位(bit)來表示,而z則可能花去25個(gè)位(不是26)。用普通的表示方法時(shí),每個(gè)英文字母均占用一個(gè)字節(jié)(byte),即8個(gè)位。二者相比,e使用了一般編碼的1/8的長度,z則使用了3倍多。倘若我們能實(shí)現(xiàn)對(duì)于英文中各個(gè)字母出現(xiàn)概率的較準(zhǔn)確的估算,就可以大幅度提高無損壓縮的比例。

本文描述在網(wǎng)上能夠找到的最簡單,最快速的哈夫曼編碼。本方法不使用任何擴(kuò)展動(dòng)態(tài)庫,比如STL或者組件。只使用簡單的C函數(shù),比如:memset,memmove,qsort,malloc,realloc和memcpy。

因此,大家都會(huì)發(fā)現(xiàn),理解甚至修改這個(gè)編碼都是很容易的。

背景

哈夫曼壓縮是個(gè)無損的壓縮算法,一般用來壓縮文本和程序文件。哈夫曼壓縮屬于可變代碼長度算法一族。意思是個(gè)體符號(hào)(例如,文本文件中的字符)用一個(gè)特定長度的位序列替代。因此,在文件中出現(xiàn)頻率高的符號(hào),使用短的位序列,而那些很少出現(xiàn)的符號(hào),則用較長的位序列。

編碼使用

我用簡單的C函數(shù)寫這個(gè)編碼是為了讓它在任何地方使用都會(huì)比較方便。你可以將他們放到類中,或者直接使用這個(gè)函數(shù)。并且我使用了簡單的格式,僅僅輸入輸出緩沖區(qū),而不象其它文章中那樣,輸入輸出文件。

bool CompressHuffman(BYTE *pSrc, int nSrcLen, BYTE *pDes, int nDesLen);

bool DecompressHuffman(BYTE *pSrc, int nSrcLen, BYTE *pDes, int nDesLen);

要點(diǎn)說明

速度

為了讓它(huffman.cpp)快速運(yùn)行,我花了很長時(shí)間。同時(shí),我沒有使用任何動(dòng)態(tài)庫,比如STL或者M(jìn)FC。它壓縮1M數(shù)據(jù)少于100ms(P3處理器,主頻1G)。

壓縮

壓縮代碼非常簡單,首先用ASCII值初始化511個(gè)哈夫曼節(jié)點(diǎn):

CHuffmanNode nodes[511];

for(int nCount = 0; nCount 256; nCount++)

nodes[nCount].byAscii = nCount;

然后,計(jì)算在輸入緩沖區(qū)數(shù)據(jù)中,每個(gè)ASCII碼出現(xiàn)的頻率:

for(nCount = 0; nCount nSrcLen; nCount++)

nodes[pSrc[nCount]].nFrequency++;

然后,根據(jù)頻率進(jìn)行排序:

qsort(nodes, 256, sizeof(CHuffmanNode), frequencyCompare);

現(xiàn)在,構(gòu)造哈夫曼樹,獲取每個(gè)ASCII碼對(duì)應(yīng)的位序列:

int nNodeCount = GetHuffmanTree(nodes);

構(gòu)造哈夫曼樹非常簡單,將所有的節(jié)點(diǎn)放到一個(gè)隊(duì)列中,用一個(gè)節(jié)點(diǎn)替換兩個(gè)頻率最低的節(jié)點(diǎn),新節(jié)點(diǎn)的頻率就是這兩個(gè)節(jié)點(diǎn)的頻率之和。這樣,新節(jié)點(diǎn)就是兩個(gè)被替換節(jié)點(diǎn)的父節(jié)點(diǎn)了。如此循環(huán),直到隊(duì)列中只剩一個(gè)節(jié)點(diǎn)(樹根)。

// parent node

pNode = nodes[nParentNode++];

// pop first child

pNode-pLeft = PopNode(pNodes, nBackNode--, false);

// pop second child

pNode-pRight = PopNode(pNodes, nBackNode--, true);

// adjust parent of the two poped nodes

pNode-pLeft-pParent = pNode-pRight-pParent = pNode;

// adjust parent frequency

pNode-nFrequency = pNode-pLeft-nFrequency + pNode-pRight-nFrequency;

這里我用了一個(gè)好的訣竅來避免使用任何隊(duì)列組件。我先前就直到ASCII碼只有256個(gè),但我分配了511個(gè)(CHuffmanNode nodes[511]),前255個(gè)記錄ASCII碼,而用后255個(gè)記錄哈夫曼樹中的父節(jié)點(diǎn)。并且在構(gòu)造樹的時(shí)候只使用一個(gè)指針數(shù)組(ChuffmanNode *pNodes[256])來指向這些節(jié)點(diǎn)。同樣使用兩個(gè)變量來操作隊(duì)列索引(int nParentNode = nNodeCount;nBackNode = nNodeCount –1)。

接著,壓縮的最后一步是將每個(gè)ASCII編碼寫入輸出緩沖區(qū)中:

int nDesIndex = 0;

// loop to write codes

for(nCount = 0; nCount nSrcLen; nCount++)

{

*(DWORD*)(pDesPtr+(nDesIndex3)) |=

nodes[pSrc[nCount]].dwCode (nDesIndex7);

nDesIndex += nodes[pSrc[nCount]].nCodeLength;

}

(nDesIndex3): 3 以8位為界限右移后到達(dá)右邊字節(jié)的前面

(nDesIndex7): 7 得到最高位.

注意:在壓縮緩沖區(qū)中,我們必須保存哈夫曼樹的節(jié)點(diǎn)以及位序列,這樣我們才能在解壓縮時(shí)重新構(gòu)造哈夫曼樹(只需保存ASCII值和對(duì)應(yīng)的位序列)。

解壓縮

解壓縮比構(gòu)造哈夫曼樹要簡單的多,將輸入緩沖區(qū)中的每個(gè)編碼用對(duì)應(yīng)的ASCII碼逐個(gè)替換就可以了。只要記住,這里的輸入緩沖區(qū)是一個(gè)包含每個(gè)ASCII值的編碼的位流。因此,為了用ASCII值替換編碼,我們必須用位流搜索哈夫曼樹,直到發(fā)現(xiàn)一個(gè)葉節(jié)點(diǎn),然后將它的ASCII值添加到輸出緩沖區(qū)中:

int nDesIndex = 0;

DWORD nCode;

while(nDesIndex nDesLen)

{

nCode = (*(DWORD*)(pSrc+(nSrcIndex3)))(nSrcIndex7);

pNode = pRoot;

while(pNode-pLeft)

{

pNode = (nCode1) ? pNode-pRight : pNode-pLeft;

nCode = 1;

nSrcIndex++;

}

pDes[nDesIndex++] = pNode-byAscii;

}

當(dāng)前題目:c語言函數(shù)實(shí)驗(yàn)結(jié)及即分析 c語言實(shí)驗(yàn)結(jié)果及分析
文章路徑:http://aaarwkj.com/article8/hhpgip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、企業(yè)建站網(wǎng)站建設(shè)、定制開發(fā)、靜態(tài)網(wǎng)站、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
人妻一本久道久久综合鬼色| 亚洲熟妇人妻一区二区三区| 久久亚洲一区二区三区乱码| 日本熟女午夜福利视频| 国产精品亚洲精品欧美| 亚洲国产色一区二区三区| 亚洲国产精品第一区第二区| 欧美特黄高清在线观看| 国产在线视频不卡福利片| 欧美日韩精品久久影院| 国产亚洲av综合人人精品| 在线观看高清欧美国产视频| 日本乱码一区二区三区在线观看| 日本在线一区二区三区免费视频| 欧美一区二区日韩国产| 九九在线视频免费观看精彩| 日韩中文字幕一二一二区| 99热在线免费观看精品| 亚洲激情一区在线观看| 亚洲乱码精品一区二区| 国产综合亚洲欧美日韩在线| 亚洲av毛片在线网站| 线上免费看黄色亚洲片| 国产av手机自拍看片| 日韩天堂视频在线播放| 日本韩国av在线观看| 亚洲精品中文字幕久久| 91九色国产原创在线观看| 国产又猛又黄又爽无遮挡| 欧美三级美国三级亚洲三级| 欧美熟女av在线观看| 日韩精品免费在线观看视频网站| 色综合久久婷婷色综合网| 亚洲欧美另类熟女丝袜| 国产成人亚洲一区二区三区| 精品女同一区二区三区网站| 亚洲成av人在线观看福利| 精品一区二区在线不卡| 高潮少妇高潮少妇av| 欧美内射专区精品一区| 黄色污网站在线观看免费|