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

Slides:



Advertisements
Similar presentations
怎樣才算「識飲識食」? 適當 適量 在日常生活中進食 適當 和 適量 的食物 和飲料。 何謂「適當」? 1. 不偏食,選擇不同種類的食物和飲料, 以吸收不同的營養素。 2. 多進食營養價值高的食物。 3. 避免進食熱量、脂肪、糖份、鹽份和膽 固醇含量過高的食物,以及加工食品 ( 如 罐頭和即食麵.
Advertisements

软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
多元評量與 Greenfoot 簡介 南港高中高慧君. 演講大綱 多元評量 高中階段程式設計教學目標與困境 Greenfoot 快速入門 – 袋熊吃樹葉 – 沙灘螃蟹 Greenfoot 臺灣社群介紹 2.
单元二:面向对象程序设计 任务二:借书卡程序设计.
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
JAVA 编 程 技 术 主编 贾振华 2010年1月.
均衡飲食與健康體位 逸馨園 營養師 鍾筱薇.
6. 6 Overloading methods and constructors 6
项目6 通用堆栈.
基本概論 Basic concepts.
Java程序设计教程 第一讲 Java概述.
四資二甲 第三週作業 物件導向程式設計.
認識健康體位: BMI:    維持18.5~24 腰圍: 男性:<90公分    女性:<80公分.
南京理工大学 第2章 Java基本语法 本章我们将学习Java编程语言的基本语法,包括变量、操作符、表达式、语句、字符串、数组、控制流以及如何使用帮助文档。 使用下面的编程框架: public class Test{ public static void main(String []args){ //以下添加测试代码.
TQC+ 物件導向程式認證-JAVA.
第二章 基本程式設計.
程設一.
第二章 JAVA语言基础.
程式設計實作.
Q1: 追蹤程式: 印出結果? 搶答 while (i<=n) { p=p*i; i=i+2; }
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
第一章 C语言概述.
控制流程 邏輯判斷 迴圈控制.
課程名稱:程式設計 授課老師:________
物件導向程式設計 (Object-Oriented rogramming)
常用工具类.
流程控制結構 4-1 流程控制與UML活動圖 4-2 程式區塊與主控台基本輸入 4-3 條件控制敘述 4-4 迴圈控制敘述 4-5 巢狀迴圈
實作輔導 日期: 3/11 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
程序與函數的類別方法 目的:模組化程式設計 方法:由上而下設計 注意事項:(1)獨立性 (2)結合問題 (3)子問題間的溝通.
2018/11/22 Java语言程序设计-程序流程 教师:段鹏飞.
程式敘述執行順序的轉移 控制與重複、方法 Lecturer:曾學文.
第3章 語法入門 第一個Java程式 文字模式下與程式互動 資料、運算 流程控制.
2018/11/27 Java语言程序设计-程序流程 教师:段鹏飞.
JAVA程序设计 第5章 深入理解JAVA语言----补充.
程式設計實作.
抽象类 File类 String类 StringBuffer类
第2章回顾 标识符:不用记,动手 关键字:if, else, switch, for, while, do, break, continue, void, …… 局部变量和成员变量 ①变量作用域 ②内存布局 基本数据类型 ①4类8种 ②互相转换 流程控制语句 ①分支 if……else, switch.
程式撰寫流程.
實作輔導 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 哪些值不是头等程序对象
C#程序设计基础 第二章 数据类型.
* 單元:電腦與問題解決 主題:Java物件導向程式設計-類別與物件 台南縣國立善化高中 蕭嘉民 老師
第二章Java基本程序设计.
第三课 标识符、关键字、数据类型.
第二章 Java基本语法 讲师:复凡.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
Java 程式設計 講師:FrankLin.
第二章 Java语法基础.
第二章 类型、对象、运算符和表达式.
Review 1~3.
龍老師我不會Debug QQ.
第二章 Java基本语法 讲师:复凡.
第二章 Java基本语法 讲师:复凡.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
JAVA 程式設計與資料結構 第三章 物件的設計.
變數、資料型態、運算子.
第2章 Java语言基础.
迴圈(重複性結構) for while do while.
判斷(選擇性敘述) if if else else if 條件運算子.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
變數與資料型態  綠園.
第二章 Java基础语法 北京传智播客教育
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
Introduction to the C Programming Language
Summary
方法(Method) 函數.
Presentation transcript:

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

搶答I Scanner input = new Scanner(System. in ); System. out 搶答I Scanner input = new Scanner(System.in ); System.out.print("Please input"); String ss = input.next(); 這程式有何作用?

搶答I Scanner input = new Scanner(System. in ); System. out 搶答I Scanner input = new Scanner(System.in ); System.out.print("Please input n:"); int n = input.nextInt(); 這程式有何作用?

搶答I Scanner input = new Scanner(System. in ); System. out 搶答I Scanner input = new Scanner(System.in ); System.out.print("Please input n:"); int n = input.nextInt(); 這程式中那些是變數?

再談變數 (variable) 記憶體代言人 臺北市立大學 資訊科學系(含碩士班) 賴阿福

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

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

變數的宣告: 變數代表一塊記憶體 變數的型態(data type) :記憶體用來存放哪一類型資 料 如何取得記憶體? 宣告方法 例如 每一塊記憶體都有位址,但不可能記得起來,因此用英文 字來替代記憶體 變數用來存放程式執行過程不段變動數據或資料 變數的型態(data type) :記憶體用來存放哪一類型資 料 String, int, double… 如何取得記憶體? 宣告: 告訴系統我的程式需要一塊記憶體 宣告方法 變數的型態 變數名稱; 例如 int x; String st; String name = input.next(); Int age = input.nextInt();

變數 (variable) 如何將資料放入到記憶體? 如何從記憶體取出資料 輸入後放在主記憶體:放在指定變數 (程式設計 師不用管真正位址) 指定/派敘述(assignment statement) sum=100; sum=p+10; sum=sum+70; //取出sum,加70,再放入sum 如何從記憶體取出資料 printf(“%d”, sum); //取出sum System.out.println(sum);//取出sum 輸入後放在主記憶體:放在指定變數 (程式設計 師不用管真正位址) 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(); 如何為記憶體取名? 分大小寫 英文開頭 有意義名字 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

運算式 I Scanner input = new Scanner(System.in);//產生Scanner物件 System.out.print("請輸入字串a :"); String sta = input.next(); System.out.print("請輸入字串b :"); String stb = input.next(); System.out.print("請輸入整數a:"); int a = input.nextInt(); System.out.print("請輸入整數b:"); int b = input.nextInt(); int exp1, exp2;//宣告 exp1=(a+b)*(a-b)/2; System.out.println("exp1=(a+b)*(a-b)/2; exp1 become "+exp1); exp2=(a*b)%3; System.out.println("exp2=(a*b)%3; exp2 become "+exp2); String stc; stc=sta+stb; System.out.println("stc="+stc); a b RAM sta stb exp1 exp2 stc input

運算式 II sta="123"; stb="456"; stc=sta+stb; System.out.println("stc=sta+stb;stc become"+stc); a=12; b=45; exp1=a+b; System.out.println(" a=12;\n b=45;\n exp1=a+b;\n exp1 become "+exp1); b=b-5; System.out.println(" b=b-5;\n b become "+b); a b RAM sta stb exp1 exp2 stc input

計算BMI

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

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

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之商

未完成之程式 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診斷分成三層次(簡化)

習題 習題2: 習題1:輸入矩形長、寬(整數)資料,求 面積及邊長、判斷為正方形或長方形 正方形或長方形條件? 如何解決? 請規畫其過程 (解法) 習題2:

未輸入三位整數時:從循序到分支 (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 (反)

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