02/21/14
BUỔI 2 :
CÁC VẤN ĐỀ CƠ
BẢN CỦA C#
02/21/14
Các thành phần
của C#
02/21/14
Danh hiệu
Là tên do NSD đặt ra để gọi tên các lớp,
hàm/phương thức, biến/thuộc tính, hằng,….
Có thể tìm hiểu thêm trong các giáo trình, taì liệu
Trước mắt có thể sử dụng 1 số qui định tương
tự như Pascal để dễ dàng trong việc viết
chương trình
Lưu ý : C/C++/C#/Java phân biệt chữ thường/hoa
02/21/14
Từ khóa
Không nhiều từ khóa
Các từ khóa đều ở dạng chữ thường
Tương tự như Pascal, các từ khóa thường là
các phát biểu điều khiển, kiểu dữ liệu,…
Ví dụ if else do while int long
try catch checked ………
02/21/14
Khai báo biến !!!
Nếu khai báo trong 1 hàm : biến
Nếu khai báo ngoài hàm nhưng nằm trong 1
lớp : không phải là biến
Cú pháp khai báo
<kiểu dữ liệu> <tên biến> ;
Thường thì nên kết hợp khai báo với khởi động
giá trị ban đầu cho biến
<kiểu dữ liệu> <tên biến>=<giá trị>;
02/21/14
Khai báo biến !!!
int k ;
int j = 1, k;
float f = 12.3f;
double d =23.777;
char c = ‘Y’;
bool b = true;
string s1, s2=“Hello”,s3=“World”;
02/21/14
Khai báo biến !!!
Trong giai đoạn đầu, luôn khai báo các biến
trong hàm Main
Có thể khai báo biến ở vị trí bất kỳ trong hàm
Phạm vi và tầm vực ảnh hưởng của biến : nằm
trong khối chứa nó
Tốt nhất : khai báo các biến ngay phần đầu hàm
Main()
02/21/14
Khai báo biến !!!
class <Tên lớp>
{
static public void Main( )
{
}
}
Khai báo biến trong đây !!
Không khai báo biến ở đây !!!!
Khai báo biến ở đây sẽ có ý nghĩa khác !!!!
02/21/14
Khai báo biến !!!
static public void Main(String[ ] s)
{ int i= 0;
……… // i
int k = 2;
………. // i và k
if ( ….) ………….{
int i = 1;
………… // i và k
int j = 2;
……… // i và k, j
}
…………. // i và k
} Tham khảo thêm trong C/C++/C#
02/21/14
Khai báo hằng !!!
Tương tự như biến : có ý nghĩa khác nhau nếu
khai báo ở các vị trí khác nhau
class <Tên lớp>
{
static public void Main( )
{
}
}
Khai báo hằng trong đây !!
Không khai báo hằng ở đây !!!!
Khai báo hằng ở đây sẽ có ý nghĩa khác !!!!
02/21/14
Khai báo hằng !!!
Cú pháp
const <kiểu dữ liệu> <tên hằng> = <giá trị>;
Ví dụ
const int THISYEAR = 2006;
const float LAISUAT = 0.0085f;
const double GIATOC = 9.81;
const char YES = ‘Y’;
const string Hello = “Hello”;
02/21/14
Các kiểu dữ liệu chuẩn
02/21/14
Các kiểu dữ liệu cần nhớ!!!
Kiểu nguyên int (tương tự như integer trong
Pascal) và lớp tương đương Int32
Kiểu thực float (tương tự như real trong Pascal)
và lớp tương đương Float
Kiểu ký tự char (tương tự như char trong
Pascal) và lớp tương đương Char
Kiểu logic bool (tương tự như boolean trong
Pascal) và lớp tương đương Boolean
Kiểu chuỗi string (tương tự như string trong
Pascal) và lớp tương đương String
02/21/14
Khai báo
Nên khai báo và khởi tạo giá trị ban đầu
int i, j=2, k = 2*j; // i???
float f=11.56 ; // lỗi!ngầm hiểu double
float g = 23.72f;
char yes=‘Y’; //dùng nháy đơn
bool male=true;
string hello=“Hello!”;//nháy kép
02/21/14
Các phép toán cơ bản
Các phép toán số học
Cộng +
Trừ -
Nhân *
Chia /
Chia lấy phần dư %
Lưu ý : Phép chia (/) 2 số nguyên sẽ “chặt” bỏ
phần dư
02/21/14
Các phép toán cơ bản
Ví dụ
int a = 17 , b= 3;
int c = a / b ; // c = 5
int d = a % b ; // d = 2
float e = (float)a / b ; // e = 5.6667
float f = a /(float)b ; // f = 5.6667
Ép kiểu (Type Casting)
float f ; int i ; ……; f=i; i= (int)f;
02/21/14
Các phép toán cơ bản
Các phép toán so sánh số học
Bằng ==
Khác nhau !=
Lớn hơn, lớn hơn hay bằng >, >=
Nhỏ hơn, nhỏ hơn hay bằng < , <=
Lưu ý
Thường hay quên và lầm lẫn giữa = và ==
02/21/14
Các phép toán cơ bản
Các phép toán trên kiểu chuỗi
Ghép chuỗi +
So sánh bằng nhau ==
So sánh khác nhau !=
Lưu ý : không thể dùng các phép so sánh >, >=,
<, <= trên 2 chuỗi
02/21/14
Các phép toán cơ bản
Các phép toán logic
Và &&
Hoặc ||
Phủ định !
02/21/14
Các phép toán cơ bản
Một số phép toán khác (đặc biệt!!!)
Tự tăng ++
Tự giảm - -
Ví dụ
Thay vì ghi i = i+1; thì ghi i++;
Thay vì ghi j = j - 1; thì ghi j ;
Nếu không quen thuộc thì hạn chế sử dụng!!!
02/21/14
Các phép toán cơ bản
Lưu ý thêm
++ <biến> : Tăng thêm 1, sau đó sử dụng giá
trị
<biến> ++ : Sử dụng giá trị, sau đó tăng thêm
1
Ví dụ
int a=0, b=5; a = b++; // a=5 và b=6
int a=0, b=5; a=++b ; // a=6 va b=6
Tương tự cho
02/21/14
Các phép toán cơ bản
Các phép toán rút gọn !!!!
Thay vì a = a + b ; thì viết a += b;
Thay vì a = a - b ; thì viết a -= b;
Thay vì a = a * b ; thì viết a *= b;
Thay vì a = a / b ; thì viết a /= b;
Thay vì a = a % b ; thì viết a %= b;
Nếu không quen thuộc thì hạn chế sử dụng!!!
02/21/14
Các phép toán cơ bản
Phép toán điều kiện: hiệu quả, tiện lợi, tương tự
hàm IF(Excel), IIF(Fox)
<điều kiện>?<kết quả Đ>:<kết quả SAI>;
Ví dụ
a = b<=5&&c>=10? b + 1 : c-2 ;
String s1= s=="abc"?"zyz":"123";
Console.WriteLine(“Kq={0}”,a>b?a:b);
z=a>b?(a>c?a:c):(b>c?b:c);
Nên sử dụng tối đa !!!!
02/21/14
Một số phương thức thường dùng
Trong thời gian đầu, luôn khai báo
using System;
ở dòng đầu tiên của chương trình (có thể hình
dung tương tự như uses crt; trong Pascal !!!)
Các phương thức thường dùng và cần sử dụng
thành thạo :
02/21/14
Một số phương thức thường dùng
In dữ liệu ra màn hình : dùng Console.Write và
Console.WriteLine
Có khoảng 18 cách sử dụng khác nhau!!
Console.Write( chuỗi );
Console.Write(chuỗi định dạng , dstham số);
Ví dụ
int i=5; String s=“abcd”;
Console.WriteLine(i);
Console.Write( s + s + i );
Console.Write( “{0} {1} {2}”,s,s,i);