實作輔導 3 日期: 4/14(星期六) 09:10~12:00、13:10~16:00

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月.
第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
迴圈 迴圈基本觀念 while迴圈 do 迴圈 for迴圈 巢狀迴圈 迴圈設計注意事項 其他控制指令 迴圈與選擇的組合.
Java程序设计教程 第一讲 Java概述.
四資二甲 第三週作業 物件導向程式設計.
C#程序设计案例教程 第3章 程 序 结 构.
南京理工大学 第2章 Java基本语法 本章我们将学习Java编程语言的基本语法,包括变量、操作符、表达式、语句、字符串、数组、控制流以及如何使用帮助文档。 使用下面的编程框架: public class Test{ public static void main(String []args){ //以下添加测试代码.
TQC+ 物件導向程式認證-JAVA.
第 5 章 流程控制 (一): 條件分支.
程設一.
第二章 JAVA语言基础.
第三章 控制结构.
程設一.
程式設計實作.
Q1: 追蹤程式: 印出結果? 搶答 while (i<=n) { p=p*i; i=i+2; }
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
控制流程 邏輯判斷 迴圈控制.
Class 2 流程控制-選擇敘述與迴圈.
第二章 C# 基础知识.
C++Primer 3rd edition 中文版 Chap 5
流程控制結構 4-1 流程控制與UML活動圖 4-2 程式區塊與主控台基本輸入 4-3 條件控制敘述 4-4 迴圈控制敘述 4-5 巢狀迴圈
實作輔導 日期: 3/11 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
程序與函數的類別方法 目的:模組化程式設計 方法:由上而下設計 注意事項:(1)獨立性 (2)結合問題 (3)子問題間的溝通.
程式敘述執行順序的轉移 控制與重複、方法 Lecturer:曾學文.
第3章 語法入門 第一個Java程式 文字模式下與程式互動 資料、運算 流程控制.
C 程式設計— 控制敘述 台大資訊工程學系 資訊系統訓練班.
程式設計實作.
第四章 基本輸出入 Java應用程式的輸出入介面有三種,分別是命令提示字元視窗、AWT元件、及Swing元件。本單元先介紹命令提示字元視窗,AWT請看第16、17章,Swing請看第20章。 輸入 輸出.
第2章回顾 标识符:不用记,动手 关键字:if, else, switch, for, while, do, break, continue, void, …… 局部变量和成员变量 ①变量作用域 ②内存布局 基本数据类型 ①4类8种 ②互相转换 流程控制语句 ①分支 if……else, switch.
Java语言程序设计 第五部分 Java异常处理.
第三章 流程控制與例外處理 資訊教育研究室 製作 注意:本投影片僅供上課使用,非經同意,請勿散播或轉載。
臺北市立大學 資訊科學系(含碩士班) 賴阿福 CS TEAM
實作輔導 4 日期: 4/21(星期六) 13:10~16:00、13:10~16:00
電腦解題─流程圖簡介 臺北市立大同高中 蔡志敏老師.
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞.
异常及处理.
Java程序设计 第2章 基本数据类型及操作.
Ch02-基礎語法.
C/C++/Java 哪些值不是头等程序对象
* 單元:電腦與問題解決 主題:Java物件導向程式設計-類別與物件 台南縣國立善化高中 蕭嘉民 老師
第三章 C# 基础知识.
Week 2: 程式設計概念與 演算法的效能評估
《JAVA程序设计》 语音答疑 辅导老师:高旻.
實作輔導 2 日期: 3/24(星期六) 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
第二章Java基本程序设计.
第二章 Java基本语法 讲师:复凡.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
程式的時間與空間 Time and Space in Programming
第二章 Java语法基础.
第二章 Java基本语法 讲师:复凡.
目标 流程控制 字符串处理 C# 的类和对象 C# 访问修饰符 C# 构造函数和析构函数.
龍老師我不會Debug QQ.
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
JAVA 程式設計與資料結構 第三章 物件的設計.
第2章 Java语言基础.
迴圈(重複性結構) for while do while.
C#快速導讀 流程控制.
判斷(選擇性敘述) if if else else if 條件運算子.
C语言基本语句 判断循环.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
第二章 Java基础语法 北京传智播客教育
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
第二章 Java基本语法 讲师:复凡.
Presentation transcript:

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

搶答!!

在分支敘述下變數內容追蹤(1) 印出結果? int a = 10, b = 8, c; If(a >= b) c = a+b; else c = a-b; System.out.print(“c = ” + c); 10 8 a b c RAM

在分支敘述下變數內容追蹤(2) 印出結果? int a = 10, b = 8, c; If(a >= b) c = a+b; c = c-1; System.out.print(“c = ” + c); 10 8 a b c RAM

在分支敘述下變數內容追蹤(3) 印出結果? int x = 10, y = 30, z = 40; If !(y == z) x = (z+1)%15 System.out.print(“x = ” + x); 10 30 40 x y z RAM

在分支敘述下變數內容追蹤(4) 印出結果? int p = 30, q = 20, r = 15; If(p >= 25 && q<50) r = p/r; else r = p-r; System.out.print(“r = ” + r); 30 20 15 p q r RAM

在分支敘述下變數內容追蹤(5) 印出結果? int p = 30, q = 20, r = 15; If (p >= 25 || q<50) r = p/r; else r = p-r; System.out.print(“r = ” + r); 30 20 15 p q r RAM

Q6 : 印出結果? public class loop_1 { public static void main(String[] args) { int a = 20; int b = 15; int i=0; while (a>b) { i=i+1; a--; }//while System.out.println("i="+i+" a="+a); }//main }//class

while迴圈 II

追蹤迴圈 條件 S1; S2; S3; True False 無窮迴圈 空迴圈 如何跳出迴圈

追蹤迴圈1-1 條件 S1; S2; S3; True False 無窮迴圈? 空迴圈?

追蹤迴圈1-2 j=0; a=10; 條件 S1; S2; S3; True False 無窮迴圈? 空迴圈?

追蹤迴圈1 條件 S1; S2; S3; True False

追蹤迴圈2 條件 S1; S2; S3; True False true: 邏輯常數 “真” false:邏輯常數 “偽”

追蹤迴圈3 條件 S1; S2; S3; if (i>=500) break; //跳出迴圈 True False if (i>=500) break; //跳出迴圈 System.exit(-1); //跳出整個程式

追蹤迴圈4 S1; 條件 False True S2; break S3;

追蹤迴圈5 條件 S1; S2; S3; public class loop_1e { public static void main(String[] args) { int a = 10; int b = 20; System.out.print("before loop: a="+a+" ,"); System.out.println((b>a)); while (b>a) { a++; System.out.print("inside loop:a="+a+" ,"); }//while System.out.print("after loop:a="+a+" ,"); }//main }//class 條件 False True S2; break S3;

迴圈結束方式二

String常用函數 比較字串是否相等 將字串轉換為大寫(UpperCase) 將字串轉換為小寫(LowerCase) import java.util.Scanner; public class case_1 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("輸入字串A:"); String A = input.nextLine(); System.out.print("輸入字串B:"); String B = input.nextLine(); System.out.print("A:" + A + "\nB:" + B + "\n\n"); System.out.print(“A equals to B ? ” + A.equals(B) + "\n" ); System.out.print("將A轉換為大寫、B轉換為小寫\n"); A = A.toUpperCase(); B = B.toLowerCase(); System.out.print("A equals to B ? " + A.equals(B) ); }//main } //class 比較字串是否相等 equals :字串物件之函數 A.equals(B) :字串A是否相等字串B true 或 false 將字串轉換為大寫(UpperCase) A.toUpperCase() 將字串轉換為小寫(LowerCase) =B.toLowerCase()

迴圈加入計算BMI

Example: 亂數加法練習 (個位數) (1)出10題個位數加法測驗(一次一題),不管對錯都出下一題, 直到答對為止; (2)出10題,答錯不出下一題,直到答對為止; (3)出N 題,由user決定題數,每題10分,答錯之題目須於結束時顯示; 目標: 亂數函數運用、判斷敘述、迴圈

Example: 亂數加法練習 (個位數) 二 答錯不出下一題,直到答對為止 出10題 顯示題次: 如第3題 計分: 第二次答對,得10-1分 第3次答對,得10-2分

只出一題 物件、變數宣告;初值設定 隨機出題 答題 答對? True S3; S2;

public class add_drill_2 { public static void main(String[] args) { SecureRandom sr = new SecureRandom(); Scanner input = new Scanner(System.in); int n1=0,n2= 0; int ans= 0, score=0, i=1; while (i<=10) { n1 = sr.nextInt(10); n2 = sr.nextInt(10); System.out.print(""+n1+"+"+n2+"=");//present question ans = input.nextInt(); if (ans== n1+n2) { score=score+10; System.out.println("答對,GREAT!!");} else System.out.println("答錯,加油! "); }//while }//main }//class What’s wrong?

public class add_drill_2 { public static void main(String[] args) { SecureRandom sr = new SecureRandom(); Scanner input = new Scanner(System.in); int n1=0,n2= 0; int ans= 0, score=0, i=1; while (i<=10) { //i=i+1; n1 = sr.nextInt(10); n2 = sr.nextInt(10); System.out.print(""+n1+"+"+n2+"=");//present question ans = input.nextInt(); if (ans== n1+n2) { score=score+10; System.out.println("答對,GREAT!! 分數:"+score+"分.");} else System.out.println("答錯,加油! 分數:"+score+"分."); i=i+1; }//while }//main }//class 不管對錯都出下一題,直到答10題為止

Where is the bug? How to revise?

答錯不出下一題,直到答對為止 第二次答對,得10-1分 第3次答對,得10-2分

第八周習題:亂數減法、除法練習 亂數減法、除法練習出n題 : (1)出10題,答錯不出下一題,直到答對為止; (2)出N題,由user決定題數,每題10分,答錯之題目須 於結束時顯示; 十位數減法出5題:不可小減大,每題10分 十位數除以個位數出5題:只能整除或需輸入商和餘數,每題10分 練習結束可再繼續,分數重算 可以加入:答錯不出下一題,直到答對為止 只完成減法、除法之一,也可繳交 繳交設計歷程檔及.java

再談分支/選擇結構

成績相對應的等第判定 輸入分數 利用if …else if…else 判斷並印出相對應的等第 或 switch case

True:真 False:偽 多重分支(multi-way if) 輸入分數 100<=分數<=90 False yes 90<分數<=80 印“優” True False 80<分數<=70 印“甲” 印“丙” True 印“乙”

True:真 False:偽 多重分支(multi-way if) 輸入分數 100<=分數<=90 False yes 分數<=80 印“優” True False 分數<=70 印“甲” 印“丙” True 印“乙”

Single statement 去除{ }

switch case 成績判定

多重選擇另一種形式: Switch case Default: 預設 True false 與常數1值成立時 執行的敘述; case 符合常數1 break switch小括弧內為一運算式,計算出常數值。若與其後 case 的常數值相 符,就會執行該 case 的陳述。 switch (變數名稱或運算式) { case 符合常數1或字元1: 與常數1值成立時執行的敘述; ;//結束執行switch判斷; case 常數2或字元2 : 與常數2值成立時執行的敘述; break;//結束執行switch判斷; default: 與上述case常數值均不成立時執行的敘述; } 與常數2值成立時 執行的敘述; case 符合常數2 break 與常數3值成立時 執行的敘述; break

主題:成績判定 – switch case 100~90優 / 89~80甲 / 79~70乙 / 69~60丙 / 59~50丁 / 49~40 戊 / 39~30己 / 29~20庚 / 19~10辛 / 9~1壬 / 0癸 利用switch case判斷使用者輸入 的成績位於哪個區間,並印出 相對應的等第。 利用score/10的結果來判斷分數 屬於哪個case, 由於9~0除10結果均為0,但9~1 & 0屬不同等地,因此判斷後才 印出。 執行結果

10 9 優 8 甲 True false

Debug Bug在何處? Syntax error? 請回答!! How to handle? Let’s compile & run

比較

Example 2: 輸入星期幾?得英文 case要按大小順序?