บทที่ 2 เริ่มต้นเขียนโปรแกรม...

Preview:

Citation preview

บทท 2 การใชค าสงพนฐานของภาษา C#

อ.ปกรณ สนทรเมธ

สาขาวชาเทคโนโลยสารสนเทศ คณะวทยาศาสตรและเทคโนโลยการเกษตร

มทร.ลานนา นาน

SharpDevelop เครองมอพฒนาแอพพลเคชน

SharpDevelop เปนเครองมอในการพฒนาโปรแกรม.NET แบบ OpenSource โดยมคณสมบตหลกดงตอไปน

สราง/แกไข/บนทก โปรแกรมทเขยนดวยภาษา C# ได

คอมไพล (แปล) และรนโปรแกรมภาษา C#

สนบสนนการพฒนาโปรแกรมทงแบบ Console Application , Windows Application , Mobile Application และ ASP.NET Application

รองรบ 3 ภาษา ไดแก C#,VB.NET,Boo

ตดตง Sharp Develop 3.0 หรอ download ไดท http://www.icsharpcode.net/OpenSource/SD/Download/

Solution, Project และ Form

การสราง Application จะเรยกวา Solution ซงประกอบดวย Project ตางๆ แตละโปรแกรมจะมฟอรมตางๆ และมไฟลชนดตางๆ

Solution คอ กลมของ Project (หรออาจจะม Project เดยว)ทถกจดการไปพรอมๆ กน

Project คอ กลมของไฟลตางๆ ทถกสรางขนมาเพอใหท าภารกจหนงๆ

New Project Dialog

ชนดของโปรเจกต

สวนประกอบของหนาจอโปรแกรมMenu bar

Toolbar

Toolbox

Windows Form Designer

PropertiesWindow

SolutionExplorer

IDE (Integrated Development Environment) IDE – Integrated Development Environment คอ สภาพของการพฒนาโปรแกรมโดยรวม

ทง Editor , Complier , Debugger ตลอดจนเครองมอทใชในการออกแบบ และตดตอฐานขอมล ประกอบดวยสวนตางๆ ดงน

เมนบาร (Menu Bar) : สวนทใชเกบค าสง โดยแบงแยกเปนหมวดหมอยางชดเจน

ทลบาร (Toolbar) :สวนทใชเกบปมค าสงลดตางๆ

ทลบอกซ (Toolbox): สวนทใชเกบคอนโทรล/คอมโพเนนตเพอการสรางแอพพลเคชน

Form Designer : สวนทใชในการออกแบบหนาตาของแอพพลเคชน

Properties Window : สวนทใชก าหนดคณสมบตของ Object และ Control ชนดตางๆ

Solution Explorer : สวนทใชเกบองคประกอบตางๆ ของSolution (Solution จะประกอบไปดวยไฟลชนดตางๆ ทจ าเปนตอการท างานและควบคมแอพพลเคชน)

Code Editor : สวนทเราใชเขยนโปรแกรมเพอสงงานแอพพลเคชน

ตวอยางการสรางแอพพลเคชนแบบ Console

แอพพลเคชนแบบ Console คอ การแสดงผลการท างานในโหมดของดอส ซงรบค าสงดวยการพมพค าสง

ตวอยาง

โครงสรางของโปรแกรม C#

method Main

method จะตองอยใน class

class จะตองอยใน namespace

namespace HelloW {

class HelloWClass {

static void Main () {

System.Console.WriteLine("Hello World!");

System.Console.ReadLine();

}

}

}

รปแบบ Class <Identifier> {…….}

โครงสรางของโปรแกรม C#C#

โปรแกรมจะประกอบดวยหลาย namespacesNamespace ประกอบดวยหลาย classesclass ประกอบดวยหลาย methods

method1

method2

method2

namespace

Class

Class

โครงสรางของโปรแกรม C#

13

Your Class Name

Your declaration part

Your statements

Your Namespace Name

C# Overview

ตวอยาง ชนดโปรเจกทเลอก Console Application

โครงสรางของโปรแกรม C#

โปรแกรมจะตองประกอบดวยอยางนอย 1 Namespace

namespace HelloW {

class HelloWClass {

static void Main () {

System.Console.WriteLine("Hello World!");

System.Console.ReadLine();

}

}

}

หลกการตงชอ namespaces , class และตวแปร ขนตนดวยตวอกษร, underscore (_) หรอ @ หามใชตวเลข หรออกขระเปนตวเรมตน ใชตวอกษร, ตวเลข และ underscores(_) ในการตงชอได ตงไดไมเกน 63 ตวอกษร ตองไมเปนค าสงวน (reserved word)

* Case Sensitive * Example

URU01 ≠ uRu01 ≠ uru01

ค าสงวนของภาษา C# (Reserved Words)

พจารณาชอตวแปรตอไปนวาถกตองตามกฎการตงชอหรอไม_Y

String

i_j

Student ID

HelloWorld!!

first-time

Null 204111Class Section3 sECTION3 w*h do

C# Program

C# syntax is case-sensitive ทก statement จบดวยเครองหมาย semicolon (;) Code อยภายใต { } การ comment ม 2 ประเภท คอ

Comment แบบบรรทดเดยว ใช //Comment หลายบรรทดใช /* */ หรอ

/*---------------------------------------------------------------------------------*/

เครองหมายสนสดค าสง (;)

;ตวแสดงจดสนสดแตละค าสง

จบบลอก ไมตองใส ;

ตวอยาง 1

x = 10;

y = 2 + x;

ตวอยาง 2

x = 10; y = 2 + x;

ค าสงแสดงผล

Console.Write ("Hello");

Console.WriteLine ("Hello World");

string str = "Hello";

Console.Write (str + " World");

22

วธ1 Console.Write (ขอความ);

วธ2 Console.WriteLine (ขอความ);

ทดลองเขยนโปรแกรม จงเขยนโปรเจกตชนด Console Application โดยใชค าสง Write/

WriteLine และใหโปรแกรมมผลลพธดงน

******************************************************

Student ID : …………………………….

Name : ……………………..Faculty :……………………

Major :……………………………………………………

******************************************************

ค าสงรบขอมล

Console.Write ("What is your name? : ");string name = Console.ReadLine ( ); // LaksameeConsole.Write ("My name is " + name);Console.Read ( );

24

วธ1 Console.Read (); หรอConsole.ReadLine ();

วธ2 ตวแปร = Console.Read (); หรอตวแปร = Console.ReadLine ();

จงหาขอผดพลาดของโปรแกรมตอไปน

ชนดของขอมล

Numeric (เลขจ านวนเตม และเลขทศนยม)Char (ตวอกษร)String (ขอความ)Boolean (บลน)Object

26

เลขจ านวนเตม

Data type ขนาด คาของขอมล

sbyte (System.SByte) 1 byte -128 ถง 127

short (System.Int16) 2 bytes -32,768 ถง 32,767

int (System.Int32) 4 bytes -2,147,483,648 ถง

2,147,483,647

long (System.Int64) 8 bytes -263 ถง (263 – 1)27

เลขจ านวนเตมบวก

Data type ขนาด คาของขอมล

byte (System.Byte) 1 byte 0 ถง 255

ushort (System.UInt16) 2 bytes 0 ถง 65,535

uint (System.UInt32) 4 bytes 0 ถง 4,294,967,295

ulong (System.UInt64) 8 bytes 0 ถง 264 -1

28

เลขทศนยม

Data type ขนาด คาของขอมล

float (System.Single) 4 bytes ±1.5 x 10-45 ถง ±3.4 x 1038

ความแมนย าของทศนยมอยท 7 ต าแหนง

double (System.Double) 8 bytes ±5.0 x 10-324 ถง ±1.7 x 10308

ความแมนย าของทศนยมอยท 15 ต าแหนง, มชวงของขอมลกวางทสด

decimal (System.Decimal) 16 bytes ±1.0 x 10-28 ถง ±7.9 x 1028

ความแมนย าของทศนยมอยท 28 ต าแหนง, ชวงขอมลแคบกวา doubleแตใหคาละเอยดมากในสวนของทศนยม เหมาะกบการค านวณเรองเงน

29

ประเภทขอมลทไมใช Numeric

Data type ขนาด คาของขอมล

char(System.Char)

2 bytes ตวอกษรแบบ Unicode มเครองหมาย ' (single quote) ครอมตวอกษร เชน 'A', '1'

string(System.String)

ไมแนนอน ตวอกษรแบบ Unicode หลายตวมารวมกนมเครองหมาย " (double quote) ครอมเชน "Hello"

bool(System.Boolean)

1 bit มคาทเปนไปได 2 คา คอtrue และ false

30

การประกาศตวแปร (Variable)

31

วธ1 [ชนดของขอมล] ชอตวแปร;

วธ2 [ชนดของขอมล] ชอตวแปร = [คาเรมตนของตวแปร];

int x; int y, z; int Y, Z = 3;Double d = 10.99;String D = "Hello World",str;

หมายเหต: ไมสามารถประกาศตวแปรซ าภายในบลอก {…} เดยวกน

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

32

การประกาศคาคงท (Constant)

const int x = 1; const double pi = 3.14;

หมายเหต: ไมสามารถเปลยนแปลงคาคงทได

33

const [ชนดของขอมล] ชอตวแปร = คาคงท;

ตวด าเนนการทางคณตศาสตร (operator)Arithmetic Operators

+ - * / % ++ -- = += -= *= /= %=

String Operators +

Boolean Operators < <= > >= == != ! && || ^

A = 2+3; B = 4 % 3; X++; ++X; X--; --X; Y += 3;

Message = "Hello "+Name

If (A=5 && B>6) {…}

34

นพจนทางคณตศาสตร (operator) Operators

+ - * /% (remainder after division)

Example11 + 5 1611 / 2 5.511 % 2 15.0 % 2.2 0.6

35

ล าดบความส าคญของ Operatorsล าดบ Operator

1 ( ), x++, x--

2 +x, -x, ++x, --x, !

3 *, /, %

4 +, -

5 shift bits left: <<, shift bits right: >>

6 <, <=, >, >=, is, as

7 = =, !=

8 &, |, ^

9 &&, ||, ?:

10 =, +=, =,*=, /=, %=, <<=, >>=, &=, ^=, |=36

ล าดบความส าคญของ Operators

1. ( ) parentheses

2. *, / , %

3. + –

4. If equal precedence, left to right

37

ตวอยางint Width,High;Width=10*5+16*12/5;High= 16+5+20%2;

ทดลองเขยนโปรแกรมค านวณพนทสเหลยม

38

แบบฝกหด

1. จงหาผลลพธของค าสงตอไปน

2. จงเขยนค าสงในภาษา C# เพอประกาศตวแปรหรอคาคงทตามทก าหนดให โดยเลอกใชชนดขอมลทเหมาะสม

2.1 คาคงทชอ MY AGE เพอใชแทนอายปจจบนของนกศกษา

2.2 ตวแปรชอ income เพอใชเกบเงนเดอนของพอลลา

2.3 ตวแปรชอ temp c เพอเกบคาอณหภมบรเวณขวโลกเปนองศาเซลเซยส

2.4 คาคงทชอ PI เพอใชแทนคา 3.1415926535

2.5 ตวแปรชอ myName เกบคาเรมตนเปน "Pe-ter"

3. จงเขยนโปรแกรมค านวณพนทวงกลมและเสนรอบวง โดยใหสามารถรบคารศมจากผใชได โดยก าหนดคาคงทชอ PI ใชแทนคา 3.141

ตวอยางหนาจอแสดงผล

Enter Radius : 4Radius of Circle = 4Area of Circle = 50.256Round of Circle = 25.128

Recommended