分析語言課件_第1頁
分析語言課件_第2頁
分析語言課件_第3頁
分析語言課件_第4頁
分析語言課件_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、高級語言程序設計高級語言程序設計選擇選擇 C 語言作為語言作為學習程序設計的載體學習程序設計的載體n36學時上課學時上課 + 12學時上機學時上機第一章第一章 程序設計和程序設計和C C 語言概述語言概述主要內容:主要內容:何為計算機程序何為計算機程序計算機的基本組成計算機的基本組成程序設計語言的分類和發(fā)展程序設計語言的分類和發(fā)展C語言的特點語言的特點C程序入門實例程序入門實例上機步驟上機步驟C語言程序的結構語言程序的結構程序設計的任務程序設計的任務什么是計算機程序?什么是計算機程序? 生活中常聽到會議程序、法律程序、工作生活中常聽到會議程序、法律程序、工作程序等。程序是完成事物的一種既定方式

2、和過程序等。程序是完成事物的一種既定方式和過程,程,可以將程序看作對一系列動作的執(zhí)行過程可以將程序看作對一系列動作的執(zhí)行過程的描述的描述。 例如,歌手大賽有例如,歌手大賽有7個評委為每位歌手打個評委為每位歌手打分,得到每位歌手平均分的程序可描述為:分,得到每位歌手平均分的程序可描述為: 1)收集分數(shù);)收集分數(shù); 2)找出最高分、最低分,并去掉;)找出最高分、最低分,并去掉; 3)求其余)求其余5個分數(shù)的和,假設為個分數(shù)的和,假設為S; 4)求平均分)求平均分A = S/5. 描述這種程序的方式就是按順序地寫描述這種程序的方式就是按順序地寫出每個步驟和指令序列,如果按順序實出每個步驟和指令序列

3、,如果按順序實施這些步驟,就能夠完成有關的任務。施這些步驟,就能夠完成有關的任務。計算機程序是用戶指示計算機完成任計算機程序是用戶指示計算機完成任務的指令序列;是一組計算機能識別和務的指令序列;是一組計算機能識別和執(zhí)行的指令。執(zhí)行的指令。 計算機需要某種具體程序設計語言將計算機需要某種具體程序設計語言將用戶的意圖表示成計算機能夠理解的指用戶的意圖表示成計算機能夠理解的指令,而令,而C語言是人類與計算機進行溝通的語言是人類與計算機進行溝通的一種語言。一種語言。 計算機計算機是一種設計用于執(zhí)行操作的機器,是一種設計用于執(zhí)行操作的機器,其中操作由一組被稱作程序的指令指定。其中操作由一組被稱作程序的指

4、令指定。計算機硬件計算機硬件指計算機設備,如鍵盤、鼠指計算機設備,如鍵盤、鼠標、顯示器、硬盤、打印機、標、顯示器、硬盤、打印機、。計算機軟件計算機軟件指那些描述計算機預期步驟指那些描述計算機預期步驟的程序。的程序。程序設計語言的分類和發(fā)展程序設計語言的分類和發(fā)展n機器語言和匯編語言機器語言和匯編語言n高級語言高級語言w面向算法過程:面向算法過程:BASIC、FORTRAN、COBOLw結構化編程語言:結構化編程語言:PASCAL、Cw專用語言:專用語言:LISP、Prolog w面向對象:面向對象:C+ w其它:其它:VB、VC、DELPHI、Java、SQL、 HTML和XML選擇選擇C 強

5、大的命令及數(shù)據結構,易用于操作系統(tǒng),強大的命令及數(shù)據結構,易用于操作系統(tǒng),會會C后容易轉向后容易轉向C+和和Java。C 語言的特點語言的特點語言簡潔、緊湊,使用方便、靈活語言簡潔、緊湊,使用方便、靈活運算符豐富、數(shù)據結構豐富運算符豐富、數(shù)據結構豐富具有結構化的控制語句具有結構化的控制語句語法限制不太嚴格語法限制不太嚴格,程序設計自由度大,程序設計自由度大允許允許直接訪問物理地址直接訪問物理地址,直接對硬件進行操作,直接對硬件進行操作生成目標代碼質量高,程序生成目標代碼質量高,程序執(zhí)行效率高執(zhí)行效率高與匯編相比可移植性好,與匯編相比可移植性好,與硬件無關與硬件無關C 程序入門實例程序入門實例例

6、例1 要求在屏幕上輸出以下一行信息。要求在屏幕上輸出以下一行信息。 This is a C program.解題思路:解題思路: 在主函數(shù)中用在主函數(shù)中用printf函數(shù)原樣輸出以上函數(shù)原樣輸出以上文字。文字。最簡單的最簡單的C語言程序舉例語言程序舉例#include int main( ) printf (”This is a C program.n”); return 0; 函數(shù)的名字,表示函數(shù)的名字,表示主函數(shù)主函數(shù)C程序必須有一個程序必須有一個 main 函數(shù)函數(shù)例例1 在屏幕上輸出一行信息。在屏幕上輸出一行信息。#include int main( ) printf (”This i

7、s a C program.n”); return 0; 主函數(shù)主函數(shù)類型類型例例1 在屏幕上輸出一行信息。在屏幕上輸出一行信息。 例例1 在屏幕上輸出一行信息。在屏幕上輸出一行信息。#include int main( ) printf (”This is a C program.n”); return 0; 函數(shù)體函數(shù)體例例1 在屏幕上輸出一行信息。在屏幕上輸出一行信息。#include int main( ) printf (”This is a C program.n”); return 0; 輸出函數(shù)輸出函數(shù)輸出語句輸出語句例例1 在屏幕上輸出一行信息。在屏幕上輸出一行信息。#inc

8、lude int main( ) printf (”This is a C program.n”); return 0; 輸出語句輸出語句例例1 在屏幕上輸出一行信息。在屏幕上輸出一行信息。#include int main( ) printf (”This is a C program.n”); return 0; 換行符換行符例例1 在屏幕上輸出一行信息。在屏幕上輸出一行信息。#include int main( ) printf (”This is a C program.n”); return 0; 當當main函數(shù)執(zhí)行結束前函數(shù)執(zhí)行結束前將整數(shù)將整數(shù)0作為函數(shù)值作為函數(shù)值例例1 在屏

9、幕上輸出一行信息。在屏幕上輸出一行信息。#include int main( ) printf (”This is a C program.n”); return 0; 表示語句結束表示語句結束用到函數(shù)庫中的輸入輸出函數(shù)用到函數(shù)庫中的輸入輸出函數(shù)時時例例2 求兩個整數(shù)之和求兩個整數(shù)之和。解題思路:解題思路:u設置設置3個變量個變量ua和和b用來存放兩個整數(shù)用來存放兩個整數(shù)usum用來存放和數(shù)用來存放和數(shù)u用賦值運算符用賦值運算符“=”把結果傳送給把結果傳送給sum例例2:求兩個變量之和:求兩個變量之和#include int main( ) int a, b, sum; a=123; b=45

10、6; sum = a+b; printf(“sum is %d n”, sum); return 0;/ /* * * */ /表注釋表注釋表示表示“十進制整數(shù)類型十進制整數(shù)類型”運行結果:運行結果:sum is 579/ /* *變量定義變量定義* */ / /* *變量賦值變量賦值* */ / /* *求和運算求和運算* */ /輸出輸出/ / 表注釋表注釋例例3.3.計算兩點間的直線距離計算兩點間的直線距離. .解題思路:解題思路:u設置設置7個變量個變量,ux1、y1和和x2、y2分別存放兩個點的坐分別存放兩個點的坐標,標,u計算橫、縱坐標距離,存放在計算橫、縱坐標距離,存放在side

11、_x和和side_y,u計算兩個點的距離,存放在計算兩個點的距離,存放在distance,u輸出輸出distance例例3.3.計算兩點間的直線距離,計算兩點間的直線距離,p1(1,5),p2(4,7)p1(1,5),p2(4,7)#include #include int main( ) float x1=1, y1=5, x2=4,y2=7, side_x,side_y,distance; side_x = x2-x1; side_y = y2-y1; distance = sqrt(side_x*side_x + side_y*side_y); printf(“the distance

12、is %f n”, distance); return 0;例例4 求兩個整數(shù)中的較大者。求兩個整數(shù)中的較大者。解題思路:解題思路:u用一個函數(shù)實現(xiàn)求兩個整數(shù)中的較大者用一個函數(shù)實現(xiàn)求兩個整數(shù)中的較大者u在主函數(shù)中調用此函數(shù)并輸出結果在主函數(shù)中調用此函數(shù)并輸出結果例例4:求兩個數(shù)中:求兩個數(shù)中的較的較大值大值#include int main( ) float max(float x, float y); float a, b, c; scanf(“%f, %f”, &a, &b); c = max(a, b); printf(“max = %fn”, c); return 0

13、;float max(float x, float y) float z; if(xy) z = x; else z = y; return z;/ /* *主函數(shù)主函數(shù)* */ / /* *變量定義變量定義* */ / /* *輸入變量的值輸入變量的值* */ /調用調用max函數(shù)函數(shù)/ /* *定義定義max函數(shù)函數(shù)* */ / /* *將將z的值返回的值返回* */ / /* *對要調用的函數(shù)對要調用的函數(shù)maxmax聲明聲明* */ / C語言程序的結構語言程序的結構C語言程序的結構特點:語言程序的結構特點:1.一個程序由一個或多個源程序文件組成一個程序由一個或多個源程序文件組成n小程

14、序往往只包括一個源程序文件小程序往往只包括一個源程序文件n例例1,例,例2 ,例,例3只有一個函數(shù)只有一個函數(shù)n例例4有兩個函數(shù)有兩個函數(shù)都都只包括一個源程序文件只包括一個源程序文件C語言程序的結構語言程序的結構C語言程序的結構特點:語言程序的結構特點:一個源程序文件中可以包括三個部分:一個源程序文件中可以包括三個部分:n預處理指令預處理指令n全局聲明全局聲明n函數(shù)定義函數(shù)定義#include 等等在函數(shù)之外進行的數(shù)據聲明在函數(shù)之外進行的數(shù)據聲明每個函數(shù)用來實現(xiàn)一定的功能每個函數(shù)用來實現(xiàn)一定的功能 C語言程序的結構語言程序的結構C語言程序的結構特點:語言程序的結構特點:2.函數(shù)是函數(shù)是C程序的

15、主要組成部分程序的主要組成部分n一個一個C程序是由一個或多個函數(shù)組成的程序是由一個或多個函數(shù)組成的n必須包含一個必須包含一個main函數(shù)函數(shù)(只能有一個)(只能有一個)n每個函數(shù)都用來實現(xiàn)一個或幾個特定功能每個函數(shù)都用來實現(xiàn)一個或幾個特定功能n被調用的函數(shù)可以是庫函數(shù)被調用的函數(shù)可以是庫函數(shù),也可以也可以是是自自己編制設計的函數(shù)己編制設計的函數(shù)C語言程序的結構語言程序的結構C語言程序的結構特點:語言程序的結構特點:3.一個函數(shù)包括兩個部分:一個函數(shù)包括兩個部分:n函數(shù)首部函數(shù)首部 int max ( int x, int y )函數(shù)的第函數(shù)的第1行行函數(shù)類型函數(shù)類型函數(shù)名函數(shù)名參數(shù)類型參數(shù)類型

16、參數(shù)參數(shù)名名 C語言程序的結構語言程序的結構C語言程序的結構特點:語言程序的結構特點:3.一個函數(shù)包括兩個部分:一個函數(shù)包括兩個部分:n函數(shù)首部函數(shù)首部int max ( int x, int y )若若函數(shù)函數(shù)無無參,在括弧中寫參,在括弧中寫void或或空括弧空括弧int main( void) 或或 int main() C語言程序的結構語言程序的結構C語言程序的結構特點:語言程序的結構特點:3.一個函數(shù)包括兩個部分:一個函數(shù)包括兩個部分:n函數(shù)函數(shù)體體w聲明部分聲明部分n定義在本函數(shù)中所用到的變量定義在本函數(shù)中所用到的變量n對本函數(shù)所調用函數(shù)進行聲明對本函數(shù)所調用函數(shù)進行聲明w執(zhí)行部分執(zhí)

17、行部分:由若干個語句組成,指定在函數(shù)中由若干個語句組成,指定在函數(shù)中所進行的操作所進行的操作可以沒有聲明部分可以沒有聲明部分C語言程序的結構語言程序的結構C語言程序的結構特點:語言程序的結構特點:3.一個函數(shù)包括兩個部分:一個函數(shù)包括兩個部分:n函數(shù)函數(shù)體體void dump ( ) 可以是空函數(shù)可以是空函數(shù)C程序由一個或多個函數(shù)組成:程序由一個或多個函數(shù)組成:n有且只有一個主函數(shù)有且只有一個主函數(shù)main()。n C程序總是從程序總是從 main 函數(shù)開始執(zhí)行(不論其位置如函數(shù)開始執(zhí)行(不論其位置如何),在何),在main函數(shù)中結束函數(shù)中結束, 其他函數(shù)通過嵌套調用其他函數(shù)通過嵌套調用得以執(zhí)

18、行。得以執(zhí)行。n函數(shù)是函數(shù)是C程序的基本單位,用以實現(xiàn)特定功能程序的基本單位,用以實現(xiàn)特定功能每個每個程序語句程序語句以以分號分號為結束。為結束。程序一般都會有輸入語句和輸出語句,程序一般都會有輸入語句和輸出語句,n輸入輸出由函數(shù)完成。輸入輸出由函數(shù)完成。程序應當包含注釋程序應當包含注釋,增加可讀性增加可讀性n/* */n/C語言程序的結構語言程序的結構 書寫程序時應遵循的規(guī)則書寫程序時應遵循的規(guī)則一個說明或一個語句占一行。一個說明或一個語句占一行。一般與該結構語句的第一個字母對齊,并單一般與該結構語句的第一個字母對齊,并單獨占一行。獨占一行。w用用 括起來的部分,通常表示了程序的某括起來的部

19、分,通常表示了程序的某一層次結構。一層次結構。鼓勵使用縮進,鼓勵使用縮進,鼓勵使用空行和空格,增加程序的清晰性和可讀鼓勵使用空行和空格,增加程序的清晰性和可讀性。性。運行運行C程序的步驟和方法程序的步驟和方法 源程序File.c目標程序File.obj可執(zhí)行程序File.exe編輯編輯程序設計的任務程序設計的任務1.問題分析問題分析對于接手的任務要進行認真的分析對于接手的任務要進行認真的分析研究所給定的條件研究所給定的條件分析最后應達到的目標分析最后應達到的目標找出解決問題的規(guī)律找出解決問題的規(guī)律選擇解題的方法選擇解題的方法程序設計的任務程序設計的任務1.問題分析問題分析2.設計算法設計算法設

20、計出解題的方法和具體步驟設計出解題的方法和具體步驟程序設計的任務程序設計的任務1.問題分析問題分析2.設計算法設計算法3.編寫程序編寫程序4.對源程序進行編輯、編譯和連接對源程序進行編輯、編譯和連接5.運行程序,分析結果運行程序,分析結果n結果錯了,程序肯定錯結果錯了,程序肯定錯n結果對了,程序未必對結果對了,程序未必對程序設計的任務程序設計的任務1.問題分析問題分析2.設計算法設計算法3.編寫程序編寫程序4.對源程序進行編輯、編譯和連接對源程序進行編輯、編譯和連接5.運行程序,分析結果運行程序,分析結果6.編寫程序文檔編寫程序文檔第第 二二 章章程序的靈魂程序的靈魂 算法算法算法的概念算法的

21、概念一個程序包括一個程序包括n對數(shù)據的描述(數(shù)據結構)對數(shù)據的描述(數(shù)據結構)n對操作的描述(算法)對操作的描述(算法)算法算法n為解決一個問題,而給出的逐步(為解決一個問題,而給出的逐步(step-by-step)執(zhí)行某類計算的方法。執(zhí)行某類計算的方法。n算法不唯一算法不唯一 保證保證正確正確的同時考慮的同時考慮質量質量n計算機能執(zhí)行的算法計算機能執(zhí)行的算法w數(shù)值運算算法數(shù)值運算算法w非數(shù)值運算算法非數(shù)值運算算法例例2.1 求求12345可以用最原始的方法進行:可以用最原始的方法進行:n步驟步驟1:先求:先求1*2,得到結果,得到結果2。n步驟步驟2:將步驟:將步驟1得到的乘積得到的乘積2再

22、乘以再乘以3,得,得到結果到結果6。n步驟步驟3:將:將6再乘以再乘以4,得,得24。n步驟步驟4:將:將24再乘以再乘以5,得,得120。這就是最。這就是最后的結果。后的結果。例例2.1 求求12345 1000太繁瑣太繁瑣改進的算法:改進的算法:n設變量設變量p為被乘數(shù)為被乘數(shù)n變量變量i為乘數(shù)為乘數(shù)n用循環(huán)算法求結果用循環(huán)算法求結果S1:使:使p=1,或寫成,或寫成1pS2:使:使i=2,或寫成,或寫成2iS3:使:使p與與i相乘,乘積仍放在變量相乘,乘積仍放在變量p中,可表中,可表示為:示為:p*ipS4:使:使i的值加的值加1,即,即i+1 iS5:如果:如果i不大于不大于5,返回重

23、新執(zhí)行,返回重新執(zhí)行S3;否則,;否則,算法結束算法結束最后得到最后得到p的值就是的值就是 5!的值的值若是若是1000,求什么?,求什么?S1:使:使p=1,或寫成,或寫成1pS2:使:使i=2,或寫成,或寫成2iS3:使:使p與與i相乘,乘積仍放在變量相乘,乘積仍放在變量p中,可表中,可表示為:示為:p*ipS4:使:使i的值加的值加1,即,即i+1 iS5:如果:如果i不大于不大于5,返回重新執(zhí)行,返回重新執(zhí)行S3;否則,;否則,算法結束算法結束最后得到最后得到p的值就是的值就是 5! 的值的值若若求求1357911332211所求所求相當于相當于i 11 例例2.2 有有50個學生,要

24、求將成績在個學生,要求將成績在80分以分以上的學生的學號和成績輸出。上的學生的學號和成績輸出。用用ni代表第代表第i個學生個學生學號,學號,gi表示第表示第i個學生成績個學生成績S1:1iS2:如果:如果gi80, 則輸出則輸出ni和和gi,否則不輸出,否則不輸出S3:i+1iS4:如果:如果i50,返回到步驟,返回到步驟S2,繼續(xù)執(zhí)行,否,繼續(xù)執(zhí)行,否則,算法結束則,算法結束算法的特性和表示算法的特性和表示算法的特性算法的特性n有窮性有窮性n確定性,無歧義確定性,無歧義n有零個或多個輸入有零個或多個輸入n有一個或多個輸出有一個或多個輸出n有效性有效性算法的表示算法的表示n自然語言表示自然語言

25、表示n用流程圖表示用流程圖表示n用用N-S圖表示算法圖表示算法n用偽碼表示用偽碼表示n用計算機語言表示用計算機語言表示1 total2 itotal * i totali + 1 ii 5endbeginNY流程圖表示流程圖表示偽代碼表示偽代碼表示Begin 1 total 2 Iif i=5then total * i total i + 1 iend ifprint tatalend算法的結構算法的結構 算法是執(zhí)行任務的步驟或指令序列,算法是執(zhí)行任務的步驟或指令序列,步驟或指令序列是有先后次序的,這種步驟或指令序列是有先后次序的,這種指令的執(zhí)行次序稱為執(zhí)行流程。對不同指令的執(zhí)行次序稱為執(zhí)行

26、流程。對不同的問題,其執(zhí)行流程可能不同,因此存的問題,其執(zhí)行流程可能不同,因此存在流程控制問題。人們經過多年的總結在流程控制問題。人們經過多年的總結研究,發(fā)現(xiàn)無論多么復雜的算法都可以研究,發(fā)現(xiàn)無論多么復雜的算法都可以用三種流程控制結構來描述。用三種流程控制結構來描述。三種基本結構三種基本結構順序結構順序結構選擇結構選擇結構循環(huán)結構循環(huán)結構ABabaABPb成立成立不成立不成立P1A成立成立baP2A不成立不成立baaAPb成立成立不成立不成立當當型型直直到到型型以上三種基本結構,有以下共同特點:以上三種基本結構,有以下共同特點:(1) 只有一個入口只有一個入口(2) 只有一個出口只有一個出口w一個一個判斷框判斷框有兩個出口有兩個出口w一個一個選擇結構選擇結構只有一個出口只有一個出口(3) 結構內的每一部分都有機會被執(zhí)行到。也就結構內的每一部分都有機會被執(zhí)行到。也就是說,對每一個框來說,都應當

溫馨提示

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

評論

0/150

提交評論