吉林大學(xué) 軟件學(xué)院 C語言 課件01_第1頁
吉林大學(xué) 軟件學(xué)院 C語言 課件01_第2頁
吉林大學(xué) 軟件學(xué)院 C語言 課件01_第3頁
吉林大學(xué) 軟件學(xué)院 C語言 課件01_第4頁
吉林大學(xué) 軟件學(xué)院 C語言 課件01_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《程序設(shè)計基礎(chǔ)

(c語言)》主講:鄧春燕

Telmail:dengcy@助課:李慧盈Email:kinsten@126.com1教學(xué)目標:利用高級語言分析問題、解決問題的初步能力主要內(nèi)容:程序設(shè)計的思想和方法C語言的主要構(gòu)成2先導(dǎo)課程:《計算機導(dǎo)論》后繼課程: 《面向?qū)ο蟪绦蛟O(shè)計》、《數(shù)據(jù)結(jié)構(gòu)》、《算法分析》、《編譯原理》、《操作系統(tǒng)》等學(xué)習(xí)方法多實踐(第6,8,10,12周,周一8:00~11:00, 三教IBM實驗室)作業(yè)3教材:《大學(xué)計算機程序設(shè)計基礎(chǔ)(C語言)》《程序設(shè)計基礎(chǔ)習(xí)題集》參考書:《c程序設(shè)計》,譚浩強著,清華大學(xué)出版社4第一章緒論雞兔同籠

—計算

算法PAD圖

程序運行計算機的基本結(jié)構(gòu)

C語言VisualC++集成開發(fā)環(huán)境

作業(yè):P161.11.4練習(xí):1.21.5

熟悉開發(fā)環(huán)境5§1.1雞兔同籠問題—計算(p1)【例1.1】我國古代數(shù)學(xué)著作《孫子算經(jīng)》所載“雞兔同籠”問題如下:“今有雞兔同籠,上有三十五頭,下有九十四足,問雞兔各幾何?”

6

第一步,把問題數(shù)學(xué)化。根據(jù)題目條件,設(shè)有x只雞,y只兔,可列出二元一次方程組:x+y=35(1) 2x+4y=94(2)第二步,求解。解方程組:x=

(4*35-94)/2;y=35-x;第三步,選擇一種程序設(shè)計語言,描述上述求解過程7#include<stdio.h>voidmain(){intx,y;x=(4*35-94)/2;//計算y=35-x;printf("%d%d",x,y);//輸出}P4這就是程序這個過程就是程序設(shè)計運行結(jié)果演示8用(計算機)程序解決實際問題步驟:1.建立數(shù)學(xué)模型2.確定計算方法3.算法分析4.寫程序、運行調(diào)試、測試、交付使用并維護雞兔同籠問題已知總頭數(shù),總腳數(shù);求雞有多少只,兔有多少只?1.建立數(shù)學(xué)模型

x+y=35(1)2x+4y=94(2)2.確定計算方法:消去法3.算法分析

x=(4*35–94)/2y=35-x4.寫程序、運行調(diào)試、測試、交付使用并維護p4#include<stdio.h>voidmain(){intx,y;x=(4*35-94)/2;//計算y=35-x;printf("%d%d",x,y);//輸出}9§1.2算法什么是算法一個計算過程,包含具體明確的操作描述了解決問題的方法和途徑是程序設(shè)計的基礎(chǔ)和精髓有效算法的特點有窮性確定性有效性10算法的描述1)流程圖:程序框圖sum=0;k=1;讀入一科成績→msum=sum+m;k=k+1;開始k<=n結(jié)束FT輸出sum/n條件FTElse部分Then部分自然語言,流程圖,NS圖,PAD圖,程序等2)NS圖盒圖由Nassi和Shneiderman提出封閉式的113)PAD圖:ProblemAnalysisDiagram用二維樹形結(jié)構(gòu)的圖來表示程序的控制流,不違背結(jié)構(gòu)化開放式的,清晰,直觀,層次分明很容易翻譯成程序代碼4)程序:過早的考慮細節(jié)和語法do-whilek<=nsum=0;k=1;讀入一科成績→msum=sum+m;k=k+1;輸出sum/n開始結(jié)束12算法的組成p2基本操作表達式以及給變量賦值讀(輸入)寫(輸出)基本控制結(jié)構(gòu)順序控制結(jié)構(gòu)分支控制結(jié)構(gòu)循環(huán)控制結(jié)構(gòu)函數(shù)調(diào)用函數(shù)返回13§1.3PAD(ProblemAnalysisDiagram)

操作操作1操作2操作n…圖1.2基本操作圖1.3順序控制結(jié)構(gòu)

14雞兔同籠問題—算法P4順序控制結(jié)構(gòu)計算:y=35-x;輸出:x,y。計算:x=(4*35-94)/2;開始結(jié)束15§1.4程序(p4)計算機系統(tǒng)的工作是由事先設(shè)計好的程序來控制的。人們根據(jù)需要,把讓計算機做的工作編成計算機程序,并把程序送入計算機,然后讓計算機執(zhí)行程序,從而完成人們預(yù)期的工作。計算機程序是用計算機指令為計算機排定的工作順序、工作步驟。16程序設(shè)計語言程序設(shè)計語言用于編寫計算機程序程序設(shè)計語言可分為:機器語言(低級語言)匯編語言(低級語言)高級語言17機器語言Pentium機器語言程序片段:

101010010001011000000001

001111000001100000000001

0111110000000101

001011010001010100000000機器語言是以二進制代碼形式表示的機器基本指令的集合。機器語言程序能被計算機硬件直接識別和執(zhí)行。18匯編語言Pentium匯編語言程序片段: SUB X,15

JMP S2

S1: ADD X,15

S2: MOV Y,X匯編語言是符號化的機器語言。19高級語言C語言程序片段:

if(a<b)b=a+5;

elseb=a-5;高級語言程序以接近于自然語言或?qū)I(yè)語言的方式描述操作。高級語言程序可讀性好。高級語言程序具有通用性,程序移植方便。20簡單C程序舉例例1說明:main()1.主函數(shù){2.函數(shù)體}例2main(){

;3.空語句}分號為語句結(jié)束符21例3說明:main()//主函數(shù){;//空語句

}4.行注釋例4#include<stdio.h>main()

/*使用庫函數(shù)*/段注釋{

printf(“Helloworld");5.輸出}顯示輸出:Helloworld22[例]雞兔同籠。已知總頭數(shù)、總腳數(shù),求雞兔各幾只?#include<stdio.h>voidmain(){intx,y;x=(4*35-94)/2;y=35-x;printf("%d

%d",x,y);}算法計算:x=(4*35-94)/2計算:y=35-x輸出:xy23#include<stdio.h>//頂層聲明:聲明頭文件voidmain()//頂層聲明:函數(shù)定義{intx,y;x=(4*35-94)/2;y=35-x;printf("%d

%d",x,y);}源程序文件ch1_3.cpp的構(gòu)成:*任何一個C程序中,必須有,且僅有一個主函數(shù)main()24一個C程序由一個或若干個編譯單元組成,每個編譯單元是一個源程序文件;一個編譯單元由若干頂層聲明組成,每個頂層聲明是一個聲明或函數(shù)定義,其中主要為函數(shù)定義;聲明包括類型定義、變量聲明、外部聲明、宏、…等;任何C程序必須包含且僅包含一個主函數(shù)main。概括:C程序結(jié)構(gòu)25一般C程序文件hello.c#include<stdio.h>voidhello(void){printf(“Hello!\n”);}文件startup.cexternvoidhello(void);intmain(void){

hello();return0}程序一程序二#include<stdio.h>//頂層聲明:聲明頭文件voidmain()//頂層聲明:函數(shù)定義{intx,y;x=(4*35-94)/2;y=35-x;printf("%d

%d",x,y);}文件ch1_3.cpp26§1.5運行用(計算機)程序解決實際問題步驟:1.建立數(shù)學(xué)模型2.確定計算方法3.算法分析4.寫程序、運行調(diào)試、測試、交付使用并維護27程序執(zhí)行將可執(zhí)行程序送入計算機并啟動計算機執(zhí)行得到最后結(jié)果用匯編語言或高級語言編出程序編輯、錄入源程序由翻譯器(編譯程序)將源程序翻譯成機器語言程序由連接程序?qū)C器語言程序連接生成計算機可執(zhí)行的程序P628將可執(zhí)行程序送入計算機并啟動計算機執(zhí)行得到最后結(jié)果用匯編語言或高級語言編出程序編輯、錄入源程序由翻譯器(編譯程序)將源程序翻譯成機器語言程序由連接程序?qū)C器語言程序連接生成計算機可執(zhí)行的程序出錯數(shù)據(jù)出錯程序出錯29運行Run程序的運行

出錯出錯出錯源程序目標程序可執(zhí)行文件編輯Edit編譯Compile連接Linkf.cf.objf.exe程序結(jié)果翻譯方式:解釋程序方式編譯程序方式30一般C程序執(zhí)行文件hello.c#include<stdio.h>voidhello(void){printf(“Hello!\n”);}文件startup.cexternvoidhello(void)intmain(void){hello();return0}hello.chello.objstartup.exestartup.cstartup.obj31§1.6計算機的基本結(jié)構(gòu)

(p7)一個計算機系統(tǒng)由中央處理機(CentralProcessUnit,簡稱

CPU)、內(nèi)存儲器及若干外部設(shè)備組成。32§1.6計算機的基本結(jié)構(gòu)(p7)內(nèi)存儲器是計算機的記憶裝置,用來存放程序和參與運算的數(shù)據(jù)。33§1.6計算機的基本結(jié)構(gòu)(p7)內(nèi)存儲器被分成若干單元,每個單元按順序被編以一定的號碼,稱為該單元的“地址”。一個二進制位稱為一位(bit)。一般以8個二進制位作為一個單元,稱作一個字節(jié)(byte),也就是說一個字節(jié)可以存放8位二進制信息,二個或四個字節(jié)稱作一個機器字(word)。可以按單元地址來訪問某一單元的信息。111111110000000010101010000011110000000000000001000000100000001134§1.6計算機的基本結(jié)構(gòu)(p7)中央處理機包括控制器和運算器兩部分??刂破骺刂普麄€計算機系統(tǒng)的工作。運算器是進行算術(shù)和邏輯運算的。它接收由控制器發(fā)來的運算命令,依據(jù)命令的要求進行相應(yīng)的算術(shù)和邏輯運算。內(nèi)存儲器運算器控制器磁盤機顯示器鍵盤打印機......中央處理機(CPU)外部設(shè)備35§1.6計算機的基本結(jié)構(gòu)(p7)外部設(shè)備又稱計算機的輸入輸出設(shè)備,簡稱I/O設(shè)備。它們是計算機與外界交流信息的裝置。人們通過I/O設(shè)備將程序、數(shù)據(jù)等信息送入計算機中。計算機通過I/O設(shè)備將計算結(jié)果、控制信號等輸出來。常見的I/O設(shè)備有顯示器、鍵盤、打印機、繪圖儀等。36§1.7C語言簡介70年代初,C語言在美國貝爾實驗室誕生。ALGOL60(1960)CPL(1963)BCPL(1967)B(1970,KenThompson)C(1972,D.M.RITCHIE)1978年BrianW.Kernighian和D.M.Ritchie出版了名著《TheCProgrammingLanguage》,這本書中介紹的C語言成為后來廣泛使用的C語言版本的基礎(chǔ),它被稱為標準C。1982年C標準化工作開始。1983年,美國國家標準化學(xué)會(ANSI)根據(jù)C語言問世以來各種版本對C的發(fā)展和擴充,制定了新的標準,稱為ANSIC。ANSIC比原來的標準C有了很大的發(fā)展。K&R在1988年修改了《TheCProgrammingLanguage》,按照ANSIC的標準重新寫了該書。

1989年ISO公布ISO/IEC9899:1990,簡稱“C89”。1995年對C89作修改和補充,稱為“C95”。1999對C進行更大的修訂后,公布ISO/IEC9899:1999,簡稱“C99”。我國于1994年12月4日公布了“中華人民共和國國家標準GB/T15272-94程序設(shè)計語言C”。BCPL----BasicCPLALGOL----AlgorithmLanguage

CPL----CombinedProgrammingLanguage37C語言在計算機語言體系中的地位真實會話語言:面向問題的語言C語言匯編語言機器語言硬件(hardware)c語言是一種相對“低級”的程序設(shè)計語言,因而能最大限度地發(fā)揮計算機的效率。c語言是一種相對“高級”的程序設(shè)計語言,因而能極大地提高編程效率。C語言是一種用途廣泛、功能強大、使用靈活的編程語言,既適于編寫系統(tǒng)軟件,又方便編寫應(yīng)用軟件。38C語言特點(p8)語言簡潔緊湊使用靈活方便C程序具有模塊化結(jié)構(gòu)運算符豐富(34種)數(shù)據(jù)結(jié)構(gòu)豐富具有結(jié)構(gòu)化的控制語句可直接對硬件操作語法限制少所生成的目標代碼質(zhì)量高39§1.7VisualC++集成開發(fā)環(huán)境(

溫馨提示

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

評論

0/150

提交評論