請大家準時上課.

Slides:



Advertisements
Similar presentations
软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
Advertisements

多元評量與 Greenfoot 簡介 南港高中高慧君. 演講大綱 多元評量 高中階段程式設計教學目標與困境 Greenfoot 快速入門 – 袋熊吃樹葉 – 沙灘螃蟹 Greenfoot 臺灣社群介紹 2.
单元二:面向对象程序设计 任务二:借书卡程序设计.
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
JAVA 编 程 技 术 主编 贾振华 2010年1月.
第一單元 建立java 程式.
性别决定与伴性遗传 性别决定 伴性遗传 巩固练习.
計算機程式語言實習課.
Java程序设计教程 第一讲 Java概述.
四資二甲 第三週作業 物件導向程式設計.
C#程序设计案例教程 第3章 程 序 结 构.
JAVA 程式設計 資訊管理系 - 網路組.
TQC+ 物件導向程式認證-JAVA.
性别决定与伴性遗传.
程設一.
陳維魁 博士 儒林圖書公司 第九章 資料抽象化 陳維魁 博士 儒林圖書公司.
第二章 JAVA语言基础.
第20章 生物的遗传和变异 第四节 性别和性别决定 淮南二十六中 鲍娟娟. 第20章 生物的遗传和变异 第四节 性别和性别决定 淮南二十六中 鲍娟娟.
資料結構使用Java 第1章 資料結構與Java程式複習.
程式設計實作.
Q1: 追蹤程式: 印出結果? 搶答 while (i<=n) { p=p*i; i=i+2; }
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
臺北市立大學 資訊科學系(含碩士班) 賴阿福
控制流程 邏輯判斷 迴圈控制.
物件導向程式設計 (Object-Oriented rogramming)
分支 (selection,branch)概念再複習
流程控制結構 4-1 流程控制與UML活動圖 4-2 程式區塊與主控台基本輸入 4-3 條件控制敘述 4-4 迴圈控制敘述 4-5 巢狀迴圈
實作輔導 日期: 3/11 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
第3章 語法入門 第一個Java程式 文字模式下與程式互動 資料、運算 流程控制.
Java 程式設計 講師:FrankLin.
101北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
Java程式概觀.
程式設計實作.
第2章回顾 标识符:不用记,动手 关键字:if, else, switch, for, while, do, break, continue, void, …… 局部变量和成员变量 ①变量作用域 ②内存布局 基本数据类型 ①4类8种 ②互相转换 流程控制语句 ①分支 if……else, switch.
程式撰寫流程.
類別(class) 類別class與物件object.
臺北市立大學 資訊科學系(含碩士班) 賴阿福
實作輔導 3 日期: 4/14(星期六) 09:10~12:00、13:10~16:00
實作輔導 4 日期: 4/21(星期六) 13:10~16:00、13:10~16:00
Java 程式設計 講師:FrankLin.
邏輯關係運算 == 等於 & 且 (logical and) ~= 不等於 | 或 (logical or) < 小於
Ch02-基礎語法.
C/C++/Java 哪些值不是头等程序对象
第一單元 建立java 程式.
* 單元:電腦與問題解決 主題:Java物件導向程式設計-類別與物件 台南縣國立善化高中 蕭嘉民 老師
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
Week 2: 程式設計概念與 演算法的效能評估
實作輔導 2 日期: 3/24(星期六) 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
第二章Java基本程序设计.
第二章 Java基本语法 讲师:复凡.
JAVA 程式設計 資訊管理系 - 網路組.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
實作輔導 本周5/5(六)安排實作輔導 二時段: 周六 11:00~12:30 周六13:30~15:30.
陣列與結構.
龍老師我不會Debug QQ.
北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
迴圈(重複性結構) for while do while.
JAVA 程式設計與資料結構 第三章 物件的設計.
對於成員(member)存取權的限制 成員的資料被毫無限制的存取,任誰都可以指定任意值給成員,Java語言為了防止這種現象的產生,規定:有一種成員的資料不能任由類別外部的任何人隨意存取。
Programming & Language Telling the computer what to do
迴圈(重複性結構) for while do while.
判斷(選擇性敘述) if if else else if 條件運算子.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
第二章 Java基础语法 北京传智播客教育
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
方法(Method) 函數.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
InputStreamReader Console Scanner
Presentation transcript:

請大家準時上課

實作輔導 2 日期: 3/24(星期六) 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口) 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口) 公誠樓三樓 G316 電腦教室(資訊科學系) 可自行攜帶筆電 目標:協助習題、安裝java 環境、path設定 參加者:請email 給laiahfur@gmail.com 或直接到輔導地點 下次預定: 4/14 (星期六) 09:10~16:00

搶答 1.宣告w為整數變數請寫此敘述(指令)?宣告目的為何?

搶答 2.將w整數變數內容放入80;

搶答 3.將w整數變數原本內容再增加15?

搶答 4.將w的整數變數內容放入(set)z整數變數?

搶答 5.將w及z整數變數內容相乘後,放入y整數變數內容?

搶答 6.將w整數變數內容清除為0?

搶答 7.下列哪些變數名稱是不合法的?(複選) (1)x-y (2)x+y (3)3pig (4)x4B (5)x*y

搶答 8.那些變數的名稱不合法invalid? (1) a_2 (2) 123pp (3) p+q (4) f%3

搶答 9.x+3=z*k; 上述Bug在何處?如何修改才會正確?

解答 1.宣告w為整數變數,請寫此敘述(指令)?宣告目的為何? Ans: int w;宣告目的在於請求系統依資料型態配給一塊記憶體 Ans: w=80; 3.將w整數變數原本內容再增加15? Ans: w=w+15; 4.將w的整數變數內容放入(set)z整數變數?(z已宣告) Ans: z=w; 5.將w及z整數變數內容相乘後,放入y整數變數內容? (y已宣告) Ans: y=w*z; 6.將w整數變數內容清除為0? Ans: w=0;

解答 7.下列哪些變數名稱是不合法的?(複選) (1)x-y (2)x+y (3)3pig (4)x4B (5)x*y Ans: 1, 2, 3, 5 8.那些變數的名稱不合法(invalid)? (1) a_2 (2) 123pp (3) p+q (4) f%3 Ans: 2, 3,4 9.x+3=z*k; 上述Bug在何處?如何修改才會正確? Ans: x_3=z*k;或 x3=z*k;或 x=z*k;

搶答: 變數內容追蹤, 印出結果? int X=10, Y=4, Z=15; X=X+1; X=X+Y; Z=(Y*Y)%(X-1); System.out.println(“X=“+X+”, Z=“+Z); 思考三分鐘後,請在ADOBE connect 右下角聊天區作答!

分支 (selection,branch) 程式會轉彎 臺北市立大學 資訊科學系(含碩士班) 賴阿福

變數(variable)概念複習 何謂變數?執行時,變數存在何處? 變數有何用途? 變數有哪些型態(data type)? 為何需有不同型態? 變數如何宣告?為何要宣告? 變數內容如何給初值? 變數內容如何存、取:存入(store, set)、取出(get, retrieve)

變數概念複習 何謂變數?變數存在何處? 變數有何用途? 變數有哪些型態? 為何需有不同型態? 變數如何宣告? 變數內容如何給初值? 變數代表程式要使用一塊RAM,存在RAM 變數有何用途? 紀錄、存放變動資料 變數有哪些型態? 整數、浮點數、字串、boolean、char 為何需有不同型態? 不同型態有不同用途、值域 變數如何宣告? int p,q,r; 變數內容如何給初值? int p=9,q; 變數內容如何存、取:存入(透過=)、取出 存入 p=100; 取出 System.out.print(“p=“+p); int p; int q; int r;

比較 (連連看) Math x=x+1 y=x+1 x-1=y+8 Java x=x+1; If (y==x+1) 比較 (連連看) Math x=x+1 y=x+1 x-1=y+8 Java x=x+1; If (y==x+1) If (x-1==y+8) 方程式 指定運算 條件式(等於) 不存在(bug)

變數內容互換(swap, exchange) int p=50, q=70; p=q;  q=p;  50 70    p p p q q q 思考三分鐘!將每敘述造成改變,填入RAM CORRECT? INCORRECT?

變數內容互換1(swap, exchange) int p=50, q=70, t1,t2; t1=p;  t2=q; p=t2;  q=t1; 50 70   p p p  q q q t1 t1 t1 t2 t2 t2   思考三分鐘!將每敘述造成改變,填入RAM CORRECT? INCORRECT? p p q q t1 t1 t2 t2

變數內容互換2(swap, exchange) int p=50, q=70, t; t=p;  p=q; q=t;  50 70    p p p q q q t t t  p 思考三分鐘!將每敘述造成改變,填入RAM CORRECT? INCORRECT? q t

少,是王道!The less, the better! 變數用得越少越好? 敘述(code)寫得越少越好,Why? 資源: CPU time, RAM For Portable devices

從循序(sequence)結構到分支/選擇 (Branch/selection)結構: 程式會轉彎 再談分支/選擇

條件式 判斷成績(SC)及格與否: 條件為真(true),印出”及格” 否則,印出”不及格” sc>=60條件式是屬於關係運算式 false 判斷成績(SC)及格與否: 條件為真(true),印出”及格” 否則,印出”不及格” sc>=60條件式是屬於關係運算式 if (sc>=60) 印出”及格” else 印出”不及格” true 印出”及格” 印出”不及格”

條件式 條件為真(true),印出”及格” 否則,印出”不及格” if !(sc<60) 印出”及格” else 印出”不及格” false 條件為真(true),印出”及格” 否則,印出”不及格” !(sc<60) 條件式 (sc<60)是關係運算式 !是反向邏輯(not) if !(sc<60) 印出”及格” else 印出”不及格” true 印出”及格” 印出”不及格”

條件式 條件為真(true),印出”不及格” 否則,]印出” 及格” sc<60條件式是屬於關係運算式 if (sc<60) false 條件為真(true),印出”不及格” 否則,]印出” 及格” sc<60條件式是屬於關係運算式 if (sc<60) 印出”不及格” else 印出” 及格” true 印出”不及格” 印出” 及格”

分支靠”條件” 條件 條件 關係運算式 邏輯運算式 結果: == 等於 != 不等於 >、<、<=、>= && :and且 || :or 或 ! :not反/非 結果: True:真 False:偽

判斷偶數、奇數? 如果條件為真(true),印出”偶數” 否則,印出”奇數” n%2==0條件式是屬於關係運算式 if (n%2==0) false 如果條件為真(true),印出”偶數” 否則,印出”奇數” n%2==0條件式是屬於關係運算式 if (n%2==0) 印出”偶數” else 印出”奇數” true 印出”偶數” 印出”奇數”

判斷偶數、奇數? import java.util.Scanner; public class evennumber { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("輸入數值:"); int n = input.nextInt(); if (n%2==0) System.out.println(n+"是偶數!"); else System.out.println(n+"是奇數!"); }

判斷偶數、奇數?改變條件式 如果條件為真(true),印出”奇數” 否則,印出”偶數” n%2==1條件式是屬於關係運算式 false 如果條件為真(true),印出”奇數” 否則,印出”偶數” n%2==1條件式是屬於關係運算式 if (n%2==1) 印出”奇數” else 印出” 偶數” true 印出”奇數” 印出”偶數”

邏輯運算式 A B A and B A && B A or B A || B Not A !A F T

條件:邏輯運算式 (立即搶答) if (nn>=100 && nn<=999) && : and (及) 符合條件數值範圍? If (nn>=100 || nn<=999) || : or (或) If (nn<100 || nn>999) If (nn<100 && nn>999) if !(nn>=100 && nn<=999) ! : not (反)

條件:邏輯運算式 (立即搶答) if (nn>=100 && nn<=999) && : and (及) 交集 符合條件數值範圍? 100<= nn <=999 If (nn>=100 || nn<=999) || : or (或) 聯集 符合條件數值範圍? unlimited If (nn<100 || nn>999) 符合條件數值範圍? 100~999之外 If (nn<100 && nn>999) 符合條件數值範圍? 無此 if !(nn>=100 && nn<=999) ! : not (反) 符合條件數值範圍? Same as (nn<100 || nn>999) 100 999

不只算BMI,再探討條件式判斷體位BMI

判斷體位是否標準? 健康體位 不標準體位 選擇/分支 (selection) BMI>=18.5 && BMI<24 選擇/分支 (selection) False if (BMI>=18.5 && BMI<24) System.out.print("健康體位 Normal\n\n"); else System.out.print("不標準體位\n\n"); //source file: BMI-2a True 健康體位 不標準體位

BMI診斷分成二層次 if (bmi>=18.5 && bmi < 24) status = "正常Normal"; else import java.util.Scanner; public class BMI_2 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("輸入身高:"); double height = input.nextDouble(); System.out.print("輸入體重:"); double weight = input.nextDouble(); double bmi = Math.round((weight/ (height*height) )* 100) / 100.0; String status; if (bmi>=18.5 && bmi < 24) status = "正常Normal"; else status = "不標準體位"; System.out.println("BMI:"+bmi+",狀態: "+status); }//main }//class

將BMI診斷分成三層次(簡化)

比較 if (bmi < 18.5) status = "體重過輕Underweight"; else if (bmi>=18.5 && bmi < 24) status = "正常Normal (18.5<=BMI<24)"; else status = "過重Overweight"; if (bmi < 18.5) status = "體重過輕Underweight"; else if (bmi < 24) status = "正常Normal (18.5<=BMI<24)"; else status = "過重Overweight";

猜數字遊戲 運用亂數產生整數隨機數值 猜數字:讓使用者輸入數值 判斷答對與否

Nested if 輸入數值 No 輸入值等於亂數 yes No 輸入值大於亂數 印“猜對” yes 印“太大” 印“太小”

猜數字遊戲(1):運用亂數設計猜數字遊戲程式 多重分支 Multi-way if

亂數 運用亂數類別SecureRandom ,產生1~100隨機整數 SecureRandom sr = new SecureRandom(); a = sr.nextInt(100)+1; new SecureRandom()以建立sr物件,再用.nextInt(100)方 法/method產生0~99隨機整數 sr.nextInt(100) +1 import java.security.SecureRandom; 如何產生10~90隨機整數?

猜數字遊戲(2):運用亂數設計猜數字遊戲程式 巢狀分支 Nested if

猜數字遊戲(3):運用亂數設計猜數字遊戲程式 巢狀分支 Nested if

不同分支,相同結果 多重分支Multi-way if、巢狀分支Nested if、

猜數字遊戲之反思 目標: 讓初學者熟悉巢狀分支Nested if、多重分 支Multi-way if 邏輯變化 缺點:無法讓使用者依據太大、太小的回饋訊息 再次輸入數字, 應重複直至使用者不想玩。 Loop can do it

System.out.print("Please input a 3-digit decimal:"); Scanner ipt = new Scanner(System.in); int nn = ipt.nextInt(); int n1=nn%10; int n2=nn/10; System.out.print("You input nn="+nn+"; first digit="+n1+";"); System.out.println("higher digit="+n2);

判斷閏年(leap year)、平年(common year)

閏年、平年 格里高利曆(Calendarium Gregorianum)閏年規則如下: 每逢閏年,2月分有29日,平年的2月分為28日 閏年:閏年是比普通年分多出一段時間的年分,目的是為了彌補人為 規定的紀年與地球公轉產生的差異 格里高利曆(Calendarium Gregorianum)閏年規則如下: 4的倍數是可能的。 100的倍數是不可能的。 400的倍數是可能的。 每逢閏年,2月分有29日,平年的2月分為28日 公元前之閏年出現在1, 5, 9, 13, ... BC,須將年份值減1再 以「除以4」計算。(因為沒有公元0年這一年,所以公 元前1, 2, 3, 4, ... 年應該是公元0, -1, -2, -3, ... 年,而公元 前1, 5, 9, 13, ... 年為公元0, -4, -8, -12, ... 年,為4的倍數) https://zh.wikipedia.org/wiki/%E9%97%B0%E5%B9%B4

Not year被400整除 yes Not year被100整除 印“閏年” yes Not year被4整除 印“平年” yes 印“平年” 印“閏年”

Not year被400整除 yes Not Year不被100整除 印“閏年” yes Not year被4整除 印“平年” yes 印“平年” 印“閏年”

No year被400整除 ※ Yes Year不可被100整除 且可被4整除 No 印“閏年” Yes 印“閏年” 印“平年” 二分支都可得閏年:或(or)

(year被400整除 )或 (Year不可被100整除 且可被4整除) No Yes 印“閏年” 印“平年”

閏年規則轉成條件 閏年規則如下: if ((year%4==0 && year%100!=0)|| year%400==0) { 是4的倍數 不是100的倍數 是400的倍數 if ((year%4==0 && year%100!=0)|| year%400==0) { status = "閏年(leap year)!"; } else status = "平年(common year)!";

習作:輸入收縮壓及舒張壓判斷血壓類型(依血壓定 義) 說明: 簡化題目(輸入收縮壓,判斷血壓類型) 輸入收縮壓(mmHg): 145 輸入舒張壓(mmHg): 95 診斷結果:第一期高血壓 輸入收縮壓(mmHg): 161 診斷結果:第二期高血壓 分類 收縮壓(mmHg) 舒張壓(mmHg) 正常 <120 和 <80 高血壓前期 120-139 或 80-89 第一期高血壓 140-159 90-99 第二期高血壓 160-179 100-109 第三期高血壓 >=180 >=110