語言程序設計基本概念.ppt_第1頁
語言程序設計基本概念.ppt_第2頁
語言程序設計基本概念.ppt_第3頁
語言程序設計基本概念.ppt_第4頁
語言程序設計基本概念.ppt_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1,第一章 C語言程序設計基本概念,2,學習目標,了解C語言的歷史和特點 熟悉計算機語言的不同類型 了解C語言的結(jié)構(gòu) 理解C程序的開發(fā)過程 了解結(jié)構(gòu)化程序設計方法,3,主要內(nèi)容,C語言的發(fā)展歷史以及特點 程序設計語言 簡單的C程序?qū)嵗?C語言程序的結(jié)構(gòu) C程序的編輯、編譯和執(zhí)行 算法 結(jié)構(gòu)化程序設計方法 課堂練習,4,C語言的發(fā)展歷史,歷史悠久,戰(zhàn)勛卓著 誕生于上世紀70年代初,成熟于80年代 “ANSI C”標準的發(fā)布是C語言成熟的標志 很多重量級軟件都是用C寫的 上天入地,無所不能 幾乎沒有不能用C寫出來的軟件,沒有不支持C的系統(tǒng),5,C語言特點,語言簡潔緊湊,使用靈活方便 32個關(guān)鍵字,9種控制語句 介于高級語言和低級語言之間的語言。 從C+,到Java,再到C# 運算符豐富 34種運算符 +、-、*、%、+、- 等 可以實現(xiàn)其他高級語言難以實現(xiàn)的運算,6,數(shù)據(jù)結(jié)構(gòu)類型豐富 標準數(shù)據(jù)類型:整型、實型和字符型; 構(gòu)造類型:數(shù)組、結(jié)構(gòu)體、共同體、指針 生成的代碼質(zhì)量高 可移植性強 結(jié)構(gòu)化語言 主要結(jié)構(gòu)函數(shù), 實現(xiàn)模塊化設計 結(jié)構(gòu)化的控制語句,支持多種循環(huán)結(jié)構(gòu),C語言特點,7,程序設計語言,程序設計語言 人與計算機進行信息交流的工具。,大致可分為三類 機器語言 匯編語言 高級語言,8,程序設計語言,機器語言 1、計算機硬件的設計密切相關(guān) 2、計算機能直接識別的語言 3、由一組二進制0和1序列構(gòu)成,例如,計算 4+8 取數(shù) 1011 0000 0000 0100 將4 送累加器 加 0000 0100 0000 1000 8 與累加器中的 4相加 停機 1111 0100,繁瑣的,難記、難讀、難寫,9,程序設計語言,匯編語言 1、計算機硬件的設計密切相關(guān) 2、計算機是不能直接識別, 3、計算機基本操作的采用英語縮寫編寫程序,例如,計算 4+8 MOVE AL, 4 將4 送累加器 ADD AL, 8 8 與累加器中的 4相加 HLT 停機,10,程序設計語言,匯編程序: 將匯編語言程序轉(zhuǎn)換為計算機能識機器語言,,11,11,程序設計語言,高級語言 基本與計算機的硬件設備無關(guān),例如 計算4+8(C語言編寫) Sum=4+8;,編譯器: 高級語言轉(zhuǎn)換為機器語言的翻譯程序,12,12,簡單的C程序?qū)嵗?【例1-1】 /第一個C程序 #include main() printf(“Welcome to C programmingn“); return 0; ,執(zhí)行結(jié)果 : 屏幕上顯示 Welcome to c programming,行注釋,頭文件,主函數(shù),編譯系統(tǒng)提供的輸出函數(shù),程序結(jié)束返回函數(shù),13,簡單的C程序?qū)嵗?【例1-2】編寫求三數(shù)中最大值問題的程序,#include int max_value(int a, int b,int c) int max; if(ab) max=a; else max=b; if(maxc) max=c; return (max); ,main() int x,y,z,maxx; scanf(“%d%d%d“, ,14,C語言程序的結(jié)構(gòu),C語言是由函數(shù)構(gòu)成的,至少有一個且僅有一個main的函數(shù),稱主函數(shù)。除main函數(shù)外,其它函數(shù)都是在執(zhí)行main函數(shù)時被調(diào)用執(zhí)行的。,#include int max_value(int a, int b,int c) int max; if(ab) max=a; else max=b; if(maxc) max=c; return (max); main() int x,y,z,maxx; scanf(“%d%d%d“, ,在程序中main()函數(shù)的位置可以任意。,在調(diào)用庫函數(shù)之前必須將相應的頭文件包含在本程序中。通常放在源程序或源文件的最前面。,15, C語言程序的結(jié)構(gòu),/求三個數(shù)中最大值 #include int max_value(int a, int b,int c) int max; if(ab) max=a; else max=b; if(maxc) max=c; return (max); main() int x,y,z,maxx; scanf(“%d%d%d“, ,嚴格區(qū)分大小寫英文字母。習慣使用小寫字母。 ;為語句的終止符。 表示程序的結(jié)構(gòu)層次范圍, 必須配對使用。 注釋格式 /注釋內(nèi)容 行注釋 /*注釋內(nèi)容*/,16, C程序的編輯、編譯和執(zhí)行,編輯:利用編輯器,通過鍵盤將C源程序輸入到計算機,并以文件形成存入到磁盤上。 編譯:利用編譯器,將C源程序編譯成目標程序。 連接:利用連接器,將C已編譯的目標程序和庫函數(shù)連接之后,生成可執(zhí)行文件,并以文件形成存入到磁盤上,文件擴展名為 .exe。 運行: 在操作系統(tǒng)下運行可執(zhí)行文件。,17,算法,算法解決問題的流程 必須具備以下五個特性 有窮性 確定性 有效性 (可行性) 沒有輸入或有多個輸入 有一個或多個輸出,18,算法,算法的描述 自然語言 偽碼 流程圖 N-S圖,例1:求三個數(shù)中最大值問題,19,算法,自然語言: 日常使用的語言 先將a,b兩個數(shù)進行比較,找出其中的大數(shù),然后再把它和第三個數(shù)c進行比較,如果它比c大,則它就是最大數(shù),否則c是最大數(shù)。,20,算法,流程圖: 圖語言表示法 ANSI規(guī)定了一些常用的流程圖符號:,流程圖,起止框 輸入輸出框 判斷框 處理框 流程線 連接圈,21,算法,三個數(shù)中最大值問題的流程圖 圖1-4,22,算法,N-S圖: 圖語言表示法 三個數(shù)中最大值問題的 N-S圖,23,算法,算法僅僅提供了解決某類問題可采用的方法和步驟,還必須使用某種計算機程序設計語言根據(jù)算法的描述去實現(xiàn),即編程。,/求三個數(shù)中最大值 #include int max_value(int a, int b,int c) int max; if(ab) max=a; else max=b; if(maxc) max=c; return (max); main() int x,y,z,maxx; scanf(“%d%d%d“, ,24,算法,例2:求解兩個自然整數(shù)的最大公約數(shù) 采用 “歐幾里得算法”, 又稱 輾轉(zhuǎn)相除法 1、自然語言描述 S1:輸入兩個正整數(shù)M和N; S2:比較M和N,如果M小于N ,則兩數(shù)交換,保證M是大數(shù); S3:求M除以N的余數(shù)R; S4:使M=N,即用N代替M; S5: 使N=R,即用R代替N, S6: 如果N0,轉(zhuǎn)向S3; S7: 如果N=0,轉(zhuǎn)向S8; S8: 輸出M,M為M和N的最大公約數(shù)。,25,算法,2、偽代碼描述: INPUT M,N IF MN THEN 交換M和N WHILE N0 DO R=MOD(M,N) M=N N=R END DO 輸出 M 其中M除以N的余數(shù)用符號MOD(M,N)表示。,26,算法,3、流程圖描述,27,算法,4、 N-S圖描述,28,結(jié)構(gòu)化程序設計方法,結(jié)構(gòu)化程序設計的基本方法: 自頂向下,逐步求精 復雜問題分解為若干的獨立的小問題(小模塊),例:求解兩個數(shù)的平均值 1、分解:問題分解為三個模塊 S1: 輸入兩個數(shù)a,b S2: 求兩個數(shù)的平均值賦給aver S3:輸出平均值,29,結(jié)構(gòu)化程序設計方法,2、實現(xiàn)方法,算法細化 S1: 調(diào)用輸入函數(shù),完成輸入 S2: 設計一個求解平均值的函數(shù)averge( ) S3: 調(diào)用輸出函數(shù),完成輸出,3、C 語言實現(xiàn)主函數(shù)的編程 /求兩個數(shù)的平均值 main() /主函數(shù) float a,b,ave; /聲明a、b和ave為實型變量 scanf(“%f%f”, /輸出ave的值 return 0; ,30,結(jié)構(gòu)化程序設計方法,4、逐步求精:設計averag()函數(shù)的算法。 設兩個參數(shù)為float x,float y。 S2.1 :把x加y的和除2的值送給aver S2.2 :把aver的值返回給主函數(shù)。,5、C 語言實現(xiàn)averag()函數(shù)的編程 #include float average(float x,float y) /求兩個數(shù)的平均值 float z,aver; /聲明aver為實型變量 aver=(x+y)/2; /計算兩個數(shù)的平均值賦給aver return (aver); /aver的值作為函數(shù)的的返回值 ,31,結(jié)構(gòu)化程序設計方法,6、兩模塊連接成一個完整的求解程序 #include float average(float x,float y) /求兩個數(shù)的平均值 float z,aver; /聲明aver為實型變量 aver=(x+y)/2; /計算兩個數(shù)的平均值賦給aver return (aver); /aver的值作為函數(shù)的的返回值 main() /主函數(shù) float a,b,ave; /聲明a、b和ave為實型變量 scanf(“%f%f”, /輸出ave的值 return 0; ,32,結(jié)構(gòu)化程序設計方法,結(jié)構(gòu)化程序設計三種基本控制結(jié)構(gòu): 順序結(jié)構(gòu) 選擇結(jié)構(gòu) 循環(huán)結(jié)構(gòu)(while, repert_until ),33,結(jié)構(gòu)化程序設計方法,順序結(jié)構(gòu),N-S圖,流程圖,執(zhí)行過程: 先執(zhí)行A操作,再執(zhí)行B操作。,34,結(jié)構(gòu)化程序設計方法,選擇結(jié)構(gòu),N-S圖,流程圖,P為條件: 當P 條件成立 (為真 T)執(zhí)行A 條件不成立(為假 F)執(zhí)行B,35,結(jié)構(gòu)化程序設計方法,循環(huán)結(jié)構(gòu)(while ),當P條件成立 (為真 T)反復執(zhí)行A, 直到P為 假。,流程圖,N-S圖,36,結(jié)構(gòu)化程序設計方法,循環(huán)結(jié)構(gòu)(repert_until ),流程圖,N-S圖,先執(zhí)行A操作,再判斷P,若為假, 再執(zhí)行A,直到P為 真。,37,結(jié)構(gòu)化程序設計方法,三種基本結(jié)構(gòu)的共同特點是: 1)只有一個入口 2)只有一個出口 3)結(jié)構(gòu)內(nèi)的每一部份都有可能被執(zhí)行到。 4)結(jié)構(gòu)內(nèi)不存在“死循環(huán)”。,順序,選擇,循環(huán),38,課堂練習一,1、程序設計語言大致可分為三類,分別是 、 和 。 2、 語言是計算機能直接識別的語言。 3、 C語言是由 構(gòu)成的,至少有一個且僅有一個 的函數(shù),稱主函數(shù)。 4、 C語言以 為語句的終止符。 5、 表示程序的結(jié)構(gòu)層次范圍, 必須 使用。 6、算法可以用多種方式來表

溫馨提示

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

評論

0/150

提交評論