第1章-程序設計基礎-2015_第1頁
第1章-程序設計基礎-2015_第2頁
第1章-程序設計基礎-2015_第3頁
第1章-程序設計基礎-2015_第4頁
第1章-程序設計基礎-2015_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1程序設計基礎

(C語言)計算機學院高偉21-434133516835472第1章

程序設計基礎1.1程序設計概念1.2算法的概念及其表示1.3程序開發(fā)過程1.4C語言程序結構及實例31.1程序設計概念計算機是用來延伸人的能力的工具,需要人來駕馭我們的職責是讓非計算機專業(yè)的人更容易駕馭它完成這一目標的主要手段之一就是

“編程(Programming)”什么是計算機?41.1程序設計概念什么是程序設計?解決特定問題是程序設計的目的,程序設計的最終目的就是用程序來控制計算機來為人們解決特定的問題。程序設計一般包括以下幾個步驟:

(1)分析待解決的問題并建立相應的數(shù)學模型;

(2)確定數(shù)據(jù)結構和算法。根據(jù)建立的數(shù)學模型,確定存放數(shù)據(jù)的數(shù)據(jù)結構,針對所確定的數(shù)據(jù)結構選擇合適的算法;

(3)編程;

(4)調(diào)試程序;

(5)整理并寫出文檔資料。51.1程序設計概念人們要利用計算機完成各種預定的工作,就必須把完成該項工作所需要的步驟編寫成計算機可以執(zhí)行的指令,程序即是為實現(xiàn)特定目標或解決特定問題而用計算機語言編寫的指令序列的集合。什么是計算機程序?61.1程序設計概念一個程序應該包括兩方面的內(nèi)容:

對數(shù)據(jù)的描述,指定數(shù)據(jù)類型和組織形式,即是數(shù)據(jù)結構;

對操作步驟的描述,對操作步驟的描述即是算法。正如著名計算機科學家沃思(NikiklausWirth)提出的一個公式:

數(shù)據(jù)結構+算法=程序什么是計算機程序?71.1程序設計概念程序設計語言的發(fā)展機器語言編寫的1+1程序

匯編語言(AssembleLanguage)編寫的1+1程序101110000000000100000000000001010000000100000000MOVAX,1ADDAX,181.1程序設計概念程序設計語言的發(fā)展BASIC語言編寫的1+1程序C語言編寫的1+1程序PRINT1+1#include<stdio.h>main(){

printf("%d\n",1+1);}91.1程序設計概念程序設計思想1.結構化程序設計思想—模塊化結構化程序設計的概念是E.W.Dijkstra在20世紀60年代末提出的,其實質(zhì)是控制編程中的復雜性。它的主要觀點是采用自頂向下、逐步求精的程序設計方法具體來說,采用以下方法確保得到結構化的程序:(1)自頂向下(2)逐步求精(3)模塊化設計(4)結構化編碼101.1程序設計概念程序設計思想1.面向?qū)ο蟪绦蛟O計思想面向?qū)ο蟪绦蛟O計是面向過程設計方法的繼承和發(fā)展,是基于一種自然、樸素的思想來模擬人類思維習慣的程序設計方法。它具有抽象、封裝、繼承和多態(tài)性等特征??陀^世界是由各種各樣的對象組成的,每個對象都有自己的內(nèi)部狀態(tài)和運動規(guī)律,不同對象間的相互聯(lián)系和相互作用構成了各種不同的系統(tǒng),進而構成整個客觀世界。C++語言是以C語言為基礎的一種面向?qū)ο蟮恼Z言,有著極為廣泛的應用。111.2算法的概念及表示什么是算法1.廣義上來說,任何解決問題的過程都是由一定的步驟組成的,這些解決問題確定的方法和有限的步驟都可以稱作算法。2.常用計算機算法分為兩大類:數(shù)值運算算法和非數(shù)值運算算法。

數(shù)值運算是指求數(shù)值解,例如對微分方程求解、對函數(shù)的定積分求解等,都屬于數(shù)值運算的范圍。

非數(shù)值運算包括的范圍非常廣,如人事管理、數(shù)據(jù)處理、資料檢索等。121.2算法的概念及表示算法的特征(1)確定性(2)有窮性(3)有效性(4)輸入(5)輸出131.2算法的概念及表示算法的復雜性時間復雜性

算法的時間復雜性越高,則算法的執(zhí)行時間越長;時間復雜性越低,則執(zhí)行時間越短。空間復雜性

算法的空間復雜性越高,算法所需的存儲空間越多;空間復雜性越低,則所需的存儲空間越少。算法的復雜性分析中,對時間復雜性的分析考慮得更多。141.2算法的概念及表示常用算法簡介枚舉法枚舉法又稱為窮舉法,將問題的所有可能的答案一一列舉,然后根據(jù)條件判斷此答案是否合適,合適就為本題的一個答案,不合適就丟棄。若全部可能答案均不符合條件,則說明該題無答案。迭代法迭代法是一種不斷用變量的舊值遞推新值的過程,是一種數(shù)值近似求解的方法,迭代算法是用計算機解決問題的一種常見的方法。151.2算法的概念及表示常用算法簡介遞歸法和遞推法枚舉法遞推法是一種比較簡單的算法,通過已知條件,利用遞推公式,由簡到繁逐次迭代,直至得到結果的算法。遞推法的關鍵是找到進行遞推的通項公式。遞歸法也是利用遞推公式,但不同的是,它是由繁化簡,用簡單的問題和已知的操作運算來解決復雜的問題。分治法分治法就是把一個復雜的問題分解成兩個或更多的相同或相似的子問題,再把子問題分成更加小的子問題,直到最后子問題可以簡單直接的求解,最后再把子問題的解合并,就組合成原問題的解。161.2算法的概念及表示算法的表示用自然語言表示算法例1.3輸入3個數(shù),輸出最小的數(shù)。首先定義3個變量x、y、z,將3個數(shù)依次輸入到x、y、z中,再定義一個變量MIN,存放最小數(shù)。算法步驟如下:(1)輸入x,y,z。(2)若x<y,則x→MIN,否則y→MIN。(3)若z<MIN,則z→MIN。(4)輸出MIN。171.2算法的概念及表示用偽代碼表示算法例1.4輸入兩個數(shù)x、y,輸出最大的數(shù)。開始輸入x、yifx>y輸出xelse輸出y結束181.2算法的概念及表示用流程圖表示算法;規(guī)則:從上到下,從左到右。符號及其意義:起止框流程線連接點處理框判斷框I/O框191.2算法的概念及表示算法的表示流程圖表示舉例

用框圖描述函數(shù)

1x0y=

-1x<0start輸入xAx0?y=1y=-1yesnoA輸出yend201.2算法的概念及表示211.2算法的概念及表示算法的表示N-S流程圖表示算法ABC順序結構分支結構條件成立不成立AB循環(huán)結構(條件在前/條件在后)當條件成立A

直到條件成立A當型循環(huán)直到型循環(huán)231.3程序的開發(fā)過程程序的編寫過程開始編輯編譯語法錯?yesno連接、運行邏輯錯?yesnoAA完成編輯(Edit)擴展名為.c的文件編譯(Compile)擴展名為.obj的文件鏈接(Link)形成最后的可執(zhí)行文件擴展名為.exe的文件運行(Run)241.4C語言程序結構及實例C語言是當今世界上最為流行的計算機高級語言之一,它是1972年由美國的DennisRitchie設計發(fā)明的,并首次在UNIX操作系統(tǒng)的DECPDP-11計算機上使用。C語言的設計者

DennisM.Ritchie和Unix的設計者KenThompson

接受美國國家技術勛章1.4C語言程序結構及實例目前最流行的C語言版本有以下幾種:

?MicrosoftC或稱MSC

?BorlandTurboC或稱TurboC

?AT&TC這些C語言版本不僅實現(xiàn)了ANSIC標準,而且在此基礎上各自作了一些擴充,使之更加方便、完美。25C語言的特點(1)語言簡潔、結構緊湊,程序書寫方便,實用靈活。

(2)C語言是結構化的程序設計語言。(3)C語言提供了豐富的運算符。(4)C語言具有豐富的數(shù)據(jù)類型。(5)C語言可以直接對硬件進行操作。(6)與匯編語言相比,用C語言寫的程序可移植性好。(7)C語言對語法的限制不太嚴格、程序設計自由度大,并且C語言程序生成代碼質(zhì)量高,程序執(zhí)行效率高。1.4C語言程序結構及實例例1在DOS屏幕上輸出ThisisaCprogram.

程序如下:

voidmain() {

printf(“ThisisaCprogram.”);//函數(shù)體 }

該程序的功能是:

執(zhí)行該程序,將在屏幕上輸出一行信息:ThisisaCprogram

.27程序結構說明:1.每個C語言程序都是由若干個函數(shù)組成的,其中至少應該包括一個主函數(shù)main():main(){}主函數(shù)的名稱是main,在C語言中是固定的,不能被改變。它后面的{}被稱為函數(shù)體,由一條一條的語句組成。函數(shù)中所有的語句都寫在{}之內(nèi)。2.函數(shù)是由語句組成的,例1.6程序的主函數(shù)中只包含一個語句:printf("ThisisaCprogram.");printf是一個函數(shù)名稱,它的功能是將括號中的參數(shù)(用雙引號括起來的一串字符)原樣輸出到計算機的DOS屏幕上,參數(shù)要放在括號中。在C語言中printf被稱為格式化輸出函數(shù)。3.每個語句后面要加上分號。4.函數(shù)中也可以不包含語句,這就是空函數(shù)。1.4C語言程序結構及實例30

例2輸入兩個數(shù)及其運算關系,輸出運算結果。#include<stdio.h>voidmain(void){

char

ch;

inta,b;

intc;

scanf(“%d%c%d”,&a,&ch,&b);c=fun(a,ch,b);

printf(“a%cb=%d”,ch,c);}int

fun(int

x,char

op,inty){

intz;

switch(op){case‘+’:z=x+y;break;case‘-‘:z=x-y;break;case‘*’:z=x*y;break;case‘/’:z=x/y;break;}returnz;}子函數(shù)

⒈程序是由函數(shù)組成的,函數(shù)是由語句組成的。其中主函數(shù)有且唯一,主函數(shù)名位main。子函數(shù)可有可無也可以有多個。⒉C語言的系統(tǒng)構詞必須用小寫,用戶構詞可以大小寫混用。

⒊C語言的語句用;作為結束,因此一句可以用一行或幾行書寫,但不能割裂構詞。⒋各詞之間用一個或幾個space分隔。1.4C語言程序結構及實例31標識符和關鍵字⒈C語言的字符集⑴字母:A、a、B、b…、Z、z52個⑵數(shù)字符號:0、1…、910個⑶特殊符號:+-*/…20個⒉關鍵字(又稱保留字)系統(tǒng)占用詞(共32個)auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile、while建議不要使用:define、undef、include、ifdef、ifndef、endif、line、error、elif、pra

溫馨提示

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

評論

0/150

提交評論