Microsoft PowerPoint - 06_迴圈2.pptx

Similar documents
PowerPoint 簡報

CHAPTER VC#

Microsoft Word - ACL chapter02-5ed.docx

C/C++ 语言 - 循环

<4D F736F F D DA5BFA6A1C476C1C92DBEC7ACECB8D5A8F728B57BB35D292E646F63>

FY.DOC

(Microsoft Word - 11\244T\246\342\277\337\260l\302\334.doc)

Microsoft Word - Chap05.doc

C/C++ - 字符输入输出和字符确认

untitled

Excel VBA Excel Visual Basic for Application

Microsoft Word - 第3章.doc

C/C++语言 - C/C++数据

2011-论文选集-2.cdr

C/C++语言 - 运算符、表达式和语句

碩命題橫式

Microsoft PowerPoint - ds-1.ppt [兼容模式]

公務員懲戒法實務及新制

大小通吃-糖尿病


98825 (Project Sunshine) Chi_TC_.indb

(Microsoft Word - outline for Genesis 9\243\2721\243\25529.doc)

穨Shuk-final.PDF

2

招行2002年半年度报告全文.PDF

Microsoft Word _4

郑州大学(下).doc

厨房小知识(六)

广 东 纺 织 职 业 技 术 学 院 发 展 党 员 公 示 制 实 施 办 法 关 于 推 荐 优 秀 团 员 作 为 党 的 发 展 对 象 工 作 的 意 见 后 勤 管 理 工 作 广 东 纺 织 职 业 技 术 学 院 新 引 进 教 职 工 周 转 房 管 理


游戏攻略大全(五十).doc

金融英语证书考试大纲


健康知识(二)

中南财经大学(二).doc

广西大学(一).doc

根据学校教学工作安排,2011年9月19日正式开课,也是我校迁址蓬莱的第一学期开学

山东大学(一).doc

2

主 编 : 杨 林 副 主 编 : 张 新 民 邹 兰 曹 纯 纯 周 秋 婷 李 雅 清 黄 囡 囡 评 审 顾 问 : 杨 林 张 新 民 评 审 : 张 新 民 邹 兰 曹 纯 纯 周 秋 婷 李 雅 清 黄 囡 囡 李 忆 萍 徐 如 雪 文 字 编 辑 : 曹 纯 纯 邹 兰 李 雅 清

最新文物管理执法全书(十四).doc

园林常识(二).doc

前 言 二 一 六 年 四 月 四 日, 兒 童 節, 誕 生 了 一 件 美 事 : 中 國 作 家 曹 文 軒 在 意 大 利 博 洛 尼 亞 國 際 童 書 展 榮 獲 國 際 安 徒 生 文 學 獎, 是 該 獎 創 設 六 十 年 來, 第 一 位 摘 桂 的 中 國 作 家, 意 義 重

湖 南 科 技 大 学

上海外国语大学(二).doc

2009 陳 敦 德

切 实 加 强 职 业 院 校 学 生 实 践 能 力 和 职 业 技 能 的 培 养 周 济 在 职 业 教 育 实 训 基 地 建 设 工 作 会 议 上 的 讲 话 深 化 教 育 教 学 改 革 推 进 体 制 机 制 创 新 全 面 提 高 高 等 职 业 教 育 质 量 在

鸽子(三)

兽药基础知识(四)

园林植物卷(十).doc

园林植物卷(十七).doc

临床手术应用(三)

家装知识(二十)

医疗知识小百科

家庭万事通(一)

家装知识(三)

园林绿化(一)

园林植物卷(十五).doc

最新监察执法全书(一百五十).doc

兽药基础知识(三)

奥运档案(四).doc

最新监察执法全书(五十).doc

最新执法工作手册(三百八十四)

中华美食大全4

动物杂谈_二_.doc

抗非典英雄赞歌(三)

新时期共青团工作实务全书(三十五)

经济法法律法规第十九卷

游戏攻略大全(五十九).doc

火灾安全实例

兽药基础知识(七)

实用玉米技术(二)

中国政法大学(一).doc

水产知识(一)

國立中山大學學位論文典藏.PDF

Microsoft Word mpc-min-chi.doc

( ) 1

穨cwht.PDF

900502_Oasis.indb

bnb.PDF

untitled

Microsoft Word - om388-rnt _excl Items 16 & 38_ _final_for uploading_.doc

% 25% (i) 95% 96,290,900 (ii) 99.9% 17,196,000 (iii) 99.9% 89,663,100 2

¨Æ·~½g¡ã¾·~¤ÀÃþ

游戏攻略大全(五十二).doc

游戏攻略大全(五十一).doc

Microsoft PowerPoint - 02_運算.pptx

C/C++程序设计 - 字符串与格式化输入/输出

C

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

CHAPTER 1

CC213

Java 程式設計初階 第 5 章:基本輸出入 & 流程控制

0704

untitled

######## First set of commands x <- 0.5; y <- 0 if (x>3) y <- 1 else y <- 2 ######## Second set of commands x <- 0.5; y <- 0 if (x>3) y <- 1 else ###

untitled

Spyder Anaconda Spyder Python Spyder Python Spyder Spyder Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Sp

新・解きながら学ぶJava

Transcription:

資料型別的選擇 如果資料或是運算過程可能會出現小數點 (e.g. BMI), 宜使用浮點數 (double, float) char 僅能儲存一個英文字 數字 或是英文中出現的標點符號等等鍵盤上可直接看得到 按得出的符號 若要儲存中文字, 目前建議使用 string 型別 A 和 A 的差別, 我們目前還沒辦法說得很詳細 只能說一個是字元 一個是字串 布林運算式的寫法 如果 x 等於, 就印出 Hello 如果 x 等於 或是, 就印出 Hello 如果 x 大於 且小於 8, 就印出 Hello 如果 x>=y >= z, 就印出 Hello if(x=) cout << "Hello"; if(x== ) cout << "Hello"; if(x== < 8) cout << "Hello"; if(x>=y>=z) cout << "Hello"; 布林運算式的正確寫法 如果 x 等於, 就印出 Hello 如果 x 等於 或是 x 等於, 就印出 Hello 如果 x 大於 且 x 小於 8, 就印出 Hello 如果 x >=y 而且 y >= z, 就印出 Hello if(x==) cout << "Hello"; 一次輸入多筆資料 cin >> x, y, z; cin >> x >> y >> z; if(x== x==) cout << "Hello"; if(x> && x<8) cout << "Hello"; if(x>=y && y>=z) cout << "Hello"; 6 回顧 平方 的平方 #include<iostream> int x = ; int y = x ^ ; ^ 的確是 C/C++ 裡的一佪運算子, 但是它的運算不是大家在 Excel 裡知道的運算 ^ 進行的運算稱為 exclude or, 簡寫為 xor for ( ; ; ) { break; cout << y << endl; continue;

7 8 for 迴圈 for (i=0; i<; i++) { 令 i = 0 0 < true i++; < true 6-.cpp int x, i; cout << "\n 請輸入一個正整數 ; "; cin >> x; 迴圈被執行到時初始化的動作 迴圈要執行或要被繼續執行的條件 迴圈完成一次後要做的動作 迴圈內欲重複執行的敍述 迴圈結束後要執行的敍述 i++; < true i++; < false for(i=;i<=x;i++) { if(x % i == 0) break; if(i == x) cout << x << " 為質數 "; else cout << x << " 不是質數, 可以被 " << i << " 整除 "; 9 0 今日內容 while 迴圈 Lecture 6 while do while 無窮迴圈巢狀迴圈 do/while 迴圈 巢狀迴圈 無窮迴圈 while 迴圈 while 的語法 while ( 條件運算式 ) { 欲重複執行的程式片斷 ; 其中條件運算式 / 布林運算式的部份與 if 的寫法一樣 count>0 a<0 && b<0 while 和 for 迴圈一樣, 都會先檢查條件運算式的結果決定迴圈的內容是否會被執行, 所以有可能一次都不會被執行

6-.cpp int count, sum=0; cout << " 請輸入一個整數 : "; cin >> count; while(count>0) { sum = sum + count; cout<< "count=" << count << ", sum=" << sum << endl; count--; 請輸入一個整數 : 0 count=0, sum=0 count=9, sum=9 count=8, sum=7 count=7, sum= count=6, sum=0 count=, sum= count=, sum=9 count=, sum= count=, sum= count=, sum= 6-.cpp int ans; bool isodd = true; while(isodd) { cout << " 請輸入一個偶數 : "; cin >> ans; isodd = (ans % == ); cout << " 你輸入了一個偶數 : " << ans << endl; 請輸入一個偶數 : 請輸入一個偶數 : 請輸入一個偶數 : 請輸入一個偶數 : 7 請輸入一個偶數 : 6 你輸入了一個偶數 : 6 6 6-.cpp 費氏級數 (Fibonacci number) 之定義如下 :,,,,, 8,,, 級數中每個數字皆為級數中的前兩個數字加總 如何寫一個程式依序列出級數中小於 0 的各項?. 我們自己會怎麼作?. 過程當中我們需要同時記得幾個資料? 6-.cpp int a=, b=, c=a+b; cout << a << ", " << b << ", "; while(c<=0) { a=b; b=c; cout << b << ", "; c=a+b;,,,,, 8,,,,, 89,, 7 8 do/while 迴圈 do/while 的語法 do { 欲重複執行的程式片段 ; while ( 布林運算式 ); 很重要 其中布林運算式的部份與 if 的寫法一樣 count>0 a<0 && b<0 do/while 迴圈與 while 或 for 最大不一樣的地方在於它的條件判斷在迴圈內容之後, 亦即它的迴圈內容被保證至少執行到一次 記得 while ( ) 之後要加分號!

9 0 6-.cpp 請輸入你的身高 ( 公分 ): 70 請輸入你的體重 ( 公斤 ): 60 你的 BMI 值為 : 0.76 再算一次請按 y: y 請輸入你的身高 ( 公分 ): 80 請輸入你的體重 ( 公斤 ): 60 char again; 你的 BMI 值為 : 8.8 float weight, height, BMI; 再算一次請按 y: y do { 請輸入你的身高 ( 公分 ): 7 cout << " 請輸入你的身高 ( 公分 ): "; 請輸入你的體重 ( 公斤 ): cin >> height; 你的 BMI 值為 : 8.9 cout << " 請輸入你的體重 ( 公斤 ): "; 再算一次請按 y: n cin >> weight; BMI = weight*0000 / height / height; cout << " 你的 BMI 值為 : " << BMI << endl; cout << " 再算一次請按 y: "; cin >> again; while(again=='y' again=='y'); 6-6.cpp int ans; do { cout << " 請輸入一個偶數 : "; cin >> ans; while(ans%!= 0); cout << " 你輸入了一個偶數 " << endl; 請輸入一個偶數 : 請輸入一個偶數 : 請輸入一個偶數 : 請輸入一個偶數 : 7 請輸入一個偶數 : 6 你輸入了一個偶數 小結 while 迴圈 0 < true while do while 注意, 之前介紹過的 break 與 continue 一樣也可以使用在 while / do-while 迴圈內 int a = 0; while( a < ) { < true < true 判斷迴圈內容是否執行或繼續執行 迴圈內欲重複執行的敍述. < false 迴圈結束後要執行的敍述. do/while 迴圈 int a = 0; do { while(a<); < true < true 無窮迴圈 Infinite loop 迴圈內欲重複執行的敍述 迴圈要執行或要被繼續執行的條件 < false 迴圈結束後要執行的敍述

6 無窮迴圈 (Infinite loop) 沒有結束的迴圈 用於無論在迭代開始 (for, while) 或是結束 (do/while) 來判斷是否進行下次迭代都不合適的時候, 一般配合 break 使用 真的不想結束程式的時候 for(;;) { while(true) { do { while(); 6-7.cpp 這個 else 有沒有差別? int choice; 對程式執行結果而言, 沒有! 就程式效率而言, 有! for(;;) { cout << "\n 歡迎使用本程式 "; cout << "\n 輸入 ) 問候, ) 感謝, ) 再見 : "; cin >> choice; if(choice==) break; if(choice==) { cout << "\nhello there. How are you? "; else if(choice==) { cout << "\nthank you ver much. "; cout << "\nsee you next time" << endl; 7 8 歡迎使用本程式輸入 ) 問候, ) 感謝, ) 再見 : Hello there. How are you? 歡迎使用本程式輸入 ) 問候, ) 感謝, ) 再見 : Thank you ver much. 歡迎使用本程式輸入 ) 問候, ) 感謝, ) 再見 : 巢狀迴圈 nested loop Hello there. How are you? 歡迎使用本程式輸入 ) 問候, ) 感謝, ) 再見 : See you next time 9 0 巢狀迴圈 就是迴圈裡面還有迴圈 for, while, do/while 三種迴圈可以互相混合 層數幾乎沒有限制 被包起來的迴圈稱作 內迴圈 (inner-loop), 包其它迴圈的稱作 外迴圈 (outer-loop) 外迴圈 (i) 通常不會使用或參考到內迴圈的計數器 (j) 內外層的迴圈計數器的增量通常獨立控制 內迴圈 (j) 有時會參考到外迴圈 (i) 的計數器 第一層迴圈 第二層迴圈 for(i=0;i<;i++) { cout << "*, i=" << i << endl; for(j=0;j<;j++) { cout << "**, i=" << i << ", j=" << j << endl; 6-8.cpp int j; for(int i=0; i<=0; i=i+) { cout << "* " << i << endl; for(j=; j<=; j++) { cout << "** " << i << ", " << j << endl; cout << "+ " << i << ", " << j << endl; * 0 ** 0, ** 0, ** 0, + 0, * **, **, **, +, * 0 ** 0, ** 0, ** 0, + 0,

a b a b 6-8.cpp c b int j; c b a b c c b for(int i=0; i<=0; i=i+) { c b cout << "* " << i << endl; a b a b c c b for(j=; j<=; j++) { c b cout<<"** "<<i<<", "<<j<<endl; c b c b cout<<"+ "<<i<<", "<<j<<endl; a b c b 6 c b c b c b 6 * 0 ** 0, ** 0, ** 0, + 0, * **, **, **, +, * 0 ** 0, ** 0, ** 0, + 0, 6-9.cpp int i, j; for(i=0; i<; i++) { for(j=0; j<; j++) { cout << "*"; cout << endl; 6-0.cpp int i, j; for(i=0; i<0; i++) { for(j=0; j<i; j++) { cout << "*"; cout << endl; * ** *** * ** *** * 6-.cpp 我們想列出兩位數字中 ( 總共有幾個?) 各個位數不相同者, 並計算總共有幾個符合條件的數字 e.g.,, 等不符合條件. 我們怎麼列出所有兩位數?. 我們怎麼將需求之條件 ( 各個位數不相同者 ) 寫成程式? 6 6-.cpp int count=0; for(int i=;i<0;i++) { for(int j=0;j<0;j++) { if( i!= j ) { cout << i << j << endl; count++; cout << " 共有 : " << count << endl; 隨堂練習 6

7 8. 排列組合 參考輸出 請寫一程式, 列出 0 所組成的三位數中互相不重複的所有數字, 並印出共有幾個符合條件的數字 Hint : 每一位數由一個迴圈控制 Hint : 使用條件判斷 + continue 或是 break 跳過不要的數字 Hint : 如果自己想不出來的話, 可以參考 6-.cpp 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7