วันพุธที่ 5 สิงหาคม พ.ศ. 2558

week 9 สิ่งที่นักเรียนสนใจ 3 (ประวัติกีตาร์ GIBSON LES PAUL )



ประวัติกีตาร์ GIBSON LES PAUL 

         สวัสดีทุกท่านที่เคารพครับ บล็อกนี้ก็ได้เดินทางมาถึงสัปดาห์สุดท้ายแล้วครับ ดีใจมากจริงๆ555
ผมก็เลยนำเอาสิ่งที่ผมสนใจตามหัวข้อเรื่องของสัปดาห์นี้มาเขียนลงในบล็อกนี้ครับ และเรื่องนั้นก็คือ


" ประวัติของกีตาร์ ยีห้อดังที่นักดนตรีทั้งโลกให้การยอมรับ GIBSON LES PAUL " นั่นเองครับ



           เริ่มกันเลยนะครับ Les Paul ซึ่งเป็นชื่อบุคคล ก่อนจะมาเป็นทรงของกีต้าร์ มีความเป็นมาดังนี้
Les Paul มีชื่อเต็มๆว่า Lester Willium Polsfuss เกิดวันที่ 9 มิ.ย. 1915
Les Paul ได้เริ่มเล่นดนตรีครั้งแรกเมื่อตอนอายุ 7 ขวบ เริ่มจากการเป่าฮาร์โมนิก้า ตามด้วยเปียโน
แซกโซโฟน, กลอง, แบนโจ พอ 9 ขวบ จึงเริ่มเล่นกีต้าร์ และกีต้าร์ตัวแรกที่ได้รับเป็นกีต้าร์
Troubador Silvertone ซื้อจากร้าน Sears เลส พอล เคยกล่าวว่าพรสรรค์ที่ยิ่งใหญ่ที่สุด
ที่พระเจ้าประทานให้เขาคือ "ความรักในดนตรีและความสามารถในการเรียนรู้มันได้อย่างรวมเร็ว"
และ "ความกระหายใคร่รู้ซึ่งเป็นคุณสมบัติของนักประดิษฐ์ที่อยากรู้ว่างสิ่งต่างๆ เป็นอย่างไร"




          หากกล่าวถึงการกำเนิดของกีต้าร์ที่กลายเป็นตำนานอย่าง Gibson Les Paul 
เราคงจะต้องนั่งไทม์แมชชีนย้อนกลับไปปี 1941 ตอนนั้นปู่เลส พอล อายุ 26 ระหว่าง
การแสดงดนตรีกลางแจ้งคืนหนึ่งมีคนฟังบ่นให้ฟังว่าเขาไม่ค่อยได้ยินเสียงกีต้าร์ของ
เลส พอล เลย ว่าแล้วปู่เลส พอล ก็กลับไปบ้านจัดการดึงเอาหัวเข็มที่ติดอยู่บนเครื่องเล่น
แผ่นเสียงของพ่อมาติดที่บริดจ์กีต้าร์จากนั้นก็ต่อวงจรไฟฟ้าให้เสียงไปออกที่ PA ทีนี้
ทุกคนก็ได้ยินเสียงของปู่เลส พอล ชัดเจน แต่ปัญหาอย่างนึงที่ตามมาคือซาวน์โฮลของกีต้าร์
โปร่งมันทำให้เกิดปี๊คแบ็ค ปู่เลส พอล ก็เลยเอาเศษผ้าและปูนปลาสเตอร์อุดเข้าไป ซึ้งอัดปูน
มันก็ได้ผลครับ แต่ว่าทำให้กีต้าร์หนักมากกก.....






           ปู่เลส พอล เลยตัดสินใจสร้างกีต้าร์ลำตัวตันขึ้นมาเอง ด้วยการงัดเอาไม้หมอนรางรถไฟ
มาใส่สายกีต้าร์แล้วก็ติดหัวเข็มแผ่นเสียงไว้ที่บริดจ์ เมื่องเล่นดูพบว่ามันให้เสียงที่เพอร์เฟ็กต์ทีเดียว
เขาเลยไปให้แม่ดูด้วยความภาคภูมิใจแต่กลับได้รับคำวิจารณ์ว่า "คงไม่มีใคร(บ้า)กล้าถือมันออก
ไปเล่นหรอก" ปู่เลส พอล ไม่ยอมแพ้ เขาเอากลับมาปรับปรุงหน้าตาใหม่ ทีนี้เปลี่ยนเป็นท่อน
ไม้หน้า 4x4 นิ้วมาติดอุปกรณ์เหมือนเดิม เสร็จแล้วก็เอาออกไปแสดงสดกับวงด้วยความปลื้มสุดๆ
เพราะปู่เลส พอล เล่าว่าคนดูไร้การตอบสนองโดยสิ้นเชิง ปู่เลส พอล จึงกลับมาดีไซน์และสร้างกีต้าร์
ขึ้นใหม่โดยไปใช้โรงงานของ Epiphone โดยยังคงใช้ท่อนไม้อันเดิม แต่เอามาติดปีดสองข้าง
ที่เอาจากกีต้าร์ Epiphone ทีนี้ปู่เลส พอล ก็ได้กีต้าร์ไฟฟ้าลำตัวตัวที่มีรูปร่างหน้าตาดูสมเป็นกีต้าร์
ขึ้นมาแล้วครับ แล้วเอาไปเล่นสดอีกครั้ง ทีนี้คนดูปรบมือเกรียวเลยครับ ปู่เลส พอล จึงได้ตระหนักว่า
"ที่แท้คนฟังเขาฟังเพลงกันด้วยตา!!!" เพราะจริงๆแล้วมันก็เป็นท่อนไม้ท่อนเดิมเพียงแต่นำไปติดปีก
และกีต้าร์ตัวนี้ก็คือ "The Log" หนึ่งในต้นกำเนิดของกีต้าร์ไฟฟ้าลำตัวตันนั่นเอง



             ในความคิดของปู่เลส พอล "The Log" คือกีต้าร์ไฟฟ้าลำตัวตันที่จะสามารถเปลี่ยนโฉมหน้ากีต้าร์แบบเดิมๆ เขาจึงนำไอเดียอันแสนบรรเจิดนี้ไปเสนอบริษัท Gibson แต่คนที่นั่นกลับมองว่ามันเป็นความคิดที่ไม่ได้ท่า แถมยังเรียก The Log ของปู่เลส พอล ว่า" เป็นแท่งไม้กวาดติดปิ๊คอัพ"อีกต่างหาก ทำให้ช่วงทศวรรษ '40 ปู่เลส พลอ ต้องเก็บไอเดียกีต้าร์ไฟฟ้าลำตัวตันใส่ลิ้นชักไปคือเราต้องเข้าใจก่อนว่าช่วงทศวรรษ '40 กีต้าร์ที่มีลำตัวโปร่งเป็นที่นิยมอย่างมาก ถ้าไม่มีซาวด์โฮมันก็คือแท้งไม้กวาดหรือไม่ก็ไม่เบสบอล และช่วงนั้นเป็นยุคทองของดนตรี "บิ๊กแบนด์"ที่โดดเด่นด้วยเครื่องเป่าทองเหลืองและเครื่องลมไม้ เป็นยุคแห่งดนตรี "สวิง" นอกจากนั้นมันยังเป็นอคติลึกๆ ว่าเครื่องดนตรีไฟฟ้าทำให้คุณค่าของศิลปิะลดลง




             ช่วงทศวรรษ '50 Leo Fender เปิดตัวกีต้าร์ไฟฟ้าลำตัวตัน Broad-Caster ขึ้นเป็นครั้งแรก
แงะมันทำให้ Gibson อยู่เฉยไม่ได้ พวกเขาเร่งพัฒนากีต้าร์ลำตัวตันของตัวเองขึ้นบ้างและรับติดต่อ
ให้เลส พอล มาเป็นพรีเซ็นเตอร์ และกีต้าร์ Gibson Les Paul ตัวแรกที่ทำออกมาก็คือ Gibson
Les Paul Gold Top ปี 1952 หลังจากนั้นก็มีการพัฒนา Gibson Les Paul ออกมาอีก
หลายรุ่น อาทิ Les Paul Junior, Special, TV Model และอีกมากมาย แต่มีอยู่รั่นหนึ่ง
ที่อยากพูดถึงก็คือ SG



             Gibson SG ถูกผลิตขึ้นในปีประมาณ '60 หรือ '61 เดิมที Gibson ตั้งใจจะให้เป็นรุ่นหนึ่ง
ของ Les Paul แต่ว่าปู่เลส พอล ไม่ชอบการออกแบบกีต้าร์รุ่นนี้เท่าไหร่ เขาก็เลยขอไม่ให้ใช้ชื่อ
Les Paul กับรุ่นนี้ ซึ่งทาง Gibson เลยต้องใช้ชื่อว่า SG แบบเฉยๆ แต่กลายเป็นว่า SG
เป็นกีต้าร์รุ่นหนึ่งที่ขายดีที่สุดของ Gibson เลยทีเดียว ประจวบกับว่าสัญญาเป็นพรีเซ็นเตอร์
ของปู่เลส พอล กับ Gibson หมดลงในปี 1962 พอดีซึ่งตอนนั้นปู่เลส พอลไม่ได้เซ็นต่อเพราะ
กำลังอยู่ในช่วงทำเรื่องหย่ากับภรรยา (เป็นเรื่องการแบ่งสินสมรสน่ะครับ) เว้นไปจนถึงปี 1966
โน่นแน่ะ ปู่เลส พอล ถึงได้เซ็นสัญญาฉบับใหม่กับ Gibson ก็เลยกลายเป็นว่าในช่วงระหว่าง
ปีประมาณ 1964-1967 Gibson จึงไม่ได้ผลิตกีต้าร์ที่มีชื่อ Les Paul ติดอยู่เลย แต่หลังจากนั้น
ชื่อ Les Paul ก็อยู่คู่กับ Gibson ตลอดจนถึงปัจจุบันครับ



ภาพคุณปู่ เลส พอล ครับ จาก http://staxmuseum.com/news/

             ขอไว้อาลัยแด่ Lester William Polsfuss หรือที่รู้จักกันดีในชื่อ Les Paul ยอดนักประดิษฐ์และสร้างสรรค์ ผู้ให้กำเนิด Gibson Lespaul กีต้าร์ ไฟฟ้าลำตัวตันตัวแรกของโลก เสียชีวิตอย่างสงบด้วย โรคปอดอักเสบ รวมอายุได้ 94 ปี

Les Paul
Born : June 9 - 1915
Died : August 13 - 2009

              และนี้ก็เป็นประวัติของกีตาร์ GIBSON นะครับ ขอบคุณทุกท่านมากๆที่คอยติดตามและคอมเม้นกันในทุกๆสัปดาห์ที่ผ่านมา ยังไงวันนี้ก็ขอขอบคุณมากๆครับ ขอลากันไปด้วย ภาพและวิดีโอของกีตาร์สวยๆจาก GIBSON นะครับ^^ บ๊ายบายยยยย











วิดีโอจาก https://www.youtube.com/watch?v=Axkpov7_zoU


วิดีโอจาก https://www.youtube.com/watch?v=iQ1hVh2xn6k


วิดีโอจาก https://www.youtube.com/watch?v=RNXJuz5cVQ8

ที่มา https://sites.google.com/site/gpfsn4/pra-wati-kitar/khxrd-kitar ขอบคุณมากๆครับ


วันพุธที่ 29 กรกฎาคม พ.ศ. 2558

week 8 review / แนะนำ การใช้โปรแกรม

สวัสดีครับทุกท่าน

ใน Week ที่ 8 นี้นะครับ

ผมก็ได้จัดทำแนะนำรีวิวโปรแกรมที่น่าสนใจและสนุกมากๆ(ถ้าเล่นเป็น อิอิ)

และโปรแกรมที่ผมรีวิวมานี้ก็คือ Cubase 5 ครับ

โปรแกรมเกี่ยวกับการสร้างสรรค์สันสร้างดนตรีที่ใช้ง่ายมากครับ

สามารถทำดนตรีได้อย่างกับค่ายเพลงมาทำให้ที่บ้านเลยทีเดียว5555

ดาวน์โหลดได้จากhttp://www.steinberg.net/index.php?id=downloads_cs5&L=1 นี้เลยครับ

แล้วก็โปรแกรมเสริมhttp://asio4all.soft32.com/ โหลดได้ที่นี่เลยครับ

เอาล่ะ...ต่อไปขอเชิญทุกท่าน พับกบ!! เอ้ย พบกับ!! เอ้ย ถูกแล้วววว5555555

การรีวิวโปรแกรม Cubase 5 ฉบับ งูๆปลาๆของผมได้แล้วครับ

Part 1




Part 2




Part 3



วีดีโอในบล็อกนี้เป็นส่วนหนึ่งของการศึกษาวิชาคอมพิวเตอร์นะครับ

เพื่อนำมาเขียนบล็อกนี้ หากสิ่งใดได้ทำผิดพลาดไปก็ขออภัยไว้นะที่นี้ด้วย 

หวังว่าทุกท่านจะให้อภัยครับ



โอเคครับ หลังจากดูรีวิวไปแล้วเป็นอย่างไรกันบ้าง อยากลองทำดนตรีของท่านกันดูไหม555

ใครสนใจก็ดาวน์โหลดตามลิ้งค์ข้างบนที่แนบไว้ได้เลยครับ

โปรแกรมสนุกๆแบบนี้ต้องลองเล่นกันดู ค่อยๆศึกษาไปเรื่อยๆเดี๋ยวก็เก่งได้นะครับ

สุดท้ายนี้ ขอฝากไว้ ด้วยคำคมเมพขิงๆ ที่ว่า"กรุงโรมไม่ได้สร้างเสร็จในวันเดียว"

...คือผมกำลังจะสื่อว่า 

จะกระทำสิ่งใดก็ตาม มันต้องพยายามให้ถึงที่สุด ไม่ใช่บรรลุได้ในเวลาไม่นาน อิอิ

ขอบคุณครับ


วันพุธที่ 15 กรกฎาคม พ.ศ. 2558

week 7 ระบบเครือข่ายคอมพิวเตอร์









ระบบเครือข่ายคอมพิวเตอร์

สัปดาห์ที่เจ็ดแล้วครับ คงต้องยับๆๆกันสักหน่อย อิอิ 555555 หมายถึงเนื้อหาน่ะครับ

ระบบเครือข่ายคอมพิวเตอร์(Computer Network) 

ระบบเครือข่ายคอมพิวเตอร์ ( Computer Network ) หมายถึง การเชื่อมต่อคอมพิวเตอร์ตั้งแต่ 2 เครื่องขึ้นไปเข้าด้วยกันด้วยสายเคเบิล หรือสื่ออื่นๆ ทำให้คอมพิวเตอร์สามารถรับส่งข้อมูลแก่กันและกันได้ในกรณีที่เป็นการเชื่อมต่อระหว่างเครื่องคอมพิวเตอร์หลายๆ เครื่องเข้ากับเครื่องคอมพิวเตอร์ขนาดใหญ่ที่เป็นศูนย์กลาง เราเรียกคอมพิวเตอร์ที่เป็นศูนย์กลางนี้ว่า
โฮสต์ (Host) และเรียกคอมพิวเตอร์ขนาดเล็กที่เข้ามาเชื่อมต่อว่า ไคลเอนต์ (Client)ระบบเครือข่าย (Network) จะเชื่อมโยงคอมพิวเตอร์เข้าด้วยกันเพื่อการติดต่อสื่อสาร เราสามารถส่งข้อมูลภายในอาคาร หรือข้ามระหว่างเมืองไปจนถึงอีกซีกหนึ่ง
ของโลก ซึ่งข้อมูลต่างๆ อาจเป็นทั้งข้อความ รูปภาพ เสียง ก่อให้เกิดความสะดวก รวดเร็วแก่ผู้ใช้ ซึ่งความสามารถเหล่านี้
ทำให้เครือข่ายคอมพิวเตอร์มีความสำคัญ และจำเป็นต่อการใช้งานในแวดวงต่างๆ



ระบบเครือข่ายชนิดต่างๆ
       ระบบเครือข่าย สามารถเรียกได้ หลายวิธี เช่นตามรูปแบบ การเชื่อมต่อ (Topology) เช่น แบบบัส (bus), แบบดาว (star), แบบวงแหวน (ring) หรือจะเรึยกตามขนาด หรือระยะทางของระบบก็ได้ เช่นแลน (LAN), แวน (WAN), แมน (MAN) นอกจากนี้ ระบบเครือข่าย ยังสามารถ เรียกได้ตาม เทคโนโลยีที่ไช้ ในการส่งผ่านข้อมูล เช่น เครือข่าย TCP/IP, เครือข่าย IPX, เครือข่าย SNA หรือเรียกตาม ชนิดของข้อมูล ที่มีการส่งผ่าน เช่นเครือข่าย เสียงและวิดีโอ
       เรายังสามารถจำแนกเครือข่ายได้ ตามกลุ่มที่ใช้เครือข่าย เช่น อินเตอร์เน็ต (Internet), เอ็กซ์ตร้าเน็ต (Extranet), อินทราเน็ต (Intranet), เครือข่ายเสมือน (Virtual Private Network) หรือเรียก ตามวิธีการ เชื่อมต่อทางกายภาพ เช่นเครือข่าย เส้นใยนำแสง, เครือข่ายสายโทรศัพท์, เครือข่ายไร้สาย เป็นต้น จะเห็นได้ว่า เราสามารถจำแนก ระบบเครือข่าย ได้หลากหลายวิธี ตามแต่ว่า เราจะพูดถึง เครือข่ายนั้นในแง่มุมใด เราจำแนก ระบบเครือข่าย ตามวิธีที่นิยมกัน 3 วิธีคือ รูปแบบการเชื่อมต่อ (Topology), รูปแบบการสื่อสาร (Protocol), และ สถาปัตยกรรมเครือข่าย (Architecture)

การจำแนกระบบเครือข่าย ตามรูปแบบการเชื่อมต่อ (Topology)
จะบอกถึงรูปแบบ ที่ทำการ เชื่อมต่ออุปกรณ์ ในเครือข่ายเข้าด้วยกัน ซึ่งมีรูปแบบที่นิยมกัน 3 วิธีคือ

1.แบบบัส(bus)


แบบบัส (bus)
          ในระบบเครือข่าย โทโปโลยีแบบ BUS นับว่าเป็นแบบโทโปโลยีที่ได้รับความนิยมใช้กันมากที่สุดมา ตั้งแต่อดีตจนถึงปัจจุบัน เหตุผลอย่างหนึ่งก็คือสามารถติดตั้งระบบ ดูแลรักษา และติดตั้งอุปกรณ์เพิ่มเติมได้ง่าย ไม่ต้องใช้เทคนิคที่ยุ่งยากซับซ้อน ลักษณะการทำงานของเครือข่ายโทโปโลยีแบบ BUS คืออุปกรณ์ทุกชิ้นหรือโหนดทุกโหนด ในเครือข่ายจะต้องเชื่อมโยงเข้ากับสายสื่อสารหลัก ที่เรียกว่า "บัส" (BUS) เมื่อโหนดหนึ่งต้องการจะส่งข้อมูลไปให้ยังอีกโหนด หนึ่งภายในเครือข่าย ข้อมูลจากโหนดผู้ส่ง จะถูกส่งเข้าสู่สายบัส ในรูปของแพ็กเกจ ซึ่งแต่ละแพ็กเกจจะประกอบด้วยตำแหน่งของ ผู้ส่งและผู้รับ และข้อมูล
การสื่อสารภายในสายบัส จะเป็นแบบ 2 ทิศทางแยกไปยังปลายทั้ง 2 ด้านของบัส โดยตรงปลายทั้ง 2 ด้านของบัสจะมี
เทอร์มิเนเตอร์ (Terminator) ทำหน้าที่ดูดกลืนสัญญาณ เพื่อป้องกันไม่ให้สัญญาณข้อมูลนั้นสะท้อนกลับ เข้ามายังบัสอีก เป็นการป้องกันการชนกันของสัญญาณ ข้อมูลอื่น ๆ ที่เดินทางอยู่บนบัส สัญญาณข้อมูลจากโหนดผู้ส่ง เมื่อเข้าสู่บัสจะไหลผ่านไปยังปลายทั้ง 2 ข้างของบัส แต่ละโหนดที่เชื่อมต่อเข้ากับบัส จะคอยตรวจดูว่าตำแหน่งปลายทาง ที่มากับแพ็กเกจข้อมูลนั้น ตรงกับตำแหน่งของตนหรือไม่ ถ้าใช่ก็จะรับข้อมูลนั้นเข้ามาสู่โหนดตน แต่ถ้าไม่ใช่ ก็จะปล่อยให้สัญญาณข้อมูลนั้นผ่านไป
จะเห็นว่าทุก ๆ โหนดภายในเครือข่ายแบบ BUS นั้นสามารถรับรู้สัญญาณข้อมูลได้ แต่จะมีเพียงโหนดปลายทางเพียงโหนดเดียวเท่านั้น ที่จะรับข้อมูลนั้นไปได้



การควบคุมการสื่อสารภายในเครือข่ายแบบ BUS มี 2 แบบคือ       
        แบบควบคุมด้วยศูนย์กลาง (Centralized) ซึ่งจะมีโหนดหนึ่ง ที่ทำหน้าที่เป็นศูนย์กลางควบคุมการสื่อสารภายในเครือข่าย ซึ่งส่วนใหญ่จะเป็นไฟล์เซิร์ฟเวอร์       
        การควบคุมแบบกระจาย (Distributed) ทุก ๆ โหนดภายในเครือข่าย จะมีสิทธิในการควบคุมการสื่อสาร แทนที่จะ
เป็นศูนย์กลางควบคุมเพียงโหนดเดียว ซึ่งโดยทั่วไปคู่โหนดที่กำลังทำการส่ง-รับ ข้อมูลกันอย ู่จะเป็นผู้ควบคุมการสื่อสารในเวลานั้นข้อดีข้อเสียของโทโปโลยีแบบบัส



2.แบบดาว (star)

แบบดาว (star)


         เป็นหลักการส่งและรับข้อมูล เหมือนกับระบบโทรศัพท์ การควบคุมจะทำโดยสถานีศูนย์กลาง ทำหน้าที่เป็นตัวสวิตชิ่ง ข้อมูลทั้งหมดในระบบเครือข่าย จะต้องผ่านเครื่องคอมพิวเตอร์ศูนย์กลาง (Center Comtuper) เป็นการเชื่อมโยงการติดต่อสื่อสาร ที่มีลักษณะคล้ายกับรูปดาว (STAR) หลายแฉก โดยมีศูนย์กลางของดาว หรือฮับ เป็นจุดผ่านการติดต่อกันระหว่างทุกโหนดในเครือข่าย ศูนย์กลาง จึงมีหน้าที่เป็นศูนย์ควบคุมเส้นทางการสื่อสารทั้งหมด นอกจากนี้ศูนย์กลางยังทำหน้าที่
เป็นศูนย์กลางข้อมูลอีกด้วย

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



3.แบบวงแหวน (ring)

แบบวงแหวน (ring)


      เครือข่ายแบบ RING เป็นการส่งข่าวสารที่ส่งผ่านไปในเครือข่าย ข้อมูลข่าวสารจะไหลวนอยู่ในเครือข่าย ไปในทิศทางเดียว เหมือนวงแหวน หรือ RING นั่นเอง โดยไม่มีจุดปลาย หรือเทอร์มิเนเตอร์ เช่นเดียวกับเครือข่ายแบบ BUS ในแต่ละโหนดหรือสเตชั่น จะมีรีพีตเตอร์ประจำโหนด 1 เครื่อง ซึ่งจะทำหน้าที่เพิ่มเติมข่าวสารที่จำเป็นต่อการสื่อสาร ในส่วนหัวของแพ็กเกจข้อมูล สำหรับการส่งข้อมูลออกจากโหนด และมีหน้าที่รับแพ็กเกจข้อมูล ที่ไหลผ่านมาจากสายสื่อสาร เพื่อตรวจสอบว่าเป็นข้อมูล ที่ส่งมาให้โหนดตนหรือไม่ ถ้าใช่ก็จะคัดลอกข้อมูลทั้งหมดนั้น ส่งต่อไปให้กับโหนดของตน แต่ถ้าไม่ใช่ก็จะปล่อยข้อมูลนั้นไปยังรีพีตเตอร์ของโหนดถัดไป



โทโปโลยีแบบผสม (Hybridge Topology)




โทโปโลยีแบบผสม (Hybridge Topology)


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



ทั้งนี้ทั้งนั้น  ขออภัยในความผิดพลาดทุกประการครับ  ติชมกันได้ ขอบพระคุณอย่างยิ่งครับ





วันอังคารที่ 7 กรกฎาคม พ.ศ. 2558

week 6 วิเคราะห์ข้อสอบ O-NET วิชาคอมพิวเตอร์ 5 ข้อ

ข้อสอบ O-NET วิชา คอมพิวเตอร์ ปีการศึกษา 2550

1.ความละเอียดของจอภาพสามารถบอกได้ด้วยปัจจัยในข้อใด ( ปี 2550 )
   1. CRT
   2. Dot pitch
   3. Refresh rate
   4. Color quality
วิเคราะห์     Dot pitch คือระยะห่างระหว่างพิกเซล หรือระยะห่างระหว่างจุดสี ถ้าระยะห่างน้อย ด็อดพิชมี                        ขนาดเล็ก ภาพจะคมชัดยิ่งขึ้น โดยปกติความละเอียดจะอยู่ที่ประมาณ 0.25 mm ถึง 0.4 mm

เพราะฉะนั้นข้อนี้จึงตอบข้อ 2

ข้อสอบ O-NET วิชา คอมพิวเตอร์ ปีการศึกษา 2552

2.ขอใดตอไปนี้ไมใชระบบปฏิบัติการคอมพวเตอร์ 
          1. Microsoft Windows 
          2. Ubuntu 
          3. Symbian 
          4. MAC Address 

วิเคราะห์                ข้อ 1 Microsoft Windows เป็นระบบปฏิบัติการคอมพิวเตอร์ชนิดหนึ่ง 

                              ข้อ 2 Ubuntu เป็นระบบปฏิบัติการคอมพิวเตอร์ในตระกูล Linux 
                              ข้อ 3 Symbian เป็นระบบปฏิบัติการคอมพิวเตอร์แบบพกพา หรือ Smart Phone 
                              ข้อ 4 MAC Address ไม่ใช่ระบบปฏิบัติการคอมพิวเตอร์ 

เพราะฉะนั้นข้อนี้จึงตอบข้อ 4

ข้อสอบ O-NET วิชา คอมพิวเตอร์ ปีการศึกษา 2553

3.ข้อใดไม่ใช่ระบบปฏิบัติการที่นำมาใช้บนอุปกรณ์พกพาประเภท  Smartphone
         1.  Ubumtu       

         2.  Iphone  os
         3.  Android      

         4.  Symbian
วิเคราะห์ ข้อ 1 Ubuntu คือกลุ่มของคนที่พัฒนาระบบปฏิบัติการ เพื่อให้สามารถนำไปใช้กับ                                                      เครื่องคอมพิวเตอร์ทั้งที่เป็นเครื่องแบบผู้ใช้งานทั่วไป (Client) หรือแบบเครื่องแม่ข่าย (Server)
               ข้อ 2 iPhone OS เป็นระบบปฏิบัติการสำหรับสมาร์ทโฟนของบริษัทแอปเปิล 
               ข้อ 3 Android เป็นระบบปฏิบัติการที่มีพื้นฐานอยู่บนลินุกซ์ ในอดีตถูกออกแบบมาสำหรับอุปกรณ์ที่                             ใช้จอสัมผัสเช่นสมาร์ทโฟน ปัจจุบันได้แพร่ไปยังอุปกรณ์หลายชนิด เช่น Nikon S800C กล้อง                          ดิจิตอลระบบแอนดรอยด์
               ข้อ 4 Symbian คือ ระบบปฏิบัติการสำหรับโทรศัพท์เคลื่อนที่  

เพราะฉะนั้นข้อนี้จึงตอบข้อ 1 


4.ขอใดตอไปนี้ไมใชระบบปฏบิัติการคอมพวเตอรพิวเตอร์ ( ปี 2553 )
    1. Microsoft Windows
    2. Ubuntu
    3. Symbian
    4. MAC Address

วิเคราะห์ 1. Microsoft Windows เป็นระบบปฏิบัติการคอมพิวเตอร์ ซึ่งเป็นที่นิยมใช้กันมาก
              2. Ubuntu เป็นระบบปฏิบัติการคอมพิวเตอร์ที่เป็นระบบปฏิบัติการแบบเปิดซึ่งมีพื้นฐาน
                   บนลินุกซ์ดิสทริบิวชันที่พัฒนาต่อมาจากเดเบียน
              
            
              3, Symbian เป็นระบบปฏิบัติการสำหรับโทรศัพท์เคลื่อนที่ พัฒนาโดยบริษัท Symbian Ltd
             
             4, MAC Address คือ หมายเลขของ Network Card (LAN , Wireless LAN) ซึ่งหมายเลขจะไม่                    ซ้ำกัน โดยค่าหมายเลขนี้จะถูกกำหนดค่ามาจากโรงงานที่ผลิต Network Card

เพราะฉะนั้นข้อนี้จึงตอบข้อ 4 

5.ไฟล์ประเภทใดในข้อต่อไปนี้เก็บข้อมูลในลักษณะตัวอักษร.
1.  ไฟล์เพลง  MP 3 (mp 3)
2.  ไฟล์รูปประเภท  JPEG (jpeg)
3.  ไฟล์แสดงผลหน้าเว็บ (html)
4.  ไฟล์วีดีโอประเภท  Movie (movie)

วิเคาะห์
 ไฟล์เพลง  MP 3 (mp 3) เก็บข้อมูลในรูปของเสียง
 ไฟล์รูปประเภท  JPEG (jpeg) เก็บข้อมูลในลักษณะรูปภาพ
 ไฟล์แสดงผลหน้าเว็บ (html) เก็บข้อมูลในลักษณะตัวอักษร
ไฟล์วีดีโอประเภท  Movie (movie) เก็บข้อมูลในลักษณะรูปภาพ

เพราะฉะนั้นข้อนี้จึงตอบข้อ 3



วันพุธที่ 1 กรกฎาคม พ.ศ. 2558

week 5 สิ่งที่นักเรียนสนใน (2) (ทิ้งไว้กลางทาง)



ทิ้งไว้...กลางทาง


" ทำถูกแล้ว ที่เธอเลือกเขา และทิ้งฉันไว้ ตรงกลางทาง "


     บทเพลงสุดไพเราะ ความหมายโดนใจ ของศิลปิน โปเตโต้ ที่เพ่งจะปล่อยซิงเกิ้ลนี้ออกมา

แค่ผมได้ฟังครั้งแรกก็แบบกินใจสุดๆเลยครับ พี่ๆเค้าทำเพลงออกมาดีมากจริงๆครับ

ไม่ว่าจะเป็นเนื้อเพลง ความหมาย ทำนอง หรือพาสดนตรีก็ตาม ส่วนตัวแล้วผมชอบมากเลยครับ

สำหรับใครที่ยังไม่เคยฟังหรือฟังไปแล้วนะครับ มาฟังกันอีกหลายๆรอบเลยนะครับ



      ผมขออนุญาตนำเพลงนี้จากยูทูปมาลงนะครับ มาฟังกันเยอะๆนะครับ

แล้วอย่าลืม ดาวน์โหลดกันเยอะๆนะครับ555555






ขอบคุณเพลงเพราะๆจากพี่ๆวงโปเตโต้นะครับ



     ยังไงก็อย่าลืมเป็นกำลังใจและติดตามวงโปเตโต้ด้วยนะครับ วงนี้ผมติดตามมานานมากแล้วครับ

จะติดตามต่อไปนะครับ ใครที่อยากติดตามพี่ๆโปเตโต้ก็ตามลิ้งค์นี้เลยนะครับ


ขอบคุณทุกคนที่เข้ามาชมและฟังมากๆนะครับ





วันอาทิตย์ที่ 21 มิถุนายน พ.ศ. 2558

week 4 Program language Computer (โปรแกรม ภาษา คอมพิวเตอร์)



4.โปรแกรมภาษา C


ขอบอกไว้ก่อนเลยครับว่า เรื่องโปรแกรมภาษาคอมพิวเตอร์เนี่ย 

มันเยอะ เยอะ และเยอะมากๆ จริงๆครับ  เอาเป็นว่า...
ผมขอเลือกภาษา C แล้วกันครับ เป็นภาษาที่ทุกคนน่าจะรู้จักหรือเคยได้ยินกันนะครับ



ภาพจากhttp://icons.mysitemyway.com/legacy-icon-tags/c/page/2/(ภาพไม่เกี่ยวนะครับ อิอิ)

ภาษาซี (C Programming Language) คือ ภาษาคอมพิวเตอร์ใช้สำหรับพัฒนาโปรแกรมทั่วไป 

ถูกพัฒนาครั้งแรกเพื่อใช้เป็นภาษาสำหรับพัฒนาระบบปฏิบัติการยูนิกซ์ ( Unix Opearating System) 
แทนภาษาแอสเซมบลี ซึ่งเป็นภาษาระดับต่ำที่สามารถกระทำในระบบฮาร์ดแวร์ได้ด้วยความรวดเร็ว 
แต่จุดอ่อนของภาษาแอซเซมบลีก็คือความยุ่งยากในการโปรแกรม ความเป็นเฉพาะตัว 
และความแตกต่างกันไปในแต่ละเครื่อง เดนนิส ริตชี (Dennis Ritchie) 
จึงได้คิดค้นพัฒนาภาษาใหม่นี้ขึ้นมาเมื่อประมาณต้นปี ค.ศ. 1970 โดยการรวบรวม
เอาจุดเด่นของแต่ละภาษาระดับสูงผนวกเข้ากับภาษาระดับต่ำ เรียกชื่อว่า ภาษาซี


          เมื่อภาษาซี ได้รับความนิยมมากขึ้น จึงมีผู้ผลิต compiler ภาษาซีออกมาแข่งขันกันมากมาย
ทำให้เริ่มมีการใส่ลูกเล่นต่างๆ เพื่อดึงดูดใจผู้ซื้อ ทาง American National Standard Institute
(ANSI) จึงตั้งข้อกำหนดมาตรฐานของภาษาซีขึ้น เรียกว่า ANSI C เพื่อคงมาตรฐานของภาษาไว้

ไม่ให้เปลี่ยนแปลงไป
โครงสร้างของโปรแกรมภาษาซี และตัวอย่าง
          โปรแกรมในภาษาซีทุกโปรแกรมจะประกอบด้วยฟังก์ชันอย่างน้อย หนึ่งฟังก์ชัน
คือ ฟังก์ชัน main โดยโปรแกรมภาษาซีจะเริ่มทำงานที่ฟังก์ชัน main ก่อน
ในแต่ละฟังก์ชันจะประกอบด้วย
          1. Function Heading ประกอบด้วยชื่อฟังก์ชัน และอาจมีรายการของ argument
(บางคนเรียก parameter) อยู่ในวงเล็บ
          2. Variable Declaration ส่วนประกาศตัวแปร สำหรับภาษาซี ตัวแปรหรือค่าคงที่ทุกตัว
ที่ใช้ในโปรแกรมจะต้องมีการประกาศก่อนว่าจะใช้งานอย่างไร จะเก็บค่าในรูปแบบใดเช่น
interger หรือ real number
          3. Compound Statements ส่วนของประโยคคำสั่งต่างๆ ซึ่งแบ่งเป็นประโยคเชิงซ้อน
(compound statement) กับ ประโยคนิพจน์ (expression statment) โดยประโยคเชิงซ้อน
จะอยู่ภายในวงเล็บปีกกาคู่หนึ่ง { และ } โดยในหนึ่งประโยคเชิงซ้อน
จะมีประโยคนิพจน์ที่แยกจากกันด้วยเครื่องหมาย semicolon (;) หลายๆ ประโยครวมกัน
และ อาจมีวงเล็บปีกกาใส่ประโยคเชิงซ้อนย่อยเข้าไปอีกได้

พื้นฐานโปรแกรมภาษา C (Introduction to C Programming) 

      ก่อนอื่นของแนะนำพื้นฐานเกี่ยวกับคอมพิวเตอร์กันซักนิด ก่อนที่จะเริ่มเรียนรู้ภาษา C กันหน่วยสำคัญที่สุด
ของคอมพิวเตอร์ก็คือ หน่วยประมวลผลหรือที่เรียกกันว่า CPU โดยปกติ CPU
จะมีภาษาของตัวเองที่เรียกว่า ภาษาเครื่อง (Machine Language) ซึ่งจะเป็นภาษาที่ประกอบไปด้วย
เลขฐานสองมากมาย ดังนั้นการที่จะเขียนโปรแกรมควบคุมการทำงานของคอมพิวเตอร์
โดยใช้ภาษาเครื่องโดยตรงนั้นจึงทำได้ยาก จึงได้มีการพัฒนาตัวแปรภาษาเครื่องที่เรียกว่า
โปรแกรมภาษาระดับสูงขึ้นมา หรือที่เรียกว่า High Level Languages โดยภาษาในระดับสูงเหล่านี้
จะมีลักษณะรูปแบบการเขียน (Syntax) ที่ทำให้เข้าใจได้ง่ายต่อการสื่อสารกับผู้พัฒนา
และถูกออกแบบมาให้ง่ายต่อการใช้งาน และจะเปลี่ยนคำสั่งจากผู้ใช้งาน ไปเป็นเป็นภาษาเครื่อง
เพื่อที่จะควบคุมการทำงานของคอมพิวเตอร์ต่อไป ตัวอย่างของโปรแกรมภาษาระดับสูง ได้แก่
COBOL ใช้กันมากสำหรับโปรแกรมทางด้านธุรกิจ, Fortran ใช้กันมากสำหรับการพัฒนาโปรแกรม
ด้านวิทยาศาสตร์และวิศวกรรมศาสตร์ เพราะง่ายต่อการคำนวณ, Pascal มีใช้กันทั่วไป
แต่เน้นสำหรับการพัฒนาเครื่องมือสำหรับการเรียนการสอน, C & C++ ใช้ทั่วไป
ปัจจุบันมีผู้เลือกที่จะใช้กันอย่างแพร่หลาย, PROLOG เน้นหนักไปทางด้านงานประเภท AI และ
JAVA ใช้ได้ทั่วไป ปัจจุบันเริ่มมีผู้หันมาสนใจกันมากและเพิ่มขึ้นอย่างรวดเร็ว
คราวนี้เราลองมาเตรียมตัวกันซักนิก ก่อนที่จะลงมือพัฒนาโปรแกรมคอมพิวเตอร์ ขั้นแรก
เราต้องศึกษารูปแบบความต้องการของโปรแกรมที่จะพัฒนา จากนั้นก็วิเคราะห์ถึงปัญหา
ตลอดจนวิธีการแก้ปัญหา จากนั้นจึงนำเอาความคิดในการแก้ปัญหาอย่างเป็นขั้นตอน
ไปเขียนในรูปแบบของโปรแกรมภาษาในระดับสูง ซึ่งจะอยู่ในรูปแบบของ Source Program หรือ
Source Code จากนั้นเราก็จะใช้ Complier ของภาษาที่เราเลือก มาทำการ Compile Source code
หรือกล่าวง่ายๆ คือแปลง Source code ของเราให้เป็นภาษาเครื่องนั่นเอง ซึ่งในขั้นตอนนี้ ผลที่ได้
เราจะเรียกว่า Object code จากนั้น Complier ก็จะทำการ Link หรือเชื่อม Object code
เข้ากับฟังก์ชันการทำงานใน Libraries ต่างๆ ที่จำเป็นต่อการใช้งาน แล้วนำไปไว้ในหน่วยความจำ
แล้วเราก็จะสามารถ Run เพื่อดูผลของการทำงานโปรแกรมได้ หากโปรแกรมมีข้อผิดพลาด
เราก็จะทำการแก้ หรือที่เรียกกันในภาษาคอมพิวเตอร์ว่า การ Debug นั่นเอง
ภาษา C เป็นโปรแกรมภาษาระดับสูง ถูกพัฒนาขึ้นในปี 1972 ที่ AT&T Bell Lab
เราสามารถใช้ภาษา C มาเขียนเป็นคำสั่งต่างๆ ที่คอมพิวเตอร์สามารถเข้าใจได้
และกลุ่มของคำสั่งเหล่านี้ เราก็เรียกกันว่า อัลกอริธึม ได้มีผู้ให้คำจำกัดความของคำว่า
อัลกอริธึม ว่าเป็น... 
“A precise description of a step-by-step process that is guaranteed to terminate after
a finite number of steps with a correct answer for every particular instance of
an algorithmic problem that may occur.” 
สำหรับ Compiler ภาษา C ที่มีในปัจจุบัน มี 2 ค่ายใหญ่ๆ ที่มีผู้คนสนใจใช้กันมากได้แก่ Microsoft และ
Borland การใช้งาน Compiler ทั้งสองตัวนี้ สามารถเรียนรู้ได้ไม่ยากนัก
เราจึงจะมาเริ่มต้นที่การเขียนโปรแกรมในภาษา C กันเลย เราลองมาเริ่มจากตัวอย่างการเขียน
ภาษา C แบบ ง่ายๆ กันก่อนกับโปรแกรม Hello World #include 
main() { printf("Hello World!!!!! "); }
บรรทัดแรก #include เป็นการบอกว่าให้ทำการรวม Header file ที่ชื่อว่า stdio.h (.h = header)
ซึ่งเป็น header ที่เกี่ยวข้องกับการรับและให้ข้อมูล (Standard Input Output) นอกจาก stdio.h แล้ว
ก็ยังมี Header อื่นๆ ที่ผู้พัฒนาสามารถที่จะเรียกใช้งาน Function ที่จำเป็นจาก Header นั้นๆ ได้ อาทิเช่น
       รู้จัก Header File กันไปล่ะ คราวนี้ เราลองมาดูบรรทัดถัดไปกัน ก็คือ ฟังก์ชัน main()
จะเป็นจุดเริ่มต้นของโปรแกรม และโปรแกรมทุกโปรแกรมในภาษา C จะต้องมี Function main() นี้
โดยส่วนมาก เราจะใช้ Function main() ในการกำหนดค่าเริ่มต้นต่างๆ ของโปรแกรม จากนั้นจึงเข้าสู่
Function ต่างๆ ที่ผู้พัฒนา ได้กำหนดขึ้นไว้ บรรทัดถัดมาจะเป็นเครื่องหมาย { ซึ่งเป็นเครื่องหมายบ่งบอก
ขอบเขตของ Function โดยขอบเขตของฟังก์ชัน จะเปิดและปิดโดยใช้เครื่องหมายเปิด
{ และเครื่องหมายปิด } ตามลำดับ ภายใน Function main() จะมีคำสั่ง (Statement)
printf("Hello World!!!!! "); ซึ่ง printf เป็น Function ในภาษา C ทำหน้าที่ให้โปรแกรม
ทำการแสดงผลออกทางหน้าจอว่า Hello World!!!!! และทุกครั้ง ผู้พัฒนาจะต้องทำการจบคำสั่ง
หรือ Statement ด้วยเครื่องหมาย semi-colon ; ดังนั้นรูปแบบของการเขียนโปรแกรม
จึงเขียนออกมาในรูปแบบดังนี้ // ข้อความที่อยู่ข้างหลังเครื่องหมาย // จะเป็นคำอธิบายโปรแกรม
#include 
void main() { constant declarations; // การกำหนดค่าคงที่ต่างๆ
variable declarations; // การกำหนดตัวแปรต่างๆ executable statements; // คำสั่งการทำงานของโปรแกรม } 
        การอ่านข้อมูลและการแสดงผล (Input & Output) รูปแบบการใช้งานฟังก์ชัน printf
จะทำการพิมพ์ในรูปแบบที่ เริ่มต้นด้วย Format ที่ต้องการจะพิมพ์ และตามด้วยตัวแปรที่ต้องการพิมพ์ ดังนี้
printf( const char *format [, argument]... ); สำหรับการนำข้อมูลเข้าก็เช่นกัน จะใช้ฟังก์ชัน scanf
ซึ่งจะเป็นฟังก์ชันสำหรับอ่านข้อมูลจากคีย์บอร์ด และจะนำข้อมูลที่ User ทำการพิมพ์ไปเก็บไว้ใน argument
โดยแต่ละ argument จะต้องเป็นตัวแปรที่เรียกว่า pointer (รายละเอียดจะได้กล่าวต่อไป)
และมีชนิดที่ตัวแปรที่สัมพันธ์กับที่ได้กำหนดไว้ใน Format รูปแบบการใช้งานของฟังก์ชัน scanf
สามารถเขียนได้ดังนี้ scanf( const char *format [,argument]... );

พอมาถึงตอนนี้แล้ว ผมขอยกตัวอย่างการเขียนภาษา C เฉพาะ Loop และ Arrays นะครับ
เพราะเรื่องนี้มันเยอะมาก เยอะมากๆจริงๆครับ...Y^Y

การเขียนโปรแกรมแบบ วนซ้ำ (Loop)

การเขียนโปรแกรมแบบ วนซ้ำ (Repetition & Loop) กระบวนการหนึ่งที่สำคัญในการออกแบบอัลกอริทึม
ก็คือความสามารถในการวนลูปของการทำงานของกลุ่มคำสั่งตามที่นักพัฒนาต้องการ ดังนั้นสำหรับตอนนี้
ก็จะนำเสนอการพัฒนาโปรแกรมเพื่อให้บางส่วนของคำสั่งสามารถมีการวนซ้ำได้หลายครั้ง
สำหรับคำสั่งที่สามารถใช้ในการเขียนโปรแกรมแบบวนซ้ำในภาษา C ได้แก่ While, Do-while และ For
ตัวอย่างของการใช้คำสั่ง while, for และ do-while สามารถเขียนให้เห็นได้ดังตาราง
ซึ่งผลลัพทธ์ของโปรแกรมทั้ง 3 ข้างต้นจะให้ผลลัพท์ที่เหมือนกัน คือจะแสดงผลบนหน้าจอเป็น
i = 0 i = 1 i = 2 i = 3 i = 4 i = 5 i = 6 คราวนี้เราลองมาดูโครงสร้างของการใช้งานแต่ละคำสั่งกัน
while ( condition ) // เมื่อ เงื่อนไข (condition) เป็นจริง ก็จะทำการวนซ้ำ ใน statement ถัดไป statement
ยกตัวอย่างเช่น
sum = 0.0; 
x = 5; 
while (x > 0.0) 
{
sum += x;
 x = x – 1; 
}

ในที่นี้จะเห็นว่า ค่า x มีค่าเริ่มต้นเท่ากับ 5 ซึ่ง 5 > 0 เงื่อนไขของคำสั่ง while เป็นจริง
จึงทำคำสั่งถัดมาคือ sum += x; หมายความว่า sum = sum + x = 5
จากนั้นค่า x ก็มีค่าลดลงไป 1 เหลือ 4 ก็จะทำการ check เงื่อนไขว่า 4 > 0 หรือไม่
เมื่อเงื่อนไขเป็นจริง ก็จะทำการวนซ้ำ sum ก็จะมีค่าเป็น 5 + 4 = 9 และ x ก็จะมีค่าลดลงเหลือ 3
และดำเนินการวนซ้ำเช่นนี้จนกระทั่ง x มีค่าเป็น 0 ซึ่งค่า 0 ไม่ได้มีค่ามากกว่า 0.0 เงื่อนไขจึงเป็นเท็จ
โปรแกรมจึงจะจบการวนซ้ำ คราวนี้เราลองมาดูตัวอย่างของการใช้คำสั่ง while ในการเขียนโปรแกรมแบบวนซ้ำ
และผลลัพท์ที่ได้
x=0; 
while( x <=2 ){ 
printf("%d %dn",x, x*2); 
}
 ผลลัพท์ที่ได้จะได้ดังนี้
0 0 
0 0 
0 0 
: : 
0 0 (infinite loop)
การที่ผลลัพท์ออกมาเช่นนี้ ก็เนื่องจากว่า x มีค่าเริ่มต้น 0 และเงื่อนไข x <= 2 เป็นจริงตลอด
โปรแกรมจึงทำการพิมพ์ค่า 0 0 ออกมา และเนื่องจากค่า x ไม่มีการเปลี่ยนแปลง เงื่อนไขจึงเป็นจริงตลอด
โปรแกรมจึงแสดงผลบนหน้าจอโดยไม่หยุดนั่นเอง
        คราวนี้เราลองมาแก้โจทย์ปัญหา การหาค่า ห.ร.ม (หารร่วมมาก) ของตัวเลข 2 ตัวใดๆ โดยอัลกอริทึม Euclidean โดยอัลกอริทึมดังกล่าว จะทำการแปลงค่าตัวเลข 2 ตัวเลขบวกใดๆ (m, n) เป็นค่า (d, 0)
โดยการนำตัวเลขที่มีค่ามาก นำมาหารด้วยตัวเลขที่มีค่าน้อยกว่า นำค่าเศษที่หารได้มาแทนตัวเลขที่มีค่ามากกว่า
ทำเช่นนี้จนกระทั่งได้ค่าเศษจากการหารมีค่าเป็น 0 ตัวเลขอีกตัวก็จะเป็นค่า ห.ร.ม. ยกตัวอย่างเมื่อเราทำการ
Run โปรแกรม จะได้ผลดังนี้ Enter two positive integers: 532 112 The g.c.d. of 532 and 112 is 28
คราวนี้เราลองมาดูการเขียนโปรแกรมเพื่อแก้ปัญหาดังกล่าวข้างต้น สามารถเขียนได้ดังนี้
#include 
 void main() 
{
int A, B, start; 
printf("Enter two positive intergers: "); 
scanf("%d %d", &A, &B); 
if(A < B) start = A; 
else start = B; 
while(((A%start) != 0)||((B%start) != 0)) 
{ 
start = start-1; 
 } 
printf("The g.c.d of %d and %d is %dn", A, B, start); 
}
การดำเนินการทางคณิตศาสตร์ สามารถเขียนให้อยู่ในรูปแบบสั้นๆ ได้ ดังตัวอย่างในตารางดังนี

ความแตกต่างระหว่าง i++ และ ++i i++ และ ++i จะมีความหมายใกล้เคียงกันมาก
จะแตกต่างเพียงการจัดลำดับในการคำนวณ เมื่อต้องนำไปใช้กับตัวแปรตัวอื่น
A = 10; C = A++; // A= 11, C = 10 A = 10; C = ++A; // A = 11, C = 11
A = 10; C = A--; // A = 9, C = 10 A = 10; C = --A; // A = 9, C = 9
โครงสร้างการเขียนโปรแกรมแบบวนซ้ำโดยใช้คำสั่ง For คำสัง for สามารถเขียนให้อยู่ในรูปแบบได้ดังนี้
for ( เริ่มต้น ; เงื่อนไข ; เปลี่ยนแปลง ) statement; เมื่อเริ่มต้น เป็นการกำหนดค่าตัวแปรเริ่มต้นที่ต้องการ
ส่วนเงื่อนไขหากค่าลอจิกมีค่าเป็นจริง ก็จะทำตามในโครงสร้างของการวนซ้ำคือ run คำสั่ง statement
แต่ถ้าเป็นเท็จก็จะออกจากโครงสร้างการวนซ้ำ ส่วนเปลี่ยนแปลง จะทำการปรับค่าของตัวแปรที่ต้องการ
ยกตัวอย่างเช่น
for ( count=0 ; count < 10 ; count++) 
{ 
printf(“count = %dn”,count); 
}
ใน code ข้างต้น ตัวแปร count จะเริ่มต้นจากค่า 0 ซึ่งค่า 0 มีค่าน้อยกว่า 10 ก็จะทำคำสั่ง print
ค่าของตัวแปร count จากนั้นค่า count ก็จะเพิ่มค่าเป็น 1 เงื่อนไข count < 10 ก็ยังคงเป็นจริง
ก็จะทำการพิมพ์ ค่าของตัวแปร count วนซ้ำเช่นนี้ จนกระทั่ง count มีค่าเพิ่มขึ้นจนเป็น 10
เงื่อนไขก็จะเป็นเท็จ และจบโครงสร้างของการวนซ้ำ การเปลี่ยนแปลงค่าของตัวแปร
อาจจะมีการเปลี่ยนแปลงมากกว่า 1 ค่า ยกตัวอย่างเช่น
or ( count=0 ; count < 10 ; count += 2) // ตัวแปร count มีค่าเปลี่ยนแปลงเพิ่มขึ้นครั้งละ 2 
{ 
printf(“count = %dn”,count); 
} 
for ( count=10 ; count > 5 ; count -= 2) // ตัวแปร count มีค่าเปลี่ยนแปลงลดลงครั้งละ 2 
{ 
printf(“count = %dn”,count); 
}
นอกจากนี้เรายังสามารถใช้ตัวแปร เป็นการกำหนด ค่าเริ่มต้น เงื่อนไข และ เปลี่ยนแปลงได้ ยกตัวอย่างเช่น
start = 0; end = 20; step=3; 
for ( count=start ; count < end ; count += step) 
{ 
printf(“count = %dn”,count); 
}
คราวนี้ เราลองมาทดลองเขียนโปรแกรม โดยให้โปรแกรม สามารถรับค่าตัวเลขใดๆ
และแสดงค่าในรูปแบบดังตัวอย่างต่อไปนี้
Input the number > 4 
0 
0 1 
0 1 2 
0 1 2 3 
0 1 2 
0 1 
0 
เราสามารถแก้ปัญหาข้างต้น โดยใช้โครงสร้างการเขียนโปรแกรมแบบวนซ้ำดังต่อไปนี้
#include 
 void main() 
{ 
int number, i, j; 
printf("Enter number: "); 
scanf("%d", &number); 
for(j= 0; j< number; j++) { for(i=0; i<= j; i++) 
{
printf("%d ", i); 
}
printf("n");
} 
for(j= number-1; 
j>= 0; j--) 
{ 
for(i=0; i< j; i++) 
{ 
printf("%d ", i); 
} 
printf("n"); 
} 
}

โครงสร้างการเขียนโปรแกรมแบบวนซ้ำโดยใช้คำสั่ง do-while รูปแบบของการเขียน code
สำหรับโปรแกรมแบบวนซ้ำที่ใช้ do-while สามารถเขียนให้อยู่ในรูปทั่วไปได้ดังนี้
do statement while ( เงื่อนไข ); ตัวอย่างของโครงสร้าง do-while สามารถเขียนได้ดังนี้
sum = 0.0; 
scanf(“%f”, &x);
 do { 
sum += x; scanf(“%f”, &x); 
} 
while (x > 0.0);
โปรแกรมข้างต้นจะทำการอ่านค่าจะ keyboard เมื่อ User พิมพ์ค่าที่มีค่ามากกว่าศูนย์
ก็จะทำการบวกค่าเหล่านี้ไปที่ตัวแปร sum จนกระทั่ง User พิมพ์ ตัวเลข 0 หรือค่าที่น้อยกว่า ศูนย์
ทำให้เงื่อนไขเป็นเท็จ และโปรแกรมจึงจะออกจากโครงสร้าง do-while คราวนี้เราลองมาเขียนโปรแกรมที่ใช้โครงสร้าง do-while โดยโจทย์กำหนดให้ว่า ให้โปรแกรมสามารถรับค่าตัวเลขใดๆ (X) และ
แสดงผลของตัวเลข ระหว่าง 0 ถึง X ที่สามารถหารด้วย 4 ลงตัว
#include 
 void main() 
{ 
 int number, i; 
printf("enter the numbern"); 
scanf("%d", &number); 
i = 0; 
do 
{ 
if((i % 4) == 0) printf("%d ", i); i++; 
} 
while(i <= number); 
}


อาเรย์ (Arrays)

ตารางอาเรย์ (Arrays) ตารางอาเรย์ เป็นตัวแปรสำหรับรวบรวมข้อมูลชนิดเดียวกัน
ลงในตัวช่องรับข้อมูลที่ติดกันตั้งแต่ 2 ช่องขึ้นไป ซึ่งข้อมูลในตารางอาเรย์ดังกล่าวสามารถเข้าถึงได้
พร้อมกันหลายช่อง โดยใช้ตัวแปรตัวเดียวในการเข้าถึง การสร้างตารางอาเรย์
จะต้องมีการประกาศค่าตั้งต้นภายในตารางอาเรย์ที่จะใช้ดังต่อไปนี้




Type ArrayName[size]; // Format of Blank array  
Type ArrayNameInitialized[size] = {…}; // Format of initialized array 
 int a[5] = {0,0,0,0,0}; 
double air[5]; 
char vowel[] = {’A’,’E’,’I’,’O’,’U’};

ในกรณีใช้ตัวแปรดัชนี้ชี้ตำแหน่งข้อมูลในตาราง
ค่าของตัวแปรที่จะชี้จะต้องอยู่ในช่วงระหว่าง 0 กับ N-1 โดยที่ N คือขนาดตารางอาเรย์
ดังตัวอย่างที่แสดงในภาพที่ 5.1
ถ้าค่าดัชนีน้อยกว่า 0 หรือมากกว่า N – 1 แล้วโปรแกรมจะทำงานผิดพลาดหรือหยุดทำงาน
การแยกแยะช่องตาราง (Array subscription) ทำได้โดย การใช้ชื่อตัวแปรอาเรย์ ตามด้วย
วงเล็บเหลี่ยมที่มีค่าดัชนี (เช่น Data[i], i = 0, 1, 2, … N-1 ) การประกาศค่าตั้งต้นให้ตัวแปรอาเรย์
สามารถทำได้โดยใช้เครื่องหมายปีกกา ( { } ) หรือจะยกประกาศค่าตั้งต้นที่ละช่องตารางก็ได้
ตามความต้องการของผู้ใช้ โดยส่วนที่ ไม่ได้ใส่ค่าตั้งต้นจะมีค่าเป็นศูนย์
(กรณีตารางอาเรย์แบบ int, double, หรือ float) หรือเป็นค่าว่าง ดังตัวอย่างต่อไปนี้
int a[4] = {9, 8, 7}; ซึ่งจะได้ค่าออกมาตรงกัย a[0] = 9; a[1] = 8; a[2] = 7; และ a[3] = 0;   

กรณีที่ตารางมีหลายมิติ จะมีการเรียกใช้ตามรูปแบบตารางมิติเดียวต่อไปนี้  
ตาราง 2 มิติ: type arrayname2D[size1][size2]; 
ตาราง 3 มิติ: type arrayname3D[size01][size02][size03];  

การค้นข้อมูลในตารางอาเรย์นั้น สามารถเข้าถึงได้อย่างรวดเร็วไม่ว่าตารางจะใหญ่เพียงไหน เช่น 

const int SIZE = 100; // #define SIZE 100 for C 
float A[SIZE],B[SIZE],C[SIZE]; 
for(i = 0; i <= SIZE-1; i++) 
{ 
C[i] = B[i] – A[i]; 
}

ในการใช้ตัวแปรอาเรย์เป็นอาร์กิวเมนต์ให้ฟังก์ชันนั้น แบ่งได้หลายกรณีได้แก่ 
1) กรณีที่จะเอาข้อมูลเฉพาะช่องตาราง จะมีการส่งผ่านข้อมูลในตารางอาเรย์  ดังนี้
void main() 
{ 
float X[10], X[0] = 123.23, X[1] = 24.56, X[2] = 45.67; 
 float total = sum_element(X[0],X[1],X[2]); … 
 } 
float sum_element(float A, float B, float C) 
{ 
return (A+B+C); 
}

2) กรณีที่ใช้ข้อมูลทั้งตารางอาเรย์ การส่งผ่านข้อมูลในตารางลงในฟังก์ชันจะเป็น ดังนี้
void main() 
{ 
float X[10], X[0] = 123.23, X[1] = 24.56, X[2] = 45.67; 
float total = sum_element_array(X) …  
} 
float sum_element_array(float A[]) { int index; float Sum = 0; for(index =0; index <= 3-1; index++) { Sum +=A[index]; } return Sum; }

3) กรณีที่ใช้ข้อมูลทั้งตารางเพื่อให้ได้ผลลัพธ์ออกมาเป็นตารางอาเรย์ให้ทำดังนี้
void add_arrays(float ar1[], // input array 1 
float ar2[], // input array 2 
float ar_sum[], // Output array 
int N) // Array Size 
{ 
for(int i = 0; i <= N-1; i++) 
{ 
ar_sum[i] = ar1[i] + ar[2]; 
} 
}

การค้นหาข้อมูลในตาราง (Array searching) ในการค้นข้อมูลนั้นมักใช้ linear search
หาข้อมูลในตารางตามที่ต้องการ โดยกำหนดเงื่อนไขว่า
1) ถ้าหาข้อมูลพบ ให้แสดงดัชนีของค่าที่ค้นพบ ก่อนออกจากวงรอบการค้นหา
2) ถ้าหาข้อมูลไม่พบ ให้ออกจากโปรแกรมแล้วคืนค่า ที่อยู่นอก ขอบเขต 0 – N-1, N คือ
ขนาดตารางอาเรย์ (โดยมากให้คืนค่า -1) การสับเรียงข้อมูลในตาราง (Array Sorting)
การสับเรียงข้อมูลมีหลายวิธี ซึ่งจะกล่าวถึงในที่นี้พอสังเขปดังนี้ 1) Bubble Sort
ซึ่งเขียนใช้งานง่ายแต่ สับตำแหน่งข้อมูลได้ผลช้าที่สุด ซึ่งมีกลไกดังนี้
void BubbleSort(float list[], int N) 
{ 
int i,j; 
float temp; 
for(i = N-1; i>=0; i--) 
{ 
for(j = 1; j <=i; j++) 
{ 
if(list[j-1] > list[j]) 
{ 
temp = list[j-1]; 
list[j-1] = list[j]; 
list[j] = temp; 
} 
} 

} 
}
2) Selection Sort ซึ่งจะเลือกค่าที่ยังไม่ได้สับเปลี่ยนที่น้อยที่สุดเป็นหลัก ในกา รสลับที่
void SelectSort(float list[], int N) 
{ 
int i,j, MinIndex; 
float temp; 
for(i = 0; i<=N-2; i--) 
{ 
MinIndex = I; 

 for(j = i+1; j <=N-1; j++) 
{ 

 if(list[j] < list[MinIndex]) 
{ 
minIndex = j 
 } 

temp = list[j-1]; 
list[j-1] = list[j]; 
list[j] = temp; 
} 
} 
}
3) Insertion Sort ซึ่งจะเติมข้อมูลลงในตำแหน่งที่เหมาะสมในขั้นสุดท้าย ซึ่งจะต้องมีตัวแปรอาเรย์
อย่างน้อย 2 ตัว โดยที่อาเรย์ตัวแรกทำหน้าที่ เป็น List เก็บข้อมูล ต้นฉบับ (Source List)
และอาเรย์ตัวหลังทำหน้าที่รับข้อมูลที่ผ่านการสับตำแหน่งแล้ว (Sorted List) ในการสับที่กันนั้น
จะให้ข้อมูลปัจจุบันเคลื่อนผ่านข้อมูลที่ผ่านการสับตำแหน่งแล้ว จากนั้นจึงลงมือสลับข้อมูลอีกครั้ง
จนกว่าข้อมูลทั้งหมดจะเข้าที่
void insert_sort(float data[], int Size) 
{ 
int i,j; 
float DatElement; for(i=1;i<=Size-1;i++) 
{ 
DatElement = data[i]; 
j = i; 
while((j >= 1) && data[j-1] >DatElement) 
{ 
data[j-1] = data[j]; 
j = j-1; 
}
data[j] = DatElement; 
} 
}

ส่วนโปรแกรมที่ใช้เขียนภาษา C นะครับ ผมขอแนะนำเป็น DEV-C++ แล้วกันครับ
ตามลิ้งค์นี้เลย http://sourceforge.net/projects/orwelldevcpp/

และที่กล่าวมาข้างต้นนี้  ก็คือพื้นฐานการเขียนโปรเเกรมภาษา C ครับ...เยอะจริงๆนะครับเนี่ยแค่สองอย่างเอง
เพราะฉะนั้นใครที่สนใจอยากเขียนนะครับ
ลองกดเข้าไปดูตามลิ้งค์ด้านล่างได้เลยนะครับ
รับรองว่าครบถ้วนกว่านี้แน่นอนครับ

ขอบคุณทุกท่านที่เข้ามาอ่านมากๆครับ หวังว่าจะเป็นความรู้ให้กับท่านได้
และขอขอบคุณข้อมูลดีๆจาก...แหล่งอ้างอิงด้านล่างมากๆเลยครับ^^
          http://guru.sanook.com/6394/