




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、計算機程序設(shè)計,顧 剛 計算機教學(xué)實驗中心,實驗作業(yè)完成情況,機自61 機自62 機自63 機自64,存在主要問題,循環(huán)語句右圓擴號后加分號 數(shù)學(xué)上的關(guān)系式、邏輯式不會表示 C+中沒有(-1)n 一個項目一個cpp文件 循環(huán)和選擇語句可以嵌套使用,數(shù)據(jù)類型的含義,程序的主要任務(wù)是對數(shù)據(jù)進行處理和計算 客觀世界的數(shù)據(jù)有多種類型 如數(shù)值數(shù)據(jù)、文字?jǐn)?shù)據(jù)、圖像數(shù)據(jù)以及聲音數(shù)據(jù)等 計算機存儲器只能存放二進制數(shù)組成的數(shù)據(jù) 顯然不同類型的數(shù)據(jù)在存儲器中存放格式不相同 換句話說不同類型數(shù)據(jù)占用不同長度的存儲空間,整數(shù)數(shù)據(jù)存放格式,整數(shù)如何存儲 符號位+二進制數(shù) 例如:-26 和 +168,符號位,實數(shù)數(shù)據(jù)存放
2、格式,存儲實數(shù)的方法:整數(shù)部分+小數(shù)部分 存儲+110110.01和-101011011.0101方式如下:,文字?jǐn)?shù)據(jù)存放格式,英文字符 ASCII采用7位二進制碼表示各種符號 連續(xù)存放各個字符構(gòu)成英文信息 中文漢字 兩個字節(jié)編碼 連續(xù)存放各個漢字構(gòu)成中文信息,圖像數(shù)據(jù)存放格式,圖像數(shù)據(jù)如何存儲? 采樣、量化、編碼 采樣成像素:(行號,列號、色彩值),聲音數(shù)據(jù)存放格式,聲音數(shù)據(jù)如何存儲? 采樣、量化、編碼 聲波是時間上連續(xù)的幅值,數(shù)據(jù)存儲的結(jié)論,不同類型的數(shù)據(jù)占據(jù)不同長度的存儲單元 同一類數(shù)據(jù)存放結(jié)構(gòu)(格式)因人設(shè)計而異 不同類型的數(shù)據(jù)對應(yīng)不同的值域(取值)范圍 不同類型的數(shù)據(jù)對應(yīng)不同的操作(
3、運算)及規(guī)則,C+提供的數(shù)據(jù)類型,四種基本數(shù)據(jù)類型,C+中的數(shù)據(jù)表示,C+程序中數(shù)據(jù)分為變量和常量(常數(shù)) 所謂常量指在程序運行過程中數(shù)據(jù)值始終不變 所謂變量指在程序運行過程中數(shù)據(jù)值隨時會發(fā)生改變 不論是常量還是變量又分4種基本類型 字符類型、整數(shù)類型、浮點類型、雙精度類型 在C+程序中常量和變量都應(yīng)“先說明,后使用” 常數(shù)通過本身的書寫格式就說明了該常數(shù)的類型 如書寫常量 3.2 2.718 168 -3200等 變量先說明其類型,使系統(tǒng)為該變量分配存儲空間,變量說明語句一般格式, , ,; 類型說明符有:char int float double 等 類型修飾符有:short long u
4、nsigned signed等 int j , k , l; short int i1,i2,i3; long int l1,l2,sum; unsigned short int i1,i2,i3; unsigned long int l1,l2,sum; 變量的初始化:在說明變量的同時對變量賦一個初值 int count = 0; double pi = 3.14159265358979; char upper = A;,字符類型說明格式,字符常量說明格式: A, 2, L , +, b, n(換行),r(回車),t(橫向跳格),(單引號), 常用的轉(zhuǎn)義字符可以參看表3.1 字符變量說明語句
5、格式: char ,; 例如:char c1,c2,ch=a,line=n; 占用一個字節(jié),即8個二進制位,最左位為符號位 取值范圍 27 271 (128 127) 存儲格式:,整數(shù)類型說明格式,整數(shù)常量說明格式: 一般整數(shù)常量:0, 1, 2, 637, 32767, 32768, 長整數(shù)常量:0L, 1L, 2L, 637L, 32767L, 32768L 十六進制常量:0 x1, 0 x24af, 0 x95fa, -0 x38 , 八進制常量:02673, -0167, 03344, 整數(shù)變量說明語句格式: int ,; 例如:int i1,i2,line=80; 占用四個字節(jié),即3
6、2個二進制位,最左位為符號位 取值范圍:231 2311 ( 4294967296 4294967295 ) 存儲格式:,浮點類型說明格式,浮點常量說明格式: 0.0 1.0 2.68 3.141593 -637.312 32767.0, 0.0E0 6.226e4 6.226E4 1.267E20 浮點變量說明語句格式: float ,; 例如:float f1,Pi=3.14,e=0.02718e2; 占用四個字節(jié),第4字節(jié)存指數(shù),前3個字節(jié)存小數(shù) 取值范圍: 3.410-373.41038 存儲格式:,雙精度類型說明格式,雙精度常量說明格式:同浮點類型 0.0 1.0 2.68 3.14
7、1593 -637.312 32767.0, 0.0E0 6.226e4 6.226E4 1.267E20 雙精度變量說明語句格式: double ,; 例如:double f1,Pi=3.14,e=0.02718e2; 占用八個字節(jié) 取值范圍: 1.710-3071.710308,用不同數(shù)據(jù)類型求N!,分析運行結(jié)果: 整數(shù)變量取值范圍: 4294967296 4294967295,所以超界 浮點變量取值范圍: 3.410-373.41038,所以不超界 用unsigned int 和 double類型會如何? 程序設(shè)計求解問題,變量類型選擇非常重要,#include int main() i
8、nt result_i=1; float result_f=1; int j; for(j=1;j=20;j=j+1) result_i=result_i*j; result_f=result_f*j; coutj!= result_i result_fendl; return 0; ,輸出各數(shù)據(jù)類型存儲字節(jié)大小,#include int main() cout“字符類型大?。骸?sizeof(char)“ 字節(jié)n; cout“短整數(shù)類型大小:” sizeof(short int)“字節(jié)n; cout“整數(shù)類型大?。?”sizeof(int) “ 字節(jié)n; cout“長整數(shù)類型大?。?”siz
9、eof(long int)“ 字節(jié)n; cout“浮點類型大?。?”sizeof(float)“ 字節(jié)n; cout“雙精度大?。?”sizeof(double)“ 字節(jié)n; return 0; ,分析:內(nèi)置運算符sizeof以字節(jié)為單位給出類型的大小。此程序只列出6種類型的大小,對其進行簡單修改即可列出感興趣的任意類型的大小。,顯示一個字符ASCII碼值,#include int main() char ch; /定義字符變量 int ch_int; /定義整數(shù)變量 coutch; ch_int = ch; coutThe code of ch is ch_intendl; return 0
10、; ,輸入 Please enter a character: C 輸出 The code of C is 67. 分析 cin輸入了一個字符到字符變量,再賦值給整型變量,然后分別輸出這兩個變量。,符號常量,用#define定義的常數(shù);類似變量,但不是變量。 例如: #define PI 3.1415926 #define MAXNUM 10000 可以出現(xiàn)在表達式中; f1= r * r * PI; 但是不能作左值,下列用法是錯誤的: PI = PI*PI ; 用const定義的常數(shù) const double pi=3.1415926;,用牛頓迭代公式求平方根,用牛頓迭代法求平方根X= 迭代
11、公式: 迭代結(jié)束條件 算法分析 循環(huán)求出一個數(shù)列:X1, X2, X3, , Xn-1, Xn 直到相對誤差小于10-7 定義說明變量類型:浮點、雙精度都可以,迭代算法流程圖,輸入被開方數(shù)X,X0 = X1 X1 = ( X0+X / X0 ) / 2,打印結(jié)果X1,X1=1.0,|(X0-X1)/X1|=eps?,是,否,#include #include #define EPS 1.0e-10 /定義一個符號常量 int main() double x, y; /說明兩個雙精度變量 cout x; double x0, x1; /說明兩個雙精度變量 x1 = 1.0; if(x0.0) d
12、o x0 = x1; x1 = (x0+x/x0)/2; while(fabs(x0-x1)/x1)=EPS); /fabs()函數(shù)為求絕對值的庫函數(shù) y= x1; else y= x; if(y0) cout Negative Value have not square root ! endl; else cout The square root of x is y endl; return 0; ,制作乘法口訣表,口訣表格式: 1*1=1 2*1=2 2*2=4 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2
13、=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 算法分析 兩重循環(huán):循環(huán)9次輸出9行;第I次循環(huán)輸出I列 定義變量類型?,口訣表打印程序,#include int main() int i,j; for(i=1; i10; i=i+1) for ( j=1; j=i; j=j+1) cout j * i =i*j t; cout endl; return 0; ,求階乘的和,計算1!+2!+3!+10! 算法分析: 級數(shù)的通項 ui =i! = i(i-1)! = iui-1 循環(huán)計算9次 數(shù)據(jù)變量類型:整數(shù)類型或浮點或雙精度,求階乘和
14、的程序,#include int main() int sum = 0, u = 1; for(int i=1; i=10; i=i+1) u = u*i; sum = sum+u; coutsum = sumendl; return 0; 輸出格式:1!+2!+3!+10!怎么設(shè)計,反序輸出四位無符號整數(shù),算法分析如下(回憶水仙花數(shù)): 從輸入的無符號整數(shù)n中依次分解出個位數(shù)字,十位數(shù)字,百位數(shù)字,千位數(shù)字并依次存放到變量c1,c2,c3,c4中, 將n%10的值即個位數(shù)字存入c1中 將n/10%10的值即十位數(shù)字存入c2中 將n/100%10的值即百位數(shù)字存入c3中 將n/1000的值即千
15、位數(shù)字存入c4中 再將各數(shù)字值+0則轉(zhuǎn)為對應(yīng)的數(shù)字字符。,反序輸出整數(shù)的程序,#include int main() unsigned int n; /定義無符號整數(shù)變量 char c1,c2,c3,c4; /定義四個字符變量 coutn; coutBefore inverse the number is: n endl; c1=n%10+0; /分離個位數(shù)字 c2=n/10%10+0;/分離十位數(shù)字 c3=n/100%10+0;/分離百位數(shù)字 c4=n/1000+0; /分離千位數(shù)字 coutAfter inverse the number is: c1c2c3c4endl; return
16、0; ,打印年歷,算法分析: 確定閏年: year%4=0 且 year%100!=0 或 year%400=0 確定元旦是星期幾 平年一年是52(52x7=364)個星期多一天 。所以平年元旦的星期數(shù)是上一年元旦星期數(shù)加1。 閏年又多一天,所以閏年元旦的星期數(shù)是上一年元旦星期數(shù)加2。 1900年的元旦是星期一,所以year的星期幾可以根據(jù)下列方法計算: n = year - 1900 相差n年 n = n +(n - 1)/4 +1 n年多n天,(n-1)/4個閏年數(shù),再加1900年元旦的星期序號1 n = n % 7 求出最后的星期數(shù) ,打印年歷流程圖,輸入年year,調(diào)用isleap()
17、判斷是否閏年,調(diào)用子函數(shù)求元旦是星期幾 week_of_newyear_day(),Month=12?,Month=1,打印當(dāng)前月日歷,month=month+1,是,否,開始,結(jié)束,打印當(dāng)前月處理框圖,確定當(dāng)月1日的位置,確定月天數(shù) len_of_month,月天數(shù) =,30天 小月 31天 大月 28天 平2月 29天 閏2月,day=月天數(shù)?,打印當(dāng)前日期,是否7天?,換行,day= day+1,否,是,是,day =1,否,程序模塊結(jié)構(gòu),主函數(shù)main(),子函數(shù)求元旦的星期數(shù) week_of_newyears_day(),子函數(shù)判別閏月 Isleap(),打印當(dāng)前月日歷,確定閏年子函數(shù)程序,#include #define YES 1 / 定義符號常數(shù)是 #define NO 0 / 定義符號常數(shù)否 / 函數(shù) isleap(): 判斷某年是否閏年 int isleap(int year) int leap=NO; if(year%4=0 ,求元旦是星期幾子函數(shù),/ 求元旦是星期幾 int week_of_newyears_day(int year) int n = year-1900; n = n+(n-1)/4+1; n = n%7; return n; ,打印年歷主函數(shù),in
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030中國胰島素注射筆針頭行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國腫瘤營養(yǎng)行業(yè)市場深度研究及發(fā)展前景投資可行性分析報告
- 2025至2030中國聯(lián)網(wǎng)汽車行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國老年公寓行業(yè)發(fā)展現(xiàn)狀及前景趨勢與投資報告
- 2025至2030中國羊絨針織大衣行業(yè)市場發(fā)展分析及發(fā)展趨勢與投資報告
- 2025至2030中國網(wǎng)絡(luò)連接非IC卡智能電表行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國網(wǎng)絡(luò)攝像機行業(yè)市場深度調(diào)研及發(fā)展趨勢與發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國網(wǎng)站優(yōu)化行業(yè)市場占有率及投資前景評估規(guī)劃報告
- 2025至2030中國綠豆行業(yè)市場發(fā)展現(xiàn)狀及發(fā)展趨勢與投資風(fēng)險報告
- 2025至2030中國維生素D缺乏治療行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 公司崗位職級管理制度
- D500-D505 2016年合訂本防雷與接地圖集
- 漏肩風(fēng)(肩周炎)中醫(yī)臨床路徑及入院標(biāo)準(zhǔn)2020版
- 光面爆破知識講座課件
- 高鐵站裝飾裝修方案
- DB4401-T 112.1-2021 城市道路占道施工交通組織和安全措施設(shè)置+第1部分:交通安全設(shè)施設(shè)置-(高清現(xiàn)行)
- 質(zhì)量整改通知單(樣板)
- 杭州市高級中學(xué)2022年高一新生素質(zhì)測試(分班考)模擬試卷
- 《碳纖維片材加固混凝土結(jié)構(gòu)技術(shù)規(guī)程》(2022年版)
- 智能建筑項目設(shè)計方案(模板)
- 短視頻:策劃+拍攝+制作+運營課件(完整版)
評論
0/150
提交評論