




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
可編輯ppt1程序設(shè)計與C語言(A)培養(yǎng)目標課程簡介實驗學(xué)時考核形式教材C++&ObjectOrientedProgramming可編輯ppt2培養(yǎng)目標1.
建立基本的計算機程序設(shè)計概念體系和基本的程序 設(shè)計方法。2.理解和掌握C++語言的基本語法和語義,初步理解面 向?qū)ο蟮乃枷?,初步掌握面向?qū)ο蟪绦蛟O(shè)計的方法。3.
逐步提高學(xué)生的編程能力和調(diào)試程序的能力。
為后面的學(xué)習(xí)打好基礎(chǔ)。C++&ObjectOrientedProgramming可編輯ppt3課程簡介第1章
概述1.1計算機程序設(shè)計語言的發(fā)展(一般了解)1.2面向?qū)ο蟮姆椒ǎㄒ话懔私猓保趁嫦驅(qū)ο蟮能浖_發(fā)(一般了解)1.4信息的表示與存儲(理解)1.5程序的開發(fā)過程(一般了解)1.6小結(jié)C++&ObjectOrientedProgramming可編輯ppt4課程簡介第2章
c++簡單程序設(shè)計2.1c++語言概述(一般理解)2.2基本數(shù)據(jù)類型和表達式(掌握)2.3數(shù)據(jù)的輸入與輸出(掌握)2.4算法的基本控制結(jié)構(gòu)(掌握)2.5自定義數(shù)據(jù)類型(掌握)2.6小結(jié)C++&ObjectOrientedProgramming可編輯ppt5課程簡介第3章
函數(shù)3.1函數(shù)的定義與使用(掌握)3.2內(nèi)聯(lián)函數(shù)(掌握)3.3帶默認形參值的函數(shù)(掌握)3.4函數(shù)重載(掌握)3.5函數(shù)模板(掌握)3.6使用c++系統(tǒng)函數(shù)(掌握)3.7小結(jié)可編輯ppt6課程簡介第4章
類與對象4.1面向?qū)ο蟮乃枷耄ɡ斫猓矗裁嫦驅(qū)ο蟪绦蛟O(shè)計的基本特點(理解)4.3類和對象(掌握)4.4構(gòu)造函數(shù)和析構(gòu)函數(shù)(掌握)4.5類的組合(掌握)4.6類模板(掌握)4.7面向?qū)ο髽擞洠ㄒ话懔私猓矗感〗Y(jié)C++&ObjectOrientedProgramming可編輯ppt7課程簡介第5章
c++程序的結(jié)構(gòu)5.1c++程序的結(jié)構(gòu)(理解)5.2生存期(掌握)5.3數(shù)據(jù)和函數(shù)(掌握)5.4靜態(tài)成員(掌握)5.5友元(掌握)5.6共享數(shù)據(jù)的保護(掌握)5.7多文件結(jié)構(gòu)和編譯預(yù)處理命令(掌握)5.8小結(jié)可編輯ppt8課程簡介第6章
數(shù)組、指針與字符串6.1數(shù)組(掌握)6.2指針(掌握)6.3動態(tài)內(nèi)存分配(掌握)6.4字符串(掌握)C++&ObjectOrientedProgramming可編輯ppt9實驗實驗共分6次,每次4小時,實驗環(huán)境為:visualc++6.0實驗1:visualc++6.0開發(fā)環(huán)境應(yīng)用入門實驗2:c++簡單程序設(shè)計實驗3:函數(shù)的應(yīng)用實驗4:類與對象實驗5:c++程序的結(jié)構(gòu)實驗6:數(shù)組、指針與字符串可編輯ppt10教材教材:《C++語言程序設(shè)計》
《C++語言程序設(shè)計習(xí)題與實驗指導(dǎo)》C++&ObjectOrientedProgramming可編輯ppt11考核總評成績=平時作業(yè)+上機實驗+期末筆試成績(閉卷)+期末上機成績(閉卷)平時作業(yè)占10%平時上機實驗占10%期末筆試成績(閉卷)占60%期末上機成績(閉卷)占20%可編輯ppt12第一章緒論計算機程序設(shè)計語言的發(fā)展面向?qū)ο蟮姆椒嫦驅(qū)ο蟮能浖_發(fā)信息的表示與存儲程序的開發(fā)過程可編輯ppt131.1計算機語言的發(fā)展計算機的工作是用程序來控制的程序是指令的集合。指令是計算機可以識別的命令。計算機程序可編輯ppt14機器語言由計算機硬件系統(tǒng)可以識別的二進制指令組成的語言稱為機器語言。計算機發(fā)展的初期,軟件工程師們只能用機器語言來編寫程序。這一階段,在人類的自然語言和計算機編程語言之間存在著巨大的鴻溝。例如101111111101
缺點:難懂,不易修改,移植性差可編輯ppt15匯編語言匯編語言將機器指令映射為一些可以被人讀懂的助記符,如ADD、SUB等。此時編程語言與人類自然語言間的鴻溝略有縮小,但仍與人類的思維相差甚遠。因為它的抽象層次太低,程序員需要考慮大量的機器細節(jié)。例如ADDCX,DX
將DX的內(nèi)容加進CX。不能立即執(zhí)行,需要匯編,變成目標程序??删庉媝pt16高級語言高級語言屏蔽了機器的細節(jié),提高了語言的抽象層次,程序中可以采用具有一定涵義的數(shù)據(jù)命名和容易理解的執(zhí)行語句。這使得在書寫程序時可以聯(lián)系到程序所描述的具體事物。例如ify<3z=x+y;類似英語和數(shù)學(xué)表達式可編輯ppt17高級語言分成解釋方式與編譯方式
解釋程序運行結(jié)果編譯程序目標程序初始數(shù)據(jù)目標程序源程序源程序初始數(shù)據(jù)運行結(jié)果可編輯ppt18高級語言發(fā)展:
第一代語言是對數(shù)學(xué)表達式有很強的運算處理能力 代表是Fortran和Algol60
第二代語言的重點如何有效地表達算法 代表是Pascal和C
第三代語言引入抽象數(shù)據(jù)類型的程序設(shè)計語言 代表是Ada被認為是基于對象的語言 第四代面向?qū)ο蟪绦蛟O(shè)計語言 代表是Smalltalk、Eiffel、c++、Java可編輯ppt19面向?qū)ο蟮恼Z言出發(fā)點:更直接地描述客觀世界中存在的事物(對象)以及它們之間的關(guān)系。特點:是高級語言。將客觀事物看作具有屬性和行為的對象。通過抽象找出同一類對象的共同屬性和行為,形成類。通過類的繼承與多態(tài)實現(xiàn)代碼重用可編輯ppt20面向?qū)ο蟮恼Z言優(yōu)點:使程序能夠比較直接地反問題域的本來面目,軟件開發(fā)人員能夠利用人類認識事物所采用的一般思維方法來進行軟件開發(fā)??删庉媝pt21語言的鴻溝客觀世界(問題域)計算機自然語言語言的鴻溝面向?qū)ο蟮恼Z言非面向?qū)ο蟮恼Z言匯編語言機器語言對問題域的認識(人〕編程(人〕程序的理解和執(zhí)行(機器〕面向?qū)ο蟮恼Z言自然語言非面向?qū)ο蟮恼Z言匯編語言機器語言對問題域的認識(人〕語言的鴻溝編程(人〕程序的理解和執(zhí)行(機器〕可編輯ppt22程序的目的:用于數(shù)學(xué)計算主要工作:設(shè)計求解問題的過程缺點:對于龐大、復(fù)雜的程序難以開發(fā)和維護1.2面向?qū)ο蟮姆椒ǎ保玻泵嫦驅(qū)ο蠓椒ǖ挠蓙?一、程序設(shè)計方法的發(fā)展歷程
——面向過程的程序設(shè)計方法可編輯ppt23二、程序設(shè)計方法的發(fā)展歷程
——面向過程的結(jié)構(gòu)化程序設(shè)計方法設(shè)計思路自頂向下、逐步求精。采用模塊分解與功能抽象,自頂向下、分而治之。程序結(jié)構(gòu):按功能劃分為若干個基本模塊,形成一個樹狀結(jié)構(gòu)。各模塊間的關(guān)系盡可能簡單,功能上相對獨立;每一模塊內(nèi)部均是由順序、選擇和循環(huán)三種基本結(jié)構(gòu)組成。其模塊化實現(xiàn)的具體方法是使用子程序??删庉媝pt24
Main()Func1()Func2()Func3()Func4()Func5()可編輯ppt25優(yōu)點:有效地將一個較復(fù)雜的程序系統(tǒng)設(shè)計任務(wù)分解成許多易于控制和處理的子任務(wù),便于開發(fā)和維護??删庉媝pt26缺點:可重用性差、數(shù)據(jù)安全性差、難以開發(fā)圖形界面的應(yīng)用把數(shù)據(jù)和處理數(shù)據(jù)的過程分離為相互獨立的實體。當數(shù)據(jù)結(jié)構(gòu)改變時,所有相關(guān)的處理過程都要進行相應(yīng)的修改。每一種相對于老問題的新方法都要帶來額外的開銷。圖形用戶界面的應(yīng)用,很難用過程來描述和實現(xiàn),開發(fā)和維護都很困難??删庉媝pt27三、程序設(shè)計方法的發(fā)展歷程
——面向?qū)ο蟮姆椒▽?shù)據(jù)及對數(shù)據(jù)的操作方法封裝在一起,作為一個相互依存、不可分離的整體——對象。對同類型對象抽象出其共性,形成類。類通過一個簡單的外部接口,與外界發(fā)生關(guān)系。對象與對象之間通過消息進行通訊??删庉媝pt28優(yōu)點:程序模塊間的關(guān)系更為簡單,程序模塊的獨立性、數(shù)據(jù)的安全性就有了良好的保障。通過繼承與多態(tài)性,可以大大提高程序的可重用性,使得軟件的開發(fā)和維護都更為方便??删庉媝pt291.2.2面向?qū)ο蟮幕靖拍?/p>
——對象一般意義上的對象:是現(xiàn)實世界中一個實際存在的事物??梢允褂行蔚模ū热缫惠v汽車),也可以是無形的(比如一項計劃)。是構(gòu)成世界的一個獨立單位,具有:靜態(tài)特征:可以用某種數(shù)據(jù)來描述動態(tài)特征:對象所表現(xiàn)的行為或具有的功能可編輯ppt30面向?qū)ο蠓椒ㄖ械膶ο螅菏窍到y(tǒng)中用來描述客觀事物的一個實體,它是用來構(gòu)成系統(tǒng)的一個基本單位。對象由一組屬性和一組行為構(gòu)成。屬性:用來描述對象靜態(tài)特征的數(shù)據(jù)項。行為:用來描述對象動態(tài)特征的操作序列。可編輯ppt31面向?qū)ο蟮幕靖拍?/p>
——類分類——人類通常的思維方法分類所依據(jù)的原則——抽象忽略事物的非本質(zhì)特征,只注意那些與當前目標有關(guān)的本質(zhì)特征,從而找出事物的共性,把具有共同性質(zhì)的事物劃分為一類,得出一個抽象的概念。例如,石頭、樹木、汽車、房屋等都是人們在長期的生產(chǎn)和生活實踐中抽象出的概念??删庉媝pt32面向?qū)ο蠓椒ㄖ械?類"具有相同屬性和服務(wù)的一組對象的集合為屬于該類的全部對象提供了抽象的描述,包括屬性和行為兩個主要部分。類與對象的關(guān)系:
猶如模具與鑄件之間的關(guān)系,一個屬于某類的對象稱為該類的一個實例。集合——成員抽象描述——具體實例集合——成員抽象描述——具體實例可編輯ppt33面向?qū)ο蟮幕靖拍?/p>
——封裝把對象的屬性和服務(wù)結(jié)合成一個獨立的系統(tǒng)單位。盡可能隱蔽對象的內(nèi)部細節(jié)。對外形成一個邊界(或者說一道屏障),只保留有限的對外接口使之與外部發(fā)生聯(lián)系??删庉媝pt34封裝售報亭屬性報刊A價格報刊B價格
…錢箱服務(wù)報刊零售款貨清點顧客可編輯ppt35面向?qū)ο蟮幕靖拍?/p>
——繼承繼承對于軟件復(fù)用有著重要意義,是面向?qū)ο蠹夹g(shù)能夠提高軟件開發(fā)效率的重要原因之一。定義:特殊類的對象擁有其一般類的全部屬性與服務(wù),稱作特殊類對一般類的繼承。例如:將輪船作為一個一般類,客輪便是一個特殊類??删庉媝pt36
哺乳動物熱血、有毛發(fā)、用奶哺育幼仔狗有犬牙、食肉、特定的骨骼結(jié)構(gòu)、群居柯利狗尖鼻子、身體顏色紅白相間、適合放牧可編輯ppt37面向?qū)ο蟮幕靖拍?/p>
——多態(tài)性多態(tài)是指在一般類中定義的屬性或行為,被特殊類繼承之后,可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為。這使得同一個屬性或行為在一般類及其各個特殊類中具有不同的語義。例如:數(shù)的加法->實數(shù)的加法
->復(fù)數(shù)的加法例動物叫可編輯ppt38面向?qū)ο蟮能浖こ堂嫦驅(qū)ο蟮能浖こ淌敲嫦驅(qū)ο蠓椒ㄔ谲浖こ填I(lǐng)域的全面應(yīng)用。它包括:面向?qū)ο蟮姆治觯∣OA)面向?qū)ο蟮脑O(shè)計(OOD)面向?qū)ο蟮木幊蹋∣OP)面向?qū)ο蟮臏y試(OOT)面向?qū)ο蟮能浖S護(OOSM)1.3面向?qū)ο蟮能浖_發(fā)可編輯ppt39問題域需求分析總體設(shè)計詳細設(shè)計編程測試計算機自然語言編程語言分析與設(shè)計的鴻溝問題域OOAOODOOPOOT自然語言面向?qū)ο蟮木幊陶Z言計算機傳統(tǒng)的軟件工程方法面向?qū)ο蟮能浖こ谭椒ㄗ匀徽Z言分析與設(shè)計的鴻溝編程語言自然語言面向?qū)ο蟮木幊陶Z言可編輯ppt40系統(tǒng)分析系統(tǒng)分析階段應(yīng)該扼要精確地抽象出系統(tǒng)必須做什么,但是不關(guān)心如何去實現(xiàn)。面向?qū)ο蟮南到y(tǒng)分析,直接用問題域中客觀存在的事物建立模型中的對象,對單個事物及事物之間的關(guān)系,都保留他們的原貌,不做轉(zhuǎn)換,也不打破原有界限而重新組合,因此能夠很好地映射客觀事物??删庉媝pt41設(shè)計針對系統(tǒng)的一個具體實現(xiàn)運用面向?qū)ο蟮姆椒?。其中包括兩方面的工作:把OOA模型直接搬到OOD,作為OOD的一部分針對具體實現(xiàn)中的人機界面、數(shù)據(jù)存儲、任務(wù)管理等因素補充一些與實現(xiàn)有關(guān)的部分??删庉媝pt42編程OOP工作就是用一種面向?qū)ο蟮木幊陶Z言把OOD模型中的每個成分書寫出來,是面向?qū)ο蟮能浖_發(fā)最終落實的重要階段??删庉媝pt43測試測試的任務(wù)是發(fā)現(xiàn)軟件中的錯誤。在面向?qū)ο蟮能浖y試中繼續(xù)運用面向?qū)ο蟮母拍钆c原則來組織測試,以對象的類作為基本測試單位,可以更準確的發(fā)現(xiàn)程序錯誤并提高測試效率??删庉媝pt44維護將軟件交付使用后,工作并沒有完結(jié),還要根據(jù)軟件的運行情況和用戶的需求,不斷改進系統(tǒng)。使用面向?qū)ο蟮姆椒ㄩ_發(fā)的軟件,其程序與問題域是一致的,因此,在維護階段運用面向?qū)ο蟮姆椒梢源蟠筇岣哕浖S護的效率??删庉媝pt451.4信息的表示和存儲信息的分類計算機的數(shù)字系統(tǒng)程序設(shè)計中常用的數(shù)制不同進位計數(shù)制間的轉(zhuǎn)換信息的存儲單位二進制數(shù)的編碼表示小數(shù)的表示方法非數(shù)值信息的表示可編輯ppt46信息的分類 ┌指令 ┌控制信息 ┤ │ └控制字信息 ┤ │ ┌定點數(shù) │ ┌數(shù)值信息 ┤ └數(shù)據(jù)信息 ┤ └浮點數(shù) │ ┌字符數(shù)據(jù) └非數(shù)值信息 ┤ └邏輯數(shù)據(jù)可編輯ppt471.4.1計算機的數(shù)字系統(tǒng)計算機采用的是二進制數(shù)字系統(tǒng)。基本符號:0、1進位原則:逢二進一優(yōu)點:易于物理實現(xiàn)二進制數(shù)運算簡單機器可靠性高通用性強缺點:對人來說可讀性差可編輯ppt48程序設(shè)計中常用的數(shù)制可編輯ppt491.4.2不同進位計數(shù)制間的轉(zhuǎn)換
——R進制→十進制各位數(shù)字與它的權(quán)相乘,其積相加。例如:(11111111.11)2=1*27+1*26+1*25+1*24
+1*23+1*22+1*21+1*20+1*2-1+1*2-2
=(255.75)10(3506.2)8=3*83+5*82+0*81+6*80+2*8-1
=(1862.25)10(0.2A)16=2*16-1+10*16-2=(0.1640625)10可編輯ppt50不同進位計數(shù)制間的轉(zhuǎn)換
——十進制→R進制十進制整數(shù)轉(zhuǎn)換成R進制的整數(shù)“除R取余”法,例如:268余數(shù)
234┄┄┄┄┄┄┄┄┄┄┄┄0低位
217┄┄┄┄┄┄┄┄┄┄┄028┄┄┄┄┄┄┄┄┄┄┄124┄┄┄┄┄┄┄┄┄┄022┄┄┄┄┄┄┄┄┄┄021┄┄┄┄┄┄┄┄┄00┄┄┄┄┄┄┄┄┄1高位所以6810=10001002可編輯ppt51不同進位計數(shù)制間的轉(zhuǎn)換
——十進制→R進制十進制小數(shù)轉(zhuǎn)換成R進制小數(shù)“乘R取整”法,例如:高位
0.3125×2=0.6250.625×2=1.250.25×2=0.50.5×2=1.0所以0.312510=0.01012
可編輯ppt52不同進位計數(shù)制間的轉(zhuǎn)換
——二、八、十六進制的相互轉(zhuǎn)換每位八進制數(shù)相當于三位二進制數(shù)每位十六進制數(shù)相當于四位二進制數(shù)(1011010.10)2=(001
011
010.100)2
=(132.4)8(1011010.10)2=(0101
1010.1000)2
=(5A.8)16(F7)16=(1111
0111)2=(11110111)2可編輯ppt531.4.3信息的存儲單位位(bit):度量數(shù)據(jù)的最小單位,表示一位二進制信息。字節(jié)(byte):由八位二進制數(shù)字組成(1byte=8bit)。K字節(jié)1K=1024byteM字節(jié)1M=1024KG字節(jié)1G=1024M可編輯ppt541.4.4二進制數(shù)的編碼表示: --原碼"符號──絕對值表示"的編碼例如:X=+0101011[X]原
=00101011X=-0101011[X]原
=10101011
符號位缺點:零的表示不唯一:
[+0]原
=000...0[-0]原
=100...0進行四則運算時,符號位需單獨處
理,且運算規(guī)則復(fù)雜??删庉媝pt55二進制數(shù)的編碼表示:反碼正數(shù)的反碼與原碼表示相同。負數(shù)的反碼與原碼有如下關(guān)系:符號位相同(仍用1表示),其余各位取反(0變1,1變0)。例如:
X=-1100110[X]原
=11100110[X]反
=10011001
X=+0000000[X]原
=00000000[X]反
=00000000反碼中零的表示也不唯一X=-0000000[X]原
=10000000[X]反
=11111111反碼只是求補碼的中間碼可編輯ppt56二進制數(shù)的編碼表示:補碼模數(shù):n位整數(shù)(包括一位符號位),則它的模數(shù)為2n。
n位小數(shù),小數(shù)點前一位為符號位,則它的模數(shù)為2。補數(shù):一個數(shù)減去另一個數(shù),或者說一個數(shù)加上一個負數(shù),等于第一個數(shù)加上第二個數(shù)的補數(shù)。例:8+(-2)=8+10(mod12)一個二進制負數(shù)可用其模數(shù)與真值做
加法(模減去該數(shù)的絕對值)求得其補
碼。可編輯ppt57二進制數(shù)的編碼表示:補碼計算機中的補碼表示法負數(shù)的補碼由該數(shù)反碼的末位加1求得對補碼再求補即得到原碼補碼運算規(guī)則p14符號位可作為數(shù)值參加運算減法運算可轉(zhuǎn)換為加法運算:加上一個負數(shù)等于加上該數(shù)的補碼補碼運算的結(jié)果仍為補碼運算結(jié)果溢出:負數(shù)之和得正數(shù),或正數(shù)之和得負數(shù)可編輯ppt58小數(shù)的表示方法計算機中通常采用浮點方式表示小數(shù)
一個數(shù)N用浮點形式表示可以寫成:
N=M×2E
E表示2的冪,稱為數(shù)N的階碼。階碼確定了數(shù)N的小數(shù)點的位置,其位數(shù)反映了該浮點數(shù)所表示的數(shù)的范圍。M表示數(shù)N的全部有效數(shù)字,稱為數(shù)N的尾數(shù)。其位數(shù)反映了數(shù)據(jù)的精度。p15可編輯ppt59非數(shù)值信息的表示西文字符:ASCII碼:用7位二進制數(shù)表示一個字符,最多可以表示27=128個字符EBCDIC碼:用8位二進制數(shù)表示一個字符,最多可以表示28=256個字符漢字:應(yīng)用較為廣泛的是"國家標準信息交換用漢字編碼"(GB2312-80標準),簡稱國標碼。是二字節(jié)碼,用二個七位二進制數(shù)編碼表示一個漢字??删庉媝pt601.5程序的開發(fā)過程源程序、目標程序、翻譯程序三種不同類型的翻譯程序:匯編程序、編譯程序、解釋程序程序的開發(fā)過程編輯、編譯、連接、運行調(diào)試可編輯ppt61基本術(shù)語源程序:用源語言寫的,有待翻譯的程序目標程序:也稱為"結(jié)果程序",是源程序通過翻譯程序加工以后所生成的程序。翻譯程序:是指一個把源程序翻譯成等價的目標程序的程序。可編輯ppt62基本術(shù)語
——三種不同類型的翻譯程序匯編程序:其任務(wù)是把用匯編語言寫成的源程序,翻譯成機器語言形式的目標程序。編譯程序:若源程序是用高級程序設(shè)計語言所寫,經(jīng)翻譯程序加工生成目標程序,那么,該翻譯程序就稱為"編譯程序"??删庉媝pt63基本術(shù)語
——三種不同類型的翻譯程序解釋程序:這也是一種翻譯程序,同樣是將高級語言源程序翻譯成機器指令。它與編譯程序不同點就在于:它是邊翻譯邊執(zhí)行的,即輸入一句、翻譯一句、執(zhí)行一句,直至將整個源程序翻譯并執(zhí)行完畢??删庉媝pt64程序的開發(fā)過程編輯將源程序輸入到計算機中,生成后綴為cpp的磁盤文件。編譯將程序的源代碼轉(zhuǎn)換為機器語言代碼。連接將多個源程序文件以及庫中的某些文件連在一起,生成一個后綴為exe的可執(zhí)行文件。運行調(diào)試可編輯ppt65程序開發(fā)過程:
開始編輯源程序編譯編譯錯連接連接錯運行運行錯完成是是是可編輯ppt66作業(yè)復(fù)習(xí)第一章,預(yù)習(xí)第二章作業(yè):1-1、1-21-4、1-5、1-6
可編輯ppt67第二章C++簡單程序設(shè)計可編輯ppt68本章主要內(nèi)容C++語言概述基本數(shù)據(jù)類型和表達式數(shù)據(jù)的輸入與輸出算法的基本控制結(jié)構(gòu)自定義數(shù)據(jù)類型可編輯ppt692.1.1C++語言的產(chǎn)生C++是從C語言發(fā)展演變而來的:C語言的開發(fā)史源于高級語言和UNIX操作系統(tǒng)的發(fā)展要求。
早期的系統(tǒng)程序設(shè)計,使用的是匯編語言,其優(yōu)點:
(1)能體現(xiàn)計算機硬件指令級的特性,表達能力強;
(2)運行效率高。
其缺點:可讀性,可移植性及描述問題的性能不如高級語言。這樣很自然有如下想法:能否用具有足夠表達能力的高級語言來進行系統(tǒng)軟件的設(shè)計呢?Bell實驗室做了這一嘗試。1970:在PDP-11/20機上實現(xiàn)了B語言,并用它編寫了UNIX系統(tǒng)的實用程序。
B<BCPL<CPL<ALGOL602.1C++語言概述可編輯ppt70
在B語言基礎(chǔ)上,改進其缺陷,發(fā)展出了C語言,其設(shè)計目標:
(1)保持BCPL和B的精練性及接近硬件的特點
(2)恢復(fù)這些語言失去的通用性1972:第一個C編譯投入使用1973:UNIX用C改寫,加入多道程序功能,發(fā)生質(zhì)變
現(xiàn)在,UNIX已得到廣泛推廣,成為公認的第一標準的操作系統(tǒng)隨著UNIX的進一步開發(fā),C也交織在一起被迅速推廣。可編輯ppt71
1983:對C擴充,發(fā)展為C++。C++語言的標準化工作從1989年開始,于1994年制定了ANSIC++標準草案。以后又經(jīng)過不斷完善,成為目前的C++。可編輯ppt722.1.2C++的特點全面兼容C它保持了C的簡潔、高效和接近匯編語言等特點對C的類型系統(tǒng)進行了改革和擴充C++也支持面向過程的程序設(shè)計,不是一個純正的面向?qū)ο蟮恼Z言支持面向?qū)ο蟮姆椒删庉媝pt732.1.3C++程序?qū)嵗?-1//thisisasimplestprogram.#include<iostream.h>voidmain(void){cout<<"Hello!\n";cout<<"Welcometoc++!\n";}說明:(1)注解
(2)編譯預(yù)處理
(3)main函數(shù)
(4)語句括號{} (5)語句分號;可編輯ppt74C++程序?qū)嵗\行結(jié)果:Hello!Welcometoc++!可編輯ppt752.1.4C++字符集語言的最基本單位是字符:字符──>詞──>語句──>函數(shù)──>程序。字符集是構(gòu)成c++語言的基本元素大小寫的英文字母:A~Z,a~z數(shù)字字符:0~9特殊字符:
空格 ! # % ^ & *
_(下劃線)+ = - ~
< > / \ ' " ; . , () [] {}可編輯ppt762.1.5詞法記號詞法記號是最小的詞法單位1、關(guān)鍵字C++預(yù)定義的單詞。是指C++中有特殊含義的字,是不能重新定義的。程序員不可用之作為自己定義的變量或函數(shù)的名字。
類別
關(guān)鍵字個數(shù)
舉例
ANSIC32char,for等
ANSIC++61(增加29個)
class,public等
BC/AC擴展了一些
asm等2、標識符程序員聲明的單詞,它命名程序正文中的 一些實體??删庉媝pt77
標識符的構(gòu)成規(guī)則以大寫字母、小寫字母或下劃線(_)開始??梢杂梢源髮懽帜?、小寫字母、下劃線(_)或數(shù)字0~9組成。大寫字母和小寫字母代表不同的標識符。例Rectangle、Draw、_lineNo.13、文字在程序中直接使用符號表示的數(shù)據(jù)包括數(shù)字、字符、字符串和布爾文字4、操作符用于實現(xiàn)各種運算的符號。+-5、分隔符用于分隔各個詞法記號或程序正文:() {},:;6、空白:空格、制表符(TAB鍵產(chǎn)生的字符)、換行 符(Enter鍵所產(chǎn)生的字符)和注釋的總稱。C++程序書寫自由//、/**/可編輯ppt782.2基本數(shù)據(jù)類型和表達式
2.2.1基本數(shù)據(jù)類型是程序命令操作的對象。
是指將數(shù)據(jù)根據(jù)表達形式的不同而
劃分的類別。數(shù)據(jù):數(shù)據(jù)類型:可編輯ppt79C++的數(shù)據(jù)類型一般分為如下幾種:基本數(shù)據(jù)類型非基本數(shù)據(jù)類型(用戶定義數(shù)據(jù)類型)整型字符型實型(浮點型)邏輯型(布爾型)數(shù)組指針空類型結(jié)構(gòu)聯(lián)合枚舉類數(shù)據(jù)類型可編輯ppt80數(shù)據(jù)類型修飾符:short
long
unsigned例:無符號整型
unsignedint無符號長整型
unsignedlong
無符號短整型
unsignedshortsigned可編輯ppt81
類型
所占位數(shù)
數(shù)的范圍
int16-32768~32767short[int]16-32768~32767long[int]32-2147483648~2147483647unsigned[int]160~65535unsignedshort160~65535unsignedlong320~4294967295至于它們之間的差異,請看下表(p24):(16位計算機)可編輯ppt820111111111111111.3145678923+數(shù)符小數(shù)部分指數(shù)可編輯ppt83例:cout<<“sizeofintis“<<sizeof(int)<<endl;C++強類型語言—要求程序設(shè)計者在使用數(shù)據(jù)之前對數(shù)據(jù)的類型進行聲明。注意:(1)整型和實型的幾種不同方式(2)注意各種數(shù)據(jù)類型的取值范圍。(3)注意C無布爾類型。C語言在表達邏輯運算的結(jié)果時,用
整數(shù)0代表邏輯“假”,用非0的整數(shù)值(如1)表示邏輯“真”。
C++中增添了布爾類型bool,但并非每個C++編譯器都支持。用sizeof(數(shù)據(jù)類型)可以確定數(shù)據(jù)類型的字節(jié)長度可編輯ppt84
數(shù)據(jù)類型
——常量與變量#include<iostream.h>voidmain(void){constintPRICE=30;intnum,total;floatv,r,h;num=10;total=num*PRICE;cout<<total<<endl;r=2.5;h=3.2;v=3.14159*r*r*h;cout<<v<<endl;}常量變量變量先定義后使用符號常量Page84可編輯ppt852.2.2常量在程序中出現(xiàn)的常量分為一般常量和符號常量兩種。一般常量讓我們來看右邊的程序段:
intsum;
sum=3+5;printf(“sum=%d”,sum);…...其中的“3”和“5”都是一般常量。常量
——
就是其值不能被改變的量,它相當于數(shù)學(xué)中的常數(shù)??删庉媝pt86
常量由于數(shù)據(jù)類型的不同而被分為:整型常量實型常量字符常量字符串常量可編輯ppt871、
整型常量整型常量即以文字形式出現(xiàn)的整數(shù)。分十進制整數(shù)、八進制整數(shù)和十六進制整數(shù),注意它們的書寫形式。整型常量類型
表達形式
有無正負
十進制
957有正負
八進制
01667只有正
十六進制
0xB7只有正
123L123l長整型可編輯ppt882、實型常量
實型常量即以文字形式出現(xiàn)的實數(shù),又稱浮點型。它分一般形式和指數(shù)形式。
實型常量類型
表達形式一般形式
0.123指數(shù)形式
123e5可編輯ppt89(2)一個實型常數(shù)缺省說明為double,如表示float型,則
在實數(shù)后加
f或
F。例
34.5f34.5注:(1)指數(shù)形式的書寫。E或e的前面必須要有數(shù)字,且E后面的指數(shù)必須為整數(shù)。例:e32.1e3.5.e3e可編輯ppt90單引號括起來的一個字符
例
‘A’
每個字符常數(shù)占一個字節(jié)
每個字符常數(shù)有一個編碼數(shù)字值──ASCII碼表中的碼值
例如:‘A’:65‘B’:66‘a(chǎn)’:97‘b’:98...
字符常量可象數(shù)量一樣進行運行、比較
例1:if(c>=‘A’&&c<=‘Z’)c=c+‘a(chǎn)’-‘A’;
將字符變量c從大寫字母轉(zhuǎn)為小寫字母。
例2:‘0’-‘0’=0‘1’-‘0’=1‘2’-‘0’=2
如果c是一數(shù)字字符,則c-‘0’就是它對應(yīng)數(shù)字的數(shù)值3、
字符常量可編輯ppt91非圖形字符(如回車、制表符等)及\‘
“等字符,因它們有特殊作用,所以表示這些字符本身時,應(yīng):p25。
\n表換行無論是不可顯示字符還是一般字符,都可用8進制數(shù)、16進制數(shù)表示
\ddd:一
至三位8進制數(shù)。
\xhh:一
至二位16進制數(shù)。
例如:‘\001’表示碼值為(01)8的ASCII字符。
‘A’也可用‘\101’表示
‘\0’為空白符,即NULL,碼值為0,在C語言中是字符串的結(jié)束標志。(與‘0’和空格符不同)
例:cout<<“\x07operating\tsystem\n”;operating system轉(zhuǎn)義字符可編輯ppt92例
:inta=‘b’;charc=97;cout<<a<<endl;cout<<c<<endl;
輸出:
98a字符數(shù)據(jù)的使用方法字符數(shù)據(jù)和整型數(shù)據(jù)之間可以運算。字符數(shù)據(jù)與整型數(shù)據(jù)可以互相賦值。可編輯ppt934、
字符串常量字符串型常量是用雙引號括起來的一個或多個字符。例如,將1用雙引號括起來,此時“1”代表的是一個字符串型常量,與字符型常量‘1’也是有區(qū)別的。C++規(guī)定以字符‘\0’作為字符串結(jié)束標志。如,一個字符串“HELLO”,在內(nèi)存中以“\0”為結(jié)尾?!癨0”在輸出時不作顯示,只用來表示字符串的結(jié)束。字符串型常量“HELLO”HELLO\0注意“P”與‘P’不同。前者為字符串,在機內(nèi)存儲形式為P\0
,而‘P’就是一常數(shù)P??删庉媝pt94#definePI3.14159main(){intr;floatL,S;r=10;L=2*PI*r;S=PI*r*r;printf(“周長=%f\n”,L);printf(“面積=%f\n”,S);}這是一個知道圓半徑r,求圓周長L、圓面積S的簡單C程序。其中的PI就是符號常量,它的值在一開始就被預(yù)處理命令“#define”定義為實數(shù)3.14159了,故程序在運行和編譯時會自動用“3.14159”來替代PI。符號常量比起一般常量來,不但使用方便,實際值容易修改,而且更形象化,便于記憶。5符號常量可編輯ppt956數(shù)據(jù)類型
——布爾型數(shù)據(jù)布爾型變量的說明:
例:boolflag;布爾型數(shù)據(jù)的取值:
只有false和true兩個值可編輯ppt96*C++中:constfloatpi=3.14159;*常量定義中初始化的值可以是一個常量表達式:constintsize=100*sizeof(int);constintnumber=max(15,23);(錯)注意:#define與const的區(qū)別可編輯ppt972.2.3變量變量是什么變量——程序在運行過程中,其值會發(fā)生改變的量。變量:變量值
23變量名
length變量類型
int可編輯ppt98C++規(guī)定必須以字母或下劃線打頭,后面跟字母、數(shù)字或下劃線(如:a3,Z_5e,_D7d等),并且不能與保留字、函數(shù)名、類名等C++專用名相同(如
char,for,int等)。
注意:
(a)長度:早期的C編譯程序只認前8個字符。VC允許256個字符。但一般不要超過31個字符為宜
1、命名可編輯ppt99(b)約定:
變量名、函數(shù)名、和數(shù)據(jù)類型名等用小寫字母
自定義的類型名(如類)、
符號常量名及宏用大寫字母;
下劃線開頭的名字常為系統(tǒng)程序(庫函數(shù)用), 用戶一般不用。
(c)要有意義:如用Sum表示“求和變量”,不要用aaa,A1,
B12之類名字。例:my_car小寫
my_Car駱駝
iMyCar匈牙利標識法(WINDOWS標準命名法)可編輯ppt100下面我們看一段關(guān)于變量的程序:程序中的num1,num2和sum都是變量。它們的值在程序的運行過程中都發(fā)生了變化。變量定義后,各變量的初值都是不確定的。num1的第一個確切值是10,當再次給num1賦值時,num1的值又變成-5。其他兩個變量的變化情況類似。#include<iostream.h>voidmain(){ intnum1,num2,sum; num1=10;num2=25; sum=num1+num2; cout<<“sum=“<<sum<<endl; num1=-5;num2=num1+3; sum=num1+num2; cout<<“sum=“<<sum<<endl;}可編輯ppt101變量:需要定義,說明其存儲屬性和數(shù)據(jù)類型。存儲屬性類型區(qū)分符變量名賦初值
;,staticexternregisterautointcharfloatdouble┇例:staticintnward=0,nkayword;同一語句中,不能混合定義不同類型的變量。2、
變量的定義可編輯ppt102變量的存儲類型auto存儲類屬于一時性存儲,其存儲空間可以被若干變量多次覆蓋使用。register存儲類存放在通用寄存器中。extern存儲類在所有函數(shù)和程序段中都可引用。static存儲類在內(nèi)存中是以固定地址存放的,在整個程序運行期間都有效??删庉媝pt103
(1)doublearea,radius=23;(2)doublearea,radius;radius=23;3、變量賦值與初始化可編輯ppt1042.2.4算術(shù)運算符與算術(shù)表達式表達式:一個常量或標識對象的標識符是一個最簡單的表達式,其值是常量或?qū)ο蟮闹狄粋€表達式的值可以用來參與其它操作,即用作其它運算符的操作數(shù),這就形成了更復(fù)雜的表達式包含在括號中的表達式仍是一個表達式,其類型和值于未加括號時的表達式相同算術(shù)表達式:由算術(shù)運算符、操作數(shù)和括號構(gòu)成的表達式稱為算術(shù)表達式a+b+(c-b)/2+5Page104可編輯ppt1051、基本算術(shù)運算符
+-*/%(取余)
(若整數(shù)相除,結(jié)果取整)優(yōu)先級與結(jié)合性先乘除,后加減,同級自左至右P33可編輯ppt106(1)/整除
5/2=2 5.0/2.0=2.5
若/的兩操作數(shù)都為整數(shù),則為整除:
例inti=15;floatf;f=i/10;
結(jié)果為:f=1
如果將第三條語句改為
f=(float)i/10;或f=i/10.0;
則結(jié)果為:f=1.5
可編輯ppt107
在C++語言中,表達式(7/3+1)+5/6的值是(
)。
A)2 B)3 C)4 D)不能確定B可編輯ppt108
(余的符號與被除數(shù)相同,不允許對浮點數(shù)操作)3%4=34%4=0
例#include<iostream.h> voidmain() {intn; n=40%5; cout<<"40%5:"<<n<<endl;//(0)
n=40%7; cout<<"40%7:"<<n<<endl;//(5)
n=40%-7; cout<<"40%-7:"<<n<<endl;//(5)
n=-40%7; cout<<"-40%7:"<<n<<endl;//(-5)
n=-40%-7;cout<<"-40%-7:"<<n<<endl;//(-5)
}(2.)%取余可編輯ppt109 (1.)a++ ?。嶙鳛楸磉_式的值,然后a=a+1(2.)++a先a=a+1;然后?。嶙鳛楸磉_式的值(3.)a--取a;a=a-1(4.)--aa=a-1,?。崂篿nta=3;
intb=++a;
cout<<a<<““<<b<<endl;
intc=a++;
cout<<a<<““<<c<<endl;4542、增量和減量++,--可編輯ppt1103.賦值運算=賦值運算符用于將一個數(shù)據(jù)傳給一個變量。
例如:intx;x=5;將值5傳給變量x。其中=號即賦值運算符。
A:(1)雙目運算符,從右到左d=a=b
(2)賦值操作是一個表達式,
每個表達式在求值后都有一個確定的值,其值 為賦值號左邊表達式的值例:cout<<(x=5)<<endl;
(3)當賦值號兩邊類型不一至?xí)r,根據(jù)左邊類型轉(zhuǎn)
可編輯ppt111inta=10;floatx=70000.5;
x=a;
將
a的值
10賦給
x,x的值為
10.0。inta=10;floatx=70000.5;a=x;
將
x的值
70000.5賦給
a,但
70000.5超過了
int的取值范圍,于是將超過的部分扔掉了,a是多少不知道了。
特別注意,上面的賦值語句,編譯時是可以通過的??删庉媝pt112復(fù)合的賦值運算符有10種復(fù)合運算符:
+=,-=,*=,/=,%=,
<<=,>>=,&=,^=,|=例:a+=3等價于a=a+3
x*=y+8等價于x=x*(y+8)可編輯ppt113賦值運算符和賦值表達式
——賦值表達式舉例a=5 表達式值為5a=b=c=5 表達式值為5,a,b,c均為5a=5+(c=6) 表達式值為11,a為11,c為6a=(b=4)+(c=6)
表達式值為10,a為10,b為4,c為6a=(b=10)/(c=2)
表達式值為5,a為5,b為10,c為2a+=a-=a*a相當于:a=a+(a=a-a*a)Page113可編輯ppt114例:x=6;x+=x-=x*x;
若x為整型變量,則上述語句執(zhí)行后x的值是__(4)__。
A.36B.-60 C.60 D.-24B可編輯ppt1154、逗號運算和逗號表達式格式:表達式1,表達式2求解順序及結(jié)果:先求解1,再求解2,最終結(jié)果為表達式2的值例1a=3*5,a*4
最終結(jié)果為60例2
inta,b,c;
d=(a=1,b=a+2,c=b+3);
cout<<d<<endl;6Page115可編輯ppt1165、關(guān)系運算與關(guān)系表達式用關(guān)系運算符將兩個表達式連接起來,就是關(guān)系表達式關(guān)系運算是比較簡單的一種邏輯運算,優(yōu)先次序為:
<<=>>=
==!=
優(yōu)先級相同(高)優(yōu)先級相同(低)關(guān)系表達式是一種最簡單的邏輯表達式其結(jié)果類型為bool,值只能為true或false。例如:a>b,c<=a+b,x+y==3可編輯ppt117邏輯運算與邏輯表達式邏輯運算符:
!(非)&&(與)||(或)
優(yōu)先次序:高→低邏輯表達式
例如:(a>b)&&(x>y)
其結(jié)果類型為bool,值只能為true或false??删庉媝pt118
a
!a
truefalsefalsetrueab
a&&b111100010000ab
a||b111101011000可編輯ppt119優(yōu)先級:!;*/%;
+-;
><>=<=;==!=; &&||
可編輯ppt120注意:(1).比較運算符==與=if(x==9)cout<<“xisnoto\n”;if(x=9)cout<<“xisnoto\n”;(2).不等于運算符if(x!=9)if(x=?。梗┛删庉媝pt121(3).邏輯非if(?。ǎ剑剑梗├x>ax-6若cx=15,ax=5(!cx)>(ax-6)!(cx>ax-6)
(4).10>=X>=5若寫成5<=X<=10從左到右(衡為1)X>=5&&X<=10可編輯ppt122例:a<b&&x>y||a<b-!c(a<b)&&(x>y)||(a<(b-(!c))
若x,y,z的初值均為1,則執(zhí)行表達式w=++x||++y&&++z
后,x,y,z的值分別為________。
A)x=1,y=1,z=2B)x=2,y=2,z=2C)x=2,y=1,z=2D)x=2,y=1,z=1(D)可編輯ppt1236、條件運算符與條件表達式一般形式:表達式1?表達式2:表達式3表達式1必須是bool類型執(zhí)行順序:先求解表達式1,若表達式1的值為true,則求解表達式2,表達式2的值為最終結(jié)果若表達式1的值為false,則求解表達式3,表達式3的值為最終結(jié)果例
x=a<b?a:b該例是IF…ELSE語句的一個替代
if(a<b) x=a;else x=b;可編輯ppt124注意:(1)條件運算符優(yōu)于賦值運算符比關(guān)系運算符和算術(shù)運算符都低
例
max=(a>b)?a:b+1(2)條件運算符的結(jié)合性為“自右向左”
例a>b?a:c>d?c:d即
a>b?a:(c>d?c:d)(3)條件表達式與一般if的語句的關(guān)系
cout<<a>b?a:b;
(4)表達式2、3的類型可以不同,條件表達式的最終類型為2 和3中較高的類型??删庉媝pt1257、sizeof操作符語法形式
sizeof(類型名)
或sizeof(表達式)結(jié)果值:
“類型名”所指定的類型或“表達式”的結(jié)果類型所占的字節(jié)數(shù)。例:cout<<sizeof(double)<<endl;可編輯ppt1268、位運算——按位與(&)運算規(guī)則將兩個運算量的每一個位進行邏輯與操作舉例:計算3&53:000000115:(&)000001013&5:00000001用途:將某一位置0,其它位不變。例如:
將char
型變量a
的最低位置
0:a=a&0376;取指定位。
例如:有charc;inta;
取出a
的低字節(jié),置于
c
中:c=a&0377;可編輯ppt127
位運算——按位或(|)運算規(guī)則將兩個運算量的每一個位進行邏輯或操作舉例:計算3|53:000000115:(|)000001013|5:00000111用途:將某些位置1,其它位不變。
例如:將
int
型變量a的低字節(jié)置
1:
a=a|0xff;可編輯ppt128位運算——按位異或(^)運算規(guī)則兩個操作數(shù)進行異或:
若對應(yīng)位相同,則結(jié)果該位為0,
若對應(yīng)位不同,則結(jié)果該位為1,舉例:計算071^052071: 00111001052:(^)00101010071^052: 00010011可編輯ppt129位運算——按位異或(^)用途:使特定位翻轉(zhuǎn)(與0異或保持原值,與1異或取反)例如:要使01111010
低四位翻轉(zhuǎn):
01111010(^) 00001111 01110101可編輯ppt130位運算——取反(~)單目運算符:對一個二進制數(shù)按位取反。例:025:0000000000010101
~025:1111111111101010可編輯ppt131位運算——移位左移運算(<<)左移后,低位補0,高位舍棄。右移運算(>>)右移后,低位:舍棄
高位:無符號數(shù):補0
有符號數(shù):補“符號位”可編輯ppt132例1:chara=-8;cout<<int(a)<<endl;cout<<(a>>2)<<endl;1111100011111110可編輯ppt133例2:2<<10000001000000100可編輯ppt1349、運算符優(yōu)先級括號++,--,sizeof*,/,%+,-==,!=位運算&&||?:賦值運算逗號運算低高可編輯ppt13510、混合運算時數(shù)據(jù)類型的轉(zhuǎn)換
——隱含轉(zhuǎn)換一些二元運算符(算術(shù)運算符、關(guān)系運算符、邏輯運算符、位運算符和賦值運算符)要求兩個操作數(shù)的類型一致。在算術(shù)運算和關(guān)系運算中如果參與運算的操作數(shù)類型不一致,編譯系統(tǒng)會自動對數(shù)據(jù)進行轉(zhuǎn)換(即隱含轉(zhuǎn)換),基本原則是將低類型數(shù)據(jù)轉(zhuǎn)換為高類型數(shù)據(jù)。
charshortintunsignedlongunsignedlongfloatdouble
低高可編輯ppt136混合運算時數(shù)據(jù)類型的轉(zhuǎn)換
——隱含轉(zhuǎn)換邏輯運算要求參與運算的操作數(shù)必須是bool型,如果操作數(shù)是其它類型,編譯系統(tǒng)會自動將非0數(shù)據(jù)轉(zhuǎn)換為true,0轉(zhuǎn)換為false。位運算的操作數(shù)必須是整數(shù),當二元位運算的操作數(shù)是不同類型的整數(shù)時,也會自動進行類型轉(zhuǎn)換,賦值運算要求左值與右值的類型相同,若類型不同,編譯系統(tǒng)會自動律將右值轉(zhuǎn)換為左值的類型??删庉媝pt137混合運算時數(shù)據(jù)類型的轉(zhuǎn)換
——強制類型轉(zhuǎn)換語法形式:類型說明符(表達式)或(類型說明符)表達式強制類型轉(zhuǎn)換的作用是將表達式的結(jié)果類型轉(zhuǎn)換為類型說明符所指定的類型。注:
inta=16,b=5;floatx=10;x=(float)a+a/b;(19.0)可編輯ppt1382.3賦值語句格式:賦值表達式;賦值語句與賦值表達式的區(qū)別:賦值表達式可以包含在其它表達式中,
而賦值語句不可。例:if((a=b)>0)t=a;不可寫為:if((a=b;)>0)t=a;可編輯ppt139這是C++中新加的非常簡單易用的輸入、輸出方式,C++中沒有專門的輸入輸出語句,是用I/O流類來實現(xiàn)。在程序的開頭增加一行:#include<iostream.h>1)用插入操作符“<<”向標準輸出流cout中插入字符。向標準輸出設(shè)備(顯示器)輸出例:intx;cout<<“x=“<<x;2.4簡單的輸入、輸出可編輯ppt1402)用抽取操作符“>>”從標準輸入流cin中抽取字符從標準輸入設(shè)備(鍵盤)輸入例:intx;cin>>x; inta,b;cin>>a>>b;3)使用控制符
有時缺省輸出格式不能滿足要求,這時可以用控制符控制輸出的格式。
P36表2-6。在程序的開頭增加一行:#include<iomanip.h>可編輯ppt141例:#include<iostream.h>#include<iomanip.h>voidmain(){cout<<setw(5)<<setprecision(3)<<3.1415<<endl;}3.14可編輯ppt1422.5算法的基本控制結(jié)構(gòu)問題的提出:(1) -1(x<0)
y=0(x=0) 1(x>0) (2)統(tǒng)計任意一個人群的平均身高算法算法的基本控制結(jié)構(gòu):
順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)程序流程圖可編輯ppt143if(表達式)語句例:if(x>y)cout<<x;if(表達式)語句1else語句2例:if(x>y)cout<<x;elsecout<<y;if(表達式1)語句1
elseif(表達式2)語句2
elseif(表達式3)語句3
…
else語句n
2.4.1if語句
——三種形式可編輯ppt1441.IF(條件表達式)語句;或IF(條件表達式){語句;}或IF(條件表達式);空語句作IF中的語句語句;
0表達式語句1可編輯ppt145例(判輸入是否合理)
#include<iostream.h> voidmain() {unsignedintage;cout<<"Whatisthestudent'sage..."; cin>>age; if(age<10)cout<<"Theagemaybewrong"; }可編輯ppt146
#include<iostream.h> voidmain() {intyear;cout<<"Pleaseinputayear..."; cin>>year;//thinkaboutthesequenceofthelogicalexpression
if(year%4==0&&year%100!=0||year%400==0)cout<<"Theyearisleapyear";elsecout<<"Theyearisn'tleapyear"; }2.if...else語句
if(條件表達式)語句1;
else語句2;語句1語句2判斷YN例判閏年可編輯ppt147一般形式if()if()語句1else語句2elseif()語句3else語句4注意語句1、2、3、4可以是復(fù)合語句,每層的if與else配對,或用{}來確定層次關(guān)系。if語句
——嵌套可編輯ppt148intx=20;if(x>=0)if(x<50)cout<<“xisok\n”;elsecout<<“xisnotok\n”;If語句的嵌套二義性因為
if可以嵌套,所有在嵌套時有時會出
歧義,例如上例中,else是與第一個
if配對,還是與第二個
if配對?這種時候,系統(tǒng)就認為
:else與最近的一個
if相對應(yīng)可編輯ppt149
二義性:
(1)if(I%3==0)
if(I%7==0)
cout<<I<<endl;//輸出能被3整除,能被7整除
else
cout<<I<<endl;//輸出能被3整除,不能被7整除
(2)if(I%3
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 樓房裝修承攬合同范本
- l建設(shè)工程合同范本
- 合作加工木材合同范本
- 北京租房合同范本封面
- 廠區(qū)快遞轉(zhuǎn)讓合同范本
- 倉庫雜物搬運勞務(wù)合同范本
- 合伙臨時合同范本
- 合同里寫定價合同范本
- 信息技術(shù)合同范本
- 廠家網(wǎng)店授權(quán)合同范例
- 2022版義務(wù)教育(物理)課程標準(附課標解讀)
- AIB(2022版)統(tǒng)一檢查標準-前提方案與食品安全程序
- 網(wǎng)絡(luò)安全技術(shù)服務(wù)方案
- 地鐵站務(wù)員職業(yè)發(fā)展規(guī)劃
- 統(tǒng)編版小學(xué)語文一年級下冊全冊教學(xué)課件(2024年春季版)
- 醫(yī)療器械經(jīng)營質(zhì)量管理制度范本
- 《國家衛(wèi)生統(tǒng)計網(wǎng)絡(luò)直報系統(tǒng)》數(shù)據(jù)填報員操作指南V1.2
- 危險性較大分部分項工程安全專項施工方案專家論證審查表
- 02區(qū)域分析與區(qū)域規(guī)劃(第三版)電子教案(第二章)
- 泡沫鉆井技術(shù)
- 安徽各市(精確到縣區(qū))地圖PPT課件(可編輯版)
評論
0/150
提交評論