Bài giảng Kỹ thuật lập trình Chương 1: Tổng quan về lập trình C cung cấp cho người học các kiến thức: Biến và khai báo biến, các phép toán, các hàm có sẵn của C thăng, phát biểu điều kiện, phát biểu lặp, hàm. Mời các bạn cùng tham khảo.
Trang 1Tổng quan lập trình C#
Trang 5 Biến
Là tên gọi cho một vùng nhớ (bên trong bộ nhớ
máy tính khi chương trình được chạy) có khả
năng chứa được một giá trị = một dữ liệu
Được khai báo và sử dụng để chứa dữ liệu của
chương trình
Khai báo biến
kiểu_biến tên_biến [= giá_trị];
Ví dụ
• int age;
• string chuoi = “xin chao”;
Trang 6 Tên biến phân biệt chữ hoa và chữ thường
tenBien khác với TenBien và Tenbien
Không bắt đầu bằng số
Không chứa các ký tự đặt biệt như ~ ! @ # $
% ^ & * ( )
Không đặt tên biến trùng với từ khoá
string, int, private tên không hợp lệ
Quy tắc camel
Trang 764 bit, lưu trữ các thông tin về ngày tháng và thời gian.
Giá trị mặc định : 1/1//0001 – 0:00:00 decimal Số thực có dấu 128 bit (96 bit phần nguyên và 32 bit phần thập
phân) Giá trị mặc định : 0 double Số thực có dấu 64 bit
Giá trị mặc định : 0 int Số nguyên có dấu 32 bit [-231, 231)
Giá trị mặc định: 0 string Mảng các ký tự thuộc kiểu Char.
Giá trị mặc định : Nothing (không phải chuỗi rỗng)
Trang 8 Kiểu sơ cấp (đơn trị) & Kiểu đối tượng (đa
trị)
Tham chiếu
Kiểu biến do người lập trình tự định nghĩa
Khái niệm Cấu trúc dữ liệu của chương trình
Kiểu mảng
Trang 10 Ép kiểu (Type-casting/Type converting)
Implicit convert & Explicit convert
Trang 11 Hàm xử lý trên kiểu dữ liệu chuỗi
Hàm xử lý trên kiểu dữ liệu ngày tháng
Trang 12if (<điều kiện> ) {
<Công việc 1>;
} else {
<Công việc 2>;
}
Trang 14Phát biểu điều kiện
Trang 15 Có dạng:
<Điều kiện> ? <Biểu thức 1> : <Biểu thức 2>
Nếu <Điều kiện> đúng thì <Biểu thức 1> thực
hiện, ngược lại <Biểu thức 2> thực hiện
Là dạng rút gọn của if…else
Ví dụ
string a = (i % 2 == 0) ? “so chan” : “so le”
Trang 17Phát biểu lựa chọn
Trang 19−Nếu expression là true thì
quay lại bước 1
−Nếu expression là false thì
thoát khỏi vòng lặp
Trang 22●B2: Nếu kết quả là true thì
statement thực thi và quay lại B1
●B3: Nếu kết quả là false thì
thoát khỏi vòng lặp while.
Để thoát vòng lặp: dùng break
Để kết thúc sớm 1 vòng lặp: dùng continue
Lệnh trong while có thể không được thực hiện lần nào
Trang 24− Exp2: là biểu thức điều kiện
− Exp3: biểu thức điều khiển
lặp
Để thoát vòng lặp: dùng break
Để kết thúc sớm 1 vòng lặp: dùng continue
Trang 28 do … while: phù hợp với suy nghĩ tự nhiên khi
thiết kế thuật toán.
while: khắc phục một số trường hợp lỗi của
phát biểu do … while
for: cách viết ngắn gọn của phát biểu while, sử
dụng khi điều kiện lặp phụ thuộc vào biến lặp và
số lần lặp có thể biết trước
foreach: duyệt đối tượng trong tập danh sách
Trang 29việc hoàn chỉnh (module), được đặt tên và
được gọi thực thi nhiều lần tại nhiều vị trí
trong chương trình.
thức, hành vi
Trang 30(hàm main) hoặc từ 1 hàm khác.
không có giá trị trả về gọi là thủ tục
(procedure)
Mục đích cuối cùng của hàm là???
Trang 33thực thi thì khi khai báo hàm cần khai báo
danh sách các tham số để nhận giá trị từ
chương trình gọi Các tham số này được gọi
Trang 34• Khi gọi hàm, ta cung cấp các giá trị thật, các
giá trị này sẽ được sao chép vào các tham
số hình thức và các giá trị thật được gọi là
Trang 35Hàm nào đó Đổi N = 8
N=5
N=8
Truyền tham biến: Sau khi thoát khỏi hàm, nó sẽ lấy giá trị bị thay đổi trong hàm (N bị đổi thành 8)
Trang 36• Truyền tham trị (call by value)
hình thức của hàm.
hưởng đến giá trị của đối số.
Trang 37hình thức Do đó, những thay đổi đối với
tham số sẽ có tác dụng trên đối số.
• Sử dụng từ khoá ref hoặc out
mặc định là truyền theo tham chiếu (tức
Trang 39 Thuật toán đệ qui
Giải bài toán bằng cách rút gọn liên tiếp bài toán ban đầu thành bài toán cũng tương tự nhưng có
dữ liệu đầu vào nhỏ hơn
Trang 40*Đệ qui tuyen tı́nh.
*Đệ qui nhị phân.
*Đệ qui phi tuyen.
*Đệ qui ho tương.
Trang 41//Thực hiện một số công việc (nếu có)
TenHam (<danh sách tham số>);
//Thực hiện một số công việc (nếu có)
}
Trang 43//Thực hiện một so công việc (neu có)
.TenHam (<danh sách tham so>); //Giải quyet van đe nhỏ hơn
//Thực hiện một so công việc (neu có)
TenHam (<danh sách tham so>); //Giải quyet van đe còn lại
//Thực hiện một so công việc (neu có)
}
Trang 44Vı́ dụ: Tı́nh so hạng thứ n của dãy Fibonaci được định
nghı̃a như sau:
Trang 45Trong thân của hàm có lời gọi hàm gọi lại chı́nh nó được đặt
bên trong vòng lặp:
<Kieu dữ liệu hàm> TenHam (<danh sách tham so>)
{ //Thực hiện một so công việc (neu có)
TenHam (<danh sách tham so>);
}
}
}
Trang 47Trong thân của hàm này có lời gọi hàm đen hàm kia
và trong thân của hàm kia có lời gọi hàm tới hàm này.
Trang 48<Kieu dữ liệu hàm> TenHam2 (<danh sách tham so>);
<Kieu dữ liệu hàm> TenHam1 (<danh sách tham so>)
{
//Thực hiện một so công việc (neu có)
…TenHam2 (<danh sách tham so>);
//Thực hiện một so công việc (neu có)
}
<Kieu dữ liệu hàm> TenHam2 (<danh sách tham so>)
{
//Thực hiện một so công việc (neu có)
…TenHam1 (<danh sách tham so>);
//Thực hiện một so công việc (neu có)
}
Trang 49- Điều kiện dừng:X(0) = Y(0) = 1.
long TinhXn (int n)
Trang 50 Hoạt động theo cơ chế LIFO (LAST IN FIRST OUT)
Dùng stack để lưu vết dữ liệu và chỉ thị lệnh
Trang 51 Minh họa Đệ qui giai thừa
Ví dụ tính n! với n=3
Trang 53 Minh họa Đệ qui Fibonacci
long Fibonaci (int n) {
if(n==0 || n==1) return 1;
return Fibonaci(n-1) + Fibonaci(n-2);
Trang 54 Minh họa Đệ qui Tháp Hà Nội
Trang 55 Minh họa Đệ qui Tháp Hà Nội
Trang 56 Những giải thuật có thể cài đặt được bằng các
vòng lặp thay thế cho đệ qui thì nên dùng vòng lặp,
vì đệ qui rất tốn bộ nhớ, xử lý chậm.
Hãy khử đệ qui tính giai thừa
Hãy khử đệ qui tính số fibonacci
Trang 57 Về đối tượng phục vụ :
Đối tượng phục vụ của chương trình = người sử
dụng
Đối tượng phục vụ của hàm = lập trình viên
Về cấu trúc (các giai đoạn trong thiết kế) :
Chương trình: Nhập dữ liệu từ người sử dụng
Xử lý Xuất kết quả ra màn hình
Hàm: Qui định cú pháp (khai báo) hàmXử lý
Trả về giá trị kết quả
Trang 58END