บทที่ 4.1 : ชนิดตัวแปร Array และการเขียนโปรแกรมแบบวนซ้ำ ด้วยคำสั่ง for

Download Report

Transcript บทที่ 4.1 : ชนิดตัวแปร Array และการเขียนโปรแกรมแบบวนซ้ำ ด้วยคำสั่ง for

บทที่ 4
ตั ว แปร ARRAY แบบ 1 มิ ติ และ 2 มิ ติ
การเขี ย นโปรแกรมแบบวนซ้า
ตัวแปร array คือ
กลุ่มของข้อมูลที่มีชนิดข้อมูลประเภทเดียวกัน
เช่น
int a[] คือ อาร์เรย์ที่ประกอบด้วยข้อมูลที่มีชนิด
ข้อมูลเป็ นประเภท ตัวเลขจานวนเต็ม
char b[] คือ อาร์เรย์ที่ประกอบด้วยข้อมูลที่มี
ชนิดข้อมูลเป็ นประเภท อักขระ
ตัวแปร Array
ที่เราจะศึกษา คือ
1. Array 1 มิติ
2. Array 2 มิติ
ตัวแปร Array 1 มิติ
คือกลุ่มข้อมูลที่มีชนิดข้อมูลประเภทเดียวกัน เช่น
4 10 20 30 40 99 100
เป็ นข้อมูลชนิดตัวเลขจานวนเต็ม เหมือนกัน โดยเก็บลงในตัว
แปรแค่ 1 ตัว คือตัวแปรอาร์เรย์ประเภท int
4 10 20 30 40 99 100

b[]
ตัวอย่าง array 1 มิติ เก็บข้ อมูลตัวเลข(int)
4
10
20
30
99
x[0]
4
x[1]
10
x[2]
20
x[3]
30
x[4]
99
x[5] 100
100
x[]

x[0]
x[n-1]
ตัวอย่าง array 1 มิติ
เก็บข้อมูลอักขระ(char)
‘a’ ‘c’ ‘d’ ‘e’  y[]
เก็บข้อมูลตัวเลขทศนิยม(double)
3.50 4.44 5.66 7.33  z[]
ตัวอย่าง array 1 มิติ
เก็บข้อมูลข้อความ
“สมชาย” “สมหญิง” “สมศรี ” “33” “88”  s[]
การสร้ าง array วิธีที่ 1
 1. ประกาศตัวแปร array
การสร้ าง array วิธีที่ 1
2 กาหนดค่าให้กบั array แต่ละตาแหน่ง
ตัวอย่ าง
char ch[]=new char[5];
ch[0]=‘a’;
ch[1]=‘b’;
ch[2]=‘c’;
ch[3]=‘d’;
ch[4]=‘e’;
การสร้ าง array วิธีที่ 2
 1. ประกาศตัวแปร array พร้อมกับกาหนดค่าให้กบั array
int x[]={4,9,10,33,45,88}
ตัวอย่างการแสดงข้อมูล
System.out.println(x[0]);
System.out.println(x[1]);
System.out.println(x[2]);
System.out.println(x[3]);
System.out.println(x[4]);
System.out.println(x[5]);
ตัวอย่างการแสดงข้อมูล
int x[]={4,9,10,33,45,88}
System.out.println(x[0]);
System.out.println(x[1]);
System.out.println(x[2]);
System.out.println(x[3]);
System.out.println(x[4]);
System.out.println(x[5]);
การหาขนาดของ array
คาสัง่
ชื่อตัวแปรarray.length
ตัวอย่าง การสร้ าง array ชนิดต่าง ๆ
double a[]=new double[5];
char b[]=new char[6];
String c[]=new String[7];
เป็ นต้น
ฝึ กเขียนโปรแกรม กับตัวแปรชนิด array
ข้อ 1 ให้เขียนโปรแกรมกาหนดค่าคะแนนให้กบั นักเรี ยนจานวน 3 คน
ข้อ 2 ให้เขียนโปรแกรมรับค่าคะแนนจากนักเรี ยน 3 คน จากนั้นแสดงผลข้อมูล
ข้อ 3 ให้เขียนโปรแกรมรับค่าชื่อนักเรี ยน 3 คน จากนั้นแสดงผลข้อมูล
ข้ อ 1 : ให้ เขียนโปรแกรมกาหนดค่าคะแนนให้ กบั นักเรี ยนจานวน 3 คน
ข้ อ 2 ให้ เขียนโปรแกรมรับค่าคะแนนจากนักเรี ยน 3 คน จากนันแสดงผลข้
้
อมูล
ข้ อ 3: ให้ เขียนโปรแกรมรับค่าชื่อนักเรี ยน 3 คน จากนันแสดงผลข้
้
อมูล
โครงสร้างควบคุม (Control Structure)
19
 การควบคุมโปรแกรมให้ทางานได้ตามต้องการ เราจาเป็ นต้องมี
ความเข้าใจเกี่ยวกับโครงสร้างควบคุมของการเขียนภาษาโปรแกรม
ประกอบด้วย
ลาดับการทางาน (Sequence)
ทางเลือก,ตัดสิ นใจ (Decision)
การวนซ้ า (Iteration)
โครงสร้างควบคุม (Control Structure)
การเขียนโปรแกรมแบบ วนซ ้า
คาสัง่ for
คาสัง่ while
คาสัง่ do..while
คาสัง่ for
start
กาหนดค่ าเริ่มต้ น
เงือ่ นไข
เปลีย่ นแปลงค่ าตัวแปร
เท็จ
จริ ง
คาสั่งต่าง ๆ
คาสัง่ ถัดไป
End
โจทย์ : ให้แสดงข้อมูล 1,2,3,.. ,100
start
int i=1
i<=100
i++
เท็จ
จริ ง
Print
i
End
การเขียนโปรแกรม คาสัง่ for
 รู ปแบบ
for(ค่ าตัวแปรเริ่มต้ น;เงือ่ นไข; เปลีย่ นแปลงค่ าตัวแปร){
คาสัง่ ….
}
**ถ้ าภายในคาสั่ง for มีแค่ 1 คาสั่งไม่ ต้องใส่ ปีกกา
โจทย์ ข้อ 1 : ให้แสดงข้อมูล 1,2,3,.. ,100
โจทย์ ข้อ 2 : ให้แสดงข้อมูล 100,99,98,….1
โจทย์ ข้อ 3
กาหนดตัวแปร array x ข้อมูลดังนี้
{‘a’, ‘b’ , ‘c’ , ‘d’ , ‘e’ , ‘f’}
ให้เขียนคาสัง่ แสดงข้อมูลของ x โดยใช้คาสัง่ for
ร่ วมด้วย
โจทย์สาหรับนักศึกษา
ข้อ 1 แสดงคาว่า Get 1 Get 3, Get 5 ,Get 7….
จนกระทัง่ Get 99
ข้อ 2 จากเลข 1-100 ให้แสดงเฉพาะเลข
จานวนคู่
การใช้ for กับ array 1 มิติ
ข้อ 4 ให้เขียนโปรแกรมรับค่าคะแนนจากนักเรี ยน 5 คน จากนั้นให้
แสดงผลข้อมูลทั้งหมด
ข้อ 5 ให้เขียนโปรแกรมรับค่าคะแนนจากนักเรี ยน 5 คน จากนั้นให้
แสดงผลข้อมูลทั้งหมดและหาค่าคะแนนที่มากที่สุด
ข้อ 6 ให้เขียนโปรแกรมรับค่าชื่อนักเรี ยน 5 คน
จากนั้นแสดงผลข้อมูล
ข้อ 4 ให้เขียนโปรแกรมรับค่าคะแนนจากนักเรี ยน 5 คน
จากนั้นให้แสดงผลข้อมูลทั้งหมด
ข้อ 5 ให้เขียนโปรแกรมรับค่าคะแนนจากนักเรี ยน 5 คน
จากนั้นให้แสดงผลข้อมูล
ทั้งหมดและหาค่าคะแนนที่มากที่สุด
ข้อ 6 ให้เขียนโปรแกรมรับค่าชื่อนักเรี ยน 5 คน จากนั้นแสดงผลข้อมูล
โจทย์สาหรับนักศึกษา
ข้อ 3 ให้รับข้อมูลตัวเลข 4 จานวน(เก็บค่าข้อมูลลงในตัวแปร
array) จากนั้นแสดงผลข้อมูลเฉพาะเลขคี่
ข้อ 4 ให้รับข้อมูลตัวเลข 4 จานวน (เก็บค่าข้อมูลลงในตัวแปร
array) จากนั้นให้แสดงค่าผลรวม และค่าเฉลี่ย
ข้อ 5 ให้เขียนโปรแกรมรับค่าคะแนนจากนักเรี ยน 9 คน
จากนั้นให้ แสดงผลข้อมูลทั้งหมด ,หาค่าคะแนนที่นอ้ ยที่สุด
และหาค่าคะแนนที่มากที่สุด
โจทย์สาหรับนักศึกษา
ข้อ 6
(รับข้อมูลนักศึกษา 6 คน)
ให้รับข้อมูล ชื่อ และคะแนนสอบ
(1-100)
จากนั้นจากข้อมูล ชื่อ คะแนนสอบ
และผลสอบ โดยผลสอบมีเกณฑ์ดงั นี้
1-50
สอบไม่ผา่ น
51-100 สอบผ่าน
Array 2 มิติ
ข้อมูล
3
4
5
4
6
3
6
7
9
7
9
3
02
12
22
03
13
23
ตาแหน่ง
00
10
20
01
11
21
Array 2 มิติ
การสร้าง array 2 มิติ วิธีที่ 1
แถว,คอลัมน์
ตัวอย่าง
int x[][]=new int[2][4];
x[0][0]=3;
x[0][1]=4;
x[0][2]=5;
x[0][3]=6;
x[1][0]=6;
x[1][1]=7;
x[1][2]=8;
x[1][3]=9;
การสร้ าง array 2 มิติ วิธีที่ 2
1. ประกาศตัวแปร array พร้อมกับกาหนดค่า
ให้กบั array
int x[][]={{1,2,3}, {4,5,7},{6,7,8} };
การเขียนโปรแกรม for กับตัวแปร array 2 มิติ
ตัวอย่าง
for(int i=0;i<=จานวนแถว;i++){
for(int j=0;i<=จานวนคอลัมน์;i++){
คาสัง่ ต่าง ๆ
}
}
ทดสอบเขียนโปรแกรม
 ให้เขียนโปรแกรม for กับตัวแปร array 2 มิติ
โดยให้แสดงข้อมูลดังนี้
00
10
20
01
11
21
02
12
22
03
13
23
โจทย์
ข้อ 1 : int x[][]={{1,2,3},{4,5,7},{6,7,8}}; จากข้อมูล
ให้แสดงข้อมูลของตัวแปร x โดยใช้คาสัง่ for
โจทย์
ข้อ 2 ให้ระบุขอ้ มูลตัวเลขจานวนเต็ม ลง array ขนาด 3x3
จากนั้นแสดงข้อมูลที่ระบุออกมาทางหน้าจอ
ตัวอย่าง
การบ้ าน โจทย์ for (คลายเครี ยด) หรื อ (เพิ่มความเครี ยด) ?
ให้เขียนคาสัง่ แสดงผลดังรู ป
ข้อ 1
ข้อ 2
ข้อ 3
การแปลง String  ตัวเลขจานวนเต็ม int
 String  ตัวเลขจานวนเต็ม (int)
รู ปแบบ
Integer.parseInt(ตัวแปรStringที่จะเปลี่ยนค่า)
เช่น String x=“50”;
int num1=Interger.parseInt(x);
การแปลง String  ตัวเลขทศนิยม double
 String  ตัวเลขทศนิ ยม
รู ปแบบ
Double.parseDouble(ตัวแปรStringที่จะเปลี่ยนค่า)
เช่น String x=“50.50”;
double num1= Double.parseDouble(x); 
ตัวอย่าง array 2 มิติ เก็บข้ อมูลชนิด String