Tải bản đầy đủ (.pdf) (43 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (900.01 KB, 43 trang )

Lê Viết Mẫn -
Các cấu trúc điều khiển 1
v 1.0 - 10/2012
Các cấu trúc điều khiển
(phần 1)
1
Monday, October 22, 12
Lê Viết Mẫn -
Cơ bản NNLT C#
chúng ta đã học
2
1. Lập trình là gì ?
2. C# và .NET
3. Thiết kế thuật toán
4. Những thành phần cơ bản của C#
Monday, October 22, 12
Lê Viết Mẫn -
Cơ bản NNLT C#
Giải bài toán trên máy tính
3
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 ]
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
Nội dung
4


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
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
Cơ bản
ngôn ngữ lập trình C#
5
Monday, October 22, 12
Lê Viết Mẫn -
Cơ bản NNLT C#
Lớp & đối tượng trong C#
6
Đị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ủa một lớp
Khai báo một biến có kiểu dữ liệu nào đó và ghi dữ
liệu vào biến đó
Sử dụng từ khoá new
Đặc tính
Các biến thành phần (gọi tắt là biến)
Thao tác
Phương thức / hàm
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 :");
Monday, October 22, 12
Lê Viết Mẫn -
Cơ bản NNLT C#
.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 - />7
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
Các thành phần của c.t. C#
8

Các khai báo using

Các khai báo namespace

Các khai báo class


Các khai báo hàm và hàm
Main

Khai báo biến, sử dụng biến

Lời gọi hàm
using System;
namespace Square
{
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
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
Các thành phần của c.t. C#

9

Các khai báo using

Các khai báo namespace

Các khai báo class

Các khai báo hàm và hàm
Main

Khai báo biến, sử dụng biến

Lời gọi hàm
using System;
namespace Square
{
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
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
Các thành phần của c.t. C#
10

Các khai báo using

Các khai báo namespace

Các khai báo class

Các khai báo hàm và hàm
Main

Khai báo biến, sử dụng biến

Lời gọi hàm
using System;
namespace Square
{
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
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
Các thành phần của c.t. C#
11

Các khai báo using

Các khai báo namespace


Các khai báo class

Các khai báo hàm và hàm
Main

Khai báo biến, sử dụng biến

Lời gọi hàm
using System;
namespace Square
{
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
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
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
Các thành phần của c.t. C#
12

Các khai báo using

Các khai báo namespace

Các khai báo class

Các khai báo hàm và hàm
Main

Khai báo biến, sử dụng biến

Lời gọi hàm
using System;
namespace Square
{
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
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
Các thành phần của c.t. C#
13

Các khai báo using

Các khai báo namespace

Các khai báo class

Các khai báo hàm và hàm
Main

Khai báo biến, sử dụng biến

Lời gọi hàm
using System;
namespace Square
{

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
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
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
14

int dollars;
int money = 217;
double x, pi = 3.14159;
char begin = ‘A’, end = ‘Z’;
0, .0, false, ‘\0’, null
i 17
j 17
s
s1 0x0a10
0x0a10
Hello
stack heapstack
Kiểu trị Kiểu tham chiếu
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
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

Cách xác định kiểu số
15
float C, F = 68;

C = (5 / 9) * (F - 32);
C = (F - 32) * (5 / 9);
C = (F - 32) * 5 / 9;
C = (F - 32) * (5f / 9);
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
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
16
short x = 5;
int y = x;
int i = (int)3.14159;
int i = (int)(3.14159 + 2.7);
uint i = (uint)75;
double x = (double)1f/3;

long i = 3000000000;
int j = (int)i; // -1294967296
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
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
17
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
Hằng

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

18
const float PI = 3.14159;
const char NewLine = '\n';
const int PathWidth = 100;
const int SquarePi = Pi * Pi;
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
Các thành phần của c.t. C#
19

Các khai báo using

Các khai báo namespace

Các khai báo class

Các khai báo hàm và hàm
Main

Khai báo biến, sử dụng biến

Lời gọi hàm
using System;
namespace Square
{
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
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
System.String

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()
20
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);
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
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ố

precision - số chữ số phần thập phân hoặc số chữ số của số
21
Console.Write(intVal);
Console.Write(intVal.ToString());
Console.Write(“Nhiet do C la ” + c);
Console.Write(“Nhiet do C la {0}”, c);
{n[,width][:format[precision]]}
{0,10:f2}
{1,-5}
{2:d}
{3:x}
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
Ký tự định dạng cho số
22

d, D
Định dạng số thập phân (số nguyên với các số 0 được điền ở
đầu). precision = số chữ số
-xxxxx
f, F
Định dạng số dấu chấm động cố định (số thực)
precision = số chữ số phần thập phân (mặc định = 2)
-xxxxx.xx
n, N
Định dạng số cơ bản (dấu phẩy để phân cách phần ngàn).
precision = số chữ số phần thập phân (mặc định = 2)
-xx,xxx.xx
e, E
Định dạng số mũ khoa học
precision = số chữ số phần thập phân
-x.xxxE+xxx
c, C
Định dạng tiền tệ
precision = số chữ số phần thập phân
$xx,xxx.xx
x, X
Định dạng số thập lục phân
precision = số chữ số
xxx
Xem thêm trang 2-79, sách Lập trình Visual C# thế nào ? (Dương Quang Thiện)
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
Biểu thức
23

Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
Biểu thức
24

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 => long
short + int => int
short + short => int
Monday, October 22, 12
Lê Viết Mẫn -
Tên bài giảng
25
Biểu thức điều kiện (1/2)
==
so sánh bằng
counter == 0
!=

so sánh khác
counter != 0
>
lớn hơn
counter > 0
<
nhỏ hơn
counter < 0
>=
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)
!
phép NOT
!done
Các toán tử quan hệ và logic
E
1
E
2
E
1

&& E
2
FALSE
FALSE
FALSE
FALSE
TRUE
FALSE
TRUE
FALSE
FALSE
TRUE
TRUE
TRUE
E
1
E
2
E
1
|| E
2
FALSE
FALSE
FALSE
FALSE
TRUE
TRUE
TRUE
FALSE

TRUE
TRUE
TRUE
TRUE
E
!E
FALSE
TRUE
TRUE
FALSE
Kết quả trả về có kiểu bool
Monday, October 22, 12

×