บทที่ 1

Download Report

Transcript บทที่ 1

การรับข้อมูล และ การแสดงผล
โจทย์
เขียนโปรแกรมเพือ
่ รับขอมู
่ นามสกุล
้ ล ชือ
เพศ อายุ และเกรด จากนั้นแสดงผลขอมู
้ ล
ทัง้ หมด ดังตัวอยาง
่
วิเคราะห์ปัญหา
• Input
– ชือ
่
– นามสกุล
– เพศ
– อายุ
– เกรด
• Process
– รับคาทางแป
่
้ นพิมพ ์
และแสดงผลทาง
หน้าจอ
• Output
– ชือ
่
– นามสกุล
– เพศ
– อายุ
– เกรด
ออกแบบโปรแกรม
• Input
1.
2.
3.
4.
5.
รับชือ
่ จาไวใน
name
้
รับนามสกุลจาไวใน
surname
้
รับเพศจาไวใน
gender
้
รับอายุจาไวใน
age
้
รับเกรด จาไวใน
grade
้
ออกแบบโปรแกรม
• Output
1. แสดงคาวา่ Name ตามดวยค
าที
้
่ ่ name และ
surname จาไว้
2. แสดงคาวา่ Gender ตามดวยค
าที
้
่ ่ gender จา
ไว้
3. แสดงคาวา่ Age ตามดวยค
าที
้
่ ่ age จาไว้
4. แสดงคาวา่ Grade ตามดวยค
าที
้
่ ่ grade จาไว้
ออกแบบโปรแกรม
• Process
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
แสดงขอความ
Enter first name :
้
รับชือ
่ จาไวใน
name
้
แสดงขอความ
Enter last name :
้
รับนามสกุลจาไวใน
surname
้
แสดงขอความ
Enter gender (M/F) :
้
รับเพศจาไวใน
gender
้
แสดงขอความ
Enter age :
้
รับอายุ จาไวใน
age
้
แสดงขอความ
Enter grade :
้
รับเกรด จาไวใน
grade
้
แสดงคาวา่ Name ตามดวยค
าที
้
่ ่ name และ surname จาไว้
แสดงคาวา่ Gender ตามดวยค
าที
้
่ ่ gender จาไว้
แสดงคาวา่ Age ตามดวยค
าที
้
่ ่ age จาไว้
แสดงคาวา่ Grade ตามดวยค
าที
้
่ ่ grade จาไว้
ทฤษฎีที่เกี่ยวข้อง
การจดจาข้อมูล
• ภาษาโปรแกรมจะทาการจดจาขอมู
ใน
้ ลตางๆไว
่
้
สิ่ งทีเ่ รียกวา่ “ตัวแปร”
• ตัวแปร ประกอบดวย
้
– ชือ
่
•
•
•
ผู้เขียนโปรแกรมเป็ นผู้ตัง้ ขึน
้ มาเอง ชือ
่ อะไรก็ได้
ถาตั
่ ไดสื้ ่ อความหมายถึงสิ่ งทีต
่ วั แปรนั้นจา จะดีมาก
้ ง้ ชือ
เช่น name , surname , age, grade , gender
– ชนิดขอมู
่ วั แปรนั้นตองจ
า
้ ลทีต
้
• ภาษาจาวามีชนิดขอมู
้ ลหลักอยู่ 5 ประเภท ไดแก
้ ่ int ,
double, char, String และ boolean
ชนิดข้อมูลในภาษา Java(Data
จานวนเต็ม (int)
1.
2.
3.
Type)
• ตัวเลขแบบไมมี
่ จุดทศนิยม
จานวนจริง (double)
• ตัวเลขแบบใส่จุดทศนิยม
ตัวอักษร (Character)
•
•
4.
•
•
ตัวอักษรตัวเดียวเทานั
เครื
่ งหมาย ‘ ’
่ ้น ซึง่ อยูภายใต
่
้ อ
เช่น ‘a’ , ‘M’
สตริง (String)
ตัวอักษรตัวเดียว หรือ หลายตัว ซึง่ อยูภายใต
เครื
่ งหมาย
่
้ อ
“”
เช่น “a” , “A String”
บูลีน (Boolean)
5.
•
มีคาเป็
่ นไปไดเพี
้ ยง 2 คาเท
่ านั
่ ้น คือ จริง (true) และ
ออกแบบโปรแกรม
• Input
1. รับชือ
่ จาไวใน
้
name
2. รับนามสกุลจาไวใน
้
surname
3. รับเพศจาไวใน
้
gender
4. รับอายุจาไวใน
้
age
5. รับเกรด จาไวใน
้
grade
• ชนิดตัวแปรในภาษา
JAVA
1. จานวนเต็ม (int)
2. จานวนจริง
(double)
3. ตัวอักษร (char)
4. สตริง (String)
5. บูลน
ี (boolean)
การใช้งานตัวแปร
ตัวแปรคือสิ่ งทีผ
่ เขี
ู้ ยนโปรแกรมสรางขึ
น
้ เพือ
่
้
นามาช่วยจดจาขอมู
้ ลตางๆในโปรแกรม
่
– ตัวแปรจะตองมี
ชื่อ และ ระบุชนิดให้ชัดเจน (int
้
, double , char , String , boolean)
– ตัวแปร 1 ตัว จดจาได้สงู สุดเพียงหนึ่ งค่า
เทานั
่ ้น
•
เมื่อไหร่ที่จะใช้ตวั แปร ต้องประกาศตัวแปร
ก่อน
– รูปแบบการประกาศตัวแปร
การใช้งานตัวแปร (ต่อ)
• เมือ
่ ไหรจะใช
าง
่
้งานตัวแปร เราจะตองสร
้
้
หรือ ประกาศตัวแปรนั้นขึน
้ ในโปรแกรม เช่น
int a;
• การกาหนดคาให
่
้ตัวแปรจดจา ทาไดโดยใช
้
้
“=” เช่น
– a = 3//; //
ให้ตัวเพราะเราประกาศไว
แปรชือ
่ a จดจาเลขว
error
แปร ้
้ าตั
่ 3วเอาไว
a มีไวจ
านวนเต็
ม แต่ ้าย)
3.2
(เอาของทางขวาไปจ
าไว
ในของทางซ
้ าคาเลขจ
่
้
ไม
ใช
านวนเต็
่ ่ เลขจ
– a = 3.2;
// error
เพราะ
ทิศมทางในการนาขอมู
้ ล
ไปเก็บในตัวแปรจะเป็ นจากขวาไปซ้าย
– 3.2 = a;
เขียนโปรแกรม
• Input
• Source code
1. รับชือ
่ จาไวใน
String name;
้
name
String surname;
2. รับนามสกุลจาไวใน
้
char
gender;
surname
int
age;
3. รับเพศจาไวใน
้
gender
double grade;
4. รับอายุจาไวใน
้
age
5. รับเกรด จาไวใน
้
grade
การใช้งานตัวแปร
• มี 2 ขัน
้ ตอน คือ
1. ประกาศตัวแปร
type name;
2. นาตัวแปรไปจดจาคา่
name = <คาที
่ ะให้ตัวแปรจา> ;
่ จ
• คาถาม ถาเรารู
อยู
วแปรตัวนี้
้
้ แล
่ วว
้ าประกาศตั
่
มาเพือ
่ จาคาอะไร
เราสามารถทาทัง้ 2
่
ขัน
้ ตอน พรอมกั
นเลยไดหรื
้
้ อไม่
– ได้ ดังนี้ type name = <คาที
่ ะให้ตัวแปรจา> ;
่ จ
– เช่น int a = 3;
การรับค่าข้อมูลจากแป้ นพิมพ์
• กอนจะรั
บขอมู
่
้ ลทางแป้นพิมพได
์ ้ เราตอง
้ สร้าง
ตัวอ่านแป้ นพิมพ์ดวยค
าสั่ ง
Scanner kb =
้
new Scanner(System.in);
– ประกาศตัวแปรชือ
่ kb ซึง่ เป็ นขอมู
้ ลประเภท
Scanner พรอมกั
บกาหนดคาเริ
่ ตนที
้
่ ม
้ ไ่ ดจากการ
้
สรางตั
วอาน
(new Scanner) ซึง่ อานข
อมู
้
่
่
้ ลจาก
แป้นพิมพ ์ (System.in)
– ตองใส
้
่ คาสั่ ง import java.util.Scanner; ไว้
ส่วนบนของโปรแกรมเสมอ
– ขอให้จาไปใช้งานกอน
รายละเอียดจะกลาวใน
่
่
การรับค่าข้อมูลจากแป้ นพิมพ์
• ส่วนใหญเมื
่ เรารับขอมู
เราจะนาตัวแปรมาจดจา
่ อ
้ ลเขามา
้
คาเหล
านั
่
่ ้นเอาไวทั
้ นที
(ไมเช
ั เขามาก็
จะหายไป)
่ ่ นนั้น ขอมู
้ ลทีร่ บ
้
• ขอมู
ดกัน มีคาสั่ งในการรับคาแตกต
างกั
น ดังนี้
้ ลตางชนิ
่
่
่
– รับคาข
่ อมู
้ ลชนิดจานวนเต็ม
a = kb.nextInt();
– รับคาข
่ อมู
้ ลชนิดจานวนจริง
b = kb.nextDouble();
– รับคาข
่ อมู
้ ลชนิดสตริง
c = kb.next(); //รับไปเรือ
่ ยๆจนกวาจะเจอสั
ญลักษณสิ์ ้ นสุด
่
ขอความ
(เวนวรรค
, tab , enter)
้
้
d = kb.nextLine(); // รับไปเรือ
่ ยๆจนกวาจะเจอ enter
สรุป คาสังในการรั
่
บค่าจาก
แป้ นพิมพ์
ตองใส
คาสั่ ง import ทุกครัง้ ทีม
่ ก
ี ารรับคา่
้
่
import java.util.Scanner;
ใส่ไวก
้ อนคลาส
่
public class ชือ
่ คลาส {
โปรแกรมเราจะตองมี
้
คาสั่ งบรรทั
public static void main(String[] args)
{ ดนี้เสมอ
หากมีการรับคาจากแป
่
้ นพ
Scanner kb = new Scanner(System.in);
ไมว่ าทั
int a = kb.nextInt();
่ ง้ โปรแกรมจะร
}
}
กีค
่ รัง้ ก็ตาม ใส่แค่คา
…. // รับหลายคาเพิ
ม
่
ค
าสั
่
ง
ไปเรื
อ
่
ย
เรียงตามลาดับ
่
เขียนโปรแกรม
• Input
1. รับชือ
่ จาไวใน
้
name
2. รับนามสกุลจาไวใน
้
surname
3. รับเพศจาไวใน
้
gender
4. รับอายุจาไวใน
้
age
5. รับเกรด จาไวใน
้
grade
• Source code
Scanner kbnew
= Scanner(Syste
String name
= kb.next();
String surname
= kb.next();
char gender
= kb.next().charAt
int age = kb.nextInt();
double grade
= kb.nextDouble(
code
การแสดงผลข้อมูล
• สั ปดาหก
เราไดเรี
์ อน
่
้ ยนรูค
้ าสั่ งแสดงผลไป 2
รูปแบบ
// แสดงผลแบบไมขึ
้ บรรทัดใหม่
่ น
– System.out.print(“….”);
// แสดงผลแบบขึน
้ บรรทัดใหม่
– System.out.println(“…..”);
• ดังนั้น ถาเราอยากจะเขี
ยนโปรแกรมให้
้
แสดงผล ดังนี้
จะเขียนคาสั่ งไดอย
้ างไร
่
การแสดงผลข้อมูล
• จะเขียนคาสั่ งไดเป็
้ น
System.out.println(“Name : Supawadee
Srikamdee”);
System.out.println(“Name
:
name
สั งเกตวา่ ลักษณะการแสดงผลของเรา มีความตองการห
้
surname”);
- มีขอความที
เ่ ราอยากจะให้เป็ นแบบทีเ่ รากาหนดเทานั
้
่ ้น
- มีขอความที
เ่ ราตองการให
่ วั แปรจา
้
้
้มันเป็ นไปตามคาที
่ ต
การแสดงผลข้อมูล
• การใส่ “” ครอบสิ่ งทีเ่ ราตองการแสดงผลเอาไว
้
้
– เป็ นการบงบอกว
า่ เราตองการแสดงผลตาม
่
้
ขอความที
เ่ รากาหนด (เหมือนเป๊ ะ)
้
–
แตหากสิ
่ งทีต
่ องการให
่
้
้แสดง อยากให้
เหมื่ยอนไป
นเป๊ตามค
ะใส่ าที
“เขา
”ไว
ปรับาไว
เปลีย
่ นไปเอาเขาออก
้
ปรับเปลี
ต
่
ว
ั
แปรจดจ
่
้ ก็ไม่ต้อง
ใส่ “” ครอบไว้
• เหมือนกับเราเอาหลายสิ่ งมาประกอบกันในการ
แสดงผล ดังนั้น ตองมี
ตวั เชื่อม นัน่ คือ
้
ตัวอย่าง
• ขอความ
“Gender :” จะถูกแสดงผลแบบนี้เสมอไมว่ า่
้
ใครเป็ นคนใช้โปรแกรม -> เหมือนเปะใส่เขาไว้
• ขอความ
F ขึน
้ อยูกั
้
่ บวาผู
่ ้ใช้โปรแกรมเป็ นใคร
ขึน
้ อยูว่ าตั
่ วแปร gender จาคาอะไรไว
่
้ ->
ปรับเปลี่ยนไปเอาเขาออก
• เชือ
่ มทัง้ 2 ส่วนเขาด
น โดยใช้ +
้ วยกั
้
• ดังนั้น คาสั่ งทีไ่ ดจะเป็
น
้
System.out.println(“Gender :” + gender);
เขียนโปรแกรม
Output
• Source code
System.out.println(“Name : ” + name + surname);
System.out.println(“Gender : ” + gender);
System.out.println(“Age : ” + age);
System.out.println(“Grade : ” + gender);
code