程序設(shè)計(jì)1-計(jì)算機(jī)語言程序設(shè)計(jì)概述_第1頁
程序設(shè)計(jì)1-計(jì)算機(jī)語言程序設(shè)計(jì)概述_第2頁
程序設(shè)計(jì)1-計(jì)算機(jī)語言程序設(shè)計(jì)概述_第3頁
程序設(shè)計(jì)1-計(jì)算機(jī)語言程序設(shè)計(jì)概述_第4頁
程序設(shè)計(jì)1-計(jì)算機(jī)語言程序設(shè)計(jì)概述_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第1章概述1.1程序設(shè)計(jì)語言發(fā)展1.2高級語言程序的編譯1.3算法與程序設(shè)計(jì)1.4C&C++源程序示例1.5C&C++開發(fā)環(huán)境1.6實(shí)用知識:常見的編譯和運(yùn)行錯誤1.7練習(xí)與思考1.1程序設(shè)計(jì)語言發(fā)展

1.1.1機(jī)器語言到高級語言機(jī)器語言是由計(jì)算機(jī)能夠理解的指令組成的,每條指令用一串0和1組成匯編語言的實(shí)質(zhì)和機(jī)器語言是相同的,都是直接對硬件操作,指令采用了英文縮寫的標(biāo)識符,更容易識別和記憶高級語言去掉了與具體硬件環(huán)境有關(guān)的細(xì)節(jié),語法比較接近自然語言,容易閱讀和學(xué)習(xí)。一些高級語言增加了面向?qū)ο蟮奶攸c(diǎn),更易表達(dá)現(xiàn)實(shí)世界1.1程序設(shè)計(jì)語言發(fā)展

1.1.1機(jī)器語言到高級語言高級語言2019201620112006200119961991Java1111330-C2222111C++4333222C#745610--Python35672615-——來源于:/tiobe-index/C和C++應(yīng)用廣泛,可用于系統(tǒng)底層開發(fā)、嵌入式設(shè)備、網(wǎng)絡(luò)通訊協(xié)議、圖像處理、以及游戲和算法等Java主要應(yīng)用于網(wǎng)絡(luò)應(yīng)用系統(tǒng)C#主要用于Windows程序設(shè)計(jì)和網(wǎng)絡(luò)應(yīng)用系統(tǒng)等Python是一種腳本語言,是目前大數(shù)據(jù)和人工智能的主要語言之一1.1程序設(shè)計(jì)語言發(fā)展

1.1.2C&C++的發(fā)展與特點(diǎn)C語言采用結(jié)構(gòu)化編程方法,遵從自頂向下的原則,重點(diǎn)在于算法與數(shù)據(jù)結(jié)構(gòu)如操作系統(tǒng)Unix/Linux是C語言開發(fā)的,Linux下可以直接用gcc命令編譯C程序C語言執(zhí)行速度快,接近于機(jī)器語言C++進(jìn)一步擴(kuò)充和完善了C語言,引入了重載、異常處理等。C++不僅包含C語言的面向過程的特點(diǎn),還包含了解決復(fù)雜問題時需要的面向?qū)ο蟪绦蛟O(shè)計(jì)思想C++可重用性好、適合復(fù)雜程序開發(fā)C和C++語言都是跨平臺的C語言與C++語言有多種版本的標(biāo)準(zhǔn),完成程序時要注意操作系統(tǒng)以及開發(fā)環(huán)境支持的版本本書代碼適用于C++11及C99標(biāo)準(zhǔn)1.2高級語言程序的編譯

1.2.1編譯大多數(shù)高級語言都使用編譯編輯并保存源程序(如C語言的文件擴(kuò)展名是.c,C++語言是.cpp)編譯:檢查語法錯誤,若正確則翻譯成目標(biāo)文件連接:多個目標(biāo)文件連接成一個可執(zhí)行文件執(zhí)行:執(zhí)行可執(zhí)行文件(.exe)圖1?1C++程序的編譯過程1.2高級語言程序的編譯

1.2.2解釋與腳本語言解釋是將高級語言源代碼逐條轉(zhuǎn)換成目標(biāo)代碼同時逐條執(zhí)行,每次執(zhí)行都會做逐條解釋、逐條執(zhí)行的過程。腳本語言通常是一個解釋性的語言,例如VBScript,Javascript,Python等一些批處理命令也經(jīng)常寫成腳本語言,如用Linux的shell腳本完成一些系統(tǒng)備份等工作1.3算法與程序設(shè)計(jì)

1.3.1算法與工程問題的求解解決工程問題主要包括幾個步驟:1)理解問題;2)描述問題的輸入和輸出信息;3)設(shè)計(jì)必要的算法解決問題;4)使用一種計(jì)算機(jī)語言來解決問題;5)使用數(shù)據(jù)測試解決方案。只有4)的具體實(shí)現(xiàn)涉及到計(jì)算機(jī)語言算法是解決某個問題的方法和步驟一個算法應(yīng)該具有以下五個重要的特征有窮性:有限個步驟確切性:每個步驟必須定義明確輸入:一個算法有0或多個輸入輸出:一個算法有1或多個輸出有效性:任何步驟都是可執(zhí)行的1.3算法與程序設(shè)計(jì)

1.3.1算法與工程問題的求解(了解)傳統(tǒng)流程圖通過帶有箭頭的線段將不同的形狀連接起來圓角矩形表示“開始/結(jié)束”平行四邊形表示“輸入/輸出”菱形表示“條件判斷”矩形表示“處理,如計(jì)算或賦值等”帶有箭頭的線段表示流程的方向1.3算法與程序設(shè)計(jì)

1.3.2面向過程的程序設(shè)計(jì)與面向?qū)ο蟮某绦蛟O(shè)計(jì)(簡單了解)面向過程一般采用“自頂向下、逐步求精”的方法,將功能劃分為若干個基本模塊(函數(shù)),每個函數(shù)功能相對獨(dú)立,每個模塊內(nèi)部由順序、選擇、循環(huán)三種基本結(jié)構(gòu)組成面向?qū)ο笠话銓⒁幚淼膶ο蟪橄蟪鎏卣鳎纬深?,類中封裝了描述對象的數(shù)據(jù)特征和數(shù)據(jù)方法,對象通過類中的方法進(jìn)行創(chuàng)建和處理操作1.4C&C++源程序示例

1.4.1程序示例【例1?1】屏幕上輸出“HelloWorld!”。行號C++源程序如下:行號C&C++源程序如下:1234567#include<iostream>usingnamespacestd;intmain(){cout<<"HelloWorld!";

return0;}1234567#include<stdio.h>

intmain(){printf("HelloWorld!");return0;}記住基本框架?。。?.4C&C++源程序示例

1.4.1程序示例【例1?2】屏幕上輸出下面的圖形(三行符號)。***********@@***********行號C++源程序如下:行號C&C++源程序如下:1234567891011121314#include<iostream>usingnamespacestd;voidprint();intmain(){print();cout<<"@@\n";print();return0;}voidprint(){cout<<"***********\n";}1234567891011121314#include<stdio.h>

voidprint();intmain(){print();printf("@@\n");print();return0;}voidprint(){printf("***********\n");}定義函數(shù)實(shí)現(xiàn)功能主函數(shù)中允許多次調(diào)用(使用)函數(shù)調(diào)用之前要聲明一個函數(shù)無法看到其它函數(shù)的實(shí)現(xiàn)過程(保證了封裝)聲明調(diào)用定義1.4C&C++源程序示例【例1?2】屏幕上輸出下面的圖形(三行符號)。***********@@***********代碼等價于:為什么要使用函數(shù)?printf就是stdio.h文件提供的標(biāo)準(zhǔn)輸出函數(shù),用戶按照函數(shù)聲明的要求完成即可,無需考慮如何實(shí)現(xiàn)的輸出功能如果題目要改成輸出:==========@@==========左邊的程序要修改2條語句,而上一頁用函數(shù)定義的程序中,只需要修改自定義函數(shù)print定義內(nèi)部的一條語句即可函數(shù)能讓主函數(shù)代碼清晰,每個功能單獨(dú)用一個函數(shù)封裝起來,便于維護(hù);第2章會介紹系統(tǒng)提供的標(biāo)準(zhǔn)庫函數(shù)第4章會介紹自定義函數(shù)的用法#include<iostream>usingnamespacestd;intmain(){cout<<"***********\n";cout<<"@@\n";cout<<"***********\n";return0;}1.4C&C++源程序示例

1.4.2程序代碼說明組成簡介預(yù)處理命令以#開頭的命令,編譯時首先完成預(yù)處理,然后再進(jìn)行語法檢查庫與命名空間C&C++語言有很多標(biāo)準(zhǔn)庫,每個庫文件的內(nèi)部保存著一組相關(guān)的函數(shù)/類,完成一定的功能,如至少要包含實(shí)現(xiàn)輸出功能的函數(shù)。C++標(biāo)準(zhǔn)庫的定義分別放在不同的命名空間(namespace)中。最常用的是std命名空間,包含了所有的標(biāo)準(zhǔn)庫,如iostream是其中的一個使用時要用預(yù)處理命令:#include的形式函數(shù)函數(shù)(Function)是程序的基本組成部分主函數(shù)是程序運(yùn)行的起點(diǎn),一個程序必須有而且只能有一個主函數(shù)標(biāo)識符標(biāo)識符(Identifier)是表示程序中實(shí)體名字的有效字符序列C&C++標(biāo)識符由字母、數(shù)字、下劃線組成,并且只能由字母或下劃線開頭C&C++的標(biāo)識符是區(qū)分大小寫的關(guān)鍵字C&C++中有一些特定含義的詞,如int、return等,稱為關(guān)鍵字(Keywords),系統(tǒng)賦予了指定的含義,可以直接使用。用戶自定義的標(biāo)識符不能與關(guān)鍵字同名語句每條語句占一行,也允許將多條語句放在一行,但每條語句必須以西文的分號(;)結(jié)尾包括表達(dá)式語句、空語句、復(fù)合語句、流程控制語句、函數(shù)調(diào)用語句注釋塊注釋:/*開始,*/結(jié)束行注釋://1.5C&C++開發(fā)環(huán)境DevC++:初學(xué)者,僅支持windows版本,免費(fèi)CodeBlocks:初學(xué)者,多個版本適應(yīng)Windows、Linux、MacOS,免費(fèi)VSCode:微軟提供,支持多種語言gcc/g++:Linux的命令行下直接運(yùn)行,Windows環(huán)境下安裝MinGW后也可以使用1.5C&C++開發(fā)環(huán)境DevC++為例:/projects/orwelldevcpp/下載,雙擊“Del-Cpp5.11TDM-GCC4.9.2Setup.exe”文件,默認(rèn)配置安裝新建一個源程序,保存文件時選擇是C++語言文件(.cpp)或C語言文件(.c),注意一般保存到非C盤(非桌面),路徑名不包含中文單擊工具欄的圖標(biāo)可以一次性完成編譯、連接、運(yùn)行,要注意本機(jī)是32位或64位1.6實(shí)用知識:常見的編譯和運(yùn)行錯誤

1.6.1常見的編譯錯誤提示信息編譯錯誤[Error]missingterminating"character字符串缺少一個雙引號"[Error]stray'\243'inprogram[Error]stray'\273'inprogram程序中出現(xiàn)中文字符'\243''\243'與'\273'組成中文字符的分號;[Error]'cout'wasnotdeclaredinthisscopecout是std命名空間的,要寫成std::cout如果在#include后面加上usingnamespacestd;則可以直接用cout[Error]'return0'wasnotdeclaredinthisscopereturn0并未定義變量必須先定義后使用return是關(guān)鍵字,return0;表示函數(shù)返回整數(shù)0,return和0中間要有空格分隔[Error]expected';'before'return'return語句前面的語句缺少分號[Error]redefinitionof'intmain()'main()函數(shù)被重復(fù)定義,一個項(xiàng)目中必須有而且只能有一個main()函數(shù),不允許有2個及以上的main()函數(shù)[Error]nomatchfor'operator>>'(operandtypesare'std::ostream{akastd::basic_ostream<char>}'and'int')不匹配的運(yùn)算符>>>>與cin匹配,如果cin>>書寫格式錯誤,或者輸出時寫成cout>>格式,都會出現(xiàn)此錯誤信息1.6實(shí)用知識:常見的編譯和運(yùn)行錯誤

1.6.2常見的運(yùn)行錯誤常見的運(yùn)行錯誤包括變量數(shù)據(jù)類型錯誤、輸入與輸出格式錯誤、計(jì)算錯誤等。程序中適當(dāng)增加額外的輸出語句,逐步檢查程序運(yùn)行中變量值的變化,進(jìn)而找到問題1.7練習(xí)與思考1)高級語言編寫的程序相比機(jī)器語言編寫的特點(diǎn)是_____。計(jì)算機(jī)能直接識別和執(zhí)行執(zhí)行速度快可讀性好,語法更接近自然語言依賴于具體機(jī)器,移植性差A(yù)BCD提交可為此題添加文本、圖片、公式等解析,且需將內(nèi)容全部放在本區(qū)域內(nèi)。正常使用需3.0以上版本高級語言去掉了與具體硬件環(huán)境有關(guān)的細(xì)節(jié),語法比較接近自然語言,容易閱讀和學(xué)習(xí)。一些高級語言增加了面向?qū)ο蟮奶攸c(diǎn),更易表達(dá)現(xiàn)實(shí)世界高級語言必須翻譯成機(jī)器語言后才能被計(jì)算機(jī)執(zhí)行答案解析單選題1分答案解析1.7練習(xí)與思考2)編寫C或C++高級語言程序一般需要經(jīng)過的步驟依次是_____。編譯、連接、運(yùn)行、編輯編輯、編譯、連接、運(yùn)行編輯、連接、編譯、運(yùn)行編譯、編輯、運(yùn)行、連接ABCD提交可為此題添加文本、圖片、公式等解析,且需將內(nèi)容全部放在本區(qū)域內(nèi)。正常使用需3.0以上版本編輯并保存源程序(如C語言的文件擴(kuò)展名是.c,C++語言是.cpp)編譯:檢查語法錯誤,若正確則翻譯成目標(biāo)文件連接:多個目標(biāo)文件連接成一個可執(zhí)行文件執(zhí)行:執(zhí)行可執(zhí)行文件(.exe)答案解析單選題1分答案解析1.7練習(xí)與思考3)引用C++語言標(biāo)準(zhǔn)庫函數(shù),一般要用預(yù)處理命令將其頭文件包含進(jìn)來,寫法是#_____。usingimportdefineincludeABCD提交可為此題添加文本、圖片、公式等解析,且需將內(nèi)容全部放在本區(qū)域內(nèi)。正常使用需3.0以上版本以#開頭的命令,編譯時首先完成預(yù)處理,然后再進(jìn)行語法檢查C&C++語言有很多標(biāo)準(zhǔn)庫,每個庫文件的內(nèi)部保存著一組相關(guān)的函數(shù)/類,完成一定的功能,如至少要包含實(shí)現(xiàn)輸出功能的函數(shù)使用時要用預(yù)處理命令:#include的形式答案解析單選題1分答案解析1.7練習(xí)與思考4)計(jì)算機(jī)高級語言程序設(shè)計(jì)的三種基本結(jié)構(gòu)是_____。。順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu) 遞歸結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)嵌套結(jié)構(gòu)、遞歸結(jié)構(gòu)、順序結(jié)構(gòu)循環(huán)結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)、順序結(jié)構(gòu)ABCD提交可為此題添加文本、圖片、公式等解析,且需將內(nèi)容全部放在本區(qū)域內(nèi)。正常使用需3.0以上版本將功能劃分為若干個基本模塊(函數(shù)),每個函數(shù)功能相對獨(dú)立,每個模塊內(nèi)部由順序、選擇、循環(huán)三種基本結(jié)構(gòu)組成順序結(jié)構(gòu)是指按照解決問題的順序書寫語句,計(jì)算機(jī)逐條順序執(zhí)行選擇結(jié)構(gòu)又稱分支結(jié)構(gòu),程序執(zhí)行中根據(jù)條件判斷的結(jié)果選擇不同的處理流程循環(huán)結(jié)構(gòu)是指通過指定次數(shù)或限定條件來控制執(zhí)行過程,實(shí)現(xiàn)多次重復(fù)某個操作答案解析單選題1分答案解析1.7練習(xí)與思考5)模仿例1-1,寫一個程序,輸出以下結(jié)果:***********Hello***********作答正常使用主觀題需2.0以上版本雨課堂可為此題添加文本、圖片、公式等解析,且需將內(nèi)容全部放在本區(qū)域內(nèi)。正常使用需3.0以上版本分析:程序按順序輸出3行字符第一行是10個星號+回車第二行是1個星號+Hello+3個空格+回車第三行是10個星號+回車?yán)?-1中

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論