资源描述
,按一下以編輯母片標題樣式,按一下以編輯母片本文樣式,第二階層,第三階層,第四階層,第五階層,2021,*,演算法與程式設計,龍清榮,1,2021,演算法與流程圖,演算法(Algorithm),將要解決問題,以文字敘述表達,分析成一個個步驟,並給予執行先後順序,例如:輸入任何數給電腦,電腦能夠判斷它是奇數或偶數,2,2021,奇數或偶數演算法,步驟一:輸入一個數值N,步驟二:N不可以為0,如果為0表示重新回步驟一,步驟三:N給2除求餘數 M,步驟四:,假如餘數M為1表示N為奇數,否則為偶數,步驟五:結束,3,2021,正數開平方根演算法,步驟一:輸入一個數值N,步驟二:N不可以小於0,如果小於0表示結束,步驟三:印出N的平方根值,步驟四:,結束,4,2021,流程圖(Flowchart),一張圖勝過千言萬語,流程圖(Flowchart)是利用簡易符號圖表來表達演算法,5,2021,常用流程圖符號,處理,判斷,輸出/輸入,開始/結束,文件輸出,6,2021,求奇數或偶數的流程圖,M=N MOD 2,N=0,輸入 N,開始,偶數,M=1,奇數,結束,是,否,是,否,7,2021,求平方根的流程圖,N,0000,0000,F,F=,1111,1111,A,C=,1010,1100,8,4 =,1000,0100,0,0000,8,1000,1,0001,9,1001,2,0010,A,1010,3,0011,B,1011,4,0100,C,1100,5,0101,D,1101,6,0110,E,1110,7,0111,F,1111,10,2021,組合語言,ADD AX,08,運算碼,運算元,組合語言,組譯程式,機械語言,11,2021,高階語言種類,人=人,國語,台語,英語,日語,.,人=電腦,FORTRAN,COBOL,BASIC,C,PASCAL,LISP/PROLOG,HTML,4 GL,12,2021,HTML,個人網頁,我的 ,網頁 ,龍清榮 ,13,2021,高階語言解譯方式,編譯(compile),直譯(interpret),程式,翻譯,目的,連結,執行,程式,直譯,執行,14,2021,程式語言的組成,常數,運算過程中不會變動的值,P=3.14159,變數,運算過程中會變動的值,A=A+1,15,2021,變數的命名,第一個字元必須為英文字,變數名稱不能超過255個,不可以為保留字,例如 end(結束),input(輸入),16,2021,基本運算,算數運算(加,+,/減,-,/乘,*,/除,/,),關係運算(大於,/小於,關係運算邏輯運算,18,2021,算數運算優先權,算數運算,()括號7*(3+2)=35,指數3+72=52,-負號-7+3=-4,*/乘除7*3/2=10.5,整除73=2,MOD取餘數7 MOD 3=1,+-加減7+3-2=8,優先權,19,2021,算數運算,3+4*2,11,*的優先權比+要先處理,4 MOD 2 3,-3,MOD 的優先權比 要先處理,3+4*2 4 MOD 2 3,8,40.2 MOD 2.7 1,PS:40.2 MOD 2.7 40.2及2.7要先四捨五入法轉成整數再計算,,原式等於,40 MOD 3,20,2021,算數運算練習,7,+,5,mod,2,+,4,*,3,7,5,*,2,6,2,/,4,15,3,6,*,2,/,4,21,2021,算數運算練習(解答),7,+,5,mod,2,+,4,*,3,7,13,5,*,2,6,2,/,4,1,15,3,6,*,2,/,4,2,22,2021,關係運算優先權,關係運算,(優先權相同,由左到右依序處理),=等於A=B,大於AB,小於A=大於等於A=B,=小於等於A 5,0 (假),5 3 -1 (真)ps:不是1,請特別注意,說明:值以二進位8個位元表示,假:,0000,0000,2,(0),真:,1111,1111,2,(-1),24,2021,邏輯運算優先權,邏輯運算,NOT反A,NOT,B,AND及(且)A,AND,B,OR或A,OR,B,XOR互斥A,XOR,B,運算順序,NOT AND ORXOR,25,2021,邏輯運算真值表,A,not A,0,1,1,0,A,B,A and B,0,0,0,0,1,0,1,0,0,1,1,1,A,B,A or B,0,0,0,0,1,1,1,0,1,1,1,1,A,B,A xor B,0,0,0,0,1,1,1,0,1,1,1,0,26,2021,邏輯運算,邏輯運算 3 AND 5=1,00000011(3),00000101(5),00000011(3),AND 00000101(5),00000001(1),邏輯運算 3 OR 5=7,00000011(3),00000101(5),00000011(3),OR 00000101(5),00000111(7),27,2021,運算進階範例(錯誤),3,+,14,MOD,8,*,6,MOD,7,2.2,+,6,1,2,3,4,5,6,1,*6=,6,6,2.2=,2,17,MOD 8=,1,6,MOD 7=,6,3+14=,17,2,+6=,8,28,2021,運算進階範例(正確),3,+,14,MOD,8,*,6,MOD,7,2.2,+,6,1,2,3,4,5,6,8*6=48,72.2=3,14 MOD 48=14,14 MOD 3=2,3+2=5,5+6=11,29,2021,運算範例(關係及算數運算),3,+,5,7,*,4,5,1,2,3,4,285=5,7*4=28,3+5=8,8,3 or 2,*,4,1,2,3,2*4=8,5 3=-1,-1 or 8=-1,31,2021,流程圖與程式,START:,INPUT N,IF N=O THEN GOTO START,M=N MOD 2,IF M=1 THEN PRINT“ODD”,ELSE PRINT“EVEN”,END,32,2021,結構化程式,增進程式設計師的生產力,降低程式的複雜度,減少程式測試時間,降低程式設計的維護費用,33,2021,結構化程式的控制結構,順序(sequence),選擇(select),重複(repeat),34,2021,結構化程式的特色,由上而下,模組化,獨立性,不使用GOTO,35,2021,結構化程式基本邏輯,IF/THEN/ELSE,SELECT CASE,FOR/NEXT/STEP,DO WHILE/LOOP,36,2021,IF/THEN/ELSE,IF(假如)/THEN(則)/ELSE(否則),IF 條件式 THEN 真,ELSE 假,條件,真,假,37,2021,IF/THEN/ELSE,輸入,一個值,判斷該值是否大於60,假如,大於60,則,顯示及格,否則,顯示不及格,CLS,INPUT,SCORE,IF,SCORE =60,THEN,PRINT“及格”,ELSE,PRINT“不及格”,END IF,真,假,則,否則,假如,輸入,38,2021,IF/THEN/ELSE,輸入一個值,判斷該值是否大於90,如果大於90顯示“A”,介於8089顯示“B”,介於7079顯示“C”,介於6069顯示“D”,小於60顯示“E”,CLS,INPUT SCORE,IF SCORE =90 THEN PRINT“A”,IF SCORE =80 AND SCORE =70 AND SCORE =60 AND SCORE 70 THEN PRINT“D”,IF SCORE 60 THEN PRINT“E”,39,2021,SELECT CASE,SELECT(選擇)/CASE(狀態),條件,動作1,動作2,動作3,動作N,.,40,2021,SELECT CASE,輸入一個值,若為1顯示甲,若為2顯示乙,若為3顯示丙,其餘其他值則顯示丁,INPUT A,SELECT CASE,A,CASE 1,PRINT“甲”,CASE 2,PRINT“乙”,CASE 3,PRINT“丙”,CASE ELSE,PRINT“丁”,END SELECT,A,甲,乙,丙,丁,41,2021,FOR/NEXT/STEP,FOR(從)/NEXT(下一步)/STEP(間隔),處理事項,I=1,I=10,處理事項,範圍內,範圍外,42,2021,FOR/NEXT,顯示一個從1到10的數字,FOR I =,1,TO,10,PRINT I,NEXT I,初值,終值,43,2021,FOR/NEXT,顯示一個從1到9的奇數,FOR I =1 TO 10 STEP,2,PRINT I,NEXT I,增值,44,2021,FOR/NEXT,顯示一個從2到10的偶數,FOR I =,2,TO,10,STEP,2,PRINT I,NEXT I,45,2021,DO WHILE/LOOP,DO(做)WHILE(當)/LOOP(迴圈),條件,處理,真,假,46,2021,DO WHILE/LOOP,顯示一個從1到10的數字,I=1,DO WHILE I =10,PRINT I,I =I +1,LOOP,47,2021,DO WHILE/LOOP,顯示一個從1到9的奇數,I =1,DO WHILE I =10,PRINT I,I =I +2,LOOP,48,2021,DO WHILE/LOOP,顯示一個從2到10的偶數,I =2,DO WHILE I =10,PRINT I,I =I +2,LOOP,49,2021,練習,顯示一個從5,15,25,35,45,55,65,75,85,95的數,請用 FOR/NEXT/STEP,請用 DO WHILE/LOOP,50,2021,練習解答(FOR/NEXT/STEP),FOR I =5 TO 95 STEP 10,PRINT I,NEXT I,51,2021,練習解答(DO WHILE/LOOP),I =5,DO WHILE I =95,PRINT I,I =I +10,LOOP,52,2021,作業,顯示一個從21,24,27,30,33,36,39,42的數,請用 FOR/NEXT/STEP,請用 DO WHILE/LOOP,53,2021,巢狀迴圈(一),FOR,I,=1 TO 4,FOR J =,1,TO,I,PRINT J;,NEXT J,PRINT,NEXT I,此程式會出現,1,12,123,1234,內迴圈,外迴圈,54,2021,巢狀迴圈(二),FOR I =1 TO,3,FOR J =,1,TO,9,PRINT I ,J,NEXT J,NEXT I,此程式會出現,19,共,三,次,內迴圈,外迴圈,55,2021,五五乘法表(一),CLS,FOR I =1 TO 5,FOR J =,1,TO,5,PRINT I ;“X“;J;“=“;,NEXT J,PRINT,NEXT I,56,2021,五五乘法表(二),CLS,FOR I =1 TO 5,FOR J =,1,TO,5,PRINT I ;“X“;J;“=“;I*J;,NEXT J,PRINT,NEXT I,57,2021,九九乘法表(三),CLS,FOR I =1 TO 9,FOR J =1 TO 9,PRINT USING “#X#=#“;I;J;I*J;,NEXT J,PRINT,NEXT I,58,2021,作業,59,2021,等差級數,求 1+2+3+4+5+.+10,CLS,SUM=0,FOR I =1 TO 10,SUM=SUM+I,NEXT I,PRINT SUM,I,SUM,1,1,2,3,3,6,4,10,5,15,6,21,7,28,8,36,9,45,10,55,60,2021,練習,求1+3+5+7+9+99,求1,2,+2,2,+3,2,+.+10,2,61,2021,解答,求1+3+5+7+9+99,CLS,SUM=0,FOR I =1 TO 99 STEP 2,SUM =SUM +I,NEXT I,PRINT SUM,62,2021,解答,求1,2,+2,2,+3,2,+.+10,2,CLS,SUM=0,FOR I =1 TO 10,SUM =SUM +,I 2,NEXT I,PRINT SUM,表示 I,2,63,2021,等比級數,求 1*3*5*7*9*11*13*15,CLS,SUM=1,FOR I =1 TO 15 STEP 2,SUM=SUM *I,NEXT I,PRINT SUM,64,2021,作業(一),求3*13*23*33*43=1272843,求2,2,+4,2,+6,2,+.+20,2,=1540,65,2021,作業(二),求2*5*8*11*14*17*20=4188800,求3,3,+6,3,+9,3,+.+30,3,=81675,66,2021,作業(三),求4*9*14*19*24=229824,求5,2,+7,2,+9,2,+.+29,2,=4485,67,2021,
展开阅读全文