程序設(shè)計(jì)語言的發(fā)展.ppt
《程序設(shè)計(jì)語言的發(fā)展.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《程序設(shè)計(jì)語言的發(fā)展.ppt(33頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
主要內(nèi)容,程序設(shè)計(jì)語言程序設(shè)計(jì)語言的發(fā)展程序設(shè)計(jì)的過程C語言的集成開發(fā)環(huán)境1個(gè)簡(jiǎn)單C語言程序一般程序錯(cuò)誤,2,程序設(shè)計(jì)語言——維基百科,程序設(shè)計(jì)語言(ProgramLanguage):是一組用來定義計(jì)算機(jī)程序的語法規(guī)則。它是一種被標(biāo)準(zhǔn)化的交流技巧,用來向計(jì)算機(jī)發(fā)出指令。程序(Program):指一組指示計(jì)算機(jī)每一步動(dòng)作的指令,通常用某種程序設(shè)計(jì)語言編寫,運(yùn)行于某種目標(biāo)體系結(jié)構(gòu)上。編程(Programming):程序設(shè)計(jì)是編寫解決特定問題程序的過程,是軟件構(gòu)造活動(dòng)中的重要組成部分。程序設(shè)計(jì)往往以某種程序設(shè)計(jì)語言為工具,給出這種語言下的程序。程序設(shè)計(jì)過程:分析、設(shè)計(jì)、編碼、測(cè)試、排錯(cuò)等階段。,3,程序設(shè)計(jì)語言的發(fā)展,機(jī)器語言匯編語言高級(jí)語言,CPU不能直接處理高級(jí)語言編寫的程序,它必須被翻譯為機(jī)器語言。,比較匯編語言和C語言ADD100,200,840z=x+y;,翻譯程序,高級(jí)語言不能被計(jì)算機(jī)直接執(zhí)行,必須先由一種翻譯程序?qū)⑦@些程序翻譯成等價(jià)的能被計(jì)算機(jī)識(shí)別和執(zhí)行的機(jī)器語言。翻譯程序的種類:解釋程序:將高級(jí)編程語言一行一行直接轉(zhuǎn)譯運(yùn)行。解釋器不會(huì)一次把整個(gè)程序轉(zhuǎn)譯出來,只像一位“中間人”,每次運(yùn)行程序時(shí)都要先轉(zhuǎn)成另一種語言再作運(yùn)行,因此解釋器的程序運(yùn)行速度比較緩慢。它每轉(zhuǎn)譯一行程序敘述就立刻運(yùn)行,然后再轉(zhuǎn)譯下一行,再運(yùn)行,如此不停地進(jìn)行下去。編譯(器)程序:將用某種編程語言寫成的源代碼(原始語言),轉(zhuǎn)換成另一種編程語言(目標(biāo)語言)。,4,編譯器,一個(gè)現(xiàn)代編譯器的主要工作流程如下:源代碼(sourcecode)→預(yù)處理器(preprocessor)→編譯器(compiler)→匯編程序(assembler)→目標(biāo)代碼(objectcode)→鏈接器(Linker)→可執(zhí)行文件(executables)P16,6,VC++6.0創(chuàng)天中文版,7,集成開發(fā)環(huán)境,VC++6.0集編輯(EDIT)、編譯(COMPILE)、連接(Link)、執(zhí)行(EXECUTE)與一體,并提供調(diào)試(debug)手段和幫助(help)的開發(fā)軟件。,8,程序編制的過程,編輯(EDIT)[‘?d?t]編譯(COMPILE)[k?m‘pa?l]連接(Link)[l??k]執(zhí)行(EXECUTE)[‘?ks?,kjut]調(diào)試(debug),9,編輯(EDIT),源文件用高級(jí)語言編寫的程序文件編輯器生成源文件的軟件C語言程序文件,例:hello.cpp文本文件,可用記事本編輯后綴名:c/cpp語法一種編程語言的規(guī)則,如:C程序設(shè)計(jì)語言,10,編譯(COMPILE),編譯器將高級(jí)語言翻譯成機(jī)器語言的軟件編譯的任務(wù)編譯器翻譯源文件事會(huì)檢查是否符合高級(jí)語言的語法規(guī)則生成機(jī)器語言指令構(gòu)成的目標(biāo)文件如源程序包含語法錯(cuò)誤,列出錯(cuò)誤,不產(chǎn)生目標(biāo)文件c目標(biāo)文件,例:hello.obj二進(jìn)制文件后綴名:obj,11,連接Link,連接的任務(wù)將預(yù)先開發(fā)好的程序模塊(例如系統(tǒng)函數(shù)或其他程序員開發(fā)的共同模塊)連接到當(dāng)前程序代碼中去生成可執(zhí)行文件:exe,例:hello.exe連接器完成連接的軟件,C語言程序的編輯、調(diào)試、運(yùn)行步驟,調(diào)試程序P18-21,設(shè)置斷點(diǎn)開始調(diào)試單步運(yùn)行自動(dòng)查看變量,執(zhí)行(EXECUTE),C語言生成的可執(zhí)行文件(exe文件)是一個(gè)DOS程序——控制臺(tái)程序;可以通過開始菜單“運(yùn)行”→“cmd”命令打開命令窗口,直接執(zhí)行文件名。,14,VC++操作新建編譯執(zhí)行語法錯(cuò)誤關(guān)閉工作空間,15,創(chuàng)建一個(gè)C程序sample01_01.cpp,/*print“HelloWorld!”*/#includeintmain(void){printf("HelloWorld!\n");return0;},16,解讀第一個(gè)C程序--程序語法,(1)C程序必須由一個(gè)main函數(shù)構(gòu)成,系統(tǒng)自動(dòng)執(zhí)行main函數(shù)。(2)程序的執(zhí)行從main函數(shù)的左{括號(hào)開始,順序執(zhí)行每一條語句,直到main函數(shù)的右}括號(hào)結(jié)束。{函數(shù)體}(3)printf是標(biāo)準(zhǔn)輸出函數(shù),輸出的字符串在一對(duì)半角雙引號(hào)之間,例如"HelloCWorld\n"。(4)C語句以分號(hào)結(jié)束。,解讀第一個(gè)C程序--程序語法,(5)控制臺(tái)輸出時(shí),系統(tǒng)會(huì)緊跟著自動(dòng)輸出“pressanykeytocontinue”,等待按任意鍵關(guān)閉控制臺(tái)窗口。(6)’\n’是一個(gè)轉(zhuǎn)義字符--換行。轉(zhuǎn)義字符是一些鍵盤不能輸入的控制字符,具有特殊功能。(7)#include是一個(gè)預(yù)編譯命令,表示要加入stdio.h文件(標(biāo)準(zhǔn)輸入輸出函數(shù)頭文件),要在程序中使用printf函數(shù)必須使用該命令。(8)Main函數(shù)執(zhí)行到“}”或“return0;”結(jié)束。return0;向系統(tǒng)返回整數(shù)0,表示程序運(yùn)行正常。,17,Include[?n’klud]包含standard[‘stnd?d]標(biāo)準(zhǔn)head[h?d]頭部,解讀第1個(gè)C程序的相關(guān)文件,18,Debug文件夾中存放著生成的obj文件,exe文件及其它一些中間文件。,19,討論,輸出兩行問候語句HelloCWorld!HelloCWorld!,20,可能出現(xiàn)的答案,printf(“HelloCWorld”);printf(“HelloCWorld”);printf(“HelloCWorld\n”);printf(“HelloCWorld”);printf(“HelloCWorld\nHelloCWorld”);,程序錯(cuò)誤,語法錯(cuò)誤連接錯(cuò)誤邏輯錯(cuò)誤運(yùn)行錯(cuò)誤,語法錯(cuò)誤,指不符合高級(jí)語言定義的語法書寫規(guī)則。編譯或解釋程序能自動(dòng)檢查出語法錯(cuò)誤,只需根據(jù)錯(cuò)誤提示進(jìn)行修改。,22,23,改錯(cuò)示例:,#includevoidmain(void){printf(WelcometoYou!\n")return0;},#includeintmain(void){printf("WelcometoYou!\n");return0;},C語言的錯(cuò)誤信息的形式:,文件名行號(hào)錯(cuò)誤編號(hào)錯(cuò)誤信息↓↓↓↓D:\C教材\sample\hello.cpp(4):errorC2001:newlineinconstant,24,編譯錯(cuò)誤修改提示(1),錯(cuò)誤信息往往只能起提示作用,不是特別精確反映錯(cuò)誤產(chǎn)生的原因,更不會(huì)告訴你如何修改。根據(jù)提示能快速反應(yīng)錯(cuò)誤產(chǎn)生的原因需要經(jīng)驗(yàn)的積累。,25,編譯錯(cuò)誤修改提示(2),一條語句錯(cuò)誤可能會(huì)產(chǎn)生若干條錯(cuò)誤信息,只要修改了這條錯(cuò)誤,其他錯(cuò)誤會(huì)隨之消失。特別提示:一般情況下,第一條錯(cuò)誤信息最能反映錯(cuò)誤的位置和類型,所以調(diào)試程序時(shí)務(wù)必根據(jù)第一條錯(cuò)誤信息進(jìn)行修改,修改后,立即重新編譯程序,如果還有很多錯(cuò)誤,再一個(gè)一個(gè)地修改。即每修改一處錯(cuò)誤要重新編譯一次程序。,26,連接錯(cuò)誤,連接錯(cuò)誤,是編譯成功后,連接器連接外部程序的時(shí)候產(chǎn)生的錯(cuò)誤。例:main函數(shù)名寫錯(cuò)了,27,連接錯(cuò)誤修改提示,連接錯(cuò)誤不提示出錯(cuò)行數(shù),但小程序的定位也比較簡(jiǎn)單,一般是函數(shù)和外部變量的名稱出錯(cuò),只需根據(jù)錯(cuò)誤提示的字符串去尋找可能出現(xiàn)的位置。,28,29,連接錯(cuò)誤信息顯示,--------------------Configuration:test-Win32Debug--------------------Compiling...:test.cppLinking...LIBCD.lib(crt0.obj):errorLNK2001:unresolvedexternalsymbol_main無法解析的外部符號(hào)_mainDebug/test.exe:fatalerrorLNK1120:1unresolvedexternals執(zhí)行l(wèi)ink.exe時(shí)出錯(cuò).test.exe-1error(s),0warning(s)錯(cuò)誤警告,,30,常見編程錯(cuò)誤:,字符串“”不完整()不匹配缺少;函數(shù)名寫錯(cuò)……,邏輯錯(cuò)誤,邏輯錯(cuò)誤則是程序設(shè)計(jì)上或邏輯上的錯(cuò)誤——指程序已生成可執(zhí)行文件,但運(yùn)行出錯(cuò)或不能得到正確的結(jié)果,這可能是由于算法中問題說明不足,解法不完整或不正確所造成的。邏輯錯(cuò)誤的檢查需要事先設(shè)計(jì)的測(cè)試用例。邏輯錯(cuò)誤出錯(cuò)位置需要程序員對(duì)程序代碼進(jìn)行分析,一般會(huì)借助一些調(diào)試手段,如單步執(zhí)行,設(shè)斷點(diǎn),watch窗口觀測(cè)等等,以后陸續(xù)介紹……,31,運(yùn)行錯(cuò)誤,運(yùn)行錯(cuò)誤是指程序經(jīng)編譯連接生成可執(zhí)行文件后,在運(yùn)行的過程中系統(tǒng)報(bào)錯(cuò),沒有運(yùn)行結(jié)果。常見的運(yùn)行錯(cuò)誤有:除數(shù)為0;死循環(huán);浮點(diǎn)指針出錯(cuò)等等。運(yùn)行錯(cuò)誤往往是邏輯錯(cuò)誤引起的。,32,第二講結(jié)構(gòu)化程序設(shè)計(jì)與C語言,- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 程序設(shè)計(jì)語言 發(fā)展
鏈接地址:http://www.820124.com/p-3497739.html