版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第三章基本結構程序設計第1頁,課件共49頁,創(chuàng)作于2023年2月基本結構程序設計程序的基本結構與結構化程序設計順序結構程序設計選擇結構程序設計循環(huán)結構程序設計程序設計舉例第2頁,課件共49頁,創(chuàng)作于2023年2月程序=算法+數(shù)據結構數(shù)據結構:指對數(shù)據(操作對象)的描述算法:指對操作步驟的描述編寫程序的本質:
對哪些數(shù)據進行什么樣的一系列加工就可以達到目標第3頁,課件共49頁,創(chuàng)作于2023年2月程序基本結構與結構化程序設計算法程序基本結構結構化程序設計的基本方法第4頁,課件共49頁,創(chuàng)作于2023年2月算法的概念廣義的說,為解決一個問題而采用的方法和步驟,就稱為算法炒菜點火->放油->放菜->炒菜->熄火->盛菜選擇合適的算法數(shù)值運算算法和非數(shù)值運算算法(人事管理)
第5頁,課件共49頁,創(chuàng)作于2023年2月算法舉例例:求解一元二次方程ax2+bx+c=0(a≠0)的兩個根。s1:輸入數(shù)據a,b,cs2:求根x1,x2s3:輸出結果可以將求解算法(s2)進行細化設計如下:
s1:輸入數(shù)據a,b,cs2_1:求判別式d的值,d=b*b-4*a*cs2_2:判斷:如果d>=0,則按實根求法計算:
x1=(-b+sqrt(d))/(2*a)x2=(-b-sqrt(d))/(2*a)
否則,按復根求法計算:實部r=-b/(2*a)
虛部p=±sqrt(-d)/(2*a)
s3:輸出結果第6頁,課件共49頁,創(chuàng)作于2023年2月例:依次讀入30個學生成績,輸出平均成績及最高成績具體算法描述:s1:0=>is2:0=>sum,0=>maxs3:讀入一個學生成績存入scores4:i+1=>is5;sum+score=>sums6:如果score大于max,則score=>maxs7:如果i小于30,轉移至s3s8:sum/30=>averages9:打印average,maxs3,s4,s5,s6,s7這些步驟會被重復執(zhí)行30次變量i用于統(tǒng)計已處理的學生人數(shù)當i值小于30時,流程轉至s3讀下一個學生成績當i值等于30時,所有學生成績處理完畢,到s8,s9輸出結果第7頁,課件共49頁,創(chuàng)作于2023年2月算法的特性算法是解決問題邏輯思路的表述。同一個問題有不同的解題方法和步驟,設計出不同的算法。正確的算法應該具備以下特性:有窮性:包含有限的操作步驟,不能無限制地執(zhí)行下去確定性:每一個步驟必須有確定的含義,無二義性有若干個輸入數(shù)據(0~n)輸入是指在算法執(zhí)行過程中需要用戶輸入的信息有若干個輸出數(shù)據(1~n)一般地,算法都有一個或多個輸出數(shù)據,因為設計算法的目的就是進行數(shù)值運算或進行某種數(shù)據處理,給用戶輸出處理結果是必然的要求有效性在一個算法中,要求每個步驟都能被有效地執(zhí)行第8頁,課件共49頁,創(chuàng)作于2023年2月算法的表示用自然語言表示算法(通俗易懂)用流程圖表示算法(傳統(tǒng)、N-S流程圖)用偽代碼表示算法用計算機語言表示算法第9頁,課件共49頁,創(chuàng)作于2023年2月流程圖表示法
用圖形符號配合文字說明表示各種操作起止框輸入輸出框處理框判斷框流程線第10頁,課件共49頁,創(chuàng)作于2023年2月例:輸入三個數(shù),然后輸出其中最大的數(shù)盒圖(NS圖)第11頁,課件共49頁,創(chuàng)作于2023年2月程序基本結構與結構化程序設計算法程序基本結構結構化程序設計的基本方法第12頁,課件共49頁,創(chuàng)作于2023年2月程序基本結構順序結構選擇結構循環(huán)結構結構化程序:由三種基本結構反復嵌套構成的程序叫~第13頁,課件共49頁,創(chuàng)作于2023年2月順序結構
ABAB流程圖N-S反映了若干模塊(語句)之間連續(xù)執(zhí)行的順序第14頁,課件共49頁,創(chuàng)作于2023年2月選擇結構二分支選擇結構PAB真假PBA真假PA真假(a)(b)第15頁,課件共49頁,創(chuàng)作于2023年2月多分支選擇結構kA1A2AiAnk=k2k=k1k=knk=ki......由某個條件的取值來決定執(zhí)行兩個(多個)模塊中的哪一個第16頁,課件共49頁,創(chuàng)作于2023年2月循環(huán)結構當型循環(huán)結構直到型循環(huán)結構PA假真當P為真AAP真假A直到P為真根據某個條件的取值(成立與否)重復執(zhí)行特定的模塊區(qū)別:當型先判斷,再決定是否執(zhí)行;直到型先執(zhí)行,再判斷是否繼續(xù)循環(huán),至少執(zhí)行一次第17頁,課件共49頁,創(chuàng)作于2023年2月對于三種基本結構的說明:
三種結構均只有一個入口和一個出口結構中的A、B操作都是廣義的,可以是一個操作,也可以是另一個基本結構或幾種基本結構的組合結構內不存在死循環(huán)第18頁,課件共49頁,創(chuàng)作于2023年2月程序基本結構與結構化程序設計算法程序基本結構結構化程序設計的基本方法第19頁,課件共49頁,創(chuàng)作于2023年2月結構化程序設計方法自頂向下、逐步細化模塊化設計結構化編碼第20頁,課件共49頁,創(chuàng)作于2023年2月基本結構程序設計程序的基本結構順序結構程序設計選擇結構程序設計循環(huán)結構程序設計程序設計舉例第21頁,課件共49頁,創(chuàng)作于2023年2月順序結構程序設計順序執(zhí)行語句數(shù)據的輸入輸出順序結構程序舉例第22頁,課件共49頁,創(chuàng)作于2023年2月順序執(zhí)行語句C程序是由語句組成,每個語句以分號結束順序結構的程序會按照語句書寫的順序執(zhí)行C語句分類:控制語句表達式語句函數(shù)調用語句空語句復合語句第23頁,課件共49頁,創(chuàng)作于2023年2月如:if(x>y)
與
if(x>y)
意義不同
z=x;
{
x++;z=x;y--;x++;}y--;
表達式語句表達式后面加”;”構成a=2x=y+1i++a=2;x=y+1;i++;函數(shù)調用語句函數(shù)名(參數(shù));
printf(“%d”,x);空語句;復合語句
用{}把一些語句括起來,相當于一個語句第24頁,課件共49頁,創(chuàng)作于2023年2月順序結構程序設計順序執(zhí)行語句數(shù)據的輸入輸出順序結構程序舉例第25頁,課件共49頁,創(chuàng)作于2023年2月數(shù)據輸入輸出C語言無I/O語句,I/O操作由庫函數(shù)實現(xiàn)使用庫函數(shù)時,用預編譯命令將有關“頭文件”包含到源文件中標準輸入輸出庫函數(shù):“stdio.h”文件源文件開頭應有以下預編譯命令:
#include<stdio.h>#include"stdio.h"
(P219)第26頁,課件共49頁,創(chuàng)作于2023年2月1.putchar函數(shù)(字符輸出函數(shù))格式:putchar(c)參數(shù):c為字符常量、變量或表達式功能:把單個字符c輸出到顯示器上運行結果:AB#include<stdio.h>voidmain(){intc;chara;c=65;a='B';putchar(c);putchar('\n');putchar(a);}例若無文件包含編譯預處理,在編譯連接時系統(tǒng)將指出:LinkingError:Undefinesymbol‘_putchar’inmoduelXXX.c第27頁,課件共49頁,創(chuàng)作于2023年2月另:putchar()函數(shù)還可以輸出控制字符如:‘\n’或‘\012’
‘\a’或‘\007’
‘\r’或‘\015’
換行
響鈴
回車#include"stdio.h"voidmain(){chara='A',b='B',c='\007';
putchar(a);putchar(b);putchar('\n');
putchar(c);putchar(65);putchar(66);putchar('\007');}運行結果:AB
響鈴AB
響鈴第28頁,課件共49頁,創(chuàng)作于2023年2月格式:getchar()功能:從鍵盤讀一字符返值:正常,返回讀取的代碼值;出錯,返回EOF(-1)2.getchar函數(shù)(字符輸入函數(shù))例
#include<stdio.h>voidmain(){intc;printf("Enteracharacter:");c=getchar();printf("%c--->hex%x\n",c,c);}運行結果:Enteracharacter:A
A--->hex41第29頁,課件共49頁,創(chuàng)作于2023年2月輸出表列:要輸出的數(shù)據(可以沒有,多個時以“,”分隔)格式控制串:由雙引號括起來的一串字符(格式字符串和普通字符)
◆普通字符或轉義序列:原樣輸出
◆格式字符串:%[修飾符]格式字符,用于指定輸出格式
格式字符
★d格式符:按十進制格式輸出
★f格式符:按實數(shù)格式輸出
★c格式符:以字符形式輸出一個字符
格式:printf(“格式控制串”,輸出表列)功能:按指定格式向顯示器輸出數(shù)據說明:標準庫函數(shù),函數(shù)原型在頭文件“stdio.h”中
3.
printf函數(shù)(格式輸出函數(shù))
第30頁,課件共49頁,創(chuàng)作于2023年2月a第31頁,課件共49頁,創(chuàng)作于2023年2月dx,Xoucse,Efg%%格式字符:十六進制無符號整數(shù)不帶符號十進制整數(shù)十進制整數(shù)指數(shù)形式浮點小數(shù)單一字符字符串八進制無符號整數(shù)小數(shù)形式浮點小數(shù)e和f中較短一種百分號本身inta=567,b=12;printf(“%d,%d”,a,b);inta=255;printf(“%x”,a);inta=65;printf(“%o”,a);inta=567;printf(“%u”,a);chara=65;printf(“%c”,a);printf(“%s”,“ABC”);floata=567.789;printf(“%e”,a);floata=567.789;printf(“%f”,a);floata=567.789;printf(“%g”,a);printf(“%%”);567,12ff101567AABC5.677890e+02567.789000567.789%說明 格式字符要用小寫格式字符與輸出項個數(shù)應相同,按先后順序一一對應輸出轉換:格式字符與輸出項類型不一致,自動按指定格式輸出第32頁,課件共49頁,創(chuàng)作于2023年2月附加格式說明符(修飾符)m.n-.n對實數(shù),指定小數(shù)點后位數(shù)(四舍五入)對字符串,指定實際輸出位數(shù)修飾符功能m輸出數(shù)據域寬,數(shù)據長度<m,左補空格;否則按實際輸出輸出數(shù)據在域內左對齊(缺省右對齊)-指定在有符號數(shù)的正數(shù)前顯示正號(+)+輸出數(shù)值時指定左面不使用的空位置自動填00在八進制和十六進制數(shù)前顯示前導0,0x#在d,o,x,u前,指定輸出精度為long型在e,f,g前,指定輸出精度為double型l第33頁,課件共49頁,創(chuàng)作于2023年2月
inta=1234;floatf=123.456;charch=‘a’;printf(“%8d,%2d\n”,a,a);printf(“%f,%8f,%8.1f,%.2f,%.2e\n”,f,f,f,f,f);printf(“%3c\n”,ch);運行1234,1234結果:123.456000,123.456000,123.5,123.46,1.23e+02
a例m.n第34頁,課件共49頁,創(chuàng)作于2023年2月
inta=1234;floatf=123.456;
printf(“%-8d,%8d\n”,a,a);printf(“%10.2f,%-10.1f\n”,f,f);
運行結果:1234____,____1234
____
123.46,123.5_____
例-第35頁,課件共49頁,創(chuàng)作于2023年2月格式:scanf(“格式控制串”,地址表列)功能:按指定格式從鍵盤讀入數(shù)據,存入地址表指定的存儲單元中,并按回車鍵結束返值:正常,返回輸入數(shù)據個數(shù)說明:標準庫函數(shù),函數(shù)原型在頭文件“stdio.h”中地址表列:變量的地址,用取地址運算符&格式字符:d,o,x,u,c,s,f,e4.scanf函數(shù)(格式輸入函數(shù))
例inta;scanf(“%d”,&a);
輸入:10
則a=10例floata;scanf(“%f”,&a);
輸入:3.14
則a=3.140000例chara;scanf(“%c”,&a);
輸入:m
則a=‘m’第36頁,課件共49頁,創(chuàng)作于2023年2月附加格式說明符(修飾符)l修飾符功能hm*用于d,o,x前,指定輸入為short型整數(shù)用于d,o,x前,指定輸入為long型整數(shù)用于e,f前,指定輸入為double型實數(shù)指定輸入數(shù)據寬度,遇空格或不可轉換字符則結束抑制符,指定輸入項讀入后不賦給變量例scanf(“%4d%2d%2d”,&yy,&mm,&dd);
輸入19991015
則1999yy,10mm,15dd例scanf(“%3d%*4d%f”,&k,&f);
輸入12345678765.43則123k,8765.43f例scanf(“%2d%*3d%2d”,&a,&b);
輸入1234567
則12a,67b例scanf(“%3c%2c”,&c1,&c2);
輸入abcde
則‘a’c1,‘d’c2第37頁,課件共49頁,創(chuàng)作于2023年2月輸入分隔符的指定一般以空格、TAB或回車鍵作為分隔符其它字符做分隔符:格式串中兩個格式符間字符例scanf(“%d%o%x”,&a,&b,&c);printf(“a=%d,b=%d,c=%d\n”,a,b,c);
輸入123123123
輸出a=123,b=83,c=291例scanf(“%d:%d:%d”,&h,&m,&s);
輸入12:30:45
則12h,30m,45s例scanf(“%d,%d”,&a,&b)
輸入3,4
則3a,4b例scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);
輸入a=12,b=24,c=36第38頁,課件共49頁,創(chuàng)作于2023年2月說明:用“%c”格式符時,空格和轉義字符作為有效字符輸入如scanf(“%c%c%c”,&c1,&c2,&c3);
若輸入abc
則ac1,
c2,bc3輸入數(shù)據時,遇以下情況認為該數(shù)據結束:遇空格、TAB、或回車遇寬度結束遇非法輸入如scanf(“%d%c%f”,&a,&b,&c);
若輸入1234a123o.26
則1234a,‘a’b,123c輸入函數(shù)留下的“垃圾”:例intx;charch;scanf(“%d”,&x);ch=getchar();printf(“x=%d,ch=%d\n”,x,ch);執(zhí)行:123
輸出:x=123,ch=10解決方法:(1)用getchar()清除(2)用格式串中空格或“%*c”來“吃掉”例intx;charch;scanf(“%d”,&x);scanf(“%c”,&ch);或scanf(“%*c%c”,&ch);
第39頁,課件共49頁,創(chuàng)作于2023年2月順序結構程序設計順序執(zhí)行語句數(shù)據的輸入輸出順序結構程序舉例第40頁,課件共49頁,創(chuàng)作于2023年2月#include<math.h>#include<stdio.h>main(){floata,b,c,s,area;scanf("%f,%f,%f",&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",a,b,c,s);printf("area=%7.2f\n",area);}例1輸入三角形邊長,求面積輸入:3,4,6
輸出:a=3.00,b=4.00,c=6.00s=6.50area=5.33文件包含預處理命令變量定義輸入數(shù)據輸出數(shù)據第41頁,課件共49頁,創(chuàng)作于2023年2月例2從鍵盤輸入大寫字母,用小寫字母輸出/*ch3_13.c*/#include"stdio.h"main(){charc1,c2;c1=getchar();printf("%c,%d\n",c1,c1);c2=c1+32;printf("%c,%d\n",c2,c2);}輸入:A
輸出:A,65a,97第42頁,課件共49頁,創(chuàng)作于2023年2月[例]輸出兩個整型變量交換前后的值。分析:所需的變量:整型變量ainta
整型變量bintb
中間變量tempinttemp//用來兩個值交換時作臨時保存用算法:1、先把a的值保存到:temp=a2、把b的值賦給a:a=b;3、把temp中保存的a值給b:b=temp;第43頁,課件共49頁,創(chuàng)作于2023年2月
main(){inta,b;scanf(“%d,%d",&a,&b);printf("origenalnumber:\na=%d,b=%d\n",a,b);
{inttemp;temp=a;a=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年法律服務委托合同
- 2024年度航空航天設備維護與保障服務外包協(xié)議3篇
- 2024年屋頂綠化與箱涵施工及節(jié)能改造合同3篇
- 2024年暑假兼職員工招聘與培訓合同范本2篇
- 山西職業(yè)技術學院《單片微控制器原理及應用》2023-2024學年第一學期期末試卷
- 2024年消費貸款還款協(xié)議書
- 2024年生態(tài)環(huán)境治理項目土方開挖合作合同3篇
- 2024年度企業(yè)員工薪酬福利優(yōu)化方案委托合同3篇
- 2024年深水井鉆探與海洋能源利用施工合同6篇
- 2024年版子公司經營管理合同版B版
- 浙江科學技術出版社小學五年級下冊綜合實踐活動完全教案(教學計劃-進度計劃-共14節(jié)課時)新疆有
- 四川音樂學院附屬中等音樂學校輔導員招聘考試真題2023
- 第1課《北京的春節(jié)》課件 2023-2024學年統(tǒng)編版(五四學制)語文六年級下冊
- 2024版國開電大法律事務??啤睹穹▽W(1)》期末考試總題庫
- 山東建筑大學混凝土結構原理期末考試復習題
- 永康電動工具市場行業(yè)報告
- 護理病例報告范文5篇
- 班主任基本功大賽:模擬情景題及參考答案匯編(小學組)
- 兒童房間管理制度
- 中國石油大學(華東)2008年化工原理(含答案)考研真題
- 湖南課件大學
評論
0/150
提交評論