1. Trang chủ
  2. » Công Nghệ Thông Tin

Các cấu trúc điều khiển (phần 1) potx

43 375 1
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Các cấu trúc điều khiển (phần 1)
Tác giả Lê Viết Mẫn
Trường học Trường Đại học Công Nghệ Thông Tin - University of Information Technology
Chuyên ngành Lập trình
Thể loại Bài giảng
Năm xuất bản 2012
Thành phố Hà Nội
Định dạng
Số trang 43
Dung lượng 900,01 KB

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

Nội dung

.NET Base Class Library• Để nghiên cứu về các lớp trong Base Class Library cung cấp cái gì, lớp nó nằm ở assembly tập tin .dll nào nào, cách sử dụng..... Các thành phần của c.t... Các t

Trang 1

v 1.0 - 10/2012

Các cấu trúc điều khiển

(phần 1)

Trang 3

Giải bài toán trên máy tính

1 Xác định bài toán

2 Thiết kế thuật toán

3 Phân tích thuật toán

4 Cài đặt thuật toán (Lập trình)

5 Kiểm tra / Bắt lỗi

6 [ Sửa lỗi ]

Trang 4

Nội dung

1 Ôn tập Chủ đề Cơ bản Ngôn ngữ lập trình C#

2 Biểu thức

3 Câu lệnh điều kiện if

4 Câu lệnh lựa chọn switch

5 Kiểu dữ liệu Enum

Trang 5

Cơ bản ngôn ngữ lập trình C#

Trang 6

Lớp & đối tượng trong C#

Định nghĩa lớp Sử dụng từ khoá class

Định nghĩa một kiểu dữ liệu mới Tạo một đối tượng

Có hai loại hàm với hai cách triệu gọi khác nhau :

• Hàm không tĩnh - Gọi từ đối tượng

• Hàm tĩnh (từ khoá static ) - Gọi từ lớp

Bitmap bm = new Bitmap (20, 20);

Bitmap bm = new Bitmap (20, 20);

bm.Save( "bitmap.png" );

Console Write( "Please enter a number :" );

Trang 7

.NET Base Class Library

• Để nghiên cứu về các lớp trong Base Class Library cung cấp

cái gì, lớp nó nằm ở assembly (tập tin dll nào) nào, cách sử dụng

• Sử dụng Object Browser

• MSDN - http://msdn.microsoft.com/en-us/library/gg145045%28v=vs.100%29.aspx

Trang 8

Các thành phần của c.t C#

• Các khai báo using

• Các khai báo namespace

• Các khai báo class

class Program {

static void Main( string [] args) {

double n;

// nhap mot so vao tu ban phim

Console Write( "Please enter a number:" );

n = double Parse( Console ReadLine());

// in ra binh phuong cua so do

Console WriteLine( "The square of {0} is {1}" , n, Square square(n)); Console ReadKey();

} } }

Program.cs

Trang 9

Các thành phần của c.t C#

• Các khai báo namespace

• Các khai báo class

class Program {

static void Main(string[] args) {

double n;

// nhap mot so vao tu ban phim

Console Write( "Please enter a number:" );

n = double.Parse( Console ReadLine() );

// in ra binh phuong cua so do

Console WriteLine( "The square of {0} is {1}" , n, Square square(n)); Console ReadKey();

} } }

Program.cs

Trang 10

Các thành phần của c.t C#

• Các khai báo namespace

• Các khai báo class

class Program {

static void Main(string[] args) {

double n;

// nhap mot so vao tu ban phim

Console Write( "Please enter a number:" );

n = double.Parse( Console ReadLine() );

// in ra binh phuong cua so do

Console WriteLine( "The square of {0} is {1}" , n, Square square(n)); Console ReadKey();

} } }

Program.cs

• Cần báo cho chương trình

Visual C# Express (hoặc trình biên dịch) biết mình cần dùng assembly nào

• Trong Visual Studio , trên ngăn

Solution Explorer , nháy phải chuột lên thư mục References , nháy mục Add References

Trang 11

Các thành phần của c.t C#

• Các khai báo using

• Các khai báo class

class Program {

static void Main(string[] args) {

}

} }

Program.cs

Trong môn CSLT, toàn bộ những

gì chúng ta code đều nằm trong

phần thân của lớp Program

Không cần quan tâm đến việc tạo

lớp mới

Trang 12

Các thành phần của c.t C#

• Các khai báo using

• Các khai báo namespace

• Các khai báo class

class Program {

static void Main( string [] args) {

} } }

Program.cs

Trang 13

Các thành phần của c.t C#

• Các khai báo using

• Các khai báo namespace

• Các khai báo class

class Program {

static void Main(string[] args) {

double n;

// nhap mot so vao tu ban phim Console.Write("Please enter a number:");

n = double Parse( Console ReadLine());

// in ra binh phuong cua so do

Console WriteLine( "The square of {0} is {1}" , n, Square square(n)); Console.ReadKey();

} } }

Program.cs

Trang 14

Biến và kiểu dữ liệu

• Phải được khai báo trước khi sử dụng

• Tên của biến phải tuân theo quy tắc đặt tên

• Khi khai báo mà không gán dữ liệu thì biến sẽ nhận giá trị mặc

định của kiểu dữ liệu đó

• Kiểu dữ liệu được phân ra

Trang 15

Biến và kiểu dữ liệu

• Kiểu dữ liệu cơ bản và kiểu dữ liệu người dùng định nghĩa

• Lựa chọn kiểu dữ liệu cho biến phụ thuộc vào phạm vi dữ liệu

mà biến đó sẽ nhận

• một biến dùng để lưu điểm thi thì cần dùng kiểu float

• một biến dùng để lưu tuổi của một người thì chỉ cần dùng kiểu byte

Trang 16

Biến và kiểu dữ liệu

• Tính tương thích giữa các kiểu dữ liệu

• dùng khi gán dữ liệu kiểu này cho một biến có kiểu dữ liệu khác

• (Chuyển đổi ngầm định - implicitly) theo chiều mũi tên thì gán được

• (Chuyển đổi tường minh) ngược chiều thì phải thực hiện ép kiểu và có thể

xảy ra mất dữ liệu hoặc giá trị không mong muốn

• Chú ý

• Không thể khai báo nhiều biến cùng tên trong cùng một phạm vi

• Có thể khai báo nhiều biến cùng tên trong các phạm vi khác nhau

Trang 17

Phạm vi của biến

• Phạm vi mà biến vẫn còn có thể được sử dụng

• Thông thường, sẽ nằm trong một cặp dấu ngoặc nhọn

• Hết phạm vi này, biến và vùng dữ liệu của biến đó sẽ bị huỷ

• Đối với biến có kiểu dữ liệu tham chiếu, vùng dữ liệu trong heap sẽ bị huỷ sau một khoảng thời

gian không được sử dụng bởi Garbage Collector

Trang 18

• Khai báo hằng trong phạm vi một lớp và bên ngoài các hàm

• Hằng phải được gán giá trị khi khởi tạo

• Chú ý

• Không thể khởi gán hằng từ giá trị của một biến

• Trong khai báo hằng không thể dùng từ khoá static

const float PI = 3.14159;

const char NewLine = '\n';

const int PathWidth = 100;

const int SquarePi = Pi * Pi;

Trang 19

Các thành phần của c.t C#

• Các khai báo using

• Các khai báo namespace

• Các khai báo class

class Program {

static void Main(string[] args) {

double n;

// nhap mot so vao tu ban phim

Console Write( "Please enter a number:" );

n = double Parse( Console ReadLine());

// in ra binh phuong cua so do

Console WriteLine( "The square of {0} is {1}" , n, Square square(n)); Console ReadKey();

} } }

Program.cs

Trang 20

• Cho đến hiện tại, chúng ta dùng các chuỗi ký tự với hai hàm :

• Console.Write()

• Console.WriteLine()

Console.Write(“Nhiet do C la ” + c);

Console.Write(“Nhiet do C la ” + c.ToString());

Console.Write(“Nhiet do C cua do {1} do F la {0}”, c, f);

Trang 21

Xuất dữ liệu ra màn hình

• Có thể xuất dữ liệu cho mọi kiểu dữ liệu sử dụng hàm Write

hoặc WriteLine của lớp Console

• Cú pháp của token giữ chỗ

• n - số thứ tự của token giữ chỗ, bắt đầu từ 0

• width - độ rộng của vùng được dùng để in giá trị

• Giá trị này là dương - canh lề bên phải, là âm - canh lề bên trái

• format - ký tự định dạng cho kiểu số

Console.Write(intVal);

Console.Write(intVal.ToString());

Console.Write(“Nhiet do C la ” + c);

Console.Write(“Nhiet do C la {0}”, c);

Trang 23

Biểu thức

Trang 24

Biểu thức

• Các câu lệnh trả ra một giá trị

• Biểu thức số

• Các toán hạng là có kiểu số hoặc ký tự

Riêng với toán tử ++ và thì toán hạng phải là kiểu số hoặc kiểu liệt kê

• Kiểu của giá trị trả về là kiểu số lớn nhất trong các kiểu của các toán hạng,

nhưng ít nhất phải là int

myVariable = 57; // trả ra giá trị là 57

a = b = c = d = e = 20;

int + long => longshort + int => intshort + short => int

Trang 25

Biểu thức điều kiện (1/2)

>= lớn hơn hoặc bằng counter >= 0

<= nhỏ hơn hoặc bằng counter <= 0

&& phép AND (0 < i) && (i < 10)

|| phép OR (i <= 0) || (i >= 10)

Các toán tử quan hệ và logic

E 1 E 2 E 1 && E 2

FALSE FALSE FALSE

TRUE FALSE FALSE

E 1 E 2 E 1 || E 2

FALSE FALSE FALSE

Trang 26

• Sự kết hợp của toán tử quan hệ và toán tử logic

• Các toán tử quan hệ == và != không làm việc tốt với kiểu số

thực

• Dấu = là phép gán, dấu == là toán tử quan hệ

• Dấu && là phép AND logic, dấu & là toán tử AND trên bit

• Dấu || là phép OR logic, dấu | là toán tử OR trên bit

• Với các biểu thức phức tạp, nên sử dụng các phép kết hợp, giao

hoán, phân phối, De Morgan để biến đổi thành đơn giản hơn

Biểu thức điều kiện (2/2)

(minimumWage <= wages <= maximumWage)

(minimumWage <= wages) && (wages <= maximumWage)

Trang 27

Conditional structure

Lệnh điều kiện : if và ?

Trang 29

exit

Trang 30

stat_2 stat_3

exp_3true false

stat_4exp_1

Trang 33

• E1 và E2 là các biểu thức logic

if (E1 && E2)

• nếu E1 là false thì cả biểu thức là false và E2 sẽ không được tính

• nếu E1 là true thì cả biểu thức là true và E2 sẽ không được tính

Lượng giá toán tử logic

if (n != 0 && 100 / n > min) if (n != 0 )

if ( 100 / n > min)

Trang 34

(exp_1) ? (exp_2) : (exp_3)

• Nếu exp_1 là true , giá trị trả về sẽ là kết

quả của exp_2

• Nếu exp_1 là false , giá trị trả về sẽ là kết

quả của exp_3

• Dấu mở / đóng ngoặc là không cần thiết về

Trang 36

Ví dụ 2 - tính số ngày

Tính số ngày từ đầu năm ( dayNumber ) theo giá trị đưa

vào của month (1 12), ngày trong tháng day và năm

year

Trang 37

Selective structure

Lệnh lựa chọn : switch

Trang 38

lựa chọn dựa trên giá trị nguyên,

chuỗi, ký tự hoặc bool của một biến

hay một biểu thức

Trang 40

• Kiểu liệt kê là một tập những hằng số nguyên được đặt tên

• Một biến được khai báo kiểu liệt kê có thể nhận một giá trị bất kỳ trong tập

các giá trị của kiểu đó

• enum identifier[:base-type] {enumeration_list};

• base-type là kiểu dữ liệu của mỗi thành phần (mặc định int )

• enumeration_list sử dụng dấu phẩy để phân cách các định danh

• định danh đầu tiên được gán giá trị 0 , sau đó tăng lên một cho những định danh sau

• có thể xác định giá trị cho các định danh này

Kiểu liệt kê

enum Weekday {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday}

enum Month {January = 1, February = 2, March = 3, April = 4, May = 5, June = 6,

July = 7, August = 8, September = 9, October = 10, November = 11,

December = 12}

Weekday d;

Month m; d = Month.Tuesday;if (Weekday.February < m)

enum Temperatures: byte {WickedCold = 0, FreezingPoint = 32, LightJacketWeather = 60, SwimmingWeather = 72, BoilingPoint = 100}

Trang 41

Ví dụ

enum Month {January, February, March, April, May, June, July,

August, September, October, November, December};

Month m = Month February;

" case November: numberOfDays = 30; break ;

" default : numberOfDays = 31; break ;

}

Trang 42

Ví dụ - kích cỡ áo tắm

Viết chương trình tính kích cỡ áo tắm phụ nữ dựa trên

chiều cao (hieght) và cân nặng (weight) sử dụng công

Trang 43

Cảm ơn sự chú ý

Câu hỏi ?

Ngày đăng: 01/04/2014, 00:21

TỪ KHÓA LIÊN QUAN

w