第1章-程序設(shè)計(jì)ABC_第1頁
第1章-程序設(shè)計(jì)ABC_第2頁
第1章-程序設(shè)計(jì)ABC_第3頁
第1章-程序設(shè)計(jì)ABC_第4頁
第1章-程序設(shè)計(jì)ABC_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第1章程序設(shè)計(jì)ABCC語言計(jì)算機(jī)專業(yè)教研室王永會yonghuiwang@126.com

戊2-30624690666計(jì)算機(jī)專業(yè)學(xué)什么?什么是“會計(jì)算機(jī)”?會打字?會編程?會DIY?會上網(wǎng)?會“黑客”?……懂原理、能應(yīng)用、有創(chuàng)新計(jì)算機(jī)計(jì)算機(jī)是用來延伸人的能力的工具,需要人來駕馭我們的職責(zé)是讓非計(jì)算機(jī)專業(yè)的人更容易駕馭它完成這一目標(biāo)的主要手段之一就是

“編程(Programming)”計(jì)算機(jī)未來發(fā)展趨勢巨型化-Supercomputer微型化-Microcomputer,NanotechComputer,embeddedsystem網(wǎng)絡(luò)化-WebInternet智能化-AIdataminingHardware:electronicandelectricalsystem,automation,

programmingSoftware:softwareengineering,programmingComputing:DataIntensiveComputing,cloudComputing,datawarehouse,programming

Application-oriented:sciencecomputing,socialcomputing,GIS,programming計(jì)算機(jī)與人工智能計(jì)算機(jī)行業(yè)的夢想讓計(jì)算機(jī)(Computer)能像人一樣地思考,與人自然交流,人工智能(ArtificialIntelligence)圖靈測試

計(jì)算機(jī)與人工智能1997年,IBM公司研制的深藍(lán)超級計(jì)算機(jī)在一場“人機(jī)大戰(zhàn)”中打敗了國際象棋大師卡斯帕羅夫被譽(yù)為“人工智能的一大勝利”

深藍(lán)的主要研制者之一許峰雄博士:勝利靠的只是不知疲倦地高速運(yùn)算,并不是什么智能

計(jì)算機(jī)基本工作過程整個(gè)過程的執(zhí)行者是硬件,但硬件是受軟件控制的編程,就是編寫軟件,使硬件按照人的意圖工作計(jì)算機(jī)基本工作過程輸入/輸出設(shè)備存儲器運(yùn)算器控制器源程序和輸入數(shù)據(jù)輸出結(jié)果取出數(shù)據(jù)存入數(shù)據(jù)操作命令存取命令取出程序指令輸入輸出命令計(jì)算結(jié)果CPU“馮·諾依曼機(jī)”結(jié)構(gòu)

大腦記憶裝置眼睛和耳朵程序和數(shù)據(jù)硬盤CPU內(nèi)存執(zhí)行結(jié)果軟件的形成軟件(Software)的形成程序員(Programmer)編寫程序源代碼(SourceCode)編譯器(Compiler)把源代碼轉(zhuǎn)換為可被計(jì)算機(jī)理解的機(jī)器代碼(MachineCode)并把機(jī)器代碼以可執(zhí)行文件(ExecutableFile)的形式保存在磁盤上軟件運(yùn)行過程的簡單描述軟件的運(yùn)行計(jì)算機(jī)把機(jī)器代碼讀入到內(nèi)存(Memory)由CPU運(yùn)行這些代碼讀取輸入(Input)產(chǎn)生輸出(Output)完成程序員預(yù)定的功能計(jì)算機(jī)專業(yè)后續(xù)課程計(jì)算機(jī)原理編譯原理操作系統(tǒng)人與計(jì)算機(jī)的對話兩個(gè)說不同母語的人的對話方式:一方學(xué)另一方的語言雙方都學(xué)習(xí)一種第三方語言人與計(jì)算機(jī)的對話方式:計(jì)算機(jī)學(xué)習(xí)人的語言(自然語言理解)人學(xué)習(xí)計(jì)算機(jī)的語言學(xué)習(xí)第三方語言程序設(shè)計(jì)語言與人類語言自然語言:人類為了交流思想、表達(dá)感情、交換信息,逐步發(fā)明了語言。

程序設(shè)計(jì)語言:人類為了能夠更好地與計(jì)算機(jī)進(jìn)行交流與通訊,發(fā)明了專門與 計(jì)算機(jī)打交道的交流工具。

篇、章句子或段落=詞或詞組+語法詞或詞組=字+語法自然語言的構(gòu)成字文章構(gòu)造單元程序設(shè)計(jì)語言的構(gòu)成基本單元詞:標(biāo)識符關(guān)鍵字常量運(yùn)算符句子:語句篇章:程序編程并不神秘,與從小母語或自然語言如一門外語的學(xué)習(xí)有許多相似之處。語法規(guī)則程序設(shè)計(jì)規(guī)則計(jì)算機(jī)語言是一種跨國界的世界通用的語言,通過編程可以表達(dá)自己的思想,互相交流!程序設(shè)計(jì)語言(ProgrammingLanguage)是人與計(jì)算機(jī)進(jìn)行交流的語言計(jì)算機(jī)直接能讀懂的語言機(jī)器語言(MachineCode),也叫機(jī)器代碼一種純粹的二進(jìn)制語言程序設(shè)計(jì)語言的故事程序設(shè)計(jì)語言的故事計(jì)算機(jī)為什么用二進(jìn)制呢?為什么不用我們?nèi)粘J煜さ氖M(jìn)制呢?二進(jìn)制在在電器元件中容易實(shí)現(xiàn)計(jì)算機(jī)進(jìn)行二進(jìn)制運(yùn)算比進(jìn)行十進(jìn)制運(yùn)算要簡單得多

程序設(shè)計(jì)語言的故事機(jī)器語言編寫的1+1程序匯編語言(AssembleLanguage)編寫的1+1程序101110000000000100000000000001010000000100000000MOVAX,1ADDAX,1程序設(shè)計(jì)語言的故事BASIC語言編寫的1+1程序C語言編寫的1+1程序PRINT1+1#include<stdio.h>main(){ printf("%d\n",1+1);}C語言的創(chuàng)世紀(jì)一切從一個(gè)叫“SpaceTravel”的電子游戲開始……為了讓他的游戲能在PDP-7上運(yùn)行,KenThompson用匯編語言給PDP-7寫了一個(gè)操作系統(tǒng)——UNIX匯編太不好用了,Thompson需要高級語言試驗(yàn)了一些高級語言,包括Fortran,都不理想他在BCPL基礎(chǔ)上,自己設(shè)計(jì)了一個(gè)B語言UNIX開始發(fā)展,B也不夠用了DennisRitchie加入,把B改造成C開始用C重寫UNIXC程序設(shè)計(jì)語言是一種高級語言高級語言并不是“高級”,只是相對低級語言,在一個(gè)高的級別上進(jìn)行編程歷史悠久,戰(zhàn)勛卓著誕生于上世紀(jì)70年代初,成熟于80年代(C89),修訂與90年代(C99)很多重量級軟件都是用C寫的上天入地,無所不能幾乎沒有不能用C寫出來的軟件,沒有不支持C的系統(tǒng)很多流行語言、新生語言都借鑒了它的思想、語法從C++,到Java,再到C#,還有php等C程序設(shè)計(jì)語言硬件(Hardware)操作系統(tǒng)(OS)應(yīng)用程序

(Application)應(yīng)用

平臺基于

平臺的

應(yīng)用

程序低級語言的地盤高級語言的地盤C語言的地盤C語言的設(shè)計(jì)者

DennisM.RitchieCisquirky,flawed,andanenormoussuccess.和Unix的設(shè)計(jì)者KenThompson

接受美國國家技術(shù)勛章Ritchie和Thompson在開發(fā)UNIX程序設(shè)計(jì)語言編輯(Edit)擴(kuò)展名為.c的文件

編譯(Compile)擴(kuò)展名為.obj的文件

鏈接(Link)形成最后的可執(zhí)行文件擴(kuò)展名為.exe的文件

運(yùn)行(Run)編譯語言一種編譯語言對應(yīng)一種編譯器程序員按照該語言的語法編寫程序源代碼,把自己的意圖融入到代碼中編譯器讀入源代碼,把程序員的意圖轉(zhuǎn)換成可執(zhí)行程序,供他人使用C語言可執(zhí)行程序編譯器解釋運(yùn)行解釋運(yùn)行過程程序員編寫程序源代碼解釋器讀入源代碼,并執(zhí)行源代碼解釋運(yùn)行的語言特點(diǎn)執(zhí)行速度慢好學(xué)易用先編譯、后解釋把源代碼編譯成更容易解釋的中間代碼,然后再解釋運(yùn)行流行語言應(yīng)用編程語言機(jī)器語言匯編語言BasicPascalCC++JavaC#專項(xiàng)編程語言LotusNotesPowerBuilderWeb編程語言HTMLXMLPHPASPJSPJavaScriptVBScript其他perlpythonVBA對一門計(jì)算機(jī)語言的深入掌握意味著:學(xué)習(xí)計(jì)算機(jī)程序設(shè)計(jì)的思想、方法+經(jīng)驗(yàn)+興趣=能力和成功!學(xué)習(xí)C語言目的及方法期末考試;等級考試;后續(xù)有關(guān)課程的學(xué)習(xí)打基礎(chǔ);為學(xué)習(xí)其它的高級語言或開發(fā)工具基礎(chǔ);工作;快樂;預(yù)習(xí)!+課堂教學(xué)+實(shí)踐!

調(diào)試并去除錯(cuò)誤學(xué)習(xí)編程唯一有效途徑!Debugandremoveerrorsisanonlyeffectivewayforlearningprogramming.例1:

Hello,World#include<stdio.h>main(){ printf("hello,world\n");}hello.c簡單的C程序介紹考考你:

如何把“hello”和“world”分別打印在兩行?包含標(biāo)準(zhǔn)輸入輸出庫(standardinput/outputlibrary)無參數(shù)的主函數(shù)(mainfuctionwithoutargumentvalues)Maincallslibraryfunctionprintftoprintthissequenceofcharacters.\n換行符Newlinecharacter#include<stdio.h>main(){inta,b,c;//變量聲明整型(integer)variabledeclaration

a=100;//變量賦值,assignment b=50; c=a+b;//計(jì)算,computeandassign.printf(“\nc=%d”,c);//output“c”toscreen}例2:求兩數(shù)之和。

例3:求兩個(gè)數(shù)的和(函數(shù))前面使用了系統(tǒng)提供的函數(shù)printf。不用知道這個(gè)函數(shù)內(nèi)部是如何運(yùn)作的,只按照參數(shù)形式調(diào)用它即可;C程序由函數(shù)構(gòu)成;我們也可以定義自己的函數(shù);“一個(gè)程序應(yīng)該是輕靈自由的,它的函數(shù)就象串在一根線上的珍珠?!保ā毒幊讨馈罚?include<stdio.h>/*函數(shù)功能:計(jì)算兩個(gè)整數(shù)相加之和

入口參數(shù):整型數(shù)據(jù)a和b

返回值:整型數(shù)a和b之和*/int

Add(inta,intb){

return(a+b);}/*主函數(shù)*/main(){

intx,y,sum=0; printf("Inputtwointegers:"); scanf("%d%d",&x,&y);/*輸入兩個(gè)整型數(shù)x和y*/ sum=Add(x,y);/*調(diào)用函數(shù)Add計(jì)算x和y相加之和*/ printf("sum=%d\n",sum);/*輸出x和y相加之和*/}例3:求兩個(gè)數(shù)的和(函數(shù))(1)函數(shù)由兩部分組成:函數(shù)說明部分:函數(shù)名、函數(shù)類型、形參名、形參類型。函數(shù)體:實(shí)現(xiàn)函數(shù)的具體操作;由語句構(gòu)成。(2)程序總是從main函數(shù)開始執(zhí)行。sum.c例4:打印華氏溫度與攝氏溫度對照表計(jì)算公式:

C=(5/9)(F-32)打印華氏溫度與攝氏溫度對照表#include<stdio.h>/*對fahr=0,20,...,300

打印華氏溫度與攝氏溫度對照表*/main(){

int

fahr,celsius;

int

lower,upper,step;

lower=0;/*溫度表的下限*/

upper=300;

/*溫度表的上限*/

step=20;/*步長*/

fahr

=lower;

while(fahr<=upper){

celsius=5*(fahr-32)/9;

printf("%d\t%d\n",fahr,celsius);

fahr=fahr+step;

}}fc1.cWhile(){}代碼風(fēng)格#include<stdio.h>/*對fahr=0,20,...,300

打印華氏溫度與攝氏溫度對照表*/main(){

int

fahr,celsius;

int

lower,upper,step;

lower=0;/*溫度表的下限*/

upper=300;

/*溫度表的上限*/

step=20;/*步長*/

fahr

=lower;

while(fahr<=upper){

celsius=5*(fahr-32)/9;

printf("%d\t%d\n",fahr,celsius);

fahr=fahr+step;

}}fc1.c沒有代碼風(fēng)格#include<stdio.h>main(){int

fahr,celsius;int

lower,upper,step;lower=0;upper=300;step=20;fahr=lower;while(fahr<=upper){celsius=5*(fahr-32)/9;pr

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論