Lập trình trên môi trường Windows
Ngôn ngữ C# - Phần 2
Trần Duy Hoàng
Mảng 1 chiều
Cú pháp:
type[ ] array_name;
Ví dụ:
int[] arrInt; // mảng kiểu số nguyên
arrInt = new int[32];
arrInt[0] = 35; // phần tử đầu tiên có giá trị 35
string[] arrStr = {"Hồng", "Lan", "Cúc"};
Mảng 1 chiều
Lấy kích thước mảng
int arrayLength = myIntegers.Length;
Sắp xếp tăng dần
Array.Sort(myIntegers);
Sắp xếp giảm dần
Array.Reverse(myIntegers);
Duyệt mảng
int a = myIntegers[2];
Mảng 1 chiều
Ví dụ : tính tổng mảng số nguyên
int[] mang = {1, 5, 2, 4, 3};
●
Dùng vòng lặp for ?
●
Dùng vòng lặp foreach ?
Mảng 2 chiều
Cú pháp:
type[,] array-name;
Ví dụ:
int[,] myRectArray = new int[2,3];
int[,] myRectArray = new int[,] { {1,2}, {3,4}, {5,6},
{7,8} }; //mảng 4 hàng 2 cột
Duyệt mảng
double [, ] matrix = new double[10, 10];
matrix[2,2] = 4;
Mảng Jagged
Một dạng mảng nhiều chiều trong C#
Ví dụ:
int[][] a = new int[3][];
a[0] = new int[4];
a[1] = new int[3];
a[2] = new int[1];
Mảng Jagged
Khởi tạo ma trận n*m Jagged Array:
int[][] a = new int[n][];
for(int i = 0; i < n; i++)
{
a[i] = new int[m];
for (int j = 0; j < m; j++)
{
a[i][j] = i*n +j;
}
}
Lớp ký tự - char
1 số hàm kiểm tra ký tự
●
Bool char.IsDigit(char c) : có phải là ký số
●
Bool char.IsLetter(char c) : có phải là ký tự
●
Bool char.IsLetterOrDigit(char c) : có phải là ký tự hoặc
ký số
●
Bool char.IsLower(char c) : có phải là ký tự thường
●
Bool char.IsUpper(char c) : có phải là ký tự hoa
1 số hàm chuyển đổi
●
Char char.ToUpper(char c) : trả về ký tự hoa
●
Char char.ToLower(char c) : trả về ký tự thường
Lớp ký tự - char
Ví dụ
string str = "Hello world 1";
bool b1 = char.IsDigit(str[0]); // b1 = false
bool b2 = char.IsDigit(str[12]); // b2 = true
bool b3 = char.IsLetter(str[0]); // b3 = true
bool b4 = char.IsLetter(str[5]); // b4 = ?
bool b5 = char.IsLower(str[0]); // b5 = ?
bool b6 = char.IsUpper(str[0]); // b6 = ?
str[6] = char.ToUpper(str[6]); // str = ?
Lớp chuỗi - String
Một số hàm thao tác chuỗi
Thành viên Giải thích
Length Chiều dài chuỗi (số ký tự)
IndexOf() vị trí xuất hiện đầu tiên của một chuỗi con
trong chuỗi
LastIndexOf() vị trí xuất hiện cuối cùng của một chuỗi con
trong chuỗi
Format() Định dạng chuỗi
ToUpper() Trả về chuỗi chữ hoa
ToLower() Trả về chuỗi chữ thường
Replace() thay thế chuỗi con trong chuỗi bằng một
chuỗi con khác
Split() Cắt một chuỗi thành nhiều chuỗi con
SubString() Lấy một chuỗi con
Lớp chuỗi - String
Ví dụ
string str1 = “Hello world”, str2;
char c = str1[0]; // c='H';
int l = str1.Length; // i = 10
int i = str1.IndexOf(“wo”); // i = 6
str2 = str1.Replace(“w”, “W”); // str2=”Hello World”
str2 = str1.ToLower(); // str2 = “hello world”
str2 = str1.ToUpper(); // str2 = “HELLO WORLD”
Lớp chuỗi - String
Ví dụ : hàm kiểm tra MSSV có 7 ký số
static public bool KiemTraMSSV(string mssv) {
// Kiem tra mssv chi co 7 ky tu
if (mssv.Length != 7) return false;
// Kiem tra cac ky tu phai la chu so
for (int i = 0; i < mssv.Length; i++)
{
if (char.IsDigit(mssv[i]) == false) return false;
}
return true;
}
Lớp chuỗi - String
Ví dụ : hàm kiểm tra MSSV có dạng 07K3123,
07K4123 hoặc 07DB123 ?
Lớp chuỗi - String
Ví dụ Format
sql = “select * from NhanVien where MaDonVi = '” +
maDonVi.ToString() + “' and GioiTinh = ” +
gioiTinh.ToString() ;
sql = string.Format(“select * form NhanVien where
MaDonVi = '{0}' and GioiTinh = {1}”, maDonVi,
gioiTinh)
Lớp chuỗi - String
Ví dụ Format
Xuất câu thongbao = “Ngiem cua phuong trinh 2x + 1 =
0 la x=-0.5”
int a = 2;
int b = 1;
int x = -0.5;
string thongbao = ?
Lớp chuỗi - String
Ví dụ Split
string str = “4,5,8,3,2,6”;
string[] arrStr = str.Split(',');
for (int i=0; i<arrStr.Length;i++)
{
sum += Convert.ToInt32(arrStr[i]);
}
Lớp chuỗi - String
Ví dụ Split
●
string str = “10/1234”;
int tuSo = ?
int mauSo = ?
●
string str = “0.3,2.4,1.6”
x,y,z = ?
Lớp chuỗi - String
Ký tự @
●
string sDuongDan = "C:\\WinNT\\Temp";
string sDuongDan = @"C:\WinNT\Temp";
●
sql = “select TenNhanVien, NgaySinh, DiaChi “;
sql += “ from NhanVien “;
sql += “where GioiTinh = 0”;
●
sql = @”select TenNhanVien, NgaySinh, DiaChi
from NhanVien
where GioiTinh = 0”;
Lớp mảng ArrayList
Một số thao tác mảng
Thành viên Giải thích
Add() Thêm phần tử vào cuối mảng
Toán tử [] Lấy phần tử trong mảng
Insert() Chèn phần tử vào vị trí đã chọn
Count Số lượng phần tử
Lớp mảng ArrayList
Ví dụ
using System.Collections;
ArrayList mang = new ArrayList();
mang.Add(1);
mang.Add(2);
mang.Add(3);
mang.Add(4);
// mang = {1, 2, 3, 4}
Lớp mảng ArrayList
Ví dụ : tính tổng mảng
int tong = 0;
for (int i=0; i<mang.Count; i++) {
int so = (int)mang[i];
tong = tong + so;
}
●
Dùng foreach ?
Lập trình trên môi trường Windows
Môi trường VS2005
Trần Duy Hoàng
Build, Run, Debug
Build :
●
Để phát hiện xem có bị lỗi cú pháp
●
Menu → Build → Build Solution
●
Trong View Solution, nhấn chuột phải lên solution, chọn
Build Solution
●
Tương tự, nếu bạn muốn build Project nào thì nhấn chuột
phải lên Project đó và chọn Build
Build, Run, Debug
Build Solution
Build Project
Build, Run, Debug
Build
●
Trong trường hợp bị lỗi xem Error list
●
Menu → View → Error List
●
F8 : di chuyển lần lược đến các lỗi