大學(xué)計(jì)算機(jī)基礎(chǔ)03_第1頁
大學(xué)計(jì)算機(jī)基礎(chǔ)03_第2頁
大學(xué)計(jì)算機(jī)基礎(chǔ)03_第3頁
大學(xué)計(jì)算機(jī)基礎(chǔ)03_第4頁
大學(xué)計(jì)算機(jī)基礎(chǔ)03_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

安微工處大學(xué)....

AnhutUniversityofTechnology.g

基礎(chǔ)篇

本章拓展知識(shí)

3.1概述

'^\AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz

?計(jì)算機(jī)語言

?程序

?算法

①計(jì)算機(jī)語言

計(jì)算機(jī)語言就是計(jì)算機(jī)能讀懂的語言,早期

的計(jì)算機(jī)語言叫機(jī)器語言。

②程序計(jì)算機(jī)程序,就是指揮計(jì)算機(jī)按一定的

動(dòng)作步驟完成指定任務(wù)的一系列命令。

例3.1打印一個(gè)由符號(hào)“"組成的倒三角圖形的程序。

*******voidmain()

*****;Jintj,k;定義整型變量[和k

*****

---------'\for(j=0;j<8;j++)控制輸出的行數(shù)

*****

****C語言表示》{for(k=0;k<j;k++)prin廿("")每行輸出的空格

***---------1/for(k=8-j;k>0;k--)prin廿(”*");每行輸出的*

**'printfC'Xn");每行輸出結(jié)束時(shí)換行

*

③算法

算法可以理解為是完成一項(xiàng)工

作的步驟集合。

例32烹飪菜譜。例3.3操作說明。

櫻桃肉1,將食物放入爐內(nèi)

主料:牛里脊肉.雞蛋

配料:淀粉.蔥.姜?蒜.白糖?醬油.番茄醬

-3.輸入烹調(diào)/再加熱

時(shí)間

2.選擇微波火力

做法:例如.12分30秒

技微波火力%

1.里脊肉切塊,用蛋清淀粉攪勻.?操10?U?10?

1次高火100%

2.油溫五成熱時(shí)放入肉塊滑熟備用作,'I

按1次投2次按3次

3.用醬油.白糖.醋.水淀粉.高湯調(diào)汁.2次中高火80%

步(最大設(shè)定時(shí)間為99分90秒.

3次中火60%

4.起鍋下蔥.姜.蒜末炮鍋后放番茄醬,高火為29分90秒或30分

再放肉,最后倒汁.?驟4次中低火40%

5次低火20%一4按

顯示窗上將倒數(shù)計(jì)時(shí).

計(jì)算機(jī)語言、算法和程序

>算法在描述上一般使用半形式化的語言,而程

序是用形式化的計(jì)算機(jī)語言描述的;

>算法對(duì)問題求解過程的描述可以比程序粗略,

算法經(jīng)過細(xì)化以后可以得到計(jì)算機(jī)程序。

>一個(gè)計(jì)算機(jī)程序是一個(gè)算法的計(jì)算機(jī)語言表

述,而執(zhí)行一個(gè)程序就是執(zhí)行一個(gè)用計(jì)算機(jī)語

言表述的算法。

3.2算法

kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz

?算法的基本概念

?算法的表示

?算法應(yīng)用示例

①算法的基本概念

>算法定義

>算法特性

>算法評(píng)價(jià)

>算法與計(jì)算機(jī)程序

算法定義

▲算法是一組明確的、有序的、可以執(zhí)行

的步驟集合。

▲算法的概念要求步驟集是有序的,這就

要求算法中的各個(gè)步驟必須擁有定義完好

的、順序執(zhí)行的結(jié)構(gòu)。

算法特性一個(gè)算法必須保證執(zhí)行有限步之后結(jié)束

算法評(píng)價(jià)

算法的正確性

一個(gè)算法在計(jì)算機(jī)上運(yùn)行所花費(fèi)的時(shí)間

在存儲(chǔ)器上所占用的存儲(chǔ)空間(主要考慮在

算法運(yùn)行過程中臨時(shí)占用的存儲(chǔ)空間的大?。?/p>

算法的易讀性

算法與計(jì)算機(jī)程序

算法是行為的說明,是一組邏輯步驟。

計(jì)算機(jī)程序是算法的一種表示,是使用一些特

殊編程語言表達(dá)的某些算法。可能有幾種不同

的計(jì)算機(jī)程序,每一種用不同的編程語言實(shí)

現(xiàn),但遵循的邏輯步驟是相同的。它們都表達(dá)

同樣的算法,但是它們不是同樣的程序。

②算法的表示

用自然語言表示

用流程圖表示

用N-S流程圖表示

用偽代碼表示

用計(jì)算機(jī)語言表示

流程圖

流程圖是通過箭頭相互連接的幾何圖

形來表達(dá)的方法。

[■起止框

ANSI規(guī)定]■1^r輸入輸出框

的一些常

用流直圖匚,J

判斷框

符號(hào)。/\

■處理框

流程線

N-S流程圖

一種流程圖形式,在這種流程圖中完全去掉了

流程線,全部算法寫在一個(gè)矩形框內(nèi).

順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)

WhileP1

YesNo

UntilP2

偽代碼

-偽代碼是一種描述語言。

-它只是一種描述程序執(zhí)行過程的工

具,是面向讀者的,不能直接用于計(jì)算

機(jī),實(shí)際使用時(shí)還需轉(zhuǎn)換成某種計(jì)算機(jī)

語言來表示。

例如:計(jì)算1+2+3+....+9+10

Sum=0

n=l

While(n<=l2偽碼是一種在程序

設(shè)計(jì)過程中表達(dá)想

Begin

sum=sum+n法的非正式的符號(hào)

n=n+l?系統(tǒng)

end

printSum

描述計(jì)算1+2+3+….+9+10算法的偽代碼

描述計(jì)算1+2+3+.…+9+10算法的流程圖

例3.4由函數(shù)式v=x2-2x+3計(jì)算

當(dāng)x=0,1,234,5所對(duì)應(yīng)的y值

?用自然語言描述

?用流程圖表示

■用N-S圖表示

?用C語言表示

?用自然語言描述y=x2-2x+3

當(dāng)X=0515253,4,5計(jì)算對(duì)應(yīng)的y值

1.置x的下界為Q

2.置x的上界為n=5;

3.當(dāng)xWc時(shí),重復(fù)執(zhí)行如下3步,

否則算法停止。

用公式計(jì)算y值

輸出一組/口y的值

x值增加1

?用流程圖描述

開始

0nx

5nn

x<n?

y=x2-2x+3結(jié)束

俞出:x與y的《

x=x+l

?用N-S圖描述

直至Ux>n

?用C語言描述

main()

{intx,y5n;

x=0;n=5;

while(x<=n)

{y=x*x-2*x+3;

printf("x=%d,y=%cT,x,y);

x=x+1;

)

③算法應(yīng)用示例

基本算法

順序查找

曹二分查找

排序

基本算法結(jié)構(gòu)

順序結(jié)構(gòu)I選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)

衛(wèi)豈竺一直到型循環(huán)

算法的三種主要結(jié)構(gòu)

【例題3-5】磁帶A中錄有音樂,磁帶B中錄有外語。

請(qǐng)將兩盤磁帶中的內(nèi)容交換。

算法分析:

要交換磁帶A與磁帶B的內(nèi)容必須借

助第三盤磁帶。過程如下:

步驟一:準(zhǔn)備空白磁帶Temp;

步驟二:將A盤磁帶中的音樂轉(zhuǎn)錄

至“Temp;

步驟三:將B盤磁帶中的英語錄入A

中.

步驟加:將Temp盤中的音樂錄入B

盤中。

【例題3-61從鍵盤輸入兩個(gè)數(shù),輸出最大的一個(gè)數(shù)。

算法分析:

要完成題目的任務(wù),分別用于保存兩個(gè)整數(shù)的符號(hào)名稱a和b,

稱為變量。用于存放兩個(gè)數(shù)中最大一個(gè)的符號(hào)名稱max稱為中

間變量。過程如下:

步驟一:輸入兩個(gè)整數(shù)到a,b;

步驟二:比較a和b;

步驟三:如果a>b,則將a中的數(shù)據(jù)保存到max中;

步驟四:如果avb,則將b中的數(shù)據(jù)保存到max中;

步驟五:打印max。

從鍵盤輸入兩個(gè)數(shù),輸出其中最大數(shù)的流程圖

【例題3-7】口令檢查。當(dāng)用戶輸入口令正確時(shí),打印“你

是合法用戶!'當(dāng)口令不正確時(shí),提示用戶重新輸入,當(dāng)

輸入口令次數(shù)超過三次,而且不正確時(shí)結(jié)束程序。

算法分析

步驟一:提示用戶輸入一個(gè)口令;

步驟二:如果口令正確,貝!J打“你是合法用戶!

步驟三:如果口令不正確,貝!]打E|1"你的口令不正確!咒

步驟四:如果輸入口令次數(shù)超過三次,輸出“你是非法用戶”,結(jié)

束程序;否則返回步驟一。

查找

直找就是根據(jù)給定的值,在一組數(shù)據(jù)中確定一個(gè)

其數(shù)值等于給定值的數(shù)據(jù)元素,若存在這樣的數(shù)據(jù)

元素說明查找是成功的,否則查找是不成功的。

查找的方法:一般分為順序查找、折半查找和樹表

查找。

順序查找的基本思想:在n個(gè)元素的集合中,從第一個(gè)元素

開始,逐個(gè)把元素的關(guān)鍵字值同給定值比較,若某個(gè)元素的關(guān)鍵字

值和給定值相等,則查找成功;否則,若直至第n個(gè)值都不相等,

說明不存在滿足條件的元素,查找失敗。順序查找法的平均查找長(zhǎng)

度是n/2。

二分查找的基本思想:首先排序表中的數(shù)據(jù)元素,然

后與列表“中間位置”的元素比較,若相等則查找成功;若

給定值大于“中間位置”的元素值,則在后半部繼續(xù)進(jìn)行折

半查找;否則在前半部進(jìn)行折半查找。

【例題3-8】已知一個(gè)人員名字列表{Marry,Ann,Kelly,

Black,Carol,David,John,Hanrry,Fred,Elaine,Oliver,

George,Irene,Larry,Nancy}o橫用順序查找法,找出

John0

算法分析

步驟一從列表的第一項(xiàng)開始。

步驟二要查找的值John與列表中關(guān)鍵字的值進(jìn)行比較是否相同

a)如果不相同且該項(xiàng)是列表中的最后一項(xiàng),執(zhí)行步驟四(結(jié)束);

b)如果不相同且該項(xiàng)不是列表中的最后一項(xiàng),則順序比蚊下一項(xiàng),

執(zhí)行步驟二;

c)如果相同,則執(zhí)行步驟三;

步驟三打印查找到的John

步驟四結(jié)束

找出John需要順序比較這個(gè)人員名字列表中的元素7次。查

找Marry僅需要比較1次,而查找Nancy確需要比較15次。

平均查找長(zhǎng)度為7。

上講回顧

,算法

1、定義:

一組明確、有序、可以執(zhí)行的處理問題步驟集合。

2、算法特性:

有窮性

確切性

20個(gè)輸入

21個(gè)輸出

有效性(可行性)

上講回顧

3、算法評(píng)價(jià)指標(biāo):

正確性

時(shí)間復(fù)雜度

空間復(fù)雜度

易讀性

4、算法的常用表達(dá)工具:

自然語言

流程圖

N-S流程圖

偽代碼

計(jì)算機(jī)語言

5、基本算法結(jié)構(gòu)

順序

選擇(分支)

循環(huán)

6、查找的類型:

樹表查找

散列查找

順序查找

二分查找

二分查找的前提條件(被查找的一組數(shù)據(jù)已經(jīng)有序)

我E序

基本排序算法有?.選擇排序、交換排序和插入排序

直接選擇排序的基本思想:

掃描整個(gè)序列,從中選出最小的元素,將它交換到序列

的最前面;然后對(duì)剩下的序列采用同樣的方法,直到未

排序序列空為止。對(duì)于長(zhǎng)度為n的序列,選擇排序需要掃

描n-1遍,每一遍掃描均從剩下的子序列中選出最小的元

素,然后將該最小的元素與子序列中的第一個(gè)元素進(jìn)行

交換。

原序列8921564885161947

第1遍選擇8921564885161947

第2遍選擇1621564885891947

第3遍選擇1619564885892147

第4遍選擇1619214885895647

第5遍選擇1619214785895648

第6遍選擇1619214748895685

第7遍選擇1619214748568985

1619214748568589

3.2編程語言

'JkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz

?計(jì)算機(jī)語言

?解釋與編譯

①計(jì)算機(jī)語言

機(jī)器語言

FORTRAN

BASIC

COBOL

PASCAL

C/C++

c#

JAVA

計(jì)算機(jī)語言的發(fā)展

計(jì)算機(jī)語言分類

L機(jī)器語言

由0、1代碼組成,能被計(jì)算機(jī)直接識(shí)別和執(zhí)行的指令集合。

特點(diǎn):占用空間小、執(zhí)行速度快,不易學(xué)習(xí)和修改

不同類型機(jī)器的指令系統(tǒng)(機(jī)器語言)不同,通用性差

2.匯編語言(符號(hào)語言)

用助記符代替機(jī)器語言中的指令和數(shù)據(jù)

特點(diǎn):易修改,保持了速度快,占用空間小的特點(diǎn)

不同類型機(jī)器的匯編語言不同

3.高級(jí)語言

由貼近自然語言的“詞”和“數(shù)學(xué)公式”組成

特點(diǎn),易學(xué)、易讀,易修改,通用性好,不依賴于機(jī)器

?具有很強(qiáng)的通用性和可移植性

4.面向?qū)ο蟮恼Z言---面向?qū)ο蟮恼Z言應(yīng)該是高級(jí)

語言一個(gè)分支.是最活躍的高級(jí)語言,它的應(yīng)用價(jià)值

非常高。

特點(diǎn):點(diǎn)繼承了面向過程的高級(jí)語言的合理部分:結(jié)

構(gòu)化程序設(shè)計(jì)、模塊化、并行處理等,克服了數(shù)據(jù)

與對(duì)數(shù)據(jù)的處理(代碼)分離的弊端,代表了新穎

的程序設(shè)計(jì)思維方法。

典型的面向?qū)ο蟮恼Z言有:C++、C#、PB、

VB、VC、Delphi、Java、.Net等等。

主要計(jì)算機(jī)語言

?C語言M

1972年至1973間由AT&T公司Bell實(shí)驗(yàn)室的D.M.Ritchie

在BCPL語言基礎(chǔ)上設(shè)計(jì)而成的,著名的UNIX操作系統(tǒng)就是用

C語言編寫的。

?特點(diǎn):

語言與運(yùn)行支撐環(huán)境分離、可移植性好、語言規(guī)模小因而

相對(duì)簡(jiǎn)單、具有指針類型等,C語言本身簡(jiǎn)潔、高度靈活、程

序運(yùn)行效率高。此外,在C語言中,有不少操作直接對(duì)應(yīng)實(shí)際

機(jī)器所執(zhí)行的動(dòng)作,并在許多場(chǎng)合可以代替匯編語言。

主要計(jì)算機(jī)語言

」C++語言

以C語言為基礎(chǔ)發(fā)展起來的通用程序設(shè)計(jì)語言。C++內(nèi)

置面向?qū)ο蟮臋C(jī)制,支持?jǐn)?shù)據(jù)抽象。最先由Bell實(shí)驗(yàn)室的

B.stroustrup在1980年代設(shè)計(jì)并實(shí)現(xiàn),至今仍在不斷發(fā)展。

」C++語言是對(duì)C語言的擴(kuò)充,擴(kuò)充的內(nèi)容絕大部分來自其他

著名語言(如Simula、ALG0L68、Ada等)的最佳特性。由

于C++語言既有數(shù)據(jù)抽象和面向?qū)ο竽芰Γ\(yùn)行性能高,

又能與C語言相兼容,使得數(shù)量巨大的C語言程序能方便地

在C++語言環(huán)境中重用。

②解釋與編譯

解釋方式依賴于名為解釋器的程序,利用它解釋和執(zhí)行

高級(jí)語言程序中的語句。解釋器一次讀一條語句,然后

立即翻譯并執(zhí)行每一條語句。

編譯方式依賴于名為編譯器的程序,當(dāng)用戶將高級(jí)語

言編寫的源程序輸入計(jì)算機(jī)后,編譯器便把源程序整

個(gè)地翻譯成用機(jī)器語言表示的與之等價(jià)的機(jī)器語言程

序,然后再由計(jì)算機(jī)執(zhí)行該機(jī)器語言程序。

編譯器和解釋器是兩種語言處理程序,編譯程序與解

釋程序最大的區(qū)別之一在于前者生成目標(biāo)代碼,而后

者不生成。

解釋編譯方式。這種系統(tǒng)既有編譯器也有解釋器。如C#,Java

語言。這種系統(tǒng)的特點(diǎn)是:首先由編譯器把源程序翻譯成一種

稱之為中間語言代碼(也稱之為跨平臺(tái)語言代碼),以后由負(fù)責(zé)

執(zhí)行這種中間語言代碼的解釋器來執(zhí)行它。

編譯一個(gè)a+求和程序

安微工處大學(xué)

③解釋與編譯

解釋編譯型。這種系統(tǒng)既有編譯器也有解釋器。如C#,Java語

言。這種系統(tǒng)的特點(diǎn)是:首先由編譯器把源程序翻譯成一種稱

之為中間語言代碼(也稱之為跨平臺(tái)語言代碼),以后由負(fù)責(zé)執(zhí)

行這種中間語言代碼的解釋器來執(zhí)行它。

3.4程序設(shè)計(jì)基礎(chǔ)

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA>

?簡(jiǎn)單程序設(shè)計(jì)

?程序中的數(shù)據(jù)描述

?程序設(shè)計(jì)方法

?程序測(cè)試

①簡(jiǎn)單程序設(shè)計(jì)

程序的組成:

說明部分

程序體

數(shù)據(jù)

定義常量

#include<stdio.h>

#defineinchesPerFoot12

明#definecentimetersPerlnch2.54J

部、定義變量

intfeet,inches,lengthlnlnches;

floatcentimeters;卜,

輸出提示

main()

{printf(Hlnputvaluesintofeet&inchesindividually");

scanf(M%d%dM,\&feet&inches)j_[輸入

scanf(%d%d5&feet5&inches)5m

lengthininches=inchesPerFoot*feet+inches;

centimeters=centimetersPerlnch*lengthlnlnches;

printf(*Thelengthincentimetersis%f\n1,centimeters);

)

輸出數(shù)據(jù)

②程序中的數(shù)據(jù)描述

高級(jí)語言程序中的數(shù)據(jù)類型:

在程序運(yùn)行中W曹^為

在程序運(yùn)行中發(fā)生■稱為

擴(kuò)展的數(shù)據(jù)類型:數(shù)組、指針、結(jié)構(gòu)體

高級(jí)語言程序中數(shù)據(jù)的處理方式:

,在源程序代碼中直接賦值或輸入輸出語句

通過文件系統(tǒng)實(shí)現(xiàn)

C語言程序的編輯、編譯、鏈接和執(zhí)行過程

程序設(shè)計(jì)步驟

明確要解決的問題,確定

編程目標(biāo);定義想得到

/的輸入/輸出數(shù)據(jù)等。

程序說明

使用程序設(shè)計(jì)方法設(shè)tl

個(gè)問題或任務(wù)的執(zhí)行方案

程序設(shè)計(jì)

使用計(jì)算機(jī)語言

書寫源程序

程序編碼

調(diào)試源程序,消除程

序的語法和邏輯錯(cuò)誤。

測(cè)試程序?程序代碼文件

?程序說明文件

最終程序文件?用戶操作手冊(cè)

流程圖

N-S流程圖

偽代碼

④程序測(cè)試

書寫檢查

手工調(diào)試

編譯調(diào)試

采樣數(shù)據(jù)測(cè)試

用戶測(cè)試

本章拓展知識(shí)

?選擇法排序

?冒泡法排序

選擇法排序涌翠/也蹈*

包)x2x3x4x5x6x7x8x9xlO

比較一輪后記錄最小數(shù)所在下標(biāo)pj.

外循環(huán)進(jìn)行排列:i=0?n-2

內(nèi)循環(huán)找出本次最小數(shù)位置:j=i+l?nT

判斷條件:iWp{t=a[i];a[i]=a[p];a[p]=t;}

輸入:n個(gè)數(shù)

輸出:n個(gè)數(shù)(排序結(jié)果)

變量:a[10]tijp,n

((

+曰

+T(

d?

(〔

+H

+ca+

vd--

二lmM

〔p

I二pV5

—-

U+vuU

Had1)

VH

nO-J

IEpS0w

吊DJ

0ldlUPy

jI)H

H){d

do二O

9j

、J

O}

J

EQ堵

+x-l/W

:+「

■?歸

T比

i利

rC前

i£

o--

0-岫

o

n一P'

025

pN-融

)

J品OJX

U和

.ES曲

UJ?

ISe?

冒泡法排序題思路

將相鄰的兩個(gè)易赤

按要求將這兩個(gè)數(shù)排好序■

然后再兩兩進(jìn)行比較…依此類推■

直到最后兩個(gè)數(shù)比較并處理完成■

此時(shí)最大的數(shù)已換到最后一個(gè)位置

每進(jìn)行一輪,把剩下的數(shù)中最大的一個(gè)

移到最后的位置,共進(jìn)行nT輪。

算法的整體思路是讓大的數(shù)不斷往下沉,

小的數(shù)不斷地往上冒(冒泡排序法)。

inta[5]n=5

a[0]a[1]a[2]a[3]a[4]

第一輪13219032-1

13219032-1

13219032-1

13213290-1

第二輪132132-1

132132-1

132132-1

1321-1

第三輪<32)-13290

13<jJ)3290

第四輪疸二3)213290

-113213290

外循環(huán)進(jìn)行排列:n個(gè)數(shù),須n-1次

內(nèi)循環(huán):找出本次最大數(shù)j二1?n

冒泡排序的C程序_______________

「r定義變量和數(shù)組

main()

從鍵盤輸入10個(gè)數(shù)

inta[10],i,j,t,n=10給數(shù)組a[0]?a[9]

for(i=0;i<10;++i)

scanf("%cF,&a[i]);需要進(jìn)行n?1輪的比較排序

for(i=0;i<n-1;i++>—

{for(j=0;j<n-i-1;j++)一輪中,從頭開始對(duì)那座

if(a[j]>a[j+1])未排序的數(shù)據(jù)進(jìn)行相鄰的倆

{t=a[j];a[j]=a[j+1];a[j+1]=t;}個(gè)數(shù)比較,若前面的數(shù)大于

}.I其后的數(shù),就交換。

for(i=0;i<10;++i)i

n

printf(%d;\a[i]);(「輸出排序的結(jié)果數(shù)據(jù)

本講回顧

1、排序:

選擇排序、交換排序和插入排序

2、計(jì)算機(jī)語言分類:

機(jī)器語言、符號(hào)(匯編)語言、高級(jí)語言(面向過程)、面向?qū)ο笳Z言

3、計(jì)算機(jī)程序的執(zhí)行方式:

解釋型、編譯型、編譯解釋型

本講回顧

4、程序設(shè)計(jì)步驟

?程序說明

明確要解決的問題確定編程目標(biāo);定義想得到的輸入/輸出數(shù)據(jù)等。

?程序設(shè)計(jì)

使用程序設(shè)計(jì)方法設(shè)計(jì)一個(gè)問題或任務(wù)的執(zhí)行方案

?程序編碼

使用計(jì)算機(jī)語言書寫源程序

A測(cè)試程序

調(diào)試源程序,消除程序的語法和邏輯錯(cuò)誤。

?最終程序文件

程序代碼文件

程序說明文件

用戶操作手冊(cè)

本講回顧

5、程序設(shè)計(jì)方法:

?程序結(jié)構(gòu)

順序繇、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

?程序設(shè)計(jì)的原則

自頂向下、逐步細(xì)化、模塊化設(shè)計(jì)

?程序流程圖

自然語言、流程圖、N-S流程圖、偽代碼

6、程序測(cè)試:

書寫檢查、手工調(diào)試、編譯調(diào)試、采樣數(shù)據(jù)測(cè)試、用戶測(cè)試

海一

AnhuiUniversityofTechnoto^y.(

本章作業(yè)

一、選擇題

1.算法可以沒有O

A)輸入B)輸出C)輸入和輸出D)結(jié)束

2.現(xiàn)代程序設(shè)計(jì)目標(biāo)主要是o

A)追求程序運(yùn)行速度快B)追求程序行數(shù)少

C)既追求運(yùn)行速度,又追求節(jié)省存儲(chǔ)空間

D)追求結(jié)構(gòu)清晰、可讀性強(qiáng)、易于分工合作編寫和調(diào)試

3.算法流程圖符號(hào)圓圈代表。

A)一個(gè)加工B)一個(gè)判斷C)程序開始D)連接點(diǎn)

4.下面不是高級(jí)語言。

A)匯編語言B)JAVA語言C)ARGOL語言D)PROLOG語言

5.面向?qū)ο蟪绦蛟O(shè)計(jì)中的類將數(shù)據(jù)和封裝在一起。

A)文件B)方法C)控制結(jié)構(gòu)D)程序

二、判斷題(正確打J錯(cuò)誤打義)

1.結(jié)構(gòu)化程序設(shè)計(jì)的目標(biāo)是提高程序的運(yùn)行效率。()

2.在三種基本結(jié)構(gòu)中,順序結(jié)構(gòu)是最基本的結(jié)構(gòu)。()

3.解釋性語言程序在運(yùn)行后會(huì)保留一個(gè)機(jī)器代碼文件。()

4.C語言編譯系統(tǒng)屬于應(yīng)用軟件。()

5.面向?qū)ο蟪绦蚩珊?jiǎn)單地描述為:程序=對(duì)象+消息。()

透小

本章作業(yè)

三、填空題

1.算法可以用、、等方法描述。

2.高級(jí)語言可分為型語言和型語言。

3.程序的基本控制結(jié)構(gòu)有、和。

4.算法的特性有:、、和。

5.評(píng)價(jià)算法的兩個(gè)指標(biāo)是:.

四、應(yīng)用題

1、使用流程圖表示求方程式ax2+bx+c=O的根,分別考慮d=b2-4ac大于0、

等于0和小于0三種情況。

2、根據(jù)列表:Alice、Byron、Carol、Duane、Elaine、Floyd、Gene、

Henry>Iris,回答下面問題:

a)哪種搜索方法(折半法或順序法)查找Gene更快?

b)哪種搜索方法(折半法或順序法)查找Alice更快?

c)如果用順序查找法查找日aine,會(huì)進(jìn)行多少次比較?如果用折半法查找呢?

五、上機(jī)實(shí)驗(yàn)

1、利用講稿中的選擇法和冒泡排序程序,在TurboC或Visual

Basic開發(fā)工具中實(shí)際驗(yàn)證。(2010年11月1日)

2、實(shí)際編寫程序輸出三個(gè)數(shù)市最大和最小兩個(gè)數(shù)。(2009年11月15日)

AnhuiUniversityofTechnoto4y.(

本章作業(yè)

五、上機(jī)實(shí)驗(yàn)

3、用流程圖表達(dá)輸出下列圖形的算法,并編寫程序上機(jī)實(shí)際運(yùn)行。

(2009年11月15日)

#

###

#####

#######

#########

###########

#############

B安徽工注大*_

Anhu?UniversityofTechnoto^y?,

TurboC上機(jī)操作具體步驟

單擊C:\tc目錄下的tcwxe或者單擊tcwxe的快捷方式既可打開tc

集成環(huán)境

AC語言程序的開發(fā)和運(yùn)行

編輯——>編譯A連接---->運(yùn)行

建立生成生成

執(zhí)行文件

源文件目標(biāo)文件執(zhí)行文件

file[.exe]

file?cfile.objfile.exe

安微工處大號(hào)

AnhutUntversttyofTechc

開發(fā)和運(yùn)行c程序的步驟

1.啟動(dòng)TC

2.編輯、建立源文件

3.編譯源程序

4.運(yùn)行源程序

Anhu?UniversityofTechnoto4y.1

TurboC2.0環(huán)境介紹

Fl-HelpF5-ZoomF6-SwitchF7-TraceF8-StepF9-MakeF10-MICAPSNUM

Fl-HelF5-ZoomF6-SwitchF7-TraceF8-StepF9-MakeFlO-MenuNUM

繼續(xù)

MSTC-回兇

自動(dòng)可口他博|畫A]因

繼續(xù)

安微工處大學(xué)

AnKuiUniversity編輯、建立源文件

文件菜單(File)

Load命令,裝入文件。

New命令,建立新文件。

Save命令,保存文件。

Writeto命令,寫文件(另存文件)。

Quit命令,退出TCo

文件擴(kuò)展名默認(rèn)為.C。

繼續(xù)

MSTC

「靛一3口他|闿囹IA]因

繼續(xù)

安微工處大號(hào)

AnhvuLlntversttyofTechn編譯源程序

編譯菜單(Compile)

方式一:

Compileto.OBJ命令,將源文件編譯成目標(biāo)文件

(,obj)o

Link.EXEfile命令,連接庫文件(函數(shù))后,生

成可執(zhí)行文件(.exe)o

方式二:

Make.EXEfile命令,一次完成編譯、連接,直接

生成可執(zhí)行文件(.exe)o

繼續(xù)

自動(dòng)可口他博|畫A]因

FileEditRunCompileProjectOptionsDebugBreak/watch

Edit=

Line8col5InsertIndentTabFillUnindentA:LI1-1.C

^include"math,h"

main()

{floata,b,c;

a=3.5;

b=-2.5;Compiling—

c=a+fabs(b);

printf("a+|b|Mainfile:A:\LI1-1.C

}Compiling:EDITOR?Lll-l.c

F

Total111

Linescompiled:116o16

Warnings:0o

Errors:0

Availablememory:281K

Success:Press

Message

Fl-HelpF5-ZoomF6-Sw1tchF7-TraceF8-StepF9-MakeFlO-Menu

繼續(xù)

繼續(xù)

x

四回囹|囹回A|漢I

EditRunComectOptionsDebuBreak/watch

=Edit=

Line8Col5InsertIndentTabFillUnindentA:LI1-1.C

^include"math.h"

main()

{floata,b,

a=3.5;

b=-2.5;Linking

c=a+fabs(b);

printf("a+|b|=EXEfile:LI1-1.EXE

}Linking:LIB\CS.LIB

TotalLink

Linescompiled:0PASS2

Warnings:00

Errors:00

Availablememory:281K

SuccessPressanykey

Message

?CompilingA:\LI1-1.C:

Fl-HelpF5-ZoomF6-Sw1tchF7-TraceF8-StepF9-MakeFlO-Menu

繼續(xù)

安童工處大辱

Anhu*UniversityofTechnology

...13,—=aa-、-

1aMM10MMM1M運(yùn)行源程序

運(yùn)行菜單(Run)

Run命令,運(yùn)行程序。

UserScreen命令,查看程序結(jié)果。

MSTC-g|x|

自動(dòng)可口他博|畫A]因

FileEditRunCompileProject_OptionsDebugBreak/watch

Line8RunCtrl-F9bFillUnindentA:Lll-l.c

^include"matProgramresetCtrl-F2

main()GotocursorF4

{floata,bTraceintoF7

a=3.5;stepoverF8

b=-2.5;UserscreenAlt-F5

c=a+fabs(b)|E

printf("a+|b|=%f\n",c);

}

運(yùn)行程序

Message

?LinkingC:\TC\LI1-1.EXE:

Fl-HelF5-ZoomF6-SwitchF7-TraceF8-SteF9-MakeFlO-Menu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論