1. Trang chủ
  2. » Giáo án - Bài giảng

Lập trình C# từ cơ bản đến nâng cao phần 1

20 522 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 1,54 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

PDF giáo trình lập trình C# từ cơ bản đến nâng cao của Phạm Công Ngô Đầu thế kỷ XXI, Microsoít đite ra một bộ Visual Studio ,NET (VS 7.0),Có thể nói từ vs 2001 đến vs 2003 đã có một bước cải tiến đảng kể vểnội dung, Bộ Visual Studio 6.0 (với các ngôn ngữ Visual Basic 6.0, VisualC++ 6.0, ASP 3.0,...)

Trang 1

ĐẾN

CD

NHÀ XUẤT BÀN GtÁO DỤC VIỆT NAM

Trang 2

PHẠM CỒNG NGÔ

từ cơ bản đến nâng cao

(T ái bản lẩn th ứ hai)

NHÀ X U Ấ T BẢN G IÁO DỤC VIỆT NAM

Trang 3

Công ly cổ phẩn Sắch Đại học - Dạy nghể - Nhà xuất bản Giáo dục Việt Nam gỉữ quyển công bế tác phẩm.

Trang 4

L ờ i q iớ i rh iệ u

Đầu thế kỷ XXI, Microsoít đite ra một bộ Visual Studio ,NET (VS 7.0),

Có thể nói từ v s 2001 đến v s 2 0 0 3 đã có một bước cải tiến đảng kể vể

nội dung, Bộ Visual Studio 6.0 (với các ngôn ngữ Visual Basic 6.0, Visual C++ 6.0, ASP 3.0, ) đâ đem lại cho lập trình viên nhiều thuận tiện và lợi ích Tuy nhiên khi bộ Visual Studio NET đưỢc công bố thi mọi ngư<M đã chưyến sang học tập, nghiên củu phiên bản mcrt này khá rầm rộ Bộ Visual Studio 2003 đã chiếm tĩnh vi trí đáng kể trong mấy năm gán đáy Từ đầu nãm 2006, bộ Visua! Studio 2005 (VS 8.0) đã xuất hiện Việt Nam và mọi ngưíỉí đã thử nghiệm sử dựng bộ NET 2005 này Tính từ 2001 đếh

2006 ba bộ NET: 2001; 2003; 2005 íần lượt ra đcổ Độĩ ngũ lập trinh viên không còn lạ với chúng và hầu hết các sinh \àên ngành Công nghệ thông tin, ngành Điện, Điện tử, Cơ khí, Kinh tế đã bắt đầu học tập, nghiên cứu sử dụng chúng Các trường và trung tâm hợp tác quốc tế như

"Hà Nội Genetic - Singapore", các tm ng tâm của Austraiia, Pháp, Mỹ, Ân

Độ ở Hà Nội ửùinh phố Hổ Chí Minh hầu như giảng dạy cho sinh viên vcfi

tỷ lệ phần trẫm rất cao về bộ Visual Studio NET

D ể đáp úhg yêu cầu tìm hiểu, học tập của sinh viên các ngành kỹ thuật, kinh tế nói chung và cúa các sinh viên ngành Công nghệ thòng tin nói riêng và đặc biệt cho nhũtig ai có nhu cầu tự học tập vào kinh nghiệm giảng dạy từ năm 2002 đến nay về bộ NET, tác giả biên soạn tài liệu này nhằm đáp ứhg phẩn nào cho các đối tượng trên

Nêu các bạn đã có kiến thức về lập trinh C /C + + hoặc Javá thi việc học ngón ngữ c*f (C sharp) rất thuận lợi Tuy nhiên đây là một cuốn sách dành cho sinh viên và các bạn tự học, do đó tài liệu đã cố gắng trinh bày thật dễ hiểu và ngắn gọn nhất

Lđp tr ìn h c # t ừ c ơ b â n đ ế n n â n g c a o bao gồm các lệnh chu

trinh, điểu kiện, lựa chọn, về phương thức hay "hàm", lớp, ửiừỉỉ kế, nạp chồng hàm và toán tử trùng tên uỷ nhiệm, quản lý sự kiện, đa luồng (multithreading) v.v

Vể Visual Studio NET đả có khá nhiều sách nước ngoài cũng như trong nước Tuy nhiên để có một tài liệu tự học tham khảo nhanh,

Trang 5

ngắn gọn và dể hiểu tác giả đâ cố gắng dựa vào kinh nghiệm giảng dạy cũng như các bài giảng đã được soạn và chinh lý để cuốn sách được hoàn thiện hơn.

Cuốn sách này đưỢc xuất bản lần đầu cho nẻn không thể tránh khỏi khiếm khuyểt Tác giả rất mong các bạn đồng nghiệp gần xa các sinh viên sử dụng bộ sách này đóng góp ý kiến để lần tái bản sau được hoàn chinh hơn Cuối cùng tác giả cũng có một lời mách nhỏ là tắt cả các chương trình trong sách đều đã chạy tốt trêii máy PC có cài đạt bộ Visual Studio 2 0 0 3 và các bạn hãy cố gắng tự mỉnh đánh vào máy đề kiểm tra kết quả đây cũng là một phương pháp tự học rất hiệu quả mà trong bao năm qua tác giả và đổng nghiệp đã sử dụng.

Mọi ý kiến góp ý và thư từ xin gửí về Công ty CP Sách ĐH - DN, 25

Hàn Thuyên, Hà Nội, hoặc email: pcongngo@yahoo.com vn

TÁC GỈẢ

Hà Nội, 15 - 8 - 2 0 0 7

Trang 6

C hư ơN q 1 C ác nét c ơ bẢN CỦA c #

1.1 GIỚI THiỆU c #

c** (được phát âm là "C sharp") là một ngôn ngữ lập trinh hướng đối tưcfrig hiện đại tin cậy và được sử dụng nhiểu cho Internet, c** được kế thùầ từ các ngôn ngữ lập trình hưé^g đối tưcrtig quen thuộc khác như CTT Java

được xây dựtìg từ mộí nhóm các kỹ sư phần mềm của Microsoít

do hai ngưâri lãnh đạo là Anders Hejlsberg và Scott Wiltamuth.

Các chưcffig trình c** chủ yếu được viết trong môi tn/cfríg "console"

và môi trường "windows form" Để giới thiệu một chương trinh đầu tiên

làm ví dụ, các bạn phải cài đạt bộ Visual Studio ,NET (2003) trong Windows 2 0 0 0 hoặc Windows XP

- Nhấn Start -> Program trong

WừKÌows Chọn Mlcrosoít Studio WừKÌows NET 2003

- Từ menu File -> New —> Project

Nevv P ro je c t

Iw npl8«s

J v i s m I FTQỉ«ets

• - J Vtsu«l

_ J s«tu(ỉ onct 0«pỉộ>iTwnt Pro}«ce

• _ J o th tr Pro jKt$

^ ỉtủdỉO SolưOon^

AâF f4Fr MOŨri«

w « b A p p l( C « & o n *

- proỊect for aetô n g e ccmmand*ỉỉn« app^cAGort

IImií;

LocaOon:

<ỉppỉỉca6õn'

Conc^

iiCr»rv

Conioi«Applicalỉon2

'11 B

Contoh

AppỊiCMion

Nev> ẵữkỉbon I O>nsoỉe«%ppỉicoocti2 w Creat9 dlr«ctory fúr Sứlubdn

y/dl b« cre9(<đ d( C : '.9effCữcO6<,Conso<«Applic«DOA2\COQ«DỉeAp0UKWt2.

Hình 1.1

Trang 7

Trong hình 1.1, phía trái Project Types chọn Visual c*f Project ở

phía phải Templates, chọn Console Application,

- Tại Textbox có nhãn Name; p rg l

- Tại Textbox có nhãn Location: C :\tu hoc csharp

- Nhấn nút OK.

Sau đó nhấn đồng thcrt 2 phím Ctrl + A đ ể lự& chọn toàn bộ rồi bấm phím Delete

Cuối cùng bạn gõ vào văn bản chương trình sau:

world !”

using System;

public class progl {

public static void Main () I

Console WriteLine (" Hello Víorld !” );

Console.ReadLineO;

) }

Đ ể chạy chương trình nhấn phím F5 và ta có dòng chữ hiển thị trên

màn hình:

S n ế t quá:

Hello VVortd!

1.2 BĨẾN, BIỂU THỨC

Sử dtưig 26 chữ cái tiếng Anh thường và hoa:

~ a b, c d e, f, g, h, i, j, k, 1, m n, o p, q r, s, í u, V, w, X, y, z

- A B, c, D, w, X, Y z.

- 10 chữ số 0, 1, 2 3, 4 5 6 7, 8, 9.

- Dấu gạch dcfới _ (không phải dấu trừí

Trang 8

Tên biến, biểu thức hoặc phương thửt (hay hàm) chỉ được sử dụng

6 3 kí tự trên mới hợp lệ, Ví dụ: Hanoi; HANOI; _Hanoi; Ha_noi

^!5v.Cỉiú ý;

+ C hử số 0.1 9 không được phép đặt vị trí đầu tiên của tên biến + Tên biến không đưỢc phép đặt trùng với các từ khoá (keyword)

4- Tên biến phân biệí nhau bởi chữ thường và chữ hoa (điểu này khác hoàn toàn vtì ngôn ngữ Pascal)

+ Dấu gạch dưétì có thể đặt vi tri đầu hoặc giữa tên biến đều hợp lệ

1.3 T ừ K H O Á (KEYVVORD)

Bàng 1.1 Từ khoã cùa ngôn ngữ c#

Trang 9

1.4 KIÊU (TYPE)

Bàng 1.2 Mô tà câ c kiểu dữ liệu xây dựng sân

Kiểu c # S6

byte

Kiểu

•NET

Mô tỏ

bool 1 Booleon Già tfỊ logic true/ false

short 2 Intló SỐ nguyên c ố ctóu giã trị: -32768 -r 32767 ushort ' 2 Uintìó SỐ nguyên không ddu: 0 -ỉ- 65.535

2.14^483.647 uint 4 Uint32 SỐ nguyên không dốu: 0 -i- 4.294,967.295 íloat 4 Singíe Kiểu dốu châm động giá ừ xấp xỉ tù

3.4E-38 đến 3,4E+38rvoì 7 chữ sổ có nghĩa

đouble 8 Double Kiểu ddu chốm động c ỏ độ chính xỏc

gâ’p đôi, giá ừ xốp xỉ to 1.7E-308 đến l,7E+308,với IS lỏ c h ữ s ố c ố n g h ía

d e clm a l 8 Decimal C ố độ chính xốc đến 28 con số và giở fr|

thi*ip phân, đưoc dùng trong tính toán tài chính, kiểu này đỏi hỏi phài c ó hộu tố "m" hay "M" theo sau già trị.

-9,223.370.036,054,775,808 -í- 9.223.372.036.854.775.807

ulong 8 Uint64 SỐ nguyèn không đđu: 0 -f Oxffffmfffffffff

1.5 KHAI BÁO BĨẾN pEC LA R A TIO N )

kiểu b iâ i ỉ , biến 2 = giá trị;

int a , b = 2;

double X = 1 4 5 6 3 7 8 , y, &

string s = ''Hanoi”;

Trang 10

iong m = 356L:

bytc vb = 67;

sbyte sb = -2 0 5 :

Iishort u s l = 7653;

ulong u!l = 568u!;

íloa( f l = 1.367P:

tioubledl = 1.25439:

boo! b l = true;

char ch = ‘M';

decima! vdl = 1.28659M;

string s l » "Hd noi’’;

string s2 » 'Vieí nam";

btring s3 = s l + s2:

" ^ C h ú ỷ:

- Vcrt kiếu íioat sau giá trị gán cho biến luôn phải ghi thêm chữ F (viết hoa) Ví dụ; íloat f l = 1.2589F;

- Các kiểu biến khác không nhất thiết phải ghi thêm Có thể bỏ chữ

L vẫn hỢp !ệ Ví dụ: long 11 = 125987654L

nhân

+ +-Ì, Í+ + lã n g gió trị i lên 1 đon vị

—i; i - giòm giã trị i xuống 1 đon VỊ

dụ;

int a = 16 b = 3;

int q l * a + b; kết quả q l = 19:

9

2.LẬPT1ÚNH NC>

Trang 11

int q2 = a / b; kết quả q2 ® 5;

int q3 = a % b; kết quả q3 = 1;

double q4 = (doubie) a/b; kết quả q4 = 3 2 kiểu viết iệnh gán ngắn gọn:

i + = 5; tương đuơng i = i + 5;

= 4; tuơng đifc?ng i = i - 4;

* » 6; tuơng đương i = i • 6;

i / = 2; tương đưcMg i = i / 2;

1.7 T O Á N TỬ Q U A N HỆ VÀ LOGIC

>« íớn hơn hoộc bàng

bồng không bàng

&& vò

Ví dụ:

if (<a > b) ỈÍ& (a > c)) lênh 1;

if (a !* b) lệnh 2;

1.8 TO Á N TỬ XỬ LÝ BIT

& và bit

t h o ộ c bỉt

1 phù đ nh bií

» đ ch phải (right shift)

« d c h trói (ieftshift)

A xor b il

10

2.L ầ fT rtlM N C £

Trang 12

Vĩ dụ 1.2.

using System;

class xulybit

s t â t i c VDíd Main(string (] a r g s )

int a = Ỉ26, b = 86;

int ql, q2, q3, q4, q5;

ql = a & b

q2 = a I b;

q3 - a ^ b;

q4 = a » 2;

q5 = b « 3;

C onsoỉe,W riteLine r a = "+a+” ; b = *'+b);

Console WriteLine (" ql = ' ’+ql+*'; q2 = *’+q2);

Console VíriteLine (*'q3 == ”+q3+"; q4 = ” +q4);

Consoie.WriteLineq5 * *'+q5);

Ccnsoie,ReadLine();

}

P K ế ỉ quả:

q1 = 86; q2 = 126;

q3 = 40: q4 = 31;

q5 = 688,

Để hiểu được kết quả này ta nhớ lại bảng các phép toán logic VỞI bit:

Trang 13

+ Đổi cdc số d, b từ hệ 10 về hệ 16

a = 126 -> a = {7E)i^

b = 86 -> b = (56)k;

+ Đổi a từ hệ 16 về hệ 2

a = (7 E ),^-> 0 1 1 1 1 1 1 0 q4 = a » 2 0 0 0 1 1 1 1 1 q4 = (lF )„ = (1 6 + 15ho= (31),0 + Đổi b từ hệ 16 về h ệ 2

b = ( 5 6 ) , - » 0 1 0 1 0 1 1 0 q5 = b « 3; 0 1 0 1 0 1 1 0 0 0 0

q5 = (2B0)„ = (2.256 + 11.16)io = (688}jo

1.9 C H Ú THÍCH

Cách chú thích các đểu dòng lệnh và đoạn iệnh chưcrtig trình trong cũng giống như trong C++ hay Java

- Chú thích cho một dòng: / / dòng được chú thích đến hết dòng

- Chú thích cho nhiều dòng;

/* dòng 1; dòng 2;

V

1.10 K ĩỂ u LIỆT KÊ (ENUM )

Cú pháp kiểu liệt kê phải đặt từ khoá enum lẻn đầu:

enurn E 1 { a, b, c = 15, d, e} ; Trong đó E1 !à tên biến có kiểu enum fliệt kê):

bằng số a lấy giá trị n g ạ;ên bằng 0

b lấy giá trị 1

c lấy giá trị 15

Trang 14

d lấy giá trị 16

e iấy giá trị 17

' S v i d ụ 1.3.

using System;

class Enumeration

(

enum El( a, b, c « 15, d, e} ;

static void MainO

I

Console.WriteLine (”Gia tri b » ’’+ {int)E1 b);

Console.WriteLine (*’Gia tri d » *'+ {int)El-d);

Console.ReadLine ();

}

1

^ ^ K ế t q u ở

Giá trị b = 1

Giá trị d = 16

1.11 KIÊU CẤU TRÚC - STRUCT

Kiểu struct giống như trong ngôn ngữ c Stmct điíỢc định nghĩa với tất cả các biến có kiểu public đặt trên class và dưới using System

Trong hàm Main 0 ta khai báo các biến có kiểu struct và gán trựt tiếp dữ liệu cho các biến struct qua toán tử chấm {dot operator)

s t r u G t S t l

public sfr\ng ten;

Public int maso;

}

+ Khai báo biến struct trong hàm Mdin 0

Stl p;

+ Truy cập vào các biến trong struct

p.ten = "Hoa";

p.maso = 555;

13

Trang 15

s Ví dụ 1.4.

using System;

public struct stl

{

public string ten;

public int mâso;

)

class ViduStruct

{

static '/oid MainO

{

stl p; / / k h ạ í bao bien p co kieu stl

p ten = Hoa" ;

t

p.maso » 555;

Console.WriteLine (" Ten: ’ ’+p.ten+"\nMa so: "+p.maso>;

Console.ReadLine ()

}

S ^ K ế t quả:

Ten: Hoa

Ma so: 555

1.12 KIỂU M Ả N G (ARRAY)

+ Mảng m ột chiểu:

int [ ] a - new int [ 10] ;

+ Mảng hai chiều:

double t ,) mat * new double [ 3,3) ;

Mục này ta chỉ nêu kiểu khai báo mảng Đ ể hiểu về mảng các bạn xem chương 5.

14

Trang 16

ChươNq 2 Xuất NhẬp d ữ liỆu

2.1 XUẤT D ử LỈỆU RA MÀN H ÌN H

2.1.1 Xuất dữ iiệu không định dạn g

int a = 15;

double b » 123,45789;

char ch * ’M*;

string str * "Ha Noi” /

Console Hriteline (*‘a = b * ” +b);

Console.Writeline("ch » str = ”+str);

2.1.2 Xuất dữ liệu c ó định d ạ n g với số dấu phày động

float fl = 123.7658437;

double dl = -?25.45<568;

Console.Writeliner£l ={0:0.000); dl = { 1 rO.OOOO} " , fl,dĩ);

K ế t quá:

f1 = 123.766: d1 =325.4345

2.2 N H Ậ P D Ử LIỆU TỪ BÀN PH ÍM

string s;//khai bảo chuỗi ký tự s

int n;//khâi báo biến nguyên n

s * Console.Readline0 / //các ký tự từ bần phím gán cho s

n =* int 32 Parse (s);//chuyển đổi các ký tự số về giá trị số

I

Hoặc ta c6 thể viết gộp:

int n/

n = Int32.Parse(Console.ReađLine{));

Hay: n » i nt Parse (Console.ReadLine ());

ứ n g với m ột kiểu khai báo phải có m ột lệnh tương ứhg Sau đây ta nêu iẽn bảng liệt kẻ của kiểu khai báo vcfi lệnh chuyển đổi chuỗi n h ập từ

bàn phím.

15

Trang 17

shorta a = intló.Parse (Console.ReađLineO);

ushort a a = Ulntlố.Parse (Consoie-ReadllnôO); unit a a = Ulnt32.Parse(Console,ReaơLineO); long a a = !ntó4.Parse (Consoie.ReadLineO); uiong a a = Ulnt64,ParseCConsole,ReadLineO); string s s = Console.ReađLineO;

char ch ch = Char.Parse(Console.ReađLineO):

ch = char.Parse(ConsoIe.ReadUneO):

fIoat a a » Single.ParseíConsole.ReadUneO);

a * tloat.ParseCConsoỉe.ReađUneO);

đoubte a a = Double,Parse(Console.ReadUne());

a = double.Parse(Console.ReadLíneO);

c 5 \ / í dụ 2.1.

using Systemĩ

class InOut (

static void MainO { ■

int ID; //ma so string narae; //ten float salarỵ; //luong uĩong tel; //díen thoai

Console.Write("Nhap nia 80: ")

ID = Int32.Parse(Console.ReadLine 0);

Console.Write ("Nhap ten ỉ ") narae = Console-ReadLine0;

Console.Write("Nầap luong: ");

salary “ Single.Parse(C<msole.ReadLine()); Consứle.WriterNhap so dien thoai:- ")

tel = UỊrít64.Parse(Console.ReadLine0);

Consolẹ.Write ("Ma SOĨ "+ID);

16

Trang 18

Console.Wríte{"; Ten: ”+namet;

Console.Write(” ; Luong: ”+salary);

Console.VỉriteLine {'•; So dien thoai; "+tel);

Console.ReadLine0;// doi go mot phim

Nhap ma so: 111

Nhap ten; An

Nhap luong: 2000

Nhap so dien ỉhoai: 8676432

Ma so: 111; Ten: An; Luong: 2000; So dien thoai: 8676432

Trang 19

ChươNq f , C á c lệ N h đ ỉỀ u khiỂ N

Các lệnh điều khiến được chia làm ba nhóm:

- Lệnh iặp hay lệnh chu trình

- Lệnh điều kiện

- Lệnh lựa chọn

3.1 CÁC LỆNH LẶP (LOOP)

Trong c6 bốn lệnh lặp; for; do ivhile, while, íoreach

3.1.1 Lệnh lặ p to r

for (bt khởi tao; bt điều kiên; bt thay đổi) {

lênh 1;

lệnh 2;

) Trong đó biểu thứt (bt) khởi tạo biểu thức điều kiện và biểu thức thay đổi đứttg tách nhau bởi dấu chấm phảy

Ví dụ: for (int i = 0; i < 5; i++) {}

nguyên ỉ từ 0 đến 10

using System class LoopForl {

statỉc void MaiTiO

for (int i ■ 0; i <3 10; i++) Console.writeLine ("i «= **+i+"; i*i » Console.ReadLine ();

18 &L>FTTÓNH MC.B

Trang 20

Vòng lặp for còn thực hiện vóí các biểu thút p h ú t tạp Trong ba biểu thút tách nhau bởi dấu chấm phảy thì biểu thút khởi tạo và biểu thứt thay đổi có thể chứa nhiều biểu thức con và chúng tách nhau bc^ dấu phẳy còn biểu thức điều kiện thi có các phép toán quan hệ như && (và);

!! (hoặc) tạo thành

Vi dụ 3.2. Hiển thị các giá trị i và j đồng thời,

using System;

class LoopFor2

i

static void Mâin {)

I

int i, j;

for (i = 0, j = 5; {i < 4) && (j > 2); i++, j— )

Console.WriteLine{"i = "+i+"; j = "+j);

Console.ReadLine();

H k ồ í quà:

= 0 ;j = 5

= l ; j = 4

= 2 :j = 3

Nếu thay đổi toán tử && bằng toán tử I I ta sẽ có kết quả khác một chút Các bạn hãy tự thay*đoi

Vòng lặp for còn thựd hiện vófi biểu ứìứt có kiểu íloat, double

Trong vòng íor lệnh thay đổi được viết:

for (double i = 0; i <= 2; i = i+0.1)

ở đây bước thay đổi (step) sẻ bằng 0.1

3.1.2 Vòng lộp d o whỉle

Vòng lặp d o whiie cũng có 3 biểu thứC:

- Biểu ứiức khctì tạo

19

Ngày đăng: 24/03/2016, 17:01

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w