Lecture 10: อาร์เรย์หนึ่งมิติ 886201 หลักการโปรแกรม 1 Lecture 10: อาร์เรย์หนึ่งมิติ
ตัวแปรแถวลำดับคืออะไร ชุดของตัวแปรหลายๆ ตัวที่มีชนิดเดียวกัน และมีชื่อเรียกเดียวกัน การอ้างถึงตัวแปรแต่ละตัวทำโดยอ้างถึงชื่อและตำแหน่ง (index) ของตัวแปร score ชื่อ 1 2 … 8 ตำแหน่ง int …
ใช้ตัวแปรแถวลำดับทำอะไร เหมือนตัวแปรทั่วไป คือ เก็บข้อมูลโดยที่ข้อมูลที่เก็บจะ เป็นชุด ใช้แทนสิ่งที่คล้ายๆ กัน มีชนิดข้อมูลเหมือนกัน นำไปใช้ด้วยวิธีคล้ายๆ กัน ตัวอย่าง รหัสนิสิตของนิสิตในห้องนี้ คะแนนสอบวิชา 886201 ของนิสิตในห้องนี้ เกรดวิชา 886201 ของนิสิตในห้องนี้
ตัวอย่าง รหัสนิสิตของนิสิตในห้องนี้ (มีนิสิตไม่เกิน 200 คน) int stdnt_id[200]; คะแนนสอบวิชา 886201 ของนิสิตในห้องนี้ (≤ 200 คน) float score_171[200];
ตัวอย่าง double values[] = { 32, 54, 67.5, 29, 35, 80, 115, 44.5, 100, 65 }; 32.0 54.0 67.5 29.0 35.0 80.0 115.0 44.5 100.0 65.0
Array Syntax
การเข้าถึงค่าใน array double values[10]; ... cout << values[4] << endl; ผลลัพธ์ที่แสดงบนหน้าจอ คือ 35.0. 32.0 54.0 67.5 29.0 35.0 80.0 115.0 44.5 100.0 65.0
การกำหนดค่าใน array values[4] = 17.7; 32.0 54.0 67.5 29.0 35.0 80.0 115.0 44.5 100.0 65.0
การกำหนดค่าใน array values[4] = 17.7; 32.0 54.0 67.5 29.0 17.7 80.0 115.0 44.5 100.0 65.0
Common Algorithms – Copying int squares[5]; int lucky_numbers[5]; for (int i = 0; i < 5; i++) { squares[i] = i * i; } when i is 0 for (int i = 0; i < 5; i++) { lucky_numbers[i] = squares[i]; } Common Algorithms – Copying
Common Algorithms – Copying int squares[5]; int lucky_numbers[5]; for (int i = 0; i < 5; i++) { squares[i] = i * i; } when i is 0 for (int i = 0; i < 5; i++) { lucky_numbers[i] = squares[i]; } Common Algorithms – Copying
Common Algorithms – Copying int squares[5]; int lucky_numbers[5]; for (int i = 0; i < 5; i++) { squares[i] = i * i; } when i is 1 for (int i = 0; i < 5; i++) { lucky_numbers[i] = squares[i]; } Common Algorithms – Copying
Common Algorithms – Copying int squares[5]; int lucky_numbers[5]; for (int i = 0; i < 5; i++) { squares[i] = i * i; } when i is 1 for (int i = 0; i < 5; i++) { lucky_numbers[i] = squares[i]; } Common Algorithms – Copying
Common Algorithms – Copying int squares[5]; int lucky_numbers[5]; for (int i = 0; i < 5; i++) { squares[i] = i * i; } when i is 2 for (int i = 0; i < 5; i++) { lucky_numbers[i] = squares[i]; } Common Algorithms – Copying
Common Algorithms – Copying int squares[5]; int lucky_numbers[5]; for (int i = 0; i < 5; i++) { squares[i] = i * i; } when i is 2 for (int i = 0; i < 5; i++) { lucky_numbers[i] = squares[i]; } Common Algorithms – Copying
Common Algorithms – Copying int squares[5]; int lucky_numbers[5]; for (int i = 0; i < 5; i++) { squares[i] = i * i; } when i is 3 for (int i = 0; i < 5; i++) { lucky_numbers[i] = squares[i]; } Common Algorithms – Copying
Common Algorithms – Copying int squares[5]; int lucky_numbers[5]; for (int i = 0; i < 5; i++) { squares[i] = i * i; } when i is 3 for (int i = 0; i < 5; i++) { lucky_numbers[i] = squares[i]; } Common Algorithms – Copying
Common Algorithms – Copying int squares[5]; int lucky_numbers[5]; for (int i = 0; i < 5; i++) { squares[i] = i * i; } when i is 4 for (int i = 0; i < 5; i++) { lucky_numbers[i] = squares[i]; } Common Algorithms – Copying
Common Algorithms – Copying int squares[5]; int lucky_numbers[5]; for (int i = 0; i < 5; i++) { squares[i] = i * i; } when i is 4 for (int i = 0; i < 5; i++) { lucky_numbers[i] = squares[i]; } Common Algorithms – Copying
Common Algorithms – Who Is the Tallest? me? ใครสูงที่สุดในแถว?
Common Algorithms – Maximum double largest = values[0]; for (int i = 1; i < size of values; i++) { if (values[i] > largest) { largest = values[i]; } }
การค้นข้อมูลใน array เมื่อมีการเก็บกลุ่มข้อมูล ก็ต้องมีการค้นหาข้อมูล สมมุติให้ โปรแกรมนี้ผู้ใช้จะบอกข้อมูลที่ต้องการค้นหา จากนั้นโปรแกรมจะแสดงผลลัพธ์ ดังนี้ ถ้าพบข้อมูลดังกล่าวในแถวอาเรย์ จะแจ้งว่าข้อมูลอยู่ตำแหน่งไหน ถ้าไม่พบข้อมูลในแถวอาเรย์นี้ จะคืนค่าเป็น -1 ตัวอย่าง ต้องการค้นหา 6 จากอาเรย์ a a คำตอบ คือ 1
การค้นข้อมูลใน array ถ้าเลขที่ต้องการหามีหลายตัว a int find = 6; int index = -1; for(int i = 0; i < 5 ; i++ ) { if ( a[i] == find ) { index = i; } cout << index; 5 6 1 ถ้าเลขที่ต้องการหามีหลายตัว โปรแกรมนี้จะแสดงตำแหน่งใด ตำแหน่งแรก หรือ ตำแหน่งสุดท้าย ถ้าต้องการให้แสดงตำแหน่งแรก ที่พบตัวเลขดังกล่าว ต้องแก้ไขโปรแกรมนี้อย่างไร
สายอักขระ สายอักขระ (string) คือกลุ่มของตัวอักขระที่เรียงต่อกัน ตัวอย่าง char department[5] = “Math”; department M a t h \0 [0] [1] [2] [3] [4]
ตัวอย่างการประกาศตัวแปรสำหรับสายอักขระ
ฟังก์ชันหาขนาดของสายอักขระ : strlen( ) #include <iostream> #include <cstring> using namespace std; int main() { int x; char str1[20]; cout << “Please enter the first string: ”; cin >> str1; x = strlen(str1); cout << “The length of this string: ” << x; return 0; } Sample output: Please enter the first string: Hello The length of this string: 5