版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
主講教師:王國(guó)華學(xué)院:數(shù)學(xué)與信息學(xué)院C語言程序設(shè)計(jì)C語言的位置2編譯型語言在程序執(zhí)行之前,有一個(gè)單獨(dú)的編譯過程,將程序翻譯成機(jī)器語言,以后執(zhí)行這個(gè)程序的時(shí)候,就不用再進(jìn)行翻譯了。解釋型語言,是在運(yùn)行的時(shí)候?qū)⒊绦蚍g成機(jī)器語言,所以運(yùn)行速度相對(duì)于編譯型語言要慢。C/C++等都是編譯型語言,而Java,C#等都是解釋型語言。
31.1計(jì)算機(jī)語言與程序設(shè)計(jì)
1.2程序設(shè)計(jì)的基本過程
1.3C語言的發(fā)展及特點(diǎn)
1.4C語言程序的組成和結(jié)構(gòu)
1.5C語言的開發(fā)步驟第1章C語言程序設(shè)計(jì)概述4三個(gè)概念:人類語言、計(jì)算機(jī)語言、計(jì)算機(jī)程序人類語言:人與人之間交流的工具,通過自然語言實(shí)現(xiàn)人與人之間的溝通,使別人能夠明白的按照語言的表達(dá)來辦事、工作。如:漢語、英語、德語、法語、日語等……1.1計(jì)算機(jī)與程序設(shè)計(jì)什么是語言?5計(jì)算機(jī)語言:人與計(jì)算機(jī)之間交流的工具,通過計(jì)算機(jī)語言實(shí)現(xiàn)人與計(jì)算機(jī)之間的溝通,使計(jì)算機(jī)能夠按照人的意圖進(jìn)行工作。如:C語言、foxpro、basic、java、匯編語言、機(jī)器語言等……如何通過程序(代碼)跟計(jì)算機(jī)溝通?計(jì)算機(jī)硬件,只認(rèn)得高低電平(二進(jìn)制)!人類通過二進(jìn)制與指令的對(duì)應(yīng),實(shí)現(xiàn)與計(jì)算機(jī)的交流6什么是計(jì)算機(jī)程序?計(jì)算機(jī)程序也常稱為“代碼”,是用一系列指令編寫的,可以由計(jì)算機(jī)執(zhí)行的以完成某一特定任務(wù)的腳本。7人們常把編寫程序的過程稱為程序設(shè)計(jì)。
計(jì)算機(jī)可以直接識(shí)別和執(zhí)行的二進(jìn)制語言。如:加法指令:10000000
減法指令:10010000特點(diǎn):計(jì)算機(jī)可以直接識(shí)別和執(zhí)行,效率高,
節(jié)省內(nèi)存;但難以閱讀和記憶。
程序設(shè)計(jì)語言
按照不同種計(jì)算機(jī)語言的語法編寫的程序,我們把它稱為某一種語言的程序。
例如用C語言編寫的程序,我們稱為C語言程序。類似的還有匯編語言程序、JAVA語言程序等。
程序設(shè)計(jì)語言的種類很多,從其發(fā)展歷史以及功能情況來劃分可以大致劃分成三大類:1、機(jī)器語言:82、符號(hào)語言(又稱匯編語言):用“助記符”來表示機(jī)器指令。如:ADDA,BSUBA,B計(jì)算機(jī)不能直接識(shí)別和執(zhí)行用匯編語言編寫的源程序,它必須經(jīng)過一個(gè)叫匯編程序的系統(tǒng)軟件翻譯成機(jī)器語言程序(即目標(biāo)程序)后才能執(zhí)行。93、高級(jí)語言不依賴于機(jī)器,降低了編程的難度。如:C、Java等,用‘+’和‘-’來表示加減運(yùn)算。如:a=7+8;c=4*d+6;
計(jì)算機(jī)也不能直接執(zhí)行高級(jí)語言的源程序,必須先經(jīng)過編譯程序或解釋程序翻譯成目標(biāo)程序后,才能由計(jì)算機(jī)執(zhí)行。1.2.1程序設(shè)計(jì)的步驟
程序設(shè)計(jì)常被簡(jiǎn)單稱為編碼,事實(shí)上編碼只是程序設(shè)計(jì)的一個(gè)步驟,過程如下:101.2程序設(shè)計(jì)的基本過程分析問題設(shè)計(jì)算法編寫程序編譯程序調(diào)試程序編寫程序文檔開始結(jié)束
值得指出的是,程序設(shè)計(jì)者如果認(rèn)為要解決的問題很熟悉,分析問題和設(shè)計(jì)算法這兩步常被快速跳過;另,編寫程序文檔不是必需的步驟,但對(duì)軟件工程很重要。111.2.2算法的常用描述方法
算法是程序的靈魂,能讀懂他人設(shè)計(jì)的算法和將自己設(shè)計(jì)的程序以易于理解的方式描述出來是必要的。
目前描述算法的方法有很多,如:自然語言、流程圖、N-S流程圖、PAD圖和偽代碼等(只需關(guān)注前兩種)。N-S流程圖幾種標(biāo)準(zhǔn)控制結(jié)構(gòu)PAD圖N-S流程圖示例自然語言例1-1:使用自然語言描述計(jì)算n!的算法。算法使用變量s表示計(jì)算n!的中間結(jié)果,即累乘的積;使用變量t表示乘數(shù),則算法步驟如下:步驟1:輸入n;步驟2:使s=1,t=1;步驟3:計(jì)算s×t,得到的積保存到s中;步驟4:使t的值增加1;步驟5:如果t≤n,則跳轉(zhuǎn)到步驟3執(zhí)行;否則計(jì)算結(jié)束,
繼續(xù)下一步驟;步驟6:此時(shí)s的值就是n!,輸出s的值。2.流程圖流程圖是使用一些幾何圖形、線條以及文字說明來描述算法的邏輯結(jié)構(gòu)。14例1-2:使用流程圖描述計(jì)算n!的算法。算法使用變量s表示計(jì)算n!的中間結(jié)果,即累乘的積;使用變量t表示乘數(shù)。15例1-3:遠(yuǎn)紅外行人檢測(cè)檢測(cè)結(jié)果示例:Video116檢測(cè)結(jié)果示例:圖1.不同季節(jié)下市區(qū)、郊區(qū)場(chǎng)景的遠(yuǎn)紅外行人檢測(cè)結(jié)果171.3C語言的發(fā)展與特點(diǎn)1.3.1C語言的發(fā)展歷程C語言的原型ALGOL60語言。(也稱為A語言,面向問題的高級(jí)語言,離硬件比較遠(yuǎn))
1963年,劍橋大學(xué)將ALGOL60語言發(fā)展成為CPL(CombinedProgrammingLanguage)語言。
1967年,劍橋大學(xué)的MatinRichards對(duì)CPL語言進(jìn)行了簡(jiǎn)化,于是產(chǎn)生了BCPL語言。
1970年,美國(guó)貝爾實(shí)驗(yàn)室的KenThompson將BCPL進(jìn)行了修改,并為它起了一個(gè)有趣的名字“B語言”。意思是將CPL語言煮干,提煉出它的精華。并且他用B語言寫了第一個(gè)UNIX操作系統(tǒng)。
而在1973年,B語言也給人“煮”了一下,美國(guó)貝爾實(shí)驗(yàn)室的D.M.RITCHIE等人在B語言的基礎(chǔ)上最終設(shè)計(jì)出了一種新的語言,他取了BCPL的第二個(gè)字母作為這種語言的名字,這就是C語言。18C程序的特點(diǎn):(1)短小精悍而且功能齊全。(2)結(jié)構(gòu)化的程序設(shè)計(jì)語言。(3)兼有高級(jí)語言和低級(jí)語言的特點(diǎn)。(4)程序執(zhí)行效率高。(5)程序可移植性好。1.3C語言的發(fā)展與特點(diǎn)程序如下:
1/*2本程序在屏幕上輸出一行字符串
3*/4#include<stdio.h>//編譯預(yù)處理
5intmain()//主函數(shù)頭部
6{//主函數(shù)體開始
7printf("WelcometoC!\n");//輸出字符串
8return0;//返回值為09}19例1-3:編寫一個(gè)C語言程序,其功能是顯示字符串“WelocometoC!”1.4C語言程序的組成和結(jié)構(gòu)20第1行到第3行是一個(gè)多行注釋,注釋不執(zhí)行,它能夠幫助程序員相互交流,理解程序和語句的作用。第4行是一個(gè)編譯預(yù)處理命令,通常寫在源程序的頭部。程序從第5行開始定義了主函數(shù)main。每一個(gè)C程序都必須有一個(gè)主函數(shù),C程序總是從主函數(shù)開始執(zhí)行。第5行定義了主函數(shù)的頭部,main是主函數(shù)的名稱,int表示主函數(shù)的類型,右邊的括號(hào)是必須的,它定義了函數(shù)的參數(shù)表。第6行到第9行是main函數(shù)的函數(shù)體的定義。函數(shù)體由一條或多條語句組成,這些語句按照順序被放在一對(duì)花括號(hào){}中。程序如下:
第1行/*第2行
本程序在屏幕上輸出一行字符串第3行*/
第4行#include<stdio.h>//編譯預(yù)處理第5行intmain()//主函數(shù)頭部第6行{//主函數(shù)體開始第7行printf("WelcometoC!\n");//輸出字符串第8行return0;//返回值為0
第9行}程序如下:#include<stdio.h>intmain(){doubler,area;//聲明部分,定義變量
r=10.0;//賦值語句,讓r的值為10.0area=3.14*r*r;//計(jì)算面積,并將結(jié)果賦值給areaprintf("area=%f\n",area);//輸出area的值
return0;}21例1-4:根據(jù)半徑計(jì)算圓面積的C程序。22第4行是main函數(shù)的聲明部分,這里定義了兩個(gè)變量r和area,分別表示圓的半徑和面積。第5行是一條賦值語句,它把變量r的值設(shè)置為10.0。第6行也是一條賦值語句,但要復(fù)雜一點(diǎn)。首先計(jì)算賦值符號(hào)“=”右邊的式子的結(jié)果,然后將結(jié)果賦給變量area。第7行輸出了圓的面積area的值,這是程序的運(yùn)算結(jié)果。程序如下:
第1行#include<stdio.h>
第2行intmain()
第3行{
第4行doubler,area;//聲明部分,定義變量
第5行r=10.0;//賦值語句,讓r的值為10.0
第6行area=3.14*r*r;//計(jì)算面積,并將結(jié)果賦值給area
第7行printf("area=%f\n",area);//輸出area的值第8行return0;
第9行}23C語言程序的結(jié)構(gòu):源程序文件1~n示例:24Main函數(shù)示例:25編譯預(yù)處理示例:全局變量聲明示例:26函數(shù)頭、函數(shù)體、聲明部分、執(zhí)行語句部分示例:27⑸在C語言中區(qū)分大小寫,如Main、MAIN、main、
maiN是不相同的。(1)一個(gè)完整的C程序由若干個(gè)函數(shù)組成,至少有且
僅有一個(gè)main函數(shù),每個(gè)函數(shù)包括:函數(shù)說明部分變量定義函數(shù)體語句部分⑵語句必須以分號(hào)(;)作結(jié)束標(biāo)志;⑶由“/*”與“*/”之間的內(nèi)容構(gòu)成C語言程序的注釋部分,也可以使用//;⑷用預(yù)處理命令#include可以包含有關(guān)文件的信息。C語言程序的基本結(jié)構(gòu):281.5C語言程序的開發(fā)步驟C語言程序的開發(fā)步驟:課后習(xí)題1.編寫一個(gè)程序輸出以下內(nèi)容:*****************Hello,CWorld!*****************292.選做練習(xí):用C語言輸出心形圖形303.什么是程序設(shè)計(jì):
程序設(shè)計(jì)是給出解決特定問題程序的過程,是軟件構(gòu)造活動(dòng)中的重要組成部分。程序設(shè)計(jì)往往以某種程序設(shè)計(jì)語言為工具,給出這種語言下的程序。程序設(shè)計(jì)過程應(yīng)當(dāng)包括分析、設(shè)計(jì)、編碼、測(cè)試、排錯(cuò)、撰寫文檔等不同階段。專業(yè)的程序設(shè)計(jì)人員常被稱為程序員。314.什么是算法?算法(Algorithm)是指解題方案的準(zhǔn)確而完整的描述,是一系列解決問題的清晰指令,算法代表著用系統(tǒng)的方法描述解決問題的策略機(jī)制。也就是說,能夠?qū)σ欢ㄒ?guī)范的輸入,在有限時(shí)間內(nèi)獲得所要求的輸出。如果一個(gè)算法有缺陷,或不適合于某個(gè)問題,執(zhí)行這個(gè)算法將不會(huì)解決這個(gè)問題。不同的算法可能用不同的時(shí)間、空間或效率來完成同樣的任務(wù)。一個(gè)算法的優(yōu)劣可以用空間復(fù)雜度與時(shí)間復(fù)雜度來衡量。325.開發(fā)C語言程序有哪些步驟?寫代碼
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024物流倉儲(chǔ)合同
- 2024年跨國(guó)商品銷售合同及其附件
- 二零二五版酒店式公寓租賃合同(含家政服務(wù))下載3篇
- 第三人民醫(yī)院肉類配送服務(wù)合同(含冷鏈運(yùn)輸及質(zhì)量控制)二零二五年度3篇
- 2025年度智慧城市建設(shè)承包協(xié)議模板3篇
- 2025版五星酒店廚師長(zhǎng)職位競(jìng)聘與聘用合同3篇
- 2025年度旅游景區(qū)場(chǎng)地承包使用權(quán)合同3篇
- 2025年度林業(yè)土地經(jīng)營(yíng)權(quán)入股合同范本4篇
- 高校二零二五年度科研項(xiàng)目管理聘用合同3篇
- 2024年:知識(shí)產(chǎn)權(quán)保護(hù)合同2篇
- 第22單元(二次函數(shù))-單元測(cè)試卷(2)-2024-2025學(xué)年數(shù)學(xué)人教版九年級(jí)上冊(cè)(含答案解析)
- 安全常識(shí)課件
- 河北省石家莊市2023-2024學(xué)年高一上學(xué)期期末聯(lián)考化學(xué)試題(含答案)
- 小王子-英文原版
- 新版中國(guó)食物成分表
- 2024年山東省青島市中考生物試題(含答案)
- 河道綜合治理工程技術(shù)投標(biāo)文件
- 專題24 短文填空 選詞填空 2024年中考英語真題分類匯編
- 再生障礙性貧血課件
- 產(chǎn)后抑郁癥的護(hù)理查房
- 2024年江蘇護(hù)理職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
評(píng)論
0/150
提交評(píng)論