By Arnon Puitrakul - 10 เมษายน 2015
สวัสดีฮ่ะ! นี่ก็ตอนที่ 2 แล้วหลังจากที่เขียนตอนที่แล้ว แล้วหายไปหลายวันอยู่ วันนี้กลับมาแล้ว กับตอนที่ 2 เย้ๆๆ อ่อ ลืม สวัสดีปีใหม่ไทยล่วงหน้านะครับ
มาเข้าเนื้อหากันเลย วันนี้เราจะมาพูดถึงเรื่อง ตัวแปร หรือ Variable
จากตอนแรกที่เราเขียนกันเมื่อ EP. ที่แล้ว เราก็ได้แค่ส่งข้อมูลออกทางหน้าจอ แต่ข้อมูลนั้นก็ตายตัว ตายคาที่อยู่ตรงนั้น แต่ตัวแปรจะเป็นตัวเก็บค่าอะไรก็ได้ตามที่เราต้องการ **งงล่ะสิ!! **เอางี้มาลองดู กันก่อน เราจะมาลองเขียนโปรแกรมบวกเลขง่ายๆกัน (ใครบวกเลขไม่เป็นไปหัดมาก่อนนะ)
#include <stdio.h>
int main ()
{
int a;
a=5;
printf("%d",a+1);
return 0;
}
ก่อนอื่นเราก็เขียน include กับ main function ตามปกติ เหมือนตอนที่แล้วเลย แต่สังเกตมั้ยครับมันอะไรงอกออกมา นั่นคือ int a;
บรรทัด int a; จะเป็นการประกาศตัวแปรที่เป็น Integer หรือ จำนวนเต็ม ที่ชื่อว่า a นั่นเอง!
เพราะฉะนั้นการประกาศตัวแปรจะทำได้ง่ายๆดังนี้
dataType VarName;
dataType คือประเภทของตัวแปร เช่น int, double, long เป็นต้น และ VarName นั่นคือชื่อตัวแปรที่เราตั้งเองตามใจชอบ (อย่าตั้งชื่อแปลกๆนะเฮ้ย!! ตั้งให้มันเข้ากับสิ่งที่มันเก็บด้วยนะ)
อีกเรื่องนั่นคือ ด้านใน printf มันเปลี่ยนไปนิดหน่อย จาก EP. ที่แล้วเรารู้ว่า คำสั่ง printf คือคำสั่งที่เอาข้อความออกทางหน้าจอ แล้วก็ให้ใส่ข้อความลงใน "" ได้เลย แต่อันนี้เราต้องการที่จะแสดงค่าตัวแปรออกมา เลยต้องใส่ %d (ขึ้นกับประเภทของตัวแปร เดียวจะบอกด้านล่างล่ะกัน) แล้วตามด้วย , (comma) และชื่อตัวแปรที่เราต้องการแสดง ถ้ามีหลายตัวก็ใส่ไปเรื่อยๆเลยเช่น
printf("%d %d %d",a,b,c);
ก็ไม่ยากครับ แค่ชื่อตัวแปร = ค่าที่ต้องการ
a = 5;
หรือจะกำหนดให้มันตอนประกาศไปเลยก็ได้ เช่น
int a = 5;
เหมือนที่ใช้ให้ดู เมื่อโค๊ตด้านบนเลย พวก +,-,*,/ อะไรแบบนี้ พวกนี้ก็ใช้ปกติได้เลย ง่ายๆ
แต่ๆๆ มันจะมี Operator นึงพิเศษหน่อย เรียกว่า Modulus หรือเรียกสั้นๆว่า mod มันคือการหารครับ แต่เอาแต่เศษมาอย่างเดียว เช่น
5 mod 2 มันจะได้ 1 ง่ายมากๆ
มาดู Operator อีกแบบนึง เรียกว่า Overloaded Operator อารมณ์มันคือ Operator Version ขี้เกียจนั่นเอง เป็นยังไง มาลองดูกัน
a++;
b--;
a += b;
a -= b;
a /= b;
สำหรับ 2 อันแรก จะเป็นการ บวก 1 หรือลบ 1 ขึ้นกับ เครื่องหมายที่เราใส่เช่น a-- มันก็คือให้ a มีค่าเป็น a-1 นั่นเอง (จริงๆแล้ว a++ เขียนเป็น ++a ก็ได้เหมือนกัน มันจะต่างตอนที่เราเขียนสูงไปหน่อย เดียวค่อยสอนใน EP ต่อๆไป a-- ก็ได้ด้วยน้าา เดี๋ยวน้อยใจ)
ส่วนอีก 3 อันด้านล่าง จะเป็นการทำกับ ตัวแปรอื่น เช่น a+= b; คือ a = a+b; ตัวอื่นๆก็เช่นกันต่างไปตามเครื่องหมายที่เราใส่เข้าไป!
สำหรับวันนี้ก็หมดเพียงเท่านี้ เรื่องแรกๆมันง่ายๆจริงนะ เขียนสั้นๆก็จบและ ดีๆๆ สวัสดีปีใหม่ไทยล่วงหน้า และ เที่ยวสงการต์อย่างปลอดภัยนะครับ สวัสดีครับ //ทำไมเหมือนรายการทีวีจังว่ะ!!!
เราเป็นคนที่อ่านกับซื้อหนังสือเยอะมาก ปัญหานึงที่ประสบมาหลายรอบและน่าหงุดหงิดมาก ๆ คือ ซื้อหนังสือซ้ำเจ้าค่ะ ทำให้เราจะต้องมีระบบง่าย ๆ สักตัวในการจัดการ วันนี้เลยจะมาเล่าวิธีการที่เราใช้ Obsidian ในการจัดการหนังสือที่เรามีกัน...
หากเราเรียนลงลึกไปในภาษาใหม่ ๆ อย่าง Python และ Java โดยเฉพาะในเรื่องของการจัดการ Memory ว่าเขาใช้ Garbage Collection นะ ว่าแต่มันทำงานยังไง วันนี้เราจะมาเล่าให้อ่านกันว่า จริง ๆ แล้วมันทำงานอย่างไร และมันมีเคสใดที่อาจจะหลุดจนเราต้องเข้ามาจัดการเองบ้าง...
ก่อนหน้านี้เราเปลี่ยนมาใช้ Zigbee Dongle กับ Home Assistant พบว่าเสถียรขึ้นเยอะมาก อุปกรณ์แทบไม่หลุดออกจากระบบเลย แต่การติดตั้งมันเข้ากับ Synology DSM นั้นมีรายละเอียดมากกว่าอันอื่นนิดหน่อย วันนี้เราจะมาเล่าวิธีการเพื่อใครเอาไปทำกัน...
เมื่อหลายวันก่อนมีพี่ที่รู้จักกันมาถามว่า เราจะโหลด CSV ยังไงให้เร็วที่สุด เป็นคำถามที่ดูเหมือนง่ายนะ แต่พอมานั่งคิด ๆ ต่อ เห้ย มันมีอะไรสนุก ๆ ในนั้นเยอะเลยนี่หว่า วันนี้เราจะมาเล่าให้อ่านกันว่า มันมีวิธีการอย่างไรบ้าง และวิธีไหนเร็วที่สุด เหมาะกับงานแบบไหน...