版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
C語言程序設計(A)郭
素梅GUOSumeiswitch、算法和流程圖-OK共71頁,您現在瀏覽的是第1頁!2022/12/10(c)GuoS.運算符= (賦值)+,-,*,/,%
雙目(算術)++,-- 單目(自增減)+=,-=,*=,/=,%=
雙目(復合)>,<,>=,<=,==,!= 雙目(關系)&&,|| 雙目(邏輯)! 單目(邏輯)?: 三目(條件)switch、算法和流程圖-OK共71頁,您現在瀏覽的是第2頁!2022/12/10(c)GuoS.條件運算符A?B:C使用法:表達式1?表達式2:表達式3表達式1成立的話,其值為表達式2的值,否則為表達式3的值。max=x>y?x:y;唯一的三目運算符完全等價于:if(x>y) max=x;else max=y;switch、算法和流程圖-OK共71頁,您現在瀏覽的是第3頁!2022/12/10(c)GuoS.認識條件運算符A?B:CX=X<0?-X:X;M=M?X:Y;D>=0?(D>0?printf(“兩個實數解”):printf(“一個實數解”)):printf(“無實數解”);if(X<0)x=-x;if(M)M=x;elseM=y;if(D>=0){
if(D>0)printf(“兩個實數解”);
elseprintf(“一個實數解”);
}
elseprintf(“無實數解”);switch、算法和流程圖-OK共71頁,您現在瀏覽的是第4頁!if語句練習鍵盤給定三個浮點數a,b和c,求最大值max,和最小值min,并輸出鍵盤輸入一個整數m,作為月份。
當m大于12或小于1時,輸出“輸入錯誤”;
當m為3到5,輸出“春天”;
6到8,輸出“夏天”;
9到11,輸出“秋天”;
12,1和2時,輸出“冬天”2022/12/10(c)GuoS.switch、算法和流程圖-OK共71頁,您現在瀏覽的是第5頁!if語句練習鍵盤輸入一個浮點數score,作為成績。
當大于100或小于0,輸出“輸入錯誤”;
在0到100之間,將其轉換為五級制,即90到100為“優(yōu)秀”,80到89為“良好”,70到79為“中等”,60到69為“及格”,0到59為“不及格”。算命先生2022/12/10(c)GuoS.switch、算法和流程圖-OK共71頁,您現在瀏覽的是第6頁!2022/12/10(c)GuoS.switch、算法和流程圖-OK共71頁,您現在瀏覽的是第7頁!2022/12/10(c)GuoS.Switch語句:多分支switch(表達式){ case常量1:語句1 case常量2:語句2 ... case常量n:語句n default:語句n+1}格式為:表達式的值=常量1表達式的值=常量2表達式的值=常量n表達式的值沒有匹配的常量所有case僅是標記為程序執(zhí)行的入口,不做判斷。停止執(zhí)行要用breakswitch、算法和流程圖-OK共71頁,您現在瀏覽的是第8頁!2022/12/10(c)GuoS.舉例用switch語句實現輸入100分制,輸出對應五級制輸入月份,輸出對應的季度switch、算法和流程圖-OK共71頁,您現在瀏覽的是第9頁!2022/12/10(c)GuoS.例:輸入年,月,計算該月有多少天?main(){intyear,month,days;printf(“Enteryear,month\n”);scanf(“%d,%d”,&year,&month);switch(month){case1:case3:case5:case7:case8:case10:case12:days=31;break;幾個CASE執(zhí)行相同的語句跳出開關結構處理大月程序舉例關系到如何判閏年?switch、算法和流程圖-OK共71頁,您現在瀏覽的是第10頁!2022/12/10(c)GuoS.從鍵盤輸入x,求y,并輸出。執(zhí)行時要求:從鍵盤輸入4次x的值,分別為x>=1.0,x<=-1.0,-1.0<x<0,0<=x<1.0switch、算法和流程圖-OK共71頁,您現在瀏覽的是第11頁!2022/12/1012算法例如,求一個圓的周長Len,并輸出就需要知道半徑r公式Len=2πr
程序涉及操作:輸入半徑r計算周長Len輸出周長Len按順序執(zhí)行命令switch、算法和流程圖-OK共71頁,您現在瀏覽的是第12頁!2022/12/1013算法再比如: 求三個整數(a,b,c)的 最大值mx,并輸出大流程: 數據輸入求mx輸出mx得到mx的具體步驟為:輸入三個整數a,b,c如果a大于b且a大于c
的話,mx=a;同樣如果b大于a且b大于c的話,mx=b;同樣如果b大于a且b大于c
的話,mx=b;?要判斷、有條件的!switch、算法和流程圖-OK共71頁,您現在瀏覽的是第13頁!2022/12/1014算法再比如: 求3個整數的最大值mx,并輸出得到mx的具體步驟為:輸入三個整數a,b,c如果
a大于b
的話,mx=a;
否則
mx=b;如果
mx大于c
的話,mx=c;
否則不變;要判斷、有條件的!switch、算法和流程圖-OK共71頁,您現在瀏覽的是第14頁!2022/12/1015根本:按順序執(zhí)行命令控制重復!判斷、條件!對應C語言程序設計的三種結構!switch、算法和流程圖-OK共71頁,您現在瀏覽的是第15頁!2022/12/1016算法舉例如何求一個整數的階乘?如何求最大公約數?如何求三個、四個數的最大值、最小值?如何利用泰勒展開計算sin,cos的值?等等如何設計一個算法?
switch、算法和流程圖-OK共71頁,您現在瀏覽的是第16頁!2022/12/1017算法舉例
求分數列前20項的和sum分數列:2/1,3/2,5/3,8/5,13/8,21/13...分析算法:數列a/b初值:a=2,b=1循環(huán)變量:1,2,3...20將用到的語句:sum=sum+a/bt=a;a=a+b;b=t;switch、算法和流程圖-OK共71頁,您現在瀏覽的是第17頁!2022/12/1018算法舉例如何求一個整數的階乘?5!=1*2*3*4*5p*i=2賦給pp*i=6賦給p方法-1設變量p被乘數,
i為乘數p=1,i=2i+1=3賦給ii+1=4賦給ip*i=24賦給pi+1=5賦給ip*i=120賦給p輸出p,結束switch、算法和流程圖-OK共71頁,您現在瀏覽的是第18頁!2022/12/1019算法舉例利用循環(huán)處理和條件判斷規(guī)律性和條件switch、算法和流程圖-OK共71頁,您現在瀏覽的是第19頁!2022/12/1020算法的表示流程圖的基本符號起、止框輸入、輸出框判斷框處理框流程控制線switch、算法和流程圖-OK共71頁,您現在瀏覽的是第20頁!2022/12/1021算法的表示流程圖的基本結構:順序結構選擇結構循環(huán)結構A處理B處理輸入a輸出bP成立不成立A處理輸入a輸出bP成立不成立A處理輸入a輸出bP不成立成立處理=處理模塊或者語句的集合選擇結構也叫分支結構。必須包含判斷。根據條件選擇要執(zhí)行的語句。switch、算法和流程圖-OK共71頁,您現在瀏覽的是第21頁!2022/12/1022算法的表示流程圖的基本結構:順序結構選擇結構循環(huán)結構
(“直到”型)輸入a輸出bP成立不成立A處理處理=處理模塊或者語句的集合循環(huán)結構也叫重復結構。反復執(zhí)行一部分操作。分為:當型和直到型switch、算法和流程圖-OK共71頁,您現在瀏覽的是第22頁!2022/12/1023結構化滿足以上基本結構特點的算法結構,就可以叫基本結構。由3種基本結構組成的算法結構,可以解決任何復雜的問題,由基本結構組成的算法,是結構化的算法。switch、算法和流程圖-OK共71頁,您現在瀏覽的是第23頁!2022/12/1024算法設計舉例開始計算s=b*b-4ac結束輸入系數a,b,c輸出”沒有實解”s>=0輸出實根x1和x2x1=(-b+sqrt(s))/2ax2=(-b-sqrt(s))/2aYesNoswitch、算法和流程圖-OK共71頁,您現在瀏覽的是第24頁!2022/12/1025算法設計舉例ave2.c開始計算平均Av=(a+b)/2結束輸入成績N1,N2輸出成績N1,N2和Avswitch、算法和流程圖-OK共71頁,您現在瀏覽的是第25頁!2022/12/1026練習:c2f.c攝氏和華氏溫度變換公式:F=9/5*C+32要求
輸出c=0,10,20,,,100
對應的攝氏溫度fc f0 32.010 41.0框圖程序switch、算法和流程圖-OK共71頁,您現在瀏覽的是第26頁!2022/12/1027switch、算法和流程圖-OK共71頁,您現在瀏覽的是第27頁!2022/12/1028算法算法算法舉例算法的特性算法的表示結構化程序的設計方法switch、算法和流程圖-OK共71頁,您現在瀏覽的是第28頁!2022/12/1029作業(yè)P15第5題編程:將兩個整數a和b分別初始化為123和456,交換其值后輸出a和b。switch、算法和流程圖-OK共71頁,您現在瀏覽的是第29頁!2022/12/1030計算機構成計算機本體控制裝置演算裝置主存儲裝置輸入裝置輸出裝置CPU中央處理裝置CentralProcessingUnit輔存儲裝置:
硬盤,CD-ROM等補充switch、算法和流程圖-OK共71頁,您現在瀏覽的是第30頁!2022/12/1031進制8進制:數字0到7表示10進制:數字0到9表示16進制:數字0到9,
字母A到F表示2進制是基礎:
數字0和1表示補充switch、算法和流程圖-OK共71頁,您現在瀏覽的是第31頁!2022/12/1032進制二進制到十進制的換算:1010二進制是基礎:
數字0和1表示3210二進制2的指數位補充switch、算法和流程圖-OK共71頁,您現在瀏覽的是第32頁!2022/12/1033進制八進制到十進制:123210八進制8的指數位補充switch、算法和流程圖-OK共71頁,您現在瀏覽的是第33頁!2022/12/1034進制十六進制到十進制:A1F210補充switch、算法和流程圖-OK共71頁,您現在瀏覽的是第34頁!2022/12/1035進制十進制到16進制:1232100位:x0=123%16; //111位:i=123/16=7;x1=7%16; //77B補充switch、算法和流程圖-OK共71頁,您現在瀏覽的是第35頁!2022/12/1036b,B,KB,MB,GB,TBbit,中文叫法:位Byte,中文叫法:字節(jié)Kilobyte(KB),中文叫法:KMegabyte(MB),中文叫法:兆Gigabyte(GB),中文叫法:GTerabyte(TB),中文叫法:T1TB==
1,024GB1GB
==
1,024MB1MB
==
1,024KB1KB
==
1,024B1B
==
8b以2進制為基礎補充switch、算法和流程圖-OK共71頁,您現在瀏覽的是第36頁!2022/12/1037進制進制10,12,24,60,16,8,2,N表示10:0,1,2,3,...,916:0,1,2,3,...,9,A,B,C...F2:0,1switch、算法和流程圖-OK共71頁,您現在瀏覽的是第37頁!2022/12/10(c)GuoS.a,b,c,d四個數的最大值m1=a>b?a:b;m2=c>b?c:d;max=m1>m2?m1:m2;switch、算法和流程圖-OK共71頁,您現在瀏覽的是第38頁!if語句練習鍵盤給定三個浮點數a,b和c,將其按照a大于等于b,且b大于等于c的要求,排序后,輸出?!舅伎迹核奈粩等绾巫觯俊挎I盤輸入一個三位數的整數,判斷是否為水仙花數,是則輸出“1”,不是則輸出“0”。輸入的不是三位數,則輸出“輸入錯誤”。2022/12/10(c)GuoS.switch、算法和流程圖-OK共71頁,您現在瀏覽的是第39頁!重要題水仙花數;勾股數;對稱數;閏年公倍數&公約數、完數倒序輸出;圖形輸出;計算面積(簡單圖形、函數)級數排序(數字、字符串);統(tǒng)計(最大、最小、平均、方差)2022/12/10(c)GuoS.switch、算法和流程圖-OK共71頁,您現在瀏覽的是第40頁!2022/12/10(c)GuoS.Switch語句:多分支if語句是有兩個分支。。。Switch語句實現多分支:根據表達式的值進行選擇流程圖switch、算法和流程圖-OK共71頁,您現在瀏覽的是第41頁!2022/12/10(c)GuoS.
2case后的每個常量表達式必須各不相同。
1括號內的表達式可以是int,char。3case和default的位置是任意的。4每一個case之后應有一個以跳出switch()結構。
break(間斷語句);5每個case之后的執(zhí)行語句可多于一個,
但不必加{}。6允許幾種case情況下執(zhí)行相同的語句,不必每個都寫case
。注意事項switch、算法和流程圖-OK共71頁,您現在瀏覽的是第42頁!2022/12/1043switch、算法和流程圖-OK共71頁,您現在瀏覽的是第43頁!2022/12/10(c)GuoS.
case4:case6:case9:case11:days=30;break;case2:if((year%4==0)&&(year%100!=0)||(year%400)==0)days=29;elsedays=28;break;default:printf(“Entererror!\n”);days=0;break;}if(days!=0)printf(“%d\n”,days);return0;}判斷是否為閏年開關結構結束處理二月程序舉例(續(xù))處理小月switch、算法和流程圖-OK共71頁,您現在瀏覽的是第44頁!2022/12/1045算法算法解決“做什么?”和“怎么做?”對解題過程準確而完整的描述稱為解此問題的算法,因此不知道解題的算法也就不可能編寫程序來解題。程序
=
數據結構+算法switch、算法和流程圖-OK共71頁,您現在瀏覽的是第45頁!2022/12/1046算法已知有30個學生,計算和打印“語文、數學及平均成績”的算法。算法設計:就需要得知每個學生的語文數學的成績,然后計算平均,最后打印。具體步驟為:輸入語文和數學成績N1和N2計算平均成績ave=(N1+N2)/2;打印N1,N2和ave它涉及3個操作,執(zhí)行將按1)~3)順序。從第二個學生開始,重復1)~3)步驟。要控制重復30次!switch、算法和流程圖-OK共71頁,您現在瀏覽的是第46頁!2022/12/1047算法比如: 求3個整數的最大值mx,并輸出得到mx的具體步驟為:輸入三個整數a,b,cmx=a;如果
mx大于b
的話,mx=b;
否則不變;如果
mx大于c
的話,mx=c;
否則不變;要判斷、有條件的!switch、算法和流程圖-OK共71頁,您現在瀏覽的是第47頁!2022/12/1048算法可以來源于: 求兩個整數(a,b)的 最大值mx,并輸出得到mx的具體步驟為:讓mx等于個數,mx=a1。mx和剩下的依次比較:
大的話,mx=依次比較的值
不大的話,mx不變100個、N個要控制重復99、N-1次!比較!switch、算法和流程圖-OK共71頁,您現在瀏覽的是第48頁!2022/12/1049C語言程序例題1:輸出三個整數(123,456,789)的最大值m可參考max2.c #include<stdio.h> intmain() { inta,b,m;
a=123;
b=456;
if(a>b)m=a; elsem=b; printf(“max(a,b)=%d”,m); return0; }max3.cswitch、算法和流程圖-OK共71頁,您現在瀏覽的是第49頁!2022/12/1050算法舉例給出利用下邊的泰勒展開求sin(0.5)的算法。
要求所加的最后一項不大于0.0005初始化:x=0.5;i=1;s=1;將用到:t=pow(x,i);
re=re+s*t;
i=i+2;s=-s;
if(fabs(t)<0.0005)...switch、算法和流程圖-OK共71頁,您現在瀏覽的是第50頁!2022/12/1051算法的特點編寫程序,必須學會設計算法。有窮性:有限的操作步驟。指合理范圍內的有窮性確定性:每個步驟是確定的,而不是含糊、模棱兩可的。其操作是唯一的。有效性:能有效執(zhí)行并得到確定的結果有0個或以上的輸入:執(zhí)行算法時需要的外界的信息有1個或以上的輸出:執(zhí)行算法得到的結果switch、算法和流程圖-OK共71頁,您現在瀏覽的是第51頁!2022/12/1052算法舉例p*i賦給p方法-2設變量p被乘數,
i為乘數p=1,i=2i+1賦給i若i不大于5,重復若i大于5,輸出p結束試想:當要計算100!,1000!時如何求一個整數的階乘?5!=1*2*3*4*5顯然,利用循環(huán)處理和條件判斷方法-2比方法-1的算法簡練!switch、算法和流程圖-OK共71頁,您現在瀏覽的是第52頁!2022/12/1053算法的表示算法的表示通常有:程序流程圖、N-S圖和PAD圖等方式。例:用程序流程圖表示方程的求實解算法程序設計:工具(語言和流程圖等)switch、算法和流程圖-OK共71頁,您現在瀏覽的是第53頁!2022/12/1054算法的表示流程圖的基本結構:順序結構選擇結構循環(huán)結構A處理B處理輸入a輸出b處理=處理模塊或者語句的集合順序結構按照順序執(zhí)行。程序的走向是固定的。switch、算法和流程圖-OK共71頁,您現在瀏覽的是第54頁!2022/12/1055算法的表示流程圖的基本結構:順序結構選擇結構循環(huán)結構
(“當”型)A處理輸入a輸出bP成立不成立處理=處理模塊或者語句的集合循環(huán)結構也叫重復結構。反復執(zhí)行一部分操作。分為:當型和直到型switch、算法和流程圖-OK共71頁,您現在瀏覽的是第55頁!2022/12/1056基本結構的特點3種基本結構:順序結構選擇結構循環(huán)結構特點:
一個入口,一個出口每個處理都有機會被執(zhí)行到不存在“死循環(huán)”switch、算法和流程圖-OK共71頁,您現在瀏覽的是第56頁!2022/12/1057算法設計舉例例:用程序流程圖表示方程的求實解算法。沒有實解打印“沒有實解”具體步驟為:輸入系數a,b和cb*b-4ac>=0有實解計算實解打印結果否則,打印“沒有實解”
它涉及兩部分處理,執(zhí)行將按1)~2)順序。1)內有包含兩部分處理,計算和打印switch、算法和流程圖-OK共71頁,您現在瀏覽的是第57頁!2022/12/1058算法設計舉例計算和打印“語文數學及平均成績”的算法。設計的算法就需要得知語文數學的成績,然后計算平均,最后打印。具體步驟為:輸入語文和數學成績N1和N2計算平均成績Av=(N1+N2)/2打印N1,N2和Av它涉及3個操作,執(zhí)行將按1)~3)順序switch、算法和流程圖-OK共71頁,您現在瀏覽的是第58頁!2022/12/1059算法設計舉例#include<stdio.h>intmain() //main函數{ doubleN1,N2,Av; //定義變量
printf("請輸入語文,數學成績\n"); scanf("%lf,%lf",&N1,&N2); Av=(N1+N2)/2;//計算平均
//函數調用語句:輸出函數printf printf(“語文=%lf,數學=%lf\n",N1,N2); printf("平均=%lf\n",Av); return0;}ave2.c開始計算平均Av=(a+b)/2結束輸入成績N1,N2輸出成績N1,N2和Avscanf("%lf%lf",&N1,&N2);printf(“%lf\n”,av);switch、算法和流程圖-OK共71頁,您現在瀏覽的是第59頁!2022/12/1060練習:sin的近似計算:要求
追加項的絕對值小于0.00005框圖程序switch、算法和流程圖-OK共71頁,您現在瀏覽的是第60頁!2022/12/1061結構化程序的設計方法基本結構:順序結構選擇結構循環(huán)結構結構化程序:用順序、選擇和循環(huán)三種基本結構的組合來設計程序。也就是說用計算機語言表示的結構化算法。switch、算法和流程圖-OK共71頁,您現在瀏覽的是第61頁!2022/12/1062算法小結本章是計算機程序設計和算法的基礎,學習時要重點理解和掌握的是計算機算法的表示方法。作為一個程序設計人員,應該熟悉并掌握比較常用的程序流程圖描述方法,最終需要使用計算機語言,即程序設計語言描述并實現。本章通過算法舉例以訓練引導學生用計算機的思維表達解決問題的過程,以最終實現算法,這就是程序設計算法的根本。switch、算法和流程圖-OK共71頁,您現在瀏覽的是第62頁!2022/12/1063聯(lián)系郭素梅(GUOSumei)Phone: 0756-362-2865Office: HA206/205Email: cnjpguoau@live.jpChat:
MSN(常用) cnjpguoau@live.jp
QQ(不常用) 1395092737switch、算法和流程圖-OK共71頁
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論