Saturday, August 23, 2008

ซื้ออุปกรณ์อิเล็กทรอนิกส์ จากร้านขายอะไหล่ (ใน "บ้านโป่ง")

วันนี้เป็นครั้งที่ 3 ที่ไปซื้ออุปกรณ์อิเล็กทรอนิกส์ (มานั่งประกอบวงจรเล็กๆ น้อยๆ)

ไปซื้อ resistor บอกเค้า ขอ 175 kOhm 1/4 watts (คิดในใจว่าไม่มีเท่านี้แน่ๆ)
เลยบอกเขาว่า ขอ resistor ที่ขนาดใกล้เคียง หรือรวมกันได้ขนาดเท่ากันก็ได้

เขาก็บอกว่า "ไม่มีค่ะ... ใกล้เคียงก็ 180 kOhm ค่ะ"
"อืม อนุกรมกันบวกกัน ขนานกันมันจะลด"
"งั้นเอา 180 kOhm ไปขนานกับ 5 kOhm ละกันนะคะน้อง ได้ 175 kOhm พอดี"

เราก็บอกว่าไม่เอา...พร้อมทั้งตกใจอย่างแรง หยิบเครื่องคิดเลขในร้านเขามาจิ้ม .... อืม...มันไม่ใช่ 175 ซักหน่อย ตกใจหมด เฮอๆ เราก็แย้งเขาว่ามันไม่ได้ 175 น๊า... เค้าก้อไม่ฟัง เฮอๆ (จำได้ว่า ขนานกัน เอาความต้านทานคูณหันหารด้วยความต้านทานบวกกัน นี่นา)

สรุปว่า ซื้อ 180 kOhm มาพร้อมกับซื้อ 100+50+25 kOhm มา (มั้ง)
แต่สุดท้าย เอาไปใส่วงจรก็เลือก 180 kOhm (เอาไปต่อกับ IC 555 เป็น Astable Square Wave Generator) ต้องการสร้างความถี่ 40kHz อ่า....สุดท้ายวงจรก็ใช้ได้แต่ยังดูทำงานแปลกๆ เฮอๆ

Sunday, August 17, 2008

ChinesePython: เขียนโปรแกรมด้วยภาษาจีน

เคยถามเพื่อนมั้ย? ว่า นายเขียนโปรแกรมภาษาอะไรอ่ะ?
แล้วโดนตอบกลับมาว่า "ภาษาอังกฤษ" (ปกติ อาจจะตอบกันว่า C, C#, Python, Java, ...)

ตอนนี้เตรียมเจอคำตอบใหม่ได้แล้ว.... เพื่อนคนนั้นอาจตอบว่า "ภาษาจีน" แทน !?!

วันนี้นั่งๆ อ่าน wikipedia เรื่อง Programming Language แล้วไปเจอบทความ Non-English-based programming languages เปิดๆ ไปเจอรายชื่อภาษาที่ไม่ได้ใช้ภาษาอังกฤษเป็น keyword ในการเขียนโปรแกรม

หนี่งในนั้นคือ ChinesePython.... มันคืออะไร? มันก็คือ ภาษา Python ที่เรารู้จักกันดีแต่โดนแปล keyword ต่างๆ คำสั่งต่างๆ ให้เป็นภาษาจีนให้หมด !?!

สาเหตุที่คนทำ แปล Python เป็น ChinesePython ขึ้นมา เพราะมองเห็นว่า การเรียนรู้วิธีการเขียนโปรแกรม (basic computer programming concepts) นั้นไม่ยาก แต่มันยากสำหรับนักเรียนชาวจีนบางคนเพราะมีอุปสรรคทางด้านภาษาอังกฤษ กว่าจะเริ่มเรียนรู้การเขียนโปรแกรมได้ก็ต้องเรียนรู้ภาษาอังกฤษก่อน (ที่มา)

ลองมาดูตัวอย่างโปรแกรม ภาษา ChinesePython เทียบกับ Python ดีกว่า โปรแกรมต่อไปนี้ทำหน้าที่แปลง \n\r เป็น \n


import sys
filenames = sys.argv[1:]

def fixline(filename):
text = open(filename).read()
text = text.replace('\n\r','\n')
return text

for file in filenames:
print fixline(file)
载入 系统
文件名 = 系统.参数[1:]

定义 修正行尾(文件):
内文 = 打开(文件名).读入()
内文 = 内文.替换('\n\r','\n')
传回 内文

取 文件 自 文件名:
写 修正行尾(文件)
ไหนๆ ลองเขียน ChinesePython บ้าง (ลอง print "Hello World" ดู)
> 写 "หนีเห่า..."

ไม่แน่...ต่อไปถ้าเกิดอยากให้เด็กไทยหัดเขียนโปรแกรมโดยไม่มีอุปสรรคทางภาษา อาจต้องแปล Python เป็น ThaiPython (ใครสนใจจะเขียนภาษานี้มั้ยครับ)

ลองนึกดูเล่นๆ (โปรแกรมคำนวณค่าเฉลี่ย)
ล = [3.0, 1.5, 2.0] #  ล ลำดับคะแนน
ร = 0.0 # ร ผลรวม
สำหรับ ค ใน ล:
ร += ค
ร /= ขนาด(ล)
พิมพ์ "ค่าเฉลี่ย ", ร


น่าสนใจมะ?