實作輔導 日期: 3/11 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)

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月.
6. 6 Overloading methods and constructors 6
项目6 通用堆栈.
Java软件设计基础 课后作业.
基本概論 Basic concepts.
Java程序设计教程 第一讲 Java概述.
四資二甲 第三週作業 物件導向程式設計.
南京理工大学 第2章 Java基本语法 本章我们将学习Java编程语言的基本语法,包括变量、操作符、表达式、语句、字符串、数组、控制流以及如何使用帮助文档。 使用下面的编程框架: public class Test{ public static void main(String []args){ //以下添加测试代码.
TQC+ 物件導向程式認證-JAVA.
第二章 基本程式設計.
本章大綱 2-1、程式、程式語言、程式架構 2-2、變數與資料型態 2-3、常數 2-4、 運算式、運算子和運算元
程設一.
第二章 JAVA语言基础.
C# 程式設計 第一部分 第1-4章 C# 程式設計 - 南華大學資管系.
程設一.
程式設計實作.
Q1: 追蹤程式: 印出結果? 搶答 while (i<=n) { p=p*i; i=i+2; }
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
第一章 C语言概述.
控制流程 邏輯判斷 迴圈控制.
課程名稱:程式設計 授課老師:________
Visual Basic 6.0 學習範本 第三章 基本資料型態.
物件導向程式設計 (Object-Oriented rogramming)
常用工具类.
2018/11/20 第一章 Java概述 武汉大学计算机学院计算机应用系 2018/11/20 14:33.
流程控制結構 4-1 流程控制與UML活動圖 4-2 程式區塊與主控台基本輸入 4-3 條件控制敘述 4-4 迴圈控制敘述 4-5 巢狀迴圈
Classes Lecturer: 曾學文.
程序與函數的類別方法 目的:模組化程式設計 方法:由上而下設計 注意事項:(1)獨立性 (2)結合問題 (3)子問題間的溝通.
程式敘述執行順序的轉移 控制與重複、方法 Lecturer:曾學文.
第3章 語法入門 第一個Java程式 文字模式下與程式互動 資料、運算 流程控制.
JAVA程序设计 第5章 深入理解JAVA语言----补充.
程式設計實作.
第四章 基本輸出入 Java應用程式的輸出入介面有三種,分別是命令提示字元視窗、AWT元件、及Swing元件。本單元先介紹命令提示字元視窗,AWT請看第16、17章,Swing請看第20章。 輸入 輸出.
第2章回顾 标识符:不用记,动手 关键字:if, else, switch, for, while, do, break, continue, void, …… 局部变量和成员变量 ①变量作用域 ②内存布局 基本数据类型 ①4类8种 ②互相转换 流程控制语句 ①分支 if……else, switch.
程式撰寫流程.
臺北市立大學 資訊科學系(含碩士班) 賴阿福 CS TEAM
實作輔導 3 日期: 4/14(星期六) 09:10~12: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物件導向程式設計-類別與物件 台南縣國立善化高中 蕭嘉民 老師
實作輔導 2 日期: 3/24(星期六) 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
第二章Java基本程序设计.
第三课 标识符、关键字、数据类型.
第二章 Java基本语法 讲师:复凡.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
Java 程式設計 講師:FrankLin.
第二章 Java语法基础.
第二章 类型、对象、运算符和表达式.
Review 1~3.
龍老師我不會Debug QQ.
Java软件设计基础 课后作业.
第二章 Java基本语法 讲师:复凡.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
JAVA 程式設計與資料結構 第三章 物件的設計.
迴圈(重複性結構) for while do while.
判斷(選擇性敘述) if if else else if 條件運算子.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
變數與資料型態  綠園.
第二章 Java基础语法 北京传智播客教育
第 2 章 初探 Java.
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
Introduction to the C Programming Language
Summary
Presentation transcript:

實作輔導 日期: 3/11 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口) 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口) 公誠樓三樓 G315 電腦教室(資訊科學系(含碩士班)) 可自行攜帶筆電 目標:協助習題、安裝java 環境、path設定 下次預定: 3/24(星期六)、4/14(星期六)09:10~16:00

搶答I 負責編譯(compile)Java程式為? 你所編寫Java的來源程式副檔名?

搶答I 負責編譯(compile)Java程式為? Javac.exe 你所編寫Java的來源程式副檔名? java

搶答II 若a1.java編譯成功,會產生的檔案為何? 執行Java編譯成功檔案的程式名稱? 如何執行上述1編譯成功之檔案? Java的主程式名稱?

搶答II 若a1.java編譯成功,會產生的檔案為何? a1.class 執行Java編譯成功檔案的程式名稱? Java.exe 如何執行上述1編譯成功之檔案? Java a1 Java的主程式名稱? main

臺北市立大學 資訊科學系(含碩士班) 賴阿福 輸出、輸入、變數 循序敘述 臺北市立大學 資訊科學系(含碩士班) 賴阿福

複習第1支程式

學習程式之觀念 漸進式學習 From unclear to clear 不用全部學完語法再開始程式設計 從基本功能進化、優化 不可能一步登天 從基本功能進化、優化 養成規劃、設計習慣 不要怕出現Bug 思考、動手寫程式

第1支程式回顧 import java.util.*; //匯入類別/函數庫 public class welcomea{ 類別名稱,Class name,一定與主檔案名稱相同 主程式名稱(固定) import java.util.*; //匯入類別/函數庫 public class welcomea{ public static void main(String args[]){ System.out.println(“Java is an excellent computer language.”);//輸出 System.out.println(“Let‘s start to learn Java!”); }//main() }//class 主程式之引數 敘述以分號結束 println之引數, 現為字串常數 System.out: 標準輸出設備,即螢幕 println:輸出/顯示之函數/方法,ln: Line,即顯示後游標跳到下行(換行) 註解

輸出 : 換行(二種方式) 或 不換行 \n :Escape 字元,new line,即換行 \n\n : 換行二次 System.out.println(“Drink Java coffee!”);//換行 System.out.println(“excellent .”);//不換行 相同 System.out.print (“Drink Java coffee\n”); //不換行變換行 System.out.println(“excellent .”); \n :Escape 字元,new line,即換行 \n\n : 換行二次

程式出現錯誤,如何是好? Error(錯誤)! Bug(臭蟲)! Debug(抓臭蟲)

Error! Bug! debug include java.util.*; public Class welcome{ public static void main(String args[]){ System.out.println("Java is an excellent computer language.") System.out.println("Let's start to learn Java!"); } }//class include: import Class: class ;

debug(偵錯)

何謂偵(抓)錯(debug)?語法(syntax)˴語意(semantic)錯誤? 指的是句子文法上的錯誤 我是學生  我學生是 Compiler可抓到語法錯誤 語意(semantic)錯誤? 指的是句子意思上的錯誤 求矩形面積 Area=(Length+width)*2; Compiler抓不到語意錯誤

Debug抓錯蟲 import java.util.*; /匯入函數庫 public class 9welcomea{ public static void Main(String args[]){ system.Out.println(“Java is an excellent computer language.);/輸出 system.Out.println(‘Let's start to learn Java!’) }/main() }/class

輸出、輸入敘述 (input & output)

輸出目的?可輸出何種資料? 輸出目的? 輸出裝置?輸出到電腦哪裡? 可輸出資料類型: 傳送訊息(如回饋、分析結果)給操作者 提示訊息: 輸入資料時 輸出裝置?輸出到電腦哪裡? 螢幕(CRT、LCD)、喇叭、 可輸出資料類型: 文字介面: 文字:字串(string)、數值(numerical data) System.out.println(“Let‘s start to learn Java!”); 圖形介面: label物件 聲音 圖形 動畫 震動

不能只有輸出,也要有輸入 :互動(interaction) 第2支程式 Hello, digital native! 文字輸出 輸出裝置? 輸入 從何裝置輸入?keyboard、mouse、觸控平板、joystick、microphone

從keyboard裝置可輸入何種資料? 可輸入資料類型: 文字:字串(string) 數值(numerical data) 整數: integer 小數:浮動點 (floating point ) 單精度float 倍精度Double 輸入後放電腦哪裡?

輸入後放電腦哪裡? 輸入目的? 放電腦哪裡?? 要處理、分析、計算、判斷 主記憶體:RAM 程式設計師如何取用處理? 如同人的腦部 容量??:可能有8G(=230)byte(位元組) 位元組:1位元組可存放一個英文字 主記憶體以位址管理,非常複雜 COMPILER為便於程式設計師管理,因此以英文名稱取代主記憶 體位址,即變數名稱 程式設計師如何取用處理? 利用輸入指令/敘述/物件 輸入後放在主記憶體:放在指定變數 (程式設計師不用管真正位址)

Second program :鍵盤輸入 import java.util.*; public class welcome_c{ public static void main(String args[]){ System.out.print("Please input your name:"); Scanner sca = new Scanner(System.in);//產生Scanner物件, 提供鍵盤輸入 String name = sca.next(); //運用next方法/函數讀取輸入資料,再放入name變數 System.out.println("welcome "+name+"!!"); //字串連結 }//main() }//class

Second program:程式概念 Scanner sca = new Scanner(System.in); Scanner :類別 (class) Scanner原意為掃描器,代表輸入 new Scanner(): 產生Scanner物件, 可提供鍵盤輸入 System.in: 標準輸入設備,即鍵盤 sca: new之後,sca是Scanner物件(object), sca是物件名稱 String name = sca.next(); //sca物件的(.)next方法或nextLine 運用next方法/函數讀取輸入資料,再放入name變數 =是指定運算符號,將右邊處理或運算結果指定給左邊變數 (next方法/函數讀取資料,放入name變數) String 是一種變數型態,即字串變數,用以存放文字資料 System.out.println("welcome "+name+"!!"); +: 字串連結,字串常數與字串變數連結 “12”+”34”字串連結變成”1234” ,不是”46” int result=12+34; //+:算數運算,加法結果放入result數

比較: 字串連結、加法運算 “12”+”34” 字串連結(concatenation, combining) 結果變成”1234” ,不是”46” 12+34 +:算數運算 加法結果46 int result=12+34; 加法結果放入result數

多輸入 import java.util.*; public class welcome_D{ public static void main(String args[]){ Scanner input = new Scanner(System.in);//產生Scanner物件 System.out.print("Please input your name:"); String name = input.next(); System.out.print("Please input your age:"); int age = input.nextInt(); System.out.println("Nice to meet you, "+name+"!!"); System.out.print("\n你的年齡: "+age+5+"歲."); age=age+5;//指定、指派、set敘述 System.out.print("\n五年後你的年齡: "+age+"歲."); }//main() }//class

CAT name Input (Scanner 物件) input.next(); input.nextInt(); 12 age

變數 (variable) 記憶體代言人

變數(Variable)? 為了提供還不錯的、有用的功能,程式必須能記得住事 情。 想想看,如果你不能記得任何事情你要如何過生活。 如果你要把兩個數字相加,你必須記得這兩個數字才能相加, 然後你必須記得結果才能在處理其他事情時使用它。 電腦用變數來記憶資料,他們之所以叫做變數是因為他 們的值是可變的。 你可以把變數想像成有不同名稱在上面的信箱:信箱裡面裝的 東西叫做變數的內容。 變數的名稱必須遵守一些規則。 首先他們的第一個字必須是英文字母A到Z,然後可以接著字母 或數字的任意組合。 可以結合大寫和小寫字母。 要小心的是電腦對待大小寫字母的看法比你更仔細,如java及 所有C-like語言把TIME、time、Time當作不同的變數。 變數的型態(data type) String, int, double… 為何需要不同型的態變數

為何變數要宣告型態的理由:不同型態的變數 人的腦袋非常靈活可變,可處理各種不同型式的 資料,看到「在9:00見面」、「32」或「2.5」就 知道該如何處理它。 電腦不像人那樣精明,它要正確地知道該處理什 麼型式的資料。這就是為何變數要宣告型態的理 由。

變數 (variable) 變數代表一塊記憶體 如何將資料放入到記憶體? 如何從記憶體取出資料 如何為記憶體取名? 100 每一塊記憶體都有位址,但不可能記得起來, 因此用英文字來替代記憶體 如何將資料放入到記憶體? 指定/派敘述(assignment statement) sum=100; sum=p+10; sum=sum+70; //取出sum,加70,再放入sum 如何從記憶體取出資料 printf(“%d”, sum); //取出sum System.out.println(sum);//取出sum 如何為記憶體取名? 分大小寫 英文開頭 有意義名字 Sum 100 p RAM

變數的名稱不合法invalid?合法valid? Date DATE date TimeOfDay yr1991 AbCdEfGhiJ i2 Stats_1981 Total_Cost even_ 1981stats The%Given The+Given Total Cost * A+b-c 不合法 合法

不同變數的名稱: 下面是合法的: Date DATE date TimeOfDay yr1991 AbCdEfGhiJ i2 Stats_1981 Total_Cost even_

下面是不合法的: 1981stats (開始不可以是數字) The%Given (中間不可有%) The+Given (中間不可有+) Total Cost (中間不可有空隔) * (開始不可以是*符號) A+b-c (中間不可有+)

數值型態numeric data type 整數integer: 浮動點floating point : 小數點,採用IEEE 754格式 正負 Byte, short, int, long 浮動點floating point : 小數點,採用IEEE 754格式 不同型態可表示數值範圍不同,占用RAM空間不同 型態名稱都是keyword /reserved word 整數 型態名稱 值域(Range) 貯存空間 byte –27 to 27 (–128 to 127) 8-bit signed short –215 to 215 (–32768 to 32767) 16-bit signed int –231 to 231 (–2147483648 to 2147483647) 32-bit signed long –263 to 263 (–9223372036854775808 to 9223372036854775807) 64-bit signed 浮動點 float Negative range:–3.4028235E+38 to –1.4E – 45 Positive range: 1.4E – 45 to 3.4028235E + 38 32-bit IEEE 754 double Negative range:–1.7976931348623157E+308 to –4.9E–324 Positive range: 4.9E–324 to 1.7976931348623157E+308 64-bit IEEE 754

計算BMI

BMI說明 身體質量指數 Body Mass Index,簡稱BMI 世界衛生組織建議以BMI來衡量肥胖程度 出處:衛生福利部國民健康署 健康九九網站 http://health99.hpa.gov.tw/OnlinkHealth/Onlink_BMI.aspx

BMI程式一: 只計算BMI 解析: 了解問題、規劃、程式設計 (1) 讓使用者輸入身高、體重;先取二者變數名稱 (2) 計算BMI(算術運算式):結果之變數名稱及型態、 指定敘述(assignment statement) (3) 輸出BMI 更熟悉java程式結構

BMI程式一流程圖 (flow chart) 程式開始 輸入身高 循序(sequence) 輸入體重 單位轉換(身高cm -> m) 計算BMI 輸出BMI 結束程式

只計算BMI import java.util.Scanner; public class BMI_1 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print(“輸入身高(公尺):”);//提示訊息 double height = input.nextDouble();//讀取浮動點資料(double) System.out.print("輸入體重(公斤):"); double weight = input.nextDouble(); double bmi = Math.round((weight/ (height*height) )* 100) / 100.00; System.out.println("身高:"+height+"公尺, 體重:"+weight+"公斤"); System.out.println("BMI:"+bmi); }//end of main }//end of class

浮動點之小數位數 double bmi = weight/ (height*height); double bmi = Math.round((weight/ (height*height) )* 100) / 100.00;

輸入整數資料及整數變數 int nn = ipt.nextInt(); int n1=nn%10; int n2=nn/10; 輸入整數資料 運用nextInt方法讀取使用者所輸入整數資料,再放入 nn整數變數 int :是一種變數型態,用以存放整數資料(integer) int n1=nn%10; 求得除以10之餘數 int n2=nn/10; 求得除以10之商

習題 習題2:輸入矩形長、寬(整數)資料,求面 積及邊長 習題1:輸入三位整數資料,進行位數翻轉且顯 示結果 如輸入789,顯示翻轉結果為987 先假設一定會輸入三位整數 如何解決? 請規畫其過程 (解法) 熟悉運算式及其應用 習題2:輸入矩形長、寬(整數)資料,求面 積及邊長

未完成之程式 import java.util.*; public class input_int{ public static void main(String args[]){ System.out.print("Please input a 3-digit decimal :"); Scanner ipt = new Scanner(System.in);//產生Scanner物件 int nn = ipt.nextInt(); //讀取整數(integer)資料 int n1=nn%10; //求餘數 int n2=nn/10; //除法 System.out.print("You input nn="+nn+"; first digit="+n1+";"); System.out.println("higher digit="+n2); }//main() }//class

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);

為何需要類別/ 函式庫(Library)/package? 站在巨人肩膀 有些程式細節非常複雜如Input/Output、圖形之 細部工作,因此必須會提供系統函數,讓設計者 直接引用 import java.util.*; *代表萬用(全部)Wildcard import Scanner class就在java.util package import java.util.Scanner; Specific import c語言用include

從循序到分支 程式會轉彎

判斷體位是否標準? 健康體位 不標準體位 選擇/分支 (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診斷分成三層次(簡化)

未輸入三位整數時:從循序到分支 (nn>=100 || nn<=999) 複合敘述compound statements import java.util.*; public class input_int_a{ public static void main(String args[]){ System.out.print("Please input 3-digit decimal:"); Scanner ipt = new Scanner(System.in);//產生Scanner物件 int nn = ipt.nextInt(); if (nn>=100 && nn<=999) { //compound statements int n1=nn%10; int n2=nn/10; System.out.print("You input nn="+nn+"; first digit="+n1+";"); System.out.println("higher digit="+n2); } else System.out.println(“你輸入資料不是三位數!!”); //單一敘述single statement }//main() }//class (nn>=100 || nn<=999) 複合敘述compound statements

條件:邏輯運算式 (立即搶答) 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 (反)

作業 將BMI診斷分成六層次

再談指定/派敘述 = (assignment statement) 何者正確? X+1=y-2; If (X+1=y-2) ….. If (X+1==y-2) ….. X=y; If (X=y) …. If (X==y) …