การเขียนโปรแกรม

พื้นฐานสำคัญสำหรับการพัฒนาซอฟต์แวร์และการสั่งงานคอมพิวเตอร์

สารบัญ

การทำงานของคอมพิวเตอร์

คอมพิวเตอร์ทำงานโดยใช้หลักการประมวลผลข้อมูลแบบดิจิทัล ซึ่งประกอบด้วยส่วนประกอบหลัก 4 ส่วน:

  • หน่วยรับข้อมูล (Input Unit) - รับข้อมูลจากผู้ใช้ผ่านอุปกรณ์ เช่น คีย์บอร์ด เมาส์ หรือเซ็นเซอร์ต่างๆ
  • หน่วยประมวลผลกลาง (CPU) - ทำหน้าที่คำนวณและประมวลผลข้อมูลตามคำสั่งที่ได้รับ
  • หน่วยความจำ (Memory) - เก็บข้อมูลและคำสั่งที่ใช้ในการประมวลผล แบ่งเป็นหน่วยความจำหลัก (RAM) และหน่วยความจำสำรอง (Storage)
  • หน่วยแสดงผล (Output Unit) - แสดงผลลัพธ์จากการประมวลผลให้ผู้ใช้ทราบ เช่น หน้าจอ ลำโพง หรือเครื่องพิมพ์

การทำงานของคอมพิวเตอร์เป็นไปตามวงจรการทำงานที่เรียกว่า "Fetch-Decode-Execute Cycle" โดย CPU จะดึงคำสั่งจากหน่วยความจำ ถอดรหัสคำสั่ง และประมวลผลตามคำสั่งนั้น

Input Unit CPU Memory Storage Output Unit

แผนภาพการทำงานของคอมพิวเตอร์

ระดับของภาษาในการเขียนโปรแกรม

ภาษาในการเขียนโปรแกรมสามารถแบ่งออกเป็นระดับต่างๆ ตามความใกล้ชิดกับภาษาเครื่อง (Machine Language) และภาษามนุษย์:

ภาษาระดับต่ำ

ใกล้ชิดกับภาษาเครื่อง ทำงานได้เร็ว แต่เขียนและแก้ไขยาก

ตัวอย่าง:

  • ภาษาเครื่อง (Machine Language)
  • ภาษาแอสเซมบลี (Assembly)

ภาษาระดับกลาง

ผสมผสานระหว่างภาษาระดับสูงและระดับต่ำ

ตัวอย่าง:

  • ภาษา C
  • ภาษา C++

ภาษาระดับสูง

ใกล้เคียงกับภาษามนุษย์ เขียนและแก้ไขง่าย

ตัวอย่าง:

  • Python, Java, JavaScript
  • Ruby, PHP, C#

การแปลงภาษา

ภาษาระดับสูง

Python, Java

คอมไพเลอร์/อินเตอร์พรีเตอร์

แปลงโค้ด

ภาษาเครื่อง

0 และ 1

ชนิดของข้อมูล (Data Types)

ชนิดของข้อมูลเป็นการกำหนดประเภทของข้อมูลที่จะเก็บในโปรแกรม ซึ่งมีผลต่อวิธีการจัดเก็บในหน่วยความจำและการดำเนินการกับข้อมูลนั้น

ข้อมูลพื้นฐาน (Primitive Data Types)

  • Integer (จำนวนเต็ม)

    เช่น 1, 42, -10, 0

  • Float (จำนวนทศนิยม)

    เช่น 3.14, -0.001, 2.0

  • Boolean (ค่าความจริง)

    True (จริง) หรือ False (เท็จ)

  • Character (อักขระ)

    เช่น 'a', 'B', '5', '$'

  • String (ข้อความ)

    เช่น "Hello", "สวัสดี", "123"

ข้อมูลแบบโครงสร้าง (Structured Data Types)

  • Array (อาร์เรย์)

    เช่น [1, 2, 3, 4, 5]

  • Object (อ็อบเจ็กต์)

    เช่น {name: "John", age: 30}

  • List (ลิสต์)

    เช่น ["apple", "banana", "orange"]

  • Dictionary (พจนานุกรม)

    เช่น {"key1": "value1", "key2": "value2"}

  • Tuple (ทูเพิล)

    เช่น (1, "hello", true)

หมายเหตุ:

ชนิดข้อมูลอาจแตกต่างกันไปในแต่ละภาษาโปรแกรม บางภาษาอาจมีชนิดข้อมูลเฉพาะเพิ่มเติม หรือเรียกชื่อต่างกัน

ตัวแปร (Variable)

ตัวแปรเป็นพื้นที่ในหน่วยความจำที่ใช้เก็บข้อมูลในโปรแกรม โดยมีชื่อเฉพาะสำหรับอ้างอิงถึงข้อมูลนั้น

องค์ประกอบของตัวแปร

  • ชื่อ (Name)

    ชื่อที่ใช้อ้างอิงถึงตัวแปร เช่น age, name, total

  • ชนิดข้อมูล (Data Type)

    ประเภทของข้อมูลที่เก็บในตัวแปร เช่น int, string, boolean

  • ค่า (Value)

    ข้อมูลที่เก็บในตัวแปร เช่น 25, "Hello", true

  • ตำแหน่งในหน่วยความจำ (Memory Address)

    ตำแหน่งที่เก็บข้อมูลในหน่วยความจำ

ตัวอย่างการประกาศตัวแปร

// JavaScript

let age = 25;

const name = "John";

var isActive = true;

# Python

age = 25

name = "John"

is_active = True

// Java

int age = 25;

String name = "John";

boolean isActive = true;

ขอบเขตของตัวแปร (Variable Scope)

Global Variables (ตัวแปรส่วนกลาง)

สามารถเข้าถึงได้จากทุกส่วนของโปรแกรม ประกาศนอกฟังก์ชันหรือบล็อกโค้ด

Local Variables (ตัวแปรเฉพาะที่)

เข้าถึงได้เฉพาะภายในฟังก์ชันหรือบล็อกโค้ดที่ประกาศเท่านั้น

ตัวดำเนินการ (Operator)

ตัวดำเนินการเป็นสัญลักษณ์พิเศษที่ใช้ในการคำนวณหรือดำเนินการกับข้อมูล แบ่งเป็นหลายประเภทตามลักษณะการใช้งาน

ตัวดำเนินการทางคณิตศาสตร์

สัญลักษณ์ ความหมาย
+ บวก
- ลบ
* คูณ
/ หาร
% หารเอาเศษ
** ยกกำลัง

ตัวดำเนินการเปรียบเทียบ

สัญลักษณ์ ความหมาย
== เท่ากับ
!= ไม่เท่ากับ
> มากกว่า
< น้อยกว่า
>= มากกว่าหรือเท่ากับ
<= น้อยกว่าหรือเท่ากับ

ตัวดำเนินการทางตรรกะ

สัญลักษณ์ ความหมาย
&& และ (AND)
|| หรือ (OR)
! ไม่ (NOT)

ตัวดำเนินการกำหนดค่า

สัญลักษณ์ ความหมาย
= กำหนดค่า
+= บวกแล้วกำหนดค่า
-= ลบแล้วกำหนดค่า
*= คูณแล้วกำหนดค่า
/= หารแล้วกำหนดค่า

ตัวดำเนินการเพิ่ม/ลดค่า

สัญลักษณ์ ความหมาย
++ เพิ่มค่าขึ้น 1
-- ลดค่าลง 1

ตัวดำเนินการบิต (Bitwise)

สัญลักษณ์ ความหมาย
& AND ระดับบิต
| OR ระดับบิต
^ XOR ระดับบิต
~ NOT ระดับบิต

ตัวอย่างการใช้งานตัวดำเนินการ

// ตัวอย่างการใช้ตัวดำเนินการทางคณิตศาสตร์

let a = 10;

let b = 3;

let sum = a + b; // 13

let diff = a - b; // 7

let product = a * b; // 30

let quotient = a / b; // 3.333...

let remainder = a % b; // 1

// ตัวอย่างการใช้ตัวดำเนินการเปรียบเทียบ

let isEqual = a == b; // false

let isNotEqual = a != b; // true

let isGreater = a > b; // true

// ตัวอย่างการใช้ตัวดำเนินการทางตรรกะ

let x = true;

let y = false;

let andResult = x && y; // false

let orResult = x || y; // true

ภาษาคอมพิวเตอร์

ภาษาคอมพิวเตอร์เป็นชุดของคำสั่งที่ใช้ในการสื่อสารกับคอมพิวเตอร์ เพื่อให้คอมพิวเตอร์ทำงานตามที่ต้องการ มีหลากหลายภาษาที่ถูกพัฒนาขึ้นเพื่อวัตถุประสงค์ที่แตกต่างกัน

ประเภทของภาษาคอมพิวเตอร์

  • ภาษาเครื่อง (Machine Language)

    ภาษาระดับต่ำสุดที่คอมพิวเตอร์เข้าใจได้โดยตรง ประกอบด้วยเลขฐานสอง (0 และ 1)

  • ภาษาแอสเซมบลี (Assembly Language)

    ภาษาระดับต่ำที่ใช้คำสั่งแทนรหัสเลขฐานสอง ต้องใช้แอสเซมเบลอร์แปลงเป็นภาษาเครื่อง

  • ภาษาระดับสูง (High-level Language)

    ภาษาที่ใกล้เคียงกับภาษามนุษย์ เขียนและอ่านง่าย ต้องใช้คอมไพเลอร์หรืออินเตอร์พรีเตอร์แปลงเป็นภาษาเครื่อง

ภาษาโปรแกรมยอดนิยม

P

Python

ภาษาที่อ่านง่าย เหมาะสำหรับผู้เริ่มต้น นิยมใช้ในด้าน Data Science และ AI

JS

JavaScript

ภาษาหลักสำหรับพัฒนาเว็บไซต์ฝั่ง Client-side

J

Java

ภาษา OOP ที่ทำงานบน JVM นิยมใช้ในองค์กรขนาดใหญ่

C#

C#

ภาษาจาก Microsoft นิยมใช้พัฒนาแอปพลิเคชัน Windows และเกม

G

Go

ภาษาจาก Google เน้นประสิทธิภาพและความเรียบง่าย

R

R

ภาษาสำหรับการวิเคราะห์ข้อมูลทางสถิติและการสร้างกราฟ

การเปรียบเทียบภาษาโปรแกรม

ภาษา ประเภท การใช้งานหลัก ความยากง่าย
Python Interpreted Data Science, AI, Web, Automation ง่าย
JavaScript Interpreted Web Development, Frontend, Backend ปานกลาง
Java Compiled Enterprise, Android, Web ปานกลาง-ยาก
C++ Compiled Game Development, System Software ยาก
PHP Interpreted Web Development, Backend ปานกลาง