Wednesday, February 1, 2017

แฟลชไดรฟ์เสีย อย่าเพิ่งทิ้ง ลองแกะดูอาจได้การ์ด MicroSD มาใช้



ถ้าใครที่สามารถใช้แฟลชไดรฟ์จนเสีย โดยที่ไม่หายไปก่อนได้ แอดแนะนำให้ลองแกะดูภายในก่อนนะครับ บางทีแฟลชไดรฟ์ตัวนั้นอาจจะมี MicroSD ทำหน้าที่เก็บข้อมูลอยู่ข้างใน แล้วเราก็แกะเอามาใช้ต่อได้ เรื่องราวนี้ถูกเผยแพร่ในกระทู้ FLASH DRIVE เสียอย่าเพิ่งทิ้ง ลองแกะภายในดู โดยคุณ DUCKONE ที่บังเอิญทำแฟลชไดรฟ์ของ Sandisk รุ่น Dual USB Drive เสีย เพราะลงน้ำไปหลายครั้ง และโดนแขนกดตอนเสียบคอมอยู่ จนน่าจะมีอะไรหักภายใน จึงแกะดูเพราะอยากเห็นชิปหน่วยความจำข้างใน แต่เมื่อแกะออกมาดูพบว่ามีการ์ด MicroSD ของ Sandisk ขนาด 64 GB ระบุสเปกเป็นแบบ U1 อยู่ภายใน โดยที่ตัวแฟลชไดรฟ์ทำหน้าที่เป็นเหมือน Card Reader เท่านั้นเอง ซึ่งเมื่อนำการ์ดไปฟอร์แมทใหม่ก็สามารถใช้งานได้ต่อตามปกติ ไม่ใช่แฟลชไดรฟ์ทุกรุ่นที่แกะออกมาแล้วจะเจอ MicroSD แบบนี้นะครับ เพราะแอดก็เคยแกะเล่น ส่วนใหญ่มันก็เป็นชิปหน่วยความจำสีดำๆ กันทั้งนั้น แต่กรณีนี้เป็นน่าจะเป็นรุ่นที่ทาง Sandisk ออกแบบมาเพื่อจัดการต้นทุนในการผลิตได้ดีขึ้น แทนที่จะต้องเปิดสายการผลิตชิปสำหรับแฟลชไดรฟ์เพิ่ม ก็ผลิตแค่ MicroSD อย่างเดียว แล้วสร้างตัวอ่านมาครอบ ทำให้ขายได้ในราคาไม่แพงไงครับ (แต่แฟลชไดรฟ์ดังๆ อย่าง Sandisk ต้องซื้อในร้านที่เชื่อใจได้ หรือมีประกันตัวแทนจำหน่ายอย่าง Synnex นะครับ ซื้อของปลอมนอกจากจะไม่ได้ประกันแล้ว ยังเสี่ยงข้อมูลหายอีก)

เครดิตจาก : https://www.beartai.com/news/it-thai-news/147587

Sunday, January 9, 2011

ตัวแปรชุดของอักขระ String (ตัวแปรชนิดข้อความ)

ในภาษาซีจะไม่มีชนิดข้อมูลที่เป็นข้อความโดยตรง แต่จะเป็นการรวมเอาตัวแปลชนิดอักขระ หรือกลุ่มของข้อมูลที่มีชนิดข้อมูลอักขระมารวมกันเรียกว่า สายอักขระ หรือ ข้อความ
  • ถ้าเราต้องการใช้คำว่า Hello เราจะต้องประกาศตัวแปรที่มีชนิดเป็น char 5 ตัว
char ch1 = 'H', ch2 = 'e', ch3 = 'l', ch4 = 'l', ch5 = '0';

  • แต่ถ้าเป็นข้อความที่ยาวมากๆมันจะไม่ค่อยเหมาะสมเท่าไรที่จะต้องมาประกาศตัวแปรเยอะขนาดนี้ ดังนั้นการจัดเก็บข้อความในภาษาซีจึงเอาหลักหารของตัวแปรชุด (ตัวแปรแถวลำดับ)เข้ามาจัดการทำให้สามารถจัดเก็บข้อมูลชนิดข้อความได้อย่างเหมาะสมที่สุด
  • โดยตัวแปรชนิดข้อความในภาษาซีจะอยู่ในเครื่องหมาย "" Double quote
รูปแบบการประกาศตัวแปรชนิดข้อความ

char var[M];

  • var คือชื่อตัวแปร
  • M คือจำนวนของอักขระที่ใช้เ็ก็บบวกด้วย 1 (การบวกด้วย 1 เพื่อเป็นการใส่ \0 หรือ null character ให้รู้ว่าเป็นที่สิ้นสุดของข้อความนี้แล้ว)

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

char str[15]; //ประกาศตัวแปรข้อความ strมีความ 15 character
char frist[20], last[20]; //ประกาศตัวแปรข้อความ frist และ last มีความยาม 20 char.
รูปแบบการประกาศตัวแปรและกำหนดค่า
  • char var[M] = "??..??";
  • char var[M] = {'?','?','?'...,'?'}
  • char var[] = "??..??";
  • var คือ ชื่อตัวแปร
  • M คือ จำนวนของอักขระที่จะเก็บบวกด้วย 1
  • ? คือลักษณะของอักขระที่กำหนดค่าให้ข้อความมีจำนวนเท่ากับ M-1
ตัวอย่างการประกาศตัวแปร
char subject[12] = "Programming";
char nick[4] = "Com";
char nick_1[4] = {'C','o','m','\o'};
char name[] = "Jirasak";

รูปแบบการอ้างอิงอักขระในตัวแปรข้อความ

variable [N]
  • variable คือ ชื่อตัวแปร
  • N คือลำดับอักขระที่จะอ้างอิงในตัวแปรข้อความ (โดยตำแหน่งอักขระตัวแรกเริ่มจาก 0)
ตัวอย่างการอ้างอิงอักขระในตัวแปลข้อความ
char subject[12] = "Programming";

ตัวอย่างโปรแกรมในการอ้างอิงอักขระในข้อความ
#include <stdio.h>
void main()
{
char subject[12] = "Programming"; //ประกาศตัวแปร subject
printf("%s\n",subject); //แสดงผลข้อความ
printf("%c\n",subject[0]); //แสดงอักขระในข้อความตัวที่ 1 คือ P
printf("%c\n",subject[1]); //แสดงอักขระในข้อความตัวที่ 2 คือ r
printf("%c\n",subject[2]); //แสดงอักขระในข้อความตัวที่ 3 คือ o
printf("%c\n",subject[3]); //แสดงอักขระในข้อความตัวที่ 4 คือ g
printf("%c\n",subject[10]); //แสดงอักขระในข้อความตัวที่ 11 คือ g
}
ผลจากการรันโปรแกรม


หลักการตั้งชื่อตัวแปรในภาษาซี

  • ขึ้นต้นด้วยอีกษร A-z, a-z หรือเครื่องหมาย _ (underscore) เท่านั้น
  • ภายในชื่อตัวแปรห้ามมีช่องว่าง
  • ภายในตัวแปรประกอบไปด้วยอักขระ A-z, a-z หรือเครื่องหมาย _(underscore) เท่านั้น
  • การใช้อักษรพิมพ์ใหญ่และอักษรตัวพิมพ์เล็กมีความแตกต่างกัน
  • ห้ามใช้คำสวงนเป็นชื่อตัวแปร
  • ควรตั้งชื่อตัวแปรให้สัมพันธ์กับค่าที่เก็บ
  • ความยาวชื่อไม่จำกัด แต่ถือเพียง 31 ตัวแรกเป็นนัยสำคัญ
ตัวอย่างชื่อตัวแปรที่ถูกต้อง
acc 
_ok
S_date
addr
ChaiangMaiUniversity
ตัวอย่างชื่อตัวแปลที่ไม่ถูกต้อง
#account  
char
707james

รูปแบบการประกาศและกำหนดค่าตัวแปรในภาษาซี


type var1 = value1;
type var1 = value1, varN = valueN;

  • type คือชนิดของข้อมูลที่กำหนดให้กับตัวแปร
  • varX คือชื่อตัวแปรที่จะตั้ง
  • valueX คือค่าของตัวแปรที่ต้องการกำหนดให้
ตัวอย่าง
int number = 25;
int a = 1, b = 2, c = 3;
float real = 99.99;
float point1 = 45.2, point2 = 30;
char choice = 'a';
char ch1 = 'o', ch2 = 'z';

รูปแบบการประกาศตัวแปรในภาษาซี


type var1;
type var1, var2, var3, ... , varN;

  • type คือชนิดของข้อมูลที่กำหนดให้กับตัวแปร
  • varX คือชื่อตัวแปรที่จะตั้ง

ตัวอย่าง
int number;
int a, b, c;
float real;
float point1, point2;
char choice;
char ch1, ch2;

ชนิดข้อมูลในภาษาซี

ข้อมูลชนิดจำนวนเต็ม / Integer
int เป็นพารามิเตอร์หลักที่ใช้กับข้อมูลชนิดจำนวนเต็ม โดยมีการใช้งาน 5 รูปแบบดังนี้
  • unsigned int ข้อมูลชนิดจำนวนเต็มไม่คิดเครื่องหมาย 2 byte
  • short int ช้อมูลชนิดจำนวนเต็มขนาด 2 byte
  • int ข้อมูลชนิดจำนวนเต็มขนาด 2 byte
  • unsigned long ข้อมูลชนิดจำนวนเต็มไม่คิดเครื่องหมาย 4 byte
  • long ข้อมูลชนิดจำนวนเต็มขนาด 4 byte

ข้อมูลชนิดจำนวนทศนิยม/ float
float เป็นพารามิเตอร์หลักที่ใช้กับข้อมูลชนิดทศนิยมโดยมีการใช้งาน 3 รูปแบบ
  • float ข้อมูลชนิดจำนวนทศนิยมขนาด 4 byte
  • double ข้อมูลชนิดจำนวนทศนิยมขนาด 8 byte
  • long double ข้อมูลชนิดจำนวนทศนิยมขนาด 10 byte

ข้อมูลชนิดอักขระ / character
char เป็นพารามิเตอร์ที่ใช้งานเกี่ยวกับตัวอักษร และข้อความในภาษาซี โดยมีการกำหนดค่าอักขระโดยให้อยู่ในเครื่องหมาย single quote ('') เช่น 'C', 'o', 'm' อักขระพิเศษบางตัวไม่สามารถกำหนดค่าให้ได้โดยตรงแต่ใช้ค่ารหัส ASCII เช่นอักขระควบคุมและการแสดงผลขึ้นบรรทัดใหม่ '\n' เป็นต้นโดยมีรูปแบบการใช้งาน 2 รูปแบบ
  • unsigned char ข้อมูลชนิดอักขระไม่คิดเครื่องหมาย
  • char ข้อมูลชนิดอักขระปกติ

ตารางแสดงขอบเขตของชนิดข้อมูล


เปรียบเทียบขนาดของชนิดข้อมูล

char < short < int < long < float < double < long double

Multimedia นักเรียนห้อง 6/3 กลุ่ม Heritage รอบที่ 1

ชื่อกลุ่ม Koala's March
ชื่องาน Heritage
สมาชิก
ธัญพิชชา ธีรเวช 9ก
ณัฐกฤตา สุขุมะ 8ข
ปิยะธิดา เทียมลม 9ข


ความคิดเห็นของอาจารย์
  1. ในขณะที่แนะนำที่มาของเรื่องควรมีใช้การพูดบรรยายประกอบเสียงเพลงมากกว่า การใช้ข้อความเป็นตัวเริ่มเรื่องครับ
  2. การดึงจุดสนใจให้คนดูสามารถติดตามต่อไปไม่มีเลยครับ ลักษณะจะต้องเปิดตัวออกมาเป็นที่น่าสนใจมากกว่านี้
  3. ควรให้ดูเป็นทางการมากกว่านี้รวมถึงการใช้สีของพื้นหลังข้อความดู วกวน สันสน ไม่เป็นแบบเดียวกันเท่าำไร
  4. ลักษณะของการใช้ภาพวีดีโอบางซีนดูไม่สมส่วนบางซีก็สมส่วนไม่คงที่ทั้งคลิปทำให้ดูแล้วปวดหัวไม่น้อยเลยครับ
  5. ในเนื้อหาโอเคแล้วครับแต่การนำเสนออาจาย์คิดว่าปรับรูปแบบดีกว่าหรือถ้าจะให้จะเอารูปแบบเดิมต้องมีการปรับบทและเนื้อเรื่องให้ดูจริงจังมากกว่านี้ครับ
  6. ตอนท้ายที่สรุปเรื่องของพินัยกรรมควรใช้ภาพและการพูดบรรยายมากกว่าใช้ตัวหนังลือสื่อสารให้คนดูได้รู้ครับเพราะตามหลักแล้วคนดูจะไม่ค่อยใส่ใจกับตัวหนังสือเท่าไรเค้าต้องการอะไรที่สั้น ครอบคลุมและได้ใจความมากกว่า
  7. คิดว่าลักษณะงานที่ถ่ายกันอยู่สามารถเอามาปรับหรือแก้ไขให้ดีขึ้นมาได้ครับลองช่วยกันคิดหาวิธีหรือเปลี่ยนรูปแบบใหม่โดยใช้สิ่งที่มีอยู่แล้วมาแก้ดูครับจะได้ไม่ต้องเสียเวลาถ่ายใหม่ครับ
  8. เต็ม 10 ให้ 5 ครับ สู้ๆนะครับ

Featured Post

การแปลภาษาของโปรแกรมภาษาซี

ภาษาซีเป็นภาษาชั้นสูงและเป็นภาษาที่มนุษย์เข้าใจ แต่เครื่องคอมพิวเตอร์เข้าใจเฉพาะภาษาเครื่อง (Machine Language) เท่านั้น ดังนั้นหากต้องการให้...