Ả BU I 2 :Ổ Ề Ơ Ấ CÁC V N Đ C Ủ B N C A C#
01/14/16
Các thành phần của C#
01/14/16
Có thể tìm hiểu thêm trong các giáo
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,….
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
01/14/16
ừ 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 ………...
01/14/16
ế 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
;
Thường thì nên kết hợp khai báo với khởi động giá trị ban đầu cho biến
=;
01/14/16
ế 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”;
01/14/16
Trong giai đoạn đầu, luôn khai báo
ế Khai báo bi n !!!
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()
01/14/16
Khai báo bi n !!!
ế Không khai báo biến ở đây !!!!
class
Khai báo biến ở đây sẽ có ý nghĩa khác !!!!
{ static public void Main( )
{
Khai báo biến trong đây !!
}
}
01/14/16
ế 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#
01/14/16
ằ 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
Không khai báo hằng ở đây !!!!
class
{
Khai báo hằng ở đây sẽ có ý nghĩa khác !!!!
static public void Main( )
{
Khai báo hằng trong đây !!
}
}
01/14/16
ằ
Khai báo h ng !!! Cú pháp
const = ;
Ví dụ
const int THISYEAR = 2006; const float LAISUAT = 0.0085f; const double GIATOC = 9.81; const char YES = ‘Y’; const string Hello = “Hello”;
01/14/16
01/14/16
ẩ ể ữ ệ Các ki u d li u chu n
ể ữ ệ ầ
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
01/14/16
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
01/14/16
ơ ả 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ư
01/14/16
ơ ả
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;
01/14/16
Các phép toán so sánh số học
ơ ả Các phép toán c b n
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à ==
01/14/16
Các phép toán trên kiểu chuỗi
ơ ả Các phép toán c b n
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
01/14/16
Các phép toán logic
ơ ả Các phép toán c b n
Và Hoặc Phủ định
&& || !
01/14/16
Một số phép toán khác (đặc biệt!!!)
ơ ả Các phép toán c b n
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!!!
01/14/16
ơ ả
Các phép toán c b n Lưu ý thêm
++ : Tăng thêm 1, sau đó sử
dụng giá trị
++ : 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 --
01/14/16
Các phép toán rút gọn !!!!
ơ ả Các phép toán c b 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!!!
01/14/16
ơ ả
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>?
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 !!!!
01/14/16
ườ
ộ ố ươ
ng
ứ ng th c th
M t s ph 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 :
01/14/16
ộ ố ươ
ườ
ứ ng th c th
ng
M t s ph 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);
01/14/16
ộ ố ươ
ườ
ứ ng th c th
ng M t s ph dùngNhập dữ liệu từ bàn phím: dùng
Console.ReadLine() Lưu ý là kết quả nhận được là 1 chuỗi, do vậy cần phải chuyển đổi nếu cần thiết Ví dụ String hoten=“”; wnamsinh=“”; hoten = Console.ReadLine(); wnamsinh=Console.ReadLine(); //sau đó chuyển sang số nguyên !!!
01/14/16
ộ ố ươ
ứ ng th c th
ng
ườ M t s ph dùngMột số phương thức toán học
Math.Abs(biểu thức số) Math.Sqrt(biểu thức số) Math.Ceiling(biểu thức số) Math.Floor(biểu thức số) Math.Max(biểu thức số) Math.Min(biểu thức số) Math.Round(biểu thức số) hằng số Math.PI và Math.E
01/14/16
ộ ố ươ
ườ
ứ ng th c th
ng
M t s ph dùng Ví dụ
float R=12.6; float S = R*R*Math.PI;
int a,b,c,d; //Nhập 4 số a,b,c và d Console.Write(Math.Max(a,Math.Max (b,Math.Max(c,d))));
01/14/16
ộ ố ươ
ườ
ứ ng th c th
ng M t s ph dùngChuyển đổi kiểu chuỗi sang các
kiểu dữ liệu khác Từ chuỗi sang số thực (dạng float)
Single.Parse(chuỗi)
Ví dụ
string s; s="123.45"; float f = Single.Parse( s);
Từ chuỗi sang số thực (dạng double) Ví dụ string s="3.45";
double d = Double.Parse(s);
01/14/16
ộ ố ươ
ườ
ứ ng th c th
ng
M t s ph dùng
Từ chuỗi sang số nguyên
String s="45"; short i = Int16.Parse(s); int j = Int32.Parse(s); long k = Int64.Parse(s);
String wns = “”; Console.Write(“Nhap nam sinh : “); wns=Console.ReadLine(); int ns = Int32.Parse(wns); // hay int ns=Int32.Parse(Console.ReadLine());
01/14/16
ộ ố ươ
ườ
ứ ng th c th
ng M t s ph dùngChuyển đổi kiểu dữ liệu số sang
kiểu chuỗi
Nguyên tắc
.ToString( ) ;
Ví dụ int i = 231 ; float j = 34.56f ; //ngầm định là double !!! String kq; kq = " i= "+ i.ToString() + " va j = "+ j.ToString();
Console.WriteLine(kq);
01/14/16
ộ ố ươ
ườ
ứ ng th c th
ng
M t s ph dùng
int i = 231 ; float j = 34.56f ; //ngầm định là double !!! Console.WriteLine(" i= “ + i + " va j = “ + j); Chuyển đổi tương tự cho các kiểu bool
và char bool b= true; char yes=‘Y’; string s1 = b.ToString( ) ; // s1 = “True” string s2 = yes.ToString( ); // s2 = “Y”; Console.Write( b + yes ); //lỗi !!! Console.Write (b + “” + yes);
01/14/16
ộ ố ươ
ườ
ứ ng th c th
ng M t s ph dùngMột số phương thức của kiểu chuỗi
.ToLower( );
.ToUpper( );
.Substring(vị trí, số ký tự);
.Length ; //không có ( và )
[ vị trí ]
Ví dụ
string S = “hello woRld”;
string u = S.ToUpper();
char c = S[1]; // c = ‘e’
int l = S.Substring(0,4).Length ;
//thay vì ghi (S.Substring(0,4)).Length
01/14/16
ả ử ụ
Thao kh o và s d ng thêmLớp System.Int32, System.Single,
System.String, System.Character, System.Boolean
01/14/16
ề
ể Đi u khi n màn hình Lớp System.Console Có 1 số thuộc tính sau
Console.ForegroundColor= ;
Console.BackgroundColor=;
Console.CursorVisible = ;
Console.CursorSize=;
Console.CapsLock =;
Console.NumberLock =;
Console.Title = ;
Màu :
ConsoleColor.
01/14/16
01/14/16
ề ể Đi u khi n màn hình
ề ể
Đi u khi n màn hình Các phương thức
Console.Clear ( ); Console.Beep ( ); Console.Beep (tần số, thời gian-ms) ; Console.SetCursorPosition (cột, hàng); Console.SetWindowSize( rộng, cao ); Console.ResetColor ( ); Console.ReadKey( ) ;
Lưu ý Console.ReadKey( ) trả về 1 giá trị kiểu
ConsoleKeyInfo
Trừ Console.ReadKey( ), tất cả các phương thức
trên có dạng “thủ tục” (void)
01/14/16
ể ề
Đi u khi n màn hình Console.Title = “Xin chao cac ban !”; Console.CursorSize = 80; Console.CapsLock=true; Console.Clear( ); Console.SetCursorPosition (15,5); Console.Beep(1000,2000); Console.WriteLine(“An 1 phim di !!”); ConsoleKeyInfo cik =
Console.ReadKey( );
Chương trình ViDu1_12.cs
01/14/16

