ฝึกเขียนโปรแกรมพื้นฐานด้วย Visual C#
ความรู้ด้านการเขียนโปรแกรมสำหรับผู้เริ่มต้น แม้ไม่เคยเขียนโปรแกรมมาก่อนก็เข้าใจได้ไม่ยาก
ผู้เขียน: สร้างโดย: อ.โอ๊ค - อนุญาติให้: แก้ไขได้โดยสมาชิกทุกคน ชมแล้ว: 377,510 ครั้ง
post ครั้งแรก: Sun 31 May 2009, 9:54 pm ปรับปรุงล่าสุด: Mon 25 July 2011, 10:53 pm
อยู่ในส่วน: ไม่ได้ระบุว่าให้อยู่ห้องใด

หน้าที่ 9 - output & input (การแสดงผลและการรับข้อมูล)

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

การแสดงผลในโค้ดโปรแกรมภาษา C# สำหรับผู้เริ่มต้นจะเป็นการแสดงผลในรูปแบบของ Console หรือ ข้อความเพียงอย่างเดียว ซึ่งเป็นการปูพื้นฐานความเข้าใจที่ดีในการเขียนโปรแกรม เรามาดูโค้ดการแสดงผลในรูปแบบ Console กันเลยดีกว่าครับ
(โค้ดทุกโค้ดจะต้องมีตัวใหญ่เล็กเหมือนกับโค้ดด้านล่างทุกประการ)

System.Console.WriteLine( parameter ) ;

โค้ดนี้จะเป็นการสั่งให้แสดงผลออกมาเป็นข้อความใน Console ซึ่งให้สังเกตุโค้ดให้ดีๆครับ มันมีที่มาที่ไป ในการนิยาม กล่าวคือ เราได้ทำการเรียก Namespace ชื่อ System จากนั้นคั่นด้วย "." และตามด้วย Class ที่ชื่อ Console คั่นด้วย "." ตามด้วยการเรียน เมธอด WriteLine() เพื่อใช้งานอีกที การเขียนโค้ดส่วนใหญ่เราจะอ้างอิงจากใหญ่ลงมาถึงส่วนเล็ก นั่นก็คือ Namespace > Class > Method ซึ่งอาจจะดูยาวเกินจำเป็น เราสามารถ กำหนดในส่วนหัวของโค้ดว่า using System ; เพื่อที่เราจะได้ไม่ต้องนิยามถึง Namespace กล่าวคือ โค้ดที่เราจะเขียนจะเหลือเพียง

Console.WriteLine( parameter ) ;

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

ในตอนนี้ขอให้ความสำคัญในส่วนของผลลัพธ์ก่อนแล้วเราจะมาพูดถึงการนิยามโค้ดที่ถูกต้องกันในภายหลัง

การแสดงผลข้อความใน Console จะมี 2 แบบ



  • Console.Write( ) ;
    เป็นการแสดงผลข้อความโดยจะไม่มีการเว้นบรรทัด หรือ cursor จะอยู่หลังข้อความที่โปรแกรมได้พิมพ์

    Console.Write( "Welcome" );
    Console.Write( "to my C-sharp" );
    Console.Write( "Programming blog" );

    ผลลัพท์

    Welcometo my C-sharpProgramming blog

  • Console.WriteLine( ) ;
    เป็นการแสดงผลข้อความโดยจะมีการเว้นบรรทัด หรือ cursor จะเลื่อนไปอยู่บรรทัดใหม่หลังจากพิมพ์ข้อความเสร็จ

    Console.WriteLine( "My Firstname is Soros" );
    Console.WriteLine( "My Lastname is Nivessoonthon" );
    Console.WriteLine( "I'm study at KMITL..." );

    ผลลัพท์

    My Firstname is Soros
    My Lastname is Nivessoonthon
    I'm study at KMITL...

    ** สิ่งที่ห้ามพลาดคือ ตรงช่วง WriteLine() หรือ Write() คำว่า Write ห้ามเว้นออกจาก () เช่น Write () จะทำให้คอมไพล์ไม่ผ่านทันทีหรือ error เพราะผิดรูปแบบ syntax

รูปแบบการใช้งานของโค้ดแสดงผล

Console.WriteLine( parameter ) ;
parameter ที่จะใส่เข้าไปจะมีอยู่ หลายรูป แบบ คือ

- รูปแบบของ string โปรแกรมจะทำการแสดงผล string ที่เราพิมพ์เอาไว้ใน " " มาแสดงผล

Console.Write("Hello World!!");
เมื่อ Compile จะได้

Hello World!!

object (ตัวแปร) เมื่อเราส่งค่าที่เป็น object ไปเพื่อแสดงผล โปรแกรมจะนำค่าของ object มาแสดงผล

int Number = 20 ;
Console.Write(Number) ;
เมื่อ Compile จะได้

20

- รูปแบบของ string เชื่อมกันกับ string หรือ object เช่น

Console.Write( "Hello" + "World!!" );
***ซึ่งจริงๆมีความหมายเดียวกับ Console.Write( "HelloWorld!!" );

ผลลัพท์

HelloWorld!!

-------------------

int SampleNum = 20 ;
string SampleText = "Test text" ;

Console.WriteLine( "My Sample Value is " + SampleNum ) ;
Console.Write( "My Sample Text is " + SampleText ) ;

ผลลัพท์

My Sample Value is 20
My Sample Text is Test text

- รูปแบบการแทนค่าในตำแหน่งที่กำหนดใน string เช่น

int value1 = 15 ;
int value2 = 30 ;
int value3 = 60 ;
string text = "Soros" ;

Console.WriteLine( "First test value is {0}" , value1 ) ;
Console.WriteLine( "My Name is {0}" , text ) ;
Console.WriteLine( "All test value are {0}, {1}, {2}" , value1, value2, value3 ) ;

*** {0} คือ ตำแหน่งที่เราจะแทนด้วยค่าของ object ซึ่งจะเริ่มจาก 0, 1, 2 ไปเรื่อยๆ

ผลลัพท์

First test value is 15
My Name is Soros
All test value are 15, 30, 60

- รูปแบบของนิพจน์ทางคณิตศาสตร์

นิพจน์ทางคณิตศาสตร์คือ การนำตัวเลขหรือตัวแปรมาใส่ตัวดำเนินการทางคณิตศาสตร์
เช่น นิพจน์ของ a+b

int a = 3 ;
int b = 6 ;

Console.WriteLine(a+b) ;

ผลลัพท์

9

------------------------------------------------------------------------------------

การรับค่าจากผู้ใช้งาน (input) คือ การนำค่าที่ผู้ใช้ป้อนเข้ามา ไปเก็บไว้ในหน่วยความจำของข้อมูลที่ได้จองเอาไว้ (ได้จากการประกาศตัวแปร) ซึ่งจะต้องเป็นลำดับขั้นตอน กล่าวคือ "ต้องมีการประกาศตัวแปรก่อนการรับค่าเข้ามาเก็บในตัวแปรนั้นๆเสมอ" เพื่อป้องกันการ error ที่จะเกิดขึ้นกับโปรแกรม คำสั่งที่เราจะใช้ในการรับค่าจะมีโค้ดคำสั่งดังนี้

การกระทำการรับค่าสามารถสรุปเป็นขั้นตอนได้ดังนี้
1. ต้องทำการประกาศตัวแปรในชนิดข้อมูลที่ต้องการรับก่อน
2. อาจมีข้อความแจ้งให้ป้อนข้อมูล(ในส่วนนี้อาจไม่มีก็ได้)
3. อ้างอิงตัวแปรตามชื่อที่ประกาศใช้หลักการกำหนดค่า แต่ใช้โค้ดทางด้านขวาเป็นคำสั่งอินพุต

- การรับค่าในรูปแบบของ string รูปแบบโค้ดจะเป็นดังนี้

Console.ReadLine( ) ;

ตัวอย่างการรับ(ตามขั้นตอน)
จงเขียนโปรแกรมรับค่าตัวเลขจำนวนเต็ม 3 ค่า และแสดงผลจำนวนเต็มนั้นในลักษณะ , คั่นไว้แต่ละจำนวน

int num1, num2, num3;                                // ขั้นตอนที่ 1 การประกาศตัวแปร

Console.Write("input number1 : ");                // ขั้นตอนที่ 2 การแสดงข้อความแจ้งให้ใส่ จำนวน
num1 = int.Parse(Console.ReadLine());          // ขั้นตอนที่ 3 คำสั่งรับค่า (จะทำงานหลังจากการกด enter)

Console.Write("input number2 : ");
num2 = int.Parse(Console.ReadLine());

Console.Write("input number3 : ");
num3 = int.Parse(Console.ReadLine());




ซึ่งโค้ดในส่วนของด้านบนจะต้องมีตัวแปรชนิด string มารองรับอีกทีหนึ่ง (หรือต้องมีการแปลงไปเป็นข้อมูลชนิดเดียวกับตัวแปรที่มารับ)

สำหรับการรับค่าโดยที่ตัวแปรที่มารับเป็นตัวแปรชนิด string
string InputTest ;
InputTest = Console.ReadLine() ;

สำหรับการรับค่าโดยที่ตัวแปรที่มารับค่าเป็นตัวแปรชนิดอื่น (ในที่นี้จะขอยกตัวอย่างเป็นชนิด integer)
int Value ;
Value = int.Parse( Console.ReadLine() ) ;

สังเกตุได้โดยผมได้แปลงข้อมูลชนิด string มาเป็น integer ก่อนจึงจะรับค่าเข้ามาเก็บในตัวแปร Value

** ถ้าตัวแปรมีค่าอยู่ก่อนแล้ว เมื่อรับค่า ค่านั้นจะไปแทนที่ในส่วนของค่าเดิม (ค่าเดิมหายไป) เช่น

double  TestValue = 3.5 ;
TestValue = double.Parse( Console.ReadLine() ) ;
Console.WriteLine(TestValue) ;

ให้ลองใส่ค่าอื่นๆลงไปดูครับ แล้วสังเกตุดูว่าค่าที่แสดงออกมานั้นเป็นค่าเดิม คือ 3.5 หรือไม่









*หมายเหตุ งานเขียนชิ้นนี้ ได้รับการคุ้มครองสิทธิตามพระราชบัญญัติคุ้มครองสิทธิทางปัญญา โดยลิขสิทธิเป็นของผู้เขียน ที่ให้เกียรตินำเผยแพร่ผ่าน วิชาการ.คอม เรามีความยินดีและอนุญาตให้ทำซ้ำหรือเผยแพร่ต่อเพื่อประโยชน์ทางการศึกษาเท่านั้น กรุณาให้เกียรติผู้เขียน โดยอ้างชื่อผู้เขียนและ วิชาการ.คอม (www.vcharkarn.com) ทุกครั้งที่ทำการเผยแพร่ต่อ ห้ามนำส่วนหนึ่งส่วนใดไปเผยแพร่ต่อในสื่อที่เอื้อประโยชน์ทางธุรกิจก่อนได้รับอนุญาต ขอขอบคุณที่ร่วมกันช่วยสร้างให้สังคมไทยเป็นสังคมแห่งปัญญา






จำไว้ตลอด

จำนวน 43 ความเห็น, หน้า | 1 | 2 | 3 |
ความเห็น 24 11 ธ.ค. 2552 (13:37)

ขอบคุณมากๆค่ะ  พอดีได้เข้ามาอ่านเพราะว่าสนใจทางด้านนี้

ยังไงถ้าพี่ๆมาอะไรก็แนะนำด้วยนะค่ะ

เพราะอนากเรียนวิทยาการคอมมากๆเลยค่ะ


MinMint เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปัน1 ครั้ง - ดาว 50 ดวง - โหวตเพิ่มดาว

ความเห็น 25 15 เม.ย. 2553 (00:00)
ขอบคุณค่ะ
peat_24 เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปัน1 ครั้ง - ดาว 53 ดวง - โหวตเพิ่มดาว

ความเห็น 26 29 มิ.ย. 2553 (19:44)
ได้ความรู้มากขึ้น ดีค่ะ

ขอบคุณ นะคะ

ขอให้มีแบบนี้ อีก ค่ะ

เข้า ใจ ง่ายขึ้น ด้วย

^ ^"
bellbom เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปัน1 ครั้ง - ดาว 52 ดวง - โหวตเพิ่มดาว

ความเห็น 27 5 ก.ค. 2553 (13:15)
เรียนกับอาจารย์ที่โรงเรียนไม่รู้เรื่องเลย
แต่พอมาอ่านเนื้อหาที่นี่ก็เข้าใจขึ้นมากเลยค่ะ
ขอบคุณมากค่ะ
gam2514 เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปัน3 ครั้ง - ดาว 64 ดวง - โหวตเพิ่มดาว

ความเห็น 28 5 ก.ค. 2553 (13:22)
ขอบคุณมากเลยครับ
อย่างนี้สอบก็คงผ่านได้สบายเลย ^0^
oooTABooo เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปัน1 ครั้ง - ดาว 30 ดวง - โหวตเพิ่มดาว

ความเห็น 29 20 ก.ค. 2553 (11:02)
อ.ครับผมพึ่งศึกษาการเขียนโปรแกรมใหม่ๆๆเลย บทเรียนของอ.เป็นประโยชน์มาก พูดเข้าใจง่าย ผมกำลังจะเริ่มเขียนอยากให้แนะนำครับว่าจะเขียนC#เลยดีไหมหรือต้องเขียนภาษาที่ง่ายให้คล่องก่อน และC#กับJavaอัไหนใหม่กว่าครับ
noy_ap เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปัน1 ครั้ง - ดาว 50 ดวง - โหวตเพิ่มดาว

ความเห็น 30 20 ก.ค. 2553 (17:02)
สวัสดีค่ะ +++อาจารย์

หนูเพิ่งเข้ามาเป็นสมาชิก และตอนนี้หนูเรียนภาษา c# อยู่ซึ่งเรียนไม่รุเรื่องเลยค่ะ อาจารย์ที่โรงเรียนสอนหนู งงมาก
เวลาอาจารย์ให้รันโปรแกรม หฯทำไม่ได้หนูไม่เข้าใจ

หนูเลยอยากให้อาจารย็ช่วยสอนในเรื่องที่หนูไม่เข้าใจด้วยค่ะ

พร้อมโจทย์ตัวอย่าง มาให้หนูฝึกเขียนด้วยนะค่ะ (เอาเฉลยแนบมาด้วยนะค่ะ และอธิบายมาด้วยค่ะ)

ตอนนี้หนูกำลังเรียน
V
V
V

การประกาศตัวแปรและการตั้งชื่อ
การเรียกใช้โปรแกรม
การใช้วนลูป for while do while
คอลโทลต่างๆ
-from
-button
-tex box
-label
safpimo เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปัน2 ครั้ง - ดาว 50 ดวง - โหวตเพิ่มดาว

ความเห็น 31 24 ก.ค. 2553 (10:50)
ขอบคุณ คุณMinMint, peat_24, bellbom, gam2514, oooTABooo, noy_ap, safpimo มากครับสำหรับคำติชม และให้ความสนใจ เป็นกำลังใจให้ อ. อยากพัฒนาบทเรียนต่อไปนะ ^^

ตอบ คุณ noy_ap
C# ใหม่กว่า java ครับ แต่ที่ยังได้รับความนิยมมากๆในปัจจุบันยังเป็น java ครับ เนื่องด้วยมันเป็น open source
เลือกเขียน C# เป็นภาษาเริ่มต้นเลยก็ได้ครับ เพราะยังไงๆ ก็ถือเป็นภาษาระดับสูงอยู่แล้ว เข้าใจไม่ยากอยู่แล้วครับ (สู้ๆนะ เอาใจช่วย)

ตอบ คุณ safpimo
อ. ฟังไม่ผิดใช่มั้ย ระดับ โรงเรียนเดี๋ยวนี้สอน C# แล้วหรอเนี่ย
ถ้าใช่ก็ถือเป็นเรื่องดีนะครับ เอาเป็นว่าโจทย์ อ. จะหาเวลาว่างมาลงให้แล้วกันนะครับ ^^
Gaiden เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปัน28 ครั้ง - ดาว 111 ดวง - โหวตเพิ่มดาว

ความเห็น 32 22 ส.ค. 2553 (14:44)
อ.ค่ะ ถ้าเขียนโปรแกรม C# แบบ if else เขียนยังไงคะ
อ.ที่โรงเรียนสอนไม่ค่อยเข้าใจคะ
gam2514 เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปัน3 ครั้ง - ดาว 64 ดวง - โหวตเพิ่มดาว

ความเห็น 33 24 ส.ค. 2553 (00:43)
ตอบคุณ gam2514

รายละเอียดการทำงาน if-else
อยู่ในหน้าที่ 10 เลยครับ ลองเปิดอ่านดูน้า
มีสงสัยตรงไหนก็ถามไว้ได้ครับ
Gaiden เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปัน28 ครั้ง - ดาว 111 ดวง - โหวตเพิ่มดาว

ความเห็น 34 24 ส.ค. 2553 (18:31)
สวัสดีครับ ผมพึ่งเข้าเจอเว็บนี้สุดยอดมากๆเลยครับข้อมูลดีๆมากๆ

ยังไงก็ช่วยลงต่อเรื่อยๆด้วยนะครับ

ขอบคุณครับ
lordpudding เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปัน2 ครั้ง - ดาว 50 ดวง - โหวตเพิ่มดาว

ความเห็น 35 24 ส.ค. 2553 (20:40)
ขอบคุณอ. มากค่ะ ละเอียดมากเลยค่ะ อย่างนี้สอบต้องติดอันดับ 1ใน 5 ได้แน่ๆ *-*
gam2514 เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปัน3 ครั้ง - ดาว 64 ดวง - โหวตเพิ่มดาว

ความเห็น 36 31 ส.ค. 2553 (12:20)
อาจารย์ค่ะ มีการเรียนเพิ่มเรื่องการใ้ ฐานข้อมูลอยากให้อาจารย์ช่วย ให้ความรู้เรื่องญานข้อมูลเพิ่มขึ้นหน่อค่ะ
safpimo เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปัน2 ครั้ง - ดาว 50 ดวง - โหวตเพิ่มดาว

ความเห็น 37 31 ส.ค. 2553 (21:23)
อยากได้เรื่องยากๆต่อจากนี้จังเลยครับพอดีเดือนหน้าช่วง15มั้งผมต้องไปแข่งทักษะเขียนโปรแกรมแล้ว
คุณครูพอมีเวลาช่วยสอนเรื่องการทำพิรมิดได้ไหมครับพวกทริคต่างๆอ่าครับถ้าไม่ว่างก้ไม่เป็นไรครับ
เป็นกำลังใจให้ครับครูทำเว็บได้มีความรู้มากๆครับช่วยลงต่อไปเลื่อยๆด้วยนะครับ
lordpudding เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปัน2 ครั้ง - ดาว 50 ดวง - โหวตเพิ่มดาว

ความเห็น 38 24 ก.ย. 2553 (23:42)
โหย ขออภัยจริงๆครับ อ. ไม่ได้เข้ามานาน ด้วยความที่ไม่ว่าง
อ. มีสอนเยอะหน่อยครับ ช่วงนี้ไม่ค่อยมีเวลา
อ. จะพยามเจียดเวลาอย่างที่สุดมาทำตามคำเรียกร้องนะครับ ^^
Gaiden เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปัน28 ครั้ง - ดาว 111 ดวง - โหวตเพิ่มดาว

ความเห็น 39 30 ก.ย. 2553 (11:43)
ขอบคุณมากๆครับสำหรับบทความดีๆ ขอให้เว็บไซด์นี้อยู่คู่คนไทยไปอีกนานๆเลยนะครับ
Haris-pm เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปัน1 ครั้ง - ดาว 50 ดวง - โหวตเพิ่มดาว

ความเห็น 40 30 ต.ค. 2553 (08:39)
ถ้าต้องการคอนโทลtextboxให้เป็นตัวอักษร*จะทำยังไงคะ
Bucchytale เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปัน1 ครั้ง - ดาว 50 ดวง - โหวตเพิ่มดาว

ความเห็น 41 28 ก.พ. 2554 (10:07)
อาจารย์ครับ มีคำถามครับ
1. ไม่เคยเขียนprograme และไม่รู้เรื่องเลย
2. ได้ iPhone มา ทีแรกไม่สนใจเท่าไร พอลอง load app สนใจมาก อยากทำบ้าง
3. สนใจหมวด travel กับ game
4. พอออกแบบได้

ผมอยากทำบ้าง ควรนับ 1 ที่ C# หรือ objective-C ครับ
ผมเข้าใจอย่างนี้ถูกต้องหรือไม่ครับ
การทำแบ่งออกเป็น 3 ส่วน(ถ้ามีทิศทาง และ วัตถุประสงค์ในการทำแล้ว)
1. objective-c, 2. iphone programing, และ 3. หน้าตาของ app

ผมควรเริ่มที่ C# ก่อนหรือไม่ครับ หรือมุ่งตรงที่ objective-c เลย
ผมต้องตั้งใจจริงมากเป็นพิเศษเพราะไม่รู้อะไรเลย
นับถือ
sjk
sjk เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปัน1 ครั้ง - ดาว 50 ดวง - โหวตเพิ่มดาว

ความเห็น 42 25 มี.ค. 2554 (21:01)
ขอบคุณคร๊าฟฟๆๆ


อ่านแล้วเข้าใจง่ายมากเลย
parkkk123 เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปัน1 ครั้ง - ดาว 150 ดวง - โหวตเพิ่มดาว

ความเห็น 43 19 เม.ย. 2554 (18:41)
ผมมีเรื่องอยากถามเกียวกับ Visual C# หน่อยครับ คือผมพึ่งเรียน Visual C# แล้วอาจารย์ให้เขียน โปรแกรมเครื่องคิดเลข โดยใช้ TextBox 3 ตัว ให้ผลการคำนวนจาก TextBox ที่ 1 กับ 2 แสดงใน TextBox ที่ 3 ต้องทำยังไงหลอครับ ขอความช่วยเหลือหน่อยครับ ขอขอบคุณล่วงนห้าครับ
jamelove เก็บเข้า Contact List ส่ง vSMS
ร่วมแบ่งปัน1 ครั้ง - ดาว 50 ดวง - โหวตเพิ่มดาว






Gaiden
(โสฬส นิเวศสุนทร)

ผู้ชมข้อมูลนี้แล้ว 5,235 ครั้ง
เป็นสมาชิก: นานกว่า 3 ปี
แบ่งปันความรู้ 28 ครั้ง
ได้รับดาว 111 ดวง

โหวตเพิ่มดาว

Blog อื่น ๆ ของผู้เขียน