計(jì)算機(jī)導(dǎo)論課程報(bào)告
課程報(bào)告要求
每人提交一份打印的紙質(zhì)課程報(bào)告。
篇幅:8-10A4頁(yè)。要求摘要和參考文獻(xiàn)。鼓勵(lì)正文中使用圖表表述。要打印封面,報(bào)告的格式要規(guī)范。
不允許相互抄襲和直接抄襲科技論文,要有自己的觀點(diǎn)和想法。
12月29日課堂上交報(bào)告。
課程論文內(nèi)容
第一部分:圍繞某個(gè)專題,從歷史的演變,發(fā)展?fàn)顟B(tài)和未來趨勢(shì)等展開討論,論題要有新穎性、時(shí)代性和方向性。下面列舉幾個(gè)課程報(bào)告的方向供參考。
人工智能/數(shù)據(jù)庫(kù)/計(jì)算機(jī)網(wǎng)絡(luò)/數(shù)據(jù)挖掘/密碼/信息安全/集群/云計(jì)算
軟件項(xiàng)目管理/軟件工程數(shù)據(jù)、信息和知識(shí)計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言計(jì)算機(jī)操作系統(tǒng)/體系結(jié)構(gòu)
1Web技術(shù)/某一個(gè)技術(shù)應(yīng)用方法和技術(shù)神經(jīng)網(wǎng)絡(luò)/網(wǎng)格/進(jìn)化計(jì)算/計(jì)算機(jī)圖像數(shù)據(jù)庫(kù)/網(wǎng)絡(luò)/網(wǎng)頁(yè)設(shè)計(jì)/信息安全/病毒
第二部分:根據(jù)個(gè)人情況,通過本科課程學(xué)習(xí)和自己對(duì)計(jì)算機(jī)學(xué)科的了解,對(duì)教學(xué)方法進(jìn)行討論,下面列舉幾個(gè)課程報(bào)告的方向供參考。
對(duì)計(jì)算機(jī)學(xué)科/某一專業(yè)的認(rèn)識(shí)/之我見計(jì)算機(jī)與社會(huì)
計(jì)算機(jī)專業(yè)及大學(xué)四年的專業(yè)學(xué)習(xí)規(guī)劃計(jì)算機(jī)專業(yè)與專業(yè)人生規(guī)劃
Xxx(研究方向、學(xué)科、課程等)學(xué)習(xí)方法計(jì)算機(jī)專業(yè)學(xué)習(xí)方法論之我見計(jì)算機(jī)專業(yè)教學(xué)計(jì)劃之我見我的大學(xué)生活專業(yè)學(xué)習(xí)
2面格式:
佛山科學(xué)技術(shù)學(xué)院本科生課程考試
考生姓名考生學(xué)號(hào)系、年級(jí)考試科目計(jì)算機(jī)導(dǎo)論考試日期201*年12月29日3
封內(nèi)容格式:
題目
摘要:關(guān)鍵詞:
正文:(四號(hào)、1.2倍行間距)……………………
參考文獻(xiàn):(按引用先后順序)
擴(kuò)展閱讀:計(jì)算機(jī)導(dǎo)論課程報(bào)告
計(jì)算機(jī)學(xué)院網(wǎng)絡(luò)工程專業(yè)
《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程報(bào)告
(201*/201*學(xué)年第二學(xué)期)
學(xué)生姓名:學(xué)生班級(jí):學(xué)生學(xué)號(hào):授課教師:
201*年6月27日
內(nèi)容簡(jiǎn)介
本學(xué)期主要學(xué)習(xí)了計(jì)算機(jī)語(yǔ)言程序設(shè)計(jì),包括匯編語(yǔ)言和高級(jí)程序語(yǔ)言設(shè)計(jì)(C語(yǔ)言和C++語(yǔ)言)的基本介紹和初級(jí)應(yīng)用。
其中第一章的語(yǔ)言介紹,旨在系統(tǒng)的了解計(jì)算機(jī)的構(gòu)造原理和計(jì)算機(jī)語(yǔ)言的特點(diǎn),以及通過對(duì)比其他語(yǔ)言了解計(jì)算機(jī)的邏輯思維范式,只是系統(tǒng)的介紹,讓其對(duì)計(jì)算機(jī)語(yǔ)言有一個(gè)初步系統(tǒng)的了解。
第二章匯編語(yǔ)言的介紹學(xué)習(xí),是對(duì)以后的高級(jí)程序語(yǔ)言即C語(yǔ)言和C++語(yǔ)言做鋪墊,學(xué)習(xí)目的旨在進(jìn)一步了解計(jì)算機(jī)語(yǔ)言的邏輯特點(diǎn)和使用方法。熟悉計(jì)算機(jī)的思維方式,為以后學(xué)習(xí)C語(yǔ)言和C++語(yǔ)言打基礎(chǔ)。熟悉各種邏輯指令和操作方法,
練習(xí)一些使用編寫一些簡(jiǎn)單的邏輯指令,熟悉程序操作在計(jì)算機(jī)內(nèi)的運(yùn)行情況和方法。了解程序的基本原理。
第三章的高級(jí)語(yǔ)言程序設(shè)計(jì),是在原來的匯編語(yǔ)言基礎(chǔ)上進(jìn)一步去深入學(xué)習(xí)語(yǔ)言程序設(shè)計(jì),C語(yǔ)言和C++語(yǔ)言屬于高級(jí)語(yǔ)言程序設(shè)計(jì),學(xué)習(xí)使用這兩種語(yǔ)言需要多種知識(shí)的了解,本章的學(xué)習(xí)重點(diǎn)就是介紹這兩種語(yǔ)言的具體操作流程和使用的邏輯指令,練習(xí)熟悉各種庫(kù)語(yǔ)言的使用,在實(shí)際操作中加深對(duì)程序語(yǔ)言的認(rèn)識(shí),并對(duì)各種語(yǔ)句操作有系統(tǒng)的認(rèn)識(shí)為以后進(jìn)一步學(xué)習(xí)做基礎(chǔ)。
目錄
第一章計(jì)算機(jī)語(yǔ)言概述............................................5
第一節(jié).語(yǔ)言......................................................................................................................................5
1.11.語(yǔ)言(學(xué)習(xí)格式思維了解和掌握語(yǔ)言共同性)..........................................................51.12.程序設(shè)計(jì)(算法程序)........................................................................................51.13.語(yǔ)言結(jié)構(gòu)..............................................................................................................................5 第二節(jié).計(jì)算機(jī)硬件結(jié)構(gòu)..................................................................................................................51.21.馮諾伊曼結(jié)構(gòu)........................................................................................................................51.22.CPU從內(nèi)存取指令數(shù)據(jù).......................................................................................................61.23.CPU的內(nèi)部結(jié)構(gòu)...................................................................................................................6
第二章.匯編語(yǔ)言程序設(shè)計(jì)........................................7
第一節(jié).匯編語(yǔ)言的特點(diǎn)及其操作.........................................................................................7
2.11.匯編語(yǔ)言的特點(diǎn)..............................................................................................................82.12.匯編語(yǔ)言簡(jiǎn)易的操作............................................................................................................8 第二節(jié).程序流程圖畫法..................................................................................................................92.21.基本概念................................................................................................................................92.22.常用算法流程圖符號(hào)和功能................................................................................................9 第三節(jié).中斷機(jī)制(INTERRUPT軟中斷).......................................................................................102.31.int3代碼:處理結(jié)束程序(間接尋址機(jī)制)...............................................................102.32.int21代碼...........................................................................................................................112.33.中斷......................................................................................................................................112.35.子程序調(diào)用..........................................................................................................................122.35.擴(kuò)展(與數(shù)據(jù)有關(guān)的尋址方式)......................................................................................13
第三章.高級(jí)語(yǔ)言程序設(shè)計(jì)......................................14
第一節(jié).C語(yǔ)言的概念與特點(diǎn).........................................................................................................14
3.11.C語(yǔ)言的概念.....................................................................................................................143.12.設(shè)計(jì)design........................................................................................................................14第二節(jié).高級(jí)語(yǔ)言程序的初步認(rèn)識(shí)................................................................................................153.21.標(biāo)識(shí)符..................................................................................................................................153.22.庫(kù)runtime(運(yùn)行庫(kù))....................................................................................................163.23.內(nèi)存的分配,數(shù)據(jù)的分配,和一些指令的初步認(rèn)識(shí)..................................................17擴(kuò)展知識(shí):格式化輸入輸出函數(shù)........................................................................................20第三節(jié).循環(huán)結(jié)構(gòu)............................................................................................................................213.31.If結(jié)構(gòu).................................................................................................................................213.32.Switch語(yǔ)句......................................................................................................................213.33.For循環(huán)語(yǔ)句......................................................................................................................223.34.While語(yǔ)句.........................................................................................................................3.35.Dowhile語(yǔ)句.................................................................................................................233.36.循環(huán)嵌套結(jié)構(gòu)....................................................................................................................24 第四節(jié).指針..................................................................................................................................253.41.指針的概念..........................................................................................................................253.42.指針的類型..........................................................................................................................263.43.指針應(yīng)用中常見的錯(cuò)誤......................................................................................................27 第五節(jié).函數(shù)..................................................................................................................................283.51.函數(shù)的概念..........................................................................................................................283.52函數(shù)的描述..........................................................................................................................293.53.函數(shù)的申明與調(diào)用..............................................................................................................293.54函數(shù)的傳值方式..................................................................................................................29 第六節(jié).遞歸程序設(shè)計(jì)和調(diào)用......................................................................................................303.61遞歸程序的調(diào)用...................................................................................................................30 第七節(jié).數(shù)組....................................................................................................................................313.71.數(shù)組的定義與初始化..........................................................................................................313.72.多維數(shù)組..............................................................................................................................313.73.字符數(shù)組..............................................................................................................................32
第一章計(jì)算機(jī)語(yǔ)言概述
第一節(jié).語(yǔ)言
1.11.語(yǔ)言(學(xué)習(xí)格式思維了解和掌握語(yǔ)言共同性)1.自然語(yǔ)言:如漢語(yǔ),法語(yǔ),英語(yǔ)2.人工語(yǔ)言
(1).世界語(yǔ)言(中間語(yǔ)言)(2).計(jì)算機(jī)語(yǔ)言
①高級(jí)數(shù)據(jù)庫(kù)語(yǔ)言和C語(yǔ)言(低級(jí))(與硬件相關(guān),系統(tǒng)語(yǔ)言)為機(jī)器開發(fā)②低級(jí)(OS)機(jī)器語(yǔ)言
特點(diǎn):移植性差可讀性差復(fù)雜性高可維護(hù)性差
3.C語(yǔ)言特點(diǎn)
(1).可以做到機(jī)器語(yǔ)言的功能(2).與機(jī)器語(yǔ)言的差別20%效率高1.12.程序設(shè)計(jì)(算法程序)
設(shè)計(jì):組織
分解:將復(fù)雜,大,任務(wù)簡(jiǎn)單易完成易理解1.13.語(yǔ)言結(jié)構(gòu)
1.字母表:機(jī)器語(yǔ)言01自然語(yǔ)言Az2.詞匯表(由字母構(gòu)成)3.句子(由詞匯構(gòu)成)4.段落(由句子構(gòu)成)
5.章節(jié)(由段落構(gòu)成):節(jié)即高級(jí)語(yǔ)言中的函數(shù),章包括字段,文件。
第二節(jié).計(jì)算機(jī)硬件結(jié)構(gòu)
1.21.馮諾伊曼結(jié)構(gòu)
現(xiàn)在計(jì)算機(jī)的結(jié)構(gòu)是由馮諾伊曼在1945年提出的它明確規(guī)定新型計(jì)算機(jī)有5個(gè)組成部分:①計(jì)算器CA;②邏輯控制裝置CC;③存儲(chǔ)器M;④輸入I;⑤輸出O。并詳細(xì)描述了這5個(gè)部分的職能和相互關(guān)系。以后稱此結(jié)構(gòu)為馮諾伊曼式結(jié)構(gòu)其圖示如下
1.22.CPU從內(nèi)存取指令數(shù)據(jù)1.指令周期
(1)fetch取指令(2)decoder解指令if(3)取數(shù)據(jù)
(4)execute執(zhí)行指令if(5)將結(jié)果存入內(nèi)存1.23.CPU的內(nèi)部結(jié)構(gòu)
CPU內(nèi)部結(jié)構(gòu)包括:運(yùn)算器,控制器,寄存器。關(guān)系如下圖:
輸入輸出IO1.Address地址總線
Bus2.Date數(shù)據(jù)總線
3.Control控制總線
與Bus相連
1.寄存器類型
Ax加法寄存器存被加數(shù)運(yùn)算結(jié)果BX基址寄存器內(nèi)存的起始位置CX計(jì)數(shù)寄存器配合尋址DX數(shù)據(jù)寄存器存放中間數(shù)據(jù)
2.段寄存器CS:代碼段基址DS:數(shù)據(jù)段基址SS:stack棧節(jié)省內(nèi)存3.標(biāo)志寄存器:flag8位
Zero0位Carry進(jìn)位overflaws溢出
第二章.匯編語(yǔ)言程序設(shè)計(jì)
用機(jī)器語(yǔ)言編程的痛苦,人們進(jìn)行了一種有益的改進(jìn):用一些簡(jiǎn)潔的英文字母、符號(hào)串來替代一個(gè)特定的指令的二進(jìn)制串,比如,用“ADD”代表加法,“MOV”代表數(shù)據(jù)傳遞等等,這樣一來,人們很容易讀懂并理解程序在干什么,糾錯(cuò)及維護(hù)都變得方便了,這種程序設(shè)計(jì)語(yǔ)言就稱為匯編語(yǔ)言,即第二代計(jì)算機(jī)語(yǔ)言。然而計(jì)算機(jī)是不認(rèn)識(shí)這些符號(hào)的,這就需要一個(gè)專門的程序,專門負(fù)責(zé)將這些符號(hào)翻譯成二進(jìn)制數(shù)的機(jī)器語(yǔ)言,這種翻譯程序被稱為匯編程序。
第一節(jié).匯編語(yǔ)言的特點(diǎn)及其操作2.11.匯編語(yǔ)言的特點(diǎn)
(1).面向機(jī)器的低級(jí)語(yǔ)言,通常是為特定的計(jì)算機(jī)或系列計(jì)算機(jī)專門設(shè)計(jì)的。
(2).保持了機(jī)器語(yǔ)言的優(yōu)點(diǎn),具有直接和簡(jiǎn)捷的特點(diǎn)。2.12.匯編語(yǔ)言簡(jiǎn)易的操作
(1).打開debug程序:所在位置系統(tǒng)目錄\\system32\\debug.exe,.打開開始運(yùn)行debug
(2).內(nèi)存命令,使用“-?”了以查看可以使用的命令“-d+數(shù)字”進(jìn)入相應(yīng)內(nèi)存地址“-r”顯示相應(yīng)內(nèi)存當(dāng)前的值
“-e+數(shù)字”查看并修改當(dāng)前內(nèi)存值,改下個(gè)直接按空格,回車結(jié)束修改。(3).實(shí)際操作
例如對(duì)01110100金額00011101進(jìn)行加法操作:計(jì)算機(jī)的邏輯:先將兩數(shù)與操作左移一位
若有進(jìn)位結(jié)束無進(jìn)位求異或(結(jié)果與進(jìn)位求異或)進(jìn)位不為零則重復(fù)
如圖示:求以下兩數(shù)和匯編語(yǔ)言
[0200]01110100MOVDL[0200][0201]00011101MOVAL[0201]A:MOVCLAL
先與操作AND00010100ANDALDL左移SHL00101000SHLAL1異或XOR01101001判斷進(jìn)位是否為0JC(end)
AND00101000XCHGALDLSHL01010000XORALCLXOL01000001TESTDLFFAND01000000JZ(end)SHL10000000JMPAXOR01000001int3AND00000000
SHL00000000進(jìn)位全為0XOR10010001輸出結(jié)果
即91
(4).移位和轉(zhuǎn)位
Shift簡(jiǎn)寫SH移動(dòng)命令SHL左移SHR右移Relate簡(jiǎn)寫RO轉(zhuǎn)位命令ROL左轉(zhuǎn)ROR右轉(zhuǎn)
圖示:
Carry
00010左移1
Carry000100
010010右移100100
(5).跳轉(zhuǎn)
Jump+目的地址JZ+目的,相等跳轉(zhuǎn)JC有錯(cuò)位跳轉(zhuǎn)JNC無錯(cuò)位跳轉(zhuǎn)
第二節(jié).程序流程圖畫法
2.21.基本概念
流程圖是一種用帶線頭的箭頭將有限幾個(gè)幾何圖形框連接起來的,其中框用來表示指令動(dòng)作或指令順序或條件判斷,箭頭用來說明算法走向。流程圖通過形象化的圖示,能夠較好的表示算法中描述的各種結(jié)構(gòu),有了流程圖程序設(shè)計(jì)可以更方便和嚴(yán)謹(jǐn)。
2.22.常用算法流程圖符號(hào)和功能
表示開始或結(jié)束表示算法數(shù)據(jù)中數(shù)據(jù)的輸入或輸出
表示為程序的表達(dá)語(yǔ)句,對(duì)數(shù)據(jù)進(jìn)行處理表示對(duì)數(shù)據(jù)進(jìn)行判斷
表示算法中處理流程的走向例如:根據(jù)以下畫流程圖1.從內(nèi)出取兩個(gè)二進(jìn)制數(shù)2.求無進(jìn)位和3.左移一位
4.無進(jìn)位和與進(jìn)位做二進(jìn)制加法
5.在求出進(jìn)位后,判斷進(jìn)位是否為0,若為0結(jié)束,不為0則判斷是否溢出。
開始進(jìn)位=0?從內(nèi)存取兩個(gè)二進(jìn)左移1位求無進(jìn)位和(XOR)CF=1?求進(jìn)位(AND)將進(jìn)位與無進(jìn)位和放入內(nèi)存中結(jié)束
注釋:算法要寫明基本思路,用自然語(yǔ)言寫流程,判斷循環(huán)和結(jié)束條件
第三節(jié).中斷機(jī)制(interrupt軟中斷)
2.31.int3代碼:處理結(jié)束程序(間接尋址機(jī)制)
以16位機(jī)制為例,以3×2所得字節(jié)數(shù)來得到當(dāng)前地址,然后再運(yùn)行中斷機(jī)制。
038A070362805204103303201*1結(jié)果“int3”運(yùn)算3×2找到6號(hào)地址位置,并取出放入IP中。
注釋:中斷處理機(jī)制程序在外存中,當(dāng)放入內(nèi)存中并不固定的內(nèi)存數(shù)。
中斷處理程序地址表:一般的0號(hào)中斷在內(nèi)存0300中,1
號(hào)在0320中,2號(hào)在0380中,3號(hào)在03A0中。
2.32.int21代碼
從鍵盤讀一個(gè)字符到AL中:AH01從鍵盤讀一串字符(以結(jié)尾):AH0A向顯示器寫一個(gè)字符到AL中:AH02向顯示器寫一串字符(以結(jié)尾):AH09其中AH表示內(nèi)存高8位,用來放功能符號(hào)例:
1)寫一個(gè)字符到標(biāo)準(zhǔn)輸出(顯示器)MOVAH=2
MOVDL=“41”A的ASCII碼為41int21
2)讀一個(gè)字符到顯示器MOVAH=1int212.33.中斷
中斷和子程序調(diào)用的共同機(jī)制,浮動(dòng)代碼器,可以訪問浮動(dòng)代碼,并對(duì)浮動(dòng)代碼在內(nèi)存的位置和內(nèi)存中的位置移動(dòng)重定位程序。2.34.棧(堆棧stack)
1.特點(diǎn):后進(jìn)先出LIFO先進(jìn)后出FIFO2.保存環(huán)境push進(jìn)棧(壓棧)pushAX:表示將AX的數(shù)據(jù)壓到堆棧中POP出棧(退棧)2.35.子程序調(diào)用
1.取址永IP指針取指令,調(diào)整IP值到下一條指令地址2.執(zhí)行指令:例如JMP105則會(huì)用105改變IP中原有值3.執(zhí)行(call)pushIP用address修改IP值4.取指(RET)
例:1.執(zhí)行RETPOPIP則執(zhí)行call的下一條指令,執(zhí)MOVCLALCall200MOVAH1MOVAL5RET11611811A200
子程序調(diào)用實(shí)驗(yàn)例題:顯示一串字符內(nèi)存設(shè)置:
主程序:04004D,41,49,4E,main子程序:041053,55,42sub
420
程序設(shè)計(jì):(1).改寫內(nèi)存值
D400顯示內(nèi)存0400E400改寫內(nèi)存4D,41,44,4E,3D,3E,24“24”是的ASCII碼E410
53,55,42,3D,3E,24
42,41,43,4EBack
行完116指令I(lǐng)P118
2.取指(call200)調(diào)整IP,11AIP1.執(zhí)行指令(call)pushIP,然后200IP2.取指(MOVAL5)
3.RET取指RET執(zhí)行指令POPIP(11AIP)
然后取指(MOVAH1)E420
42,41,43,24
(2).主程序3.子程序A100在0200處寫程序MOVAH,09MOVAH,09MOVDX,0410MOVDX,0400Int21Int21RET返回CALL200調(diào)用子程序MOVAH,09MOVDX,0420Int21Int1
(3).程序運(yùn)行
G=100從內(nèi)存100處開始運(yùn)行結(jié)果顯示main=>sub=>back
用t指令觀察程序運(yùn)行具體變化,觀察每步運(yùn)行。
這種調(diào)用子程序和尋址方式在處理大量數(shù)據(jù)時(shí)效率高,速度快,修改起來方便。2.35.擴(kuò)展(與數(shù)據(jù)有關(guān)的尋址方式)1.立即尋址2.寄存器尋址
①.有效地址四種成分:位移量,基址,變址,比例因子。②.有效地址的計(jì)算方式:EA=基址+(變址×比例因子)+位移量
3.直接尋址適用于處理單個(gè)變量,要處理某個(gè)存放在儲(chǔ)存器中的變量,可以用直接尋址方式把該變量先取到一寄存器中然后再進(jìn)一步處理4.寄存器間尋址方式
操作數(shù)的有效地址只包含基址,寄存器內(nèi)容或變址寄存器內(nèi)容5.寄存器相對(duì)尋址方式(直接變址尋址方式)
操作數(shù)的有效地址為基址寄存器或變址寄存器的內(nèi)容和指令的位移量6.基址變址尋址方式操作數(shù)的有效地址是一個(gè)基址寄存器和變址寄存器內(nèi)容組成。7.相對(duì)基址變址尋址方式
操作數(shù)的有效地址是一個(gè)基址寄存器和變址寄存器內(nèi)容和指令中制定的位移量組成
8.比例尋址方式
操作數(shù)的有效尋址地址是一個(gè)變址寄存器和變址寄存器內(nèi)容和指令中指定比例因子再加上位移量之和,所以有效地址有三部分組成。9.基址比例變址尋址方式
操作數(shù)的有效尋址地址是一個(gè)變址寄存器和變址寄存器內(nèi)容和指令中指定比例因子再加上基址寄存器的內(nèi)容。所以有效地址有三部分組成。10.相對(duì)基址比例變址尋址方式
操作數(shù)的有效尋址地址是一個(gè)變址寄存器和變址寄存器內(nèi)容和指令中指定比例因子再加上基址寄存器的內(nèi)容再加上位移量的和。所以有效地址有四部分組成
第三章.高級(jí)語(yǔ)言程序設(shè)計(jì)
第一節(jié).C語(yǔ)言的概念與特點(diǎn)
3.11.C語(yǔ)言的概念
C是一種結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言,它簡(jiǎn)明易懂功能強(qiáng)大,可使程序員不必關(guān)注程序在何種機(jī)器上運(yùn)行,而致力于問題本身處理。C語(yǔ)言集高級(jí)語(yǔ)言與低級(jí)語(yǔ)言功能于一體,適合于各種硬件平臺(tái),既可用于各種軟件的開發(fā),也適用于應(yīng)用軟件的開發(fā)。
C語(yǔ)言具有豐富的運(yùn)算符和數(shù)據(jù)類型,便于實(shí)現(xiàn)各種復(fù)雜的類型的數(shù)據(jù)結(jié)構(gòu);它可以直接訪問內(nèi)存的物理地址,直接對(duì)硬件的底層操作,能實(shí)現(xiàn)匯編語(yǔ)言的大部分功能,因此,也有人把C語(yǔ)言稱為中級(jí)語(yǔ)言;C語(yǔ)言還可以進(jìn)行位的運(yùn)算,實(shí)現(xiàn)對(duì)數(shù)據(jù)的“位”操作。另外,C語(yǔ)言還具有效率高,可移植性強(qiáng)等特點(diǎn)。
3.12.設(shè)計(jì)design1.選擇(methods方法,techniques技術(shù),tools工具)來滿足需求(requirements),同時(shí)滿足正確,成本(硬件,軟件,人力資源)和效率。高級(jí)語(yǔ)言如C語(yǔ)言有標(biāo)識(shí)符,地址包括指令地址,數(shù)據(jù)地址和函數(shù)地址例如:
#include#include表示宏(marro)CharszHello[]=!’Hello’;
Intmain()第一條命令指令從這里開始{
Cout(2).用“___”,“09”,“az”,“AZ”是規(guī)范標(biāo)識(shí)符(3).C語(yǔ)言或C++語(yǔ)言中大小寫字母表示不同標(biāo)識(shí)符(4).開頭小寫字母要表明內(nèi)存中所存數(shù)據(jù)類型例如:chuserinput:表明接收用戶輸入n(整數(shù)數(shù)字)coefficient:存的是整數(shù)db/dw:小數(shù)szstandNO:符號(hào)(5).定義布爾值
Is(開頭)NUM:是一個(gè)數(shù)字嗎?(6).定義常數(shù)
Const:doublePI=3.14const類型:(字符串,整數(shù),小數(shù)等)全大寫標(biāo)識(shí)符=最后值
(7).標(biāo)號(hào)是有多個(gè)字母構(gòu)成其中首字母大寫,其他小寫(8).單詞過長(zhǎng)時(shí)可以縮寫字符(符合慣例)3.標(biāo)識(shí)符的基本數(shù)據(jù)類型(1).包括數(shù)據(jù)類型和數(shù)據(jù)含義
Char字符型,1個(gè)字節(jié)int整數(shù)型,4個(gè)字節(jié)double浮點(diǎn)型,8個(gè)字節(jié)bool布爾型,1個(gè)字節(jié)shortint,2個(gè)字節(jié)
例如:C語(yǔ)言中charszstudNo[10](9位)大于9位就會(huì)溢出
C++中charszstudNo:#include3.22.庫(kù)runtime(運(yùn)行庫(kù))1.C庫(kù)與C++庫(kù)的比較
C庫(kù):加后綴.h如:#include#include#include#include
C++庫(kù)類庫(kù)不加.h如#include,#include等Usingnamespacestd使用標(biāo)準(zhǔn)C++庫(kù)例如程序:
#include使用標(biāo)準(zhǔn)C庫(kù)//#include
Charch=‘a(chǎn)’;單引號(hào)表示字符長(zhǎng)度為1/雙引號(hào)表示字符長(zhǎng)度為2Intnum1=8;ShortIntnum2=5;Doubledw=0.5;Boolb=true;
Cout
00000005&num0200;Num=5;直接尋址
*(&)num;取地址中的值
2.C語(yǔ)言中有printf()表示格式化輸出函數(shù),其包含在這個(gè)庫(kù)中printf(“格式”)標(biāo)識(shí)符列表
如果“:”以整數(shù)輸出如果“f”以小數(shù)輸出如果“x”以十六進(jìn)制輸出如果“c”以字符輸出
L表示顯示長(zhǎng)度,D表示小數(shù)點(diǎn)位數(shù),f以什么格式輸出例如:
%8.2f8:長(zhǎng)度為8,2:小數(shù)點(diǎn)第二位,f:以小數(shù)輸出“+”表示右對(duì)齊“-”表示左對(duì)齊3.標(biāo)識(shí)符內(nèi)存分配
(1).標(biāo)識(shí)符在某函數(shù)內(nèi)部從棧上分配,一旦return退出,函數(shù)從內(nèi)存空間釋放。
(2).標(biāo)識(shí)符定義在所有程序之外,內(nèi)存從棧上分配,只有從程序退出(程序結(jié)束)相應(yīng)空間程序才釋放。
(3).雖然定義在某函數(shù)內(nèi)部,但若是用static定義(靜態(tài))則為全局的內(nèi)存分配的規(guī)矩從偶數(shù)開始,這樣做只需一個(gè)周期即可。例如:
Char:a61:420e741Shortint:10a:420e762Int:55:420e784char:a61:420e741Int:55:420e784Shortint:10a:420e764.If(條件判別)邏輯表達(dá)式Printf格式化輸入輸出
Cout使用scanf()注意
1).要注意數(shù)值型數(shù)據(jù)和字符型數(shù)據(jù)的取值特點(diǎn),如果要同時(shí)輸入這兩種類型的數(shù)據(jù),可采取先輸入字符數(shù)據(jù)后輸入數(shù)值型數(shù)據(jù),以減少錯(cuò)誤的發(fā)生。2).為減少錯(cuò)誤的發(fā)生,建議在scanf()語(yǔ)句中不要加入可見字符,如果想知道應(yīng)該輸入什么數(shù)據(jù),可以再scanf()語(yǔ)句前面加上一個(gè)提示語(yǔ)句。***********************************************************擴(kuò)展知識(shí):格式化輸入輸出函數(shù)1.格式化輸出函數(shù)
(1).作用:控制字符串的指定格式
(2).格式:Printf(“控制字符串”,輸出項(xiàng)列表)
(3).輸出項(xiàng)列表:常量,變量,表達(dá)式。輸出多項(xiàng)時(shí),各項(xiàng)要用逗號(hào)隔開?刂谱址怯筛袷秸f明和普通字符組成,只有普通字符串時(shí)不需要輸出列表(4).格式說明
格式%[];(5).輸出格式字符
d十進(jìn)制整數(shù)e科學(xué)計(jì)數(shù)法o八進(jìn)制輸出hd十進(jìn)制輸出短數(shù)型ld十進(jìn)制輸出長(zhǎng)數(shù)型u無符號(hào)x十六進(jìn)制f浮點(diǎn)小數(shù)c字符型s字符串
2..格式化輸入函數(shù)scanf()
(1).格式:Scanf(“控制字符串”,輸入項(xiàng)目列表);規(guī)定數(shù)據(jù)輸入格式
Scanf()中輸入列表中變量地址前應(yīng)加操作符“&”變量類型與中格式說明一致(2).格式說明
格式%[]1)字符寬度
如scanf(“%3d”,&a);數(shù)據(jù)寬度不能超過3個(gè)字符
2)字符頭“*”*按規(guī)定格式輸出但不賦變量,作用跳過相應(yīng)的數(shù)據(jù)。例:intx=0j=0z=Scanf(“%d%*d%d”,&x&y&z);若輸入112233結(jié)果x=11y=33z未賦值
**************************************************************
第三節(jié).循環(huán)結(jié)構(gòu)
3.31.If結(jié)構(gòu)
if語(yǔ)句是最簡(jiǎn)單的分支結(jié)構(gòu),一般形式為:If()例如ifelse語(yǔ)句:
if()else如果真執(zhí)行語(yǔ)句A若否執(zhí)行語(yǔ)句B
If語(yǔ)句的嵌套
If()Elseif()
Else任意嵌套
在ifelse結(jié)構(gòu)中任意執(zhí)行程序中插入if結(jié)構(gòu)或ifelse結(jié)構(gòu)
3.32.Switch語(yǔ)句1.一般形式為:switch()
{Case:語(yǔ)句序列1;Case:語(yǔ)句序列2;
Case:語(yǔ)句序列n
Default:語(yǔ)句序列(n+1);}
2.常量表達(dá)式如:整型字符型枚舉型流程圖:
由于switch語(yǔ)句形式不具有通常意義上的“分支”根據(jù)switch語(yǔ)句的語(yǔ)法規(guī)則:程序在滿足第i個(gè)條件后,從語(yǔ)句序列i開始執(zhí)行,直到為止
3.33.For循環(huán)語(yǔ)句
1.for語(yǔ)句其循環(huán)次數(shù)是通過一個(gè)循環(huán)變量來控制的故把這種循環(huán)稱為計(jì)數(shù)循環(huán)包含3個(gè)重要組成部分
(1).初始化循環(huán)控制變量(2).測(cè)試循環(huán)條件(3).變更循環(huán)控制變量的值
2.格式:其一般形式為
For(;;){}3.功能:如下4個(gè)步驟
(1).計(jì)算對(duì)循環(huán)變量進(jìn)行初始化
(2).判斷若“假”退出,若“真”執(zhí)行循環(huán)(3).計(jì)算更新循環(huán)變量的值(4).轉(zhuǎn)第二步
For語(yǔ)句流程圖While語(yǔ)句的流程圖
3.34.While語(yǔ)句1.格式:一般形式while(){}
構(gòu)成循環(huán)體語(yǔ)句用來更新計(jì)算變量的值
3.35.Dowhile語(yǔ)句1.一般形式:Do
{While()}
2.語(yǔ)法功能
(1).執(zhí)行
(2).計(jì)算條件表達(dá)式,若值為真則執(zhí)行步驟1若為假則退出循環(huán)執(zhí)行下一條語(yǔ)句。
3.36.循環(huán)嵌套結(jié)構(gòu)
1.概念:循環(huán)結(jié)構(gòu)的嵌套,指的是在某一循環(huán)結(jié)構(gòu)的語(yǔ)句中,包含有另一個(gè)循環(huán)結(jié)構(gòu),理論上,循環(huán)嵌套的深度不受限制,但實(shí)際中不提倡使用嵌套層次太多的循環(huán)結(jié)構(gòu)。
2.使用嵌套的結(jié)構(gòu):要注意嵌套的層次,不能交叉,嵌套的內(nèi)外層循環(huán)不能使用同名的循環(huán)變量,并列結(jié)構(gòu)的內(nèi)外層循環(huán)允許使用同名的循環(huán)變量。舉例:九九乘法表:
#include
voidmain(){
inti,j;
for(i=1;i1*5=52*5=103*5=154*5=205*5=251*6=62*6=123*6=184*6=245*6=306*6=361*2=72*7=143*7=214*7=285*7=356*7=427*7=491*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=641*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=81
第四節(jié).指針
3.41.指針的概念
在C語(yǔ)言中,指針被用來表示內(nèi)存單元的地址。指針變量的值就是某個(gè)內(nèi)存單元的地址或稱為某內(nèi)存單元的指針。指針的引入為系統(tǒng)存取數(shù)據(jù)提供了一種“間接訪問”方式。所謂間接訪問,是先訪問存放變量地址的存儲(chǔ)單元,得到該變量的地址,再對(duì)變量?jī)?nèi)容進(jìn)行訪問。指針變量是一種特殊變量。系統(tǒng)為指針變量分配一塊連續(xù)存儲(chǔ)單元不是供其存儲(chǔ)數(shù)據(jù),而是存儲(chǔ)內(nèi)存地址。因此,指針變量是存儲(chǔ)內(nèi)存地址的變量。
例如:
假設(shè)有:intI=-5;Charch=’A’;Floatx=7.34;
則變量i,ch,x占用的內(nèi)存可由下圖表示:整數(shù)型變量i占2單元,字符型變量ch占一個(gè)單元;二浮點(diǎn)型變量x占4個(gè)單元。
3.42.指針的類型
1.指向簡(jiǎn)單變量的指針。指針?biāo)傅臄?shù)據(jù)類可以是簡(jiǎn)單的數(shù)據(jù)類型。例:(1).int*p,i;p=&i;意思是指針變量指向整型變量i
1111111111111111111111111111(2).char*p,a;p=&a;意思是指針變量指向字符型變量a
(3.)int*p,a[10];p=a;意思是指針變量指向數(shù)組a
2.指向數(shù)組的指針。指針?biāo)傅臄?shù)組既可以是一維數(shù)組,也可以是多維數(shù)組。例:main()
{int[4]={2,4,6,8};int*p;
for(p=a;pq=p;
printf("%d\\n",*(*(q+1)+1));}
分析:指針數(shù)組p的各個(gè)指針變量指向數(shù)組a的各行首地址,q指向指針數(shù)組p的首地址,*(q+1)等同p[1],如此,*(*(q+1)+1)便等同*(p[1]+1)也就是a[1][1],因此程序輸出7。
5、指向函數(shù)的指針。指針變量指向函數(shù)的首地址,然后通過該指針變量調(diào)用該函數(shù)。定義如:int(*p)()。例:intmax(inta,intb){return((a>b)?a:b);}main()
{intmax(int,int);int(*p)();inta,b;
p=max;scanf("%d,%d",&a,&b);printf("max=%d\\n",(*p)(a,b));}
分析:int(*p)()表示定義了一個(gè)指向函數(shù)的指針變量,函數(shù)名max代表了函數(shù)的入口地址,執(zhí)行p=max后,p指向了函數(shù)max,(*p)(a,b)便是通過p調(diào)用函數(shù)max。
6、指向文件的指針。C語(yǔ)言對(duì)文件的操作并不是直接通過文件名進(jìn)行的,而是根據(jù)文件名生成一個(gè)文件指針,通過該指針來對(duì)文件進(jìn)行操作.定義如:FILE*fP;(fp為文件指針,此時(shí)fp不指向任何文件)。3.43.指針應(yīng)用中常見的錯(cuò)誤
1.把數(shù)據(jù)賦給指針變量。指針在使用前必須進(jìn)行初始化,賦予指針的值必須是地址。例:main()
{inti=6,*p;p=6;printf“(*p=%d\\n”,*p);}
正確語(yǔ)句:p=&i;“&”是一個(gè)取變量地址的運(yùn)算符。2.指針常量運(yùn)算錯(cuò)誤。
程序中常量指針是不能被修改的。典型有數(shù)組名指針常量和指向字符串常量的指針。例:main()
{inta[5]={1,2,3,4,5},*p;p=a;printf“(%d\\n”,*(++a));}正確語(yǔ)句:printf“(%d\\n”,*(++p));3、指針賦值類型不一致例:main()
{int*p,a[3][3]={{1,2,3},{4,5,6},{7,8,9}};p=a;printf(“%d\\n”,*p);}
正確語(yǔ)句:p=a[0];或p=&a[0][0];如果一定把a(bǔ)賦值給p,必須先將a轉(zhuǎn)換成整型指針類型,如:p=(int*)a;。特別是將多維數(shù)組賦值給指針變量時(shí)應(yīng)注意類型匹配。
第五節(jié).函數(shù)
3.51.函數(shù)的概念1.函數(shù)概念
在C語(yǔ)言中函數(shù)可分為兩大類,一類是系統(tǒng)定義的標(biāo)準(zhǔn)函數(shù),又稱庫(kù)函數(shù),其函數(shù)申明一般是放在系統(tǒng)的include目錄下以.h為后綴的頭文件中,如在程序中要用到某個(gè)庫(kù)函數(shù),必須在調(diào)用該函數(shù)之前用#include命令將函數(shù)庫(kù)的信息包含到本程序中。
另外一類是自定義的函數(shù),這類函數(shù)是根據(jù)問題的特殊要求而設(shè)計(jì)的,自定義的函數(shù)為程序的模塊化提供了有效的技術(shù)支撐,有利于函數(shù)的維護(hù)和擴(kuò)充。
2.函數(shù)定義
函數(shù)定義一般形式為:
[存儲(chǔ)類型符][返回值類型符]函數(shù)名{函數(shù)語(yǔ)句體}*說明:
1.[存儲(chǔ)類型符]是指函數(shù)作用范圍,有兩種形式:static和extern.
2.[返回值類型符]是指函數(shù)體語(yǔ)句執(zhí)行完后,函數(shù)返回類型,如int,float,char等,若函數(shù)無返回值則用空類型void來定義函數(shù)返回值,默認(rèn)值為int。
3.52函數(shù)的描述1.接口函數(shù)的描述
2.函數(shù)名:如scanf()printf()srand()等。3.函數(shù)功能:
一些語(yǔ)句的集合,這些語(yǔ)句組合在一起完成一項(xiàng)操作,返回所需要的結(jié)果。4.輸入?yún)?shù):
例如:char*sz1:第一個(gè)函數(shù)的首地址
char*sz2:第二個(gè)函數(shù)的地址
5.輸出參數(shù):傳遞結(jié)果
6.返回值:“int”返回什么位置7.函數(shù)簽名
參數(shù)個(gè)數(shù)和類型:只要個(gè)數(shù)和類型又不相同的,函數(shù)就不同。其中函數(shù)名相同但里面的參數(shù)個(gè)數(shù)和模型不同稱為函數(shù)的重載。
3.53.函數(shù)的申明與調(diào)用1.函數(shù)的申明
函數(shù)申明語(yǔ)句的一般形式為:
【儲(chǔ)存類型符】【返回值類型符】函數(shù)名(【形參說明表】);2.函數(shù)的調(diào)用
一個(gè)函數(shù)寫好后,若不通過函數(shù)調(diào)用,是不會(huì)發(fā)揮任何作用的,函數(shù)調(diào)用是通過函數(shù)調(diào)用語(yǔ)句來實(shí)現(xiàn)的,分為以下兩種形式:
(1).函數(shù)無返回值的函數(shù)調(diào)用語(yǔ)句(2).函數(shù)有返回值的函數(shù)調(diào)用語(yǔ)句3.54函數(shù)的傳值方式1.調(diào)用方式
變量名=函數(shù)名;
在調(diào)用函數(shù)時(shí),若函數(shù)是有參數(shù)的,則必須采用實(shí)參表將每一個(gè)實(shí)參的值相應(yīng)地傳遞給每一個(gè)形參變量,形參變量在接收實(shí)參表傳過來的值時(shí),會(huì)在內(nèi)存臨時(shí)開辟的新空間,以保存形參變量的值,當(dāng)函數(shù)執(zhí)行完畢時(shí),這些臨時(shí)開辟的內(nèi)存空間會(huì)被釋放,并且形參的值在函數(shù)中無論是否發(fā)生變化,都不會(huì)影響實(shí)參變量的值的變化,這就是函數(shù)的傳值方式。
2.傳值方式
自定義函數(shù)在程序中的使用順序有以下兩種形式:
(1).先進(jìn)行函數(shù)申明,再進(jìn)行函數(shù)調(diào)用,函數(shù)定義放在main函數(shù)后面。函數(shù)申明應(yīng)放在函數(shù)調(diào)用的前面,具體位置與編譯環(huán)境有關(guān)。
(2).函數(shù)定義放在main函數(shù)的前面,再進(jìn)行函數(shù)調(diào)用。在這種情況下,可以不進(jìn)行函數(shù)申明。
第六節(jié).遞歸程序設(shè)計(jì)和調(diào)用
3.61遞歸程序的調(diào)用1.直接遞歸調(diào)用
直接遞歸調(diào)用是指在函數(shù)定義的語(yǔ)句中,存在著調(diào)用本函數(shù)的語(yǔ)2.間接遞歸調(diào)用
間接遞歸調(diào)用是指在不同函數(shù)定義中,存在著互相調(diào)用函數(shù)語(yǔ)句的情況遞歸有幾個(gè)部分組成(1).結(jié)束條件(最小規(guī)模)
(2).遞歸條件。(即n與n-1的關(guān)系)例如用遞歸求階乘:
#includeIntjc(int);intMain(){
intn=1;
cout(pleaseenterainteger:\\n”);cin>>n;
coutIntj=1{if(n==1){j=1;}Else
{j=jc(n-1)*n;}
Returnj;}}
運(yùn)行結(jié)果為:pleaseenterainteger:輸入5結(jié)果5!=120
第七節(jié).數(shù)組
3.71.數(shù)組的定義與初始化1.一維數(shù)組的定義
為了與簡(jiǎn)單變量區(qū)別開來,數(shù)組利用其下標(biāo)來區(qū)分不同變量,一維數(shù)組的定義格式:
[存儲(chǔ)類型][數(shù)組大小];如inta[6];
數(shù)組名為a,它有6個(gè)元素,分別為a[0]、a[1]、a[2]、a[3]、a[4]、a[5],每個(gè)元素都代表一個(gè)整型變量。
數(shù)組在內(nèi)存中式按順序連續(xù)存放著,占用的內(nèi)存大小為,每一個(gè)元素占用內(nèi)存大小的和。
2.一維數(shù)組的初始化
C語(yǔ)言允許在定義數(shù)組的同時(shí),可以對(duì)數(shù)組中的元素賦初始值,稱為數(shù)組的初始化。
其格式為:[static]<數(shù)組名[]>={};3.72.多維數(shù)組
1.二維數(shù)組的概念
二維數(shù)組的應(yīng)用很廣,如平面上的一組電的集合就可用二維數(shù)組表式,每個(gè)點(diǎn)代表著X軸的橫坐標(biāo)和代表著Y軸的縱坐標(biāo)來表式,應(yīng)此平面上的電可用二維數(shù)組表式:
2.二維數(shù)組的定義二維數(shù)組的定義格式為:
數(shù)組名[行元素個(gè)數(shù)][列元素個(gè)數(shù)];
如:charword[3][2];/*數(shù)組word,具有3行2列,每一個(gè)數(shù)組元素的值都是字符型數(shù)據(jù)*/
intnum[2][4];/*數(shù)組num,具有2行4列,每一個(gè)數(shù)組元素的值都是整型數(shù)據(jù)*/
floatterm[4][3]/*數(shù)組term,具有4行3列,每一個(gè)數(shù)組元素的值都是浮點(diǎn)型數(shù)據(jù)*/
3.多維數(shù)組的定義多維數(shù)組的定義格式為:
數(shù)組名[元素1的個(gè)數(shù)][元素2的個(gè)數(shù)][元素3的個(gè)數(shù)][元素N的個(gè)數(shù)];
4.二維數(shù)組及多維數(shù)組的初始化
同一維數(shù)組一樣,可以在定義的同時(shí)對(duì)數(shù)組元素賦以初值。對(duì)二維數(shù)組及多維數(shù)組的元素賦初始值時(shí),采用按行優(yōu)先的順序?qū)?shù)組元素賦值。賦值時(shí)可以采用對(duì)元素全部賦值和部分賦值兩種方式。3.73.字符數(shù)組
1.字符串的輸入
(1).向數(shù)組元素name[0]輸入一個(gè)字符,其概念與簡(jiǎn)單的字符變量的輸入相同,既scanf(“%c”,&name[0]);(2).向數(shù)組輸入整個(gè)字符串:scanf(“%s”,name);或scanf(“%s”,&name);3.字符串的輸出
用printf函數(shù)可輸出一個(gè)或幾個(gè)數(shù)組元素,也可以將存放在字符數(shù)組中的字符輸出,例如:printf(“%c,%s”,name[0],name);先輸出一個(gè)字符數(shù)組元素的值name[0],然后輸出name數(shù)組中整個(gè)字符串。如果name數(shù)組中的元素值如圖所示,則printf函數(shù)輸出為:v,very
name[0]name[1]name[2]name[3]name[4]name[5]name[6]name[7]name[8]veryhot\\0這是由于在用printf(“%s”,name);來輸出字符串時(shí),會(huì)把空格符也當(dāng)成字符串的結(jié)束符。另外C語(yǔ)言提供了一個(gè)輸出函數(shù)puts(),用它可輸出字符串的空格。
友情提示:本文中關(guān)于《計(jì)算機(jī)導(dǎo)論課程報(bào)告》給出的范例僅供您參考拓展思維使用,計(jì)算機(jī)導(dǎo)論課程報(bào)告:該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請(qǐng)聯(lián)系我們及時(shí)刪除。