Bài giảng Kỹ thuật lập trình - Bài 1: Ôn tập - Lê Gia Minh
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ thuật lập trình - Bài 1: Ôn tập - Lê Gia Minh", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_ky_thuat_lap_trinh_bai_1_on_tap_le_gia_minh.ppt
Nội dung text: Bài giảng Kỹ thuật lập trình - Bài 1: Ôn tập - Lê Gia Minh
- Kỹ thuật Lập trình Mở đầu
- Nội dung ¡ Ôn tập về hệ thống số. ¡ Tư tưởng lập trình ¡ Lưu đồ (Flowchart) ¡ Giới thiệu về ngôn ngữ C ¡ Trình biên dịch C ¡ Khai báo biến ¡ Tổng kết. Lê gia Minh 2
- Cơ bản về việc lưu trữ và xử lý tin trong máy tính ¡ Phần tử nhớ nhỏ nhất của máy tính số chỉ có thể chứa 2 giá trị :0 và 1 (ta gọi là bit). ¡ Ta kết hợp nhiều phần tử nhớ ₫ể có thể miêu tả ₫ại lượng lớn hơn. Thí dụ ta dùng 8 bit ₫ể miêu tả 256 giá trị khác nhau. Dãy 8 bit nhớ ₫ược gọi là byte, đây là 1 ô nhớ trong bộ nhớ của máy tính. ¡ Mặc dù ngoài ₫ời ta ₫ã quen dùng hệ thống số thập phân, nhưng vềphần cứng bên trong máy tính, máy chỉ có thể chứa và xử lý trực tiếp dữ liệu ở dạng nhị phân Lê gia Minh 3
- Các đơn vị bộ nhớ thường dùng Lê gia Minh 4
- Ôn tập về hệ thống số ¡ Hệ thống số (number system) là công cụ ₫ể biểu thị đại lượng. Một hệ thống số gồm 3 thành phần chính : l 1. cơ số: số lượng ký số (ký hiệu ₫ể nhận dạng các số cơ bản). l 2. qui luật kết hợp các ký số để miêu tả 1 đại lượng nào đó. l 3. các phép tính cơ bản trên các số. ¡ Trong 3 thành phần trên, chỉ có thành phần 1 là khác nhau giữa các hệ thống số, còn 2 thành phần 2 và 3 thì giống nhau giữa các hệ thống số. Lê gia Minh 5
- Ôn tập về hệ thống số(tt) ¡ Hệ thống số thập phân (hệ thập phân) dùng 10 ký số : 0,1,2,3,4,5,6,7,8,9. ¡ Hệ nhị phân dùng 2 ký số : 0,1. ¡ Hệ bát phân dùng 8 ký số : 0,1,2,3,4,5,6,7. ¡ Hệ thập lục phân dùng 16 ký số : 0 đến 9,A,B,C,D,E,F. Lê gia Minh 6
- Ôn tập về hệ thống số(tt) Lê gia Minh 7
- Ôn tập về hệ thống số(tt) Lê gia Minh 8
- Thảo luận ¡ Lượng 17 trong hệ 3. ¡ Lượng 25 trong hệ 8. ¡ Lượng 312 trong hệ 2. Lê gia Minh 9
- Tư tưởng lập trình ¡ Đem các bài toán trong cuộc sống đưa vào trong máy tính xử lý ¡ Chỉ thị của máy tính khác suy nghĩ của con người. ¡ Suy nghĩ : l Cộng 2 số l Hiển thị kết quả Lê gia Minh 10
- Tư tưởng lập trình (tt) Mã giả : ¡ Bắt đầu l Nhập số thứ nhất : n1 l Nhập số thứ hai : n2 l Sum = n1 + n2 l Hiển thị Sum ¡ Kết thúc Lê gia Minh 11
- Thảo luận ¡ Mã giả cho bài toán: nhập 1 số nguyên dương N(N>0) cho biết đó là số chẳn hay số lẻ ¡ Mã giả cho bài toán giải phương trình bậc nhất Lê gia Minh 12
- Lưu đồ (Flowchart) ¡ Lưu đồ thuật toán là công cụ dùng để biểu diễn thuật toán, việc mô tả nhập(input), dữ liệu xuất (output) và luồng xữ lý thông qua các ký hiệu hình học. ¡ Một dạng quy ước chuẩn cho phép mô tả cách xử lý của chương trình một cách trực quan. Lê gia Minh 13
- Các ký hiệu Lê gia Minh 14
- Cấu trúc tuần tự ¡ Tuần tự thực thi tiến trình. Mỗi lệnh được thực thi Xử lý 1 theo một chuỗi từ trên xuống, xong lệnh này Xử lý 2 rồi chuyển xuống lệnh kế tiếp. Lê gia Minh 15
- Thí dụ cơ bản ¡ Nhập vào 3 số nguyên a, b, c và xuất ra màn hình với giá trị của mỗi số tăng lên 1. Lê gia Minh 16
- Cấu trúc lựa chọn ¡ Điểm quyết định cho phép chọn một trong hai trường hợp. If – chỉ xét trường hợp đúng Lê gia Minh 17
- Thí dụ về cấu trúc chọn lựa ¡ Nhập 1 số n, nếu số đó >0 thì tăng 1. Sau đó hiển thị Lê gia Minh 18
- If else ¡ Thử viết lưu đồ nhập sô N : kiểm tra chẳn lẻ Lê gia Minh 19
- For – while : Kiểm tra điều kiện trước Lê gia Minh 20
- Do While : kiểm tra điều kiện sau Lê gia Minh 21
- Giải và biện luận ax+b=0 Lê gia Minh 22
- Bài tập 1. Nhập vào hai số x, y. Xuất ra màn hình tổng, hiệu, tích, thương của hai số trên. 2. Nhập vào ba cạnh a, b, c của tam giác. Xuất ra màn hình tam giác đó thuộc loại tam giác gì? (Thường, cân, vuông, đều hay vuông cân). 3. Tính n!, với 0 ≥ n 4. S(n) = 1+2+3+ + N (N>0) 5. S(n) = 12+22+32+ + N2 (N>0) Lê gia Minh 23
- Ngôn ngữ C Cơ bản
- Giới thiệu về ngôn ngữ C ¡ Ngôn ngữ cấp trung gian (Middlelevel language) ¡ Do Dennis Ritchie đề xuất 1980 ¡ Hiệu quả - tiện lợi – có thể thao tác xuống hệ thống như Assembler. ¡ Được tiêu chuẩn hoá bởi ANSI từ năm 1983 ¡ C chuẩn và C không chuẩn ? Lê gia Minh 25
- Hinh anh Dennis Ritchie Brian Kernighan Lê gia Minh 26
- Đặc điểm của C ¡ Ít hạn chế, có cấu trúc khối, hàm rời nhau và bộ từ khóa nhỏ. ¡ Linh động về ngữ pháp. ¡ Mạnh mẽ nhờ con trõ(pointer) ¡ Cho phép biên dịch nhiều tập tin nguồn riêng rẽ thành các tập tin object và nối các object đó lại với nhau(link) thành 1 chương trình thực thi duy nhất. Lê gia Minh 27
- Lê gia Minh 28
- Biến (variables) ¡ Các biến phải khai báo trước khi dùng ngay sau dấu “{” ¡ Các ký tự hợp lệ là các chữ cái, các số, “_” ¡ Ký tự đầu tiên không thể là một số ¡ C chỉ hiểu 31 ký tự đầu đối với các biến cục bộ, nếu dùng nhiều hơn sẽ bị bỏ qua ¡ Vài trình biên dịch chỉ hiểu 6 ký tự đầu đối với các biến toàn cục và các tên hàm ¡ Phân biệt chữ hoa và chữ thường Lê gia Minh 29
- Ký hiệu Hungarian ¡ Một số lập trình viên thường thích bổ sung thêm một tiếp ₫ầu ngữvào tên biến ₫ể nêu rõ kiểu của biến, nhờ ₫ó tăng ₫ộ dễ ₫ọc cho chương trình. l fltInterestRate : Biến có độ chính xác đơn(float) l intCount: Biến thuộc kiểu int l strName: Biến thuộc kiểu char[] ¡ Qui ước trên gọi là ký hiệu Hungarian (do Charles Simonge, một lập trình viên gốc Hungari của Miscrosoft) ₫ề xướng. ¡ Một số kiểu và tiếp ₫ầu ngữ tương ứng : ¡ char[] str int int float flt long lng double dbl Lê gia Minh 30
- printf và scanf printf Hàm printf ghi kết xuất ra màn hình. Khi nó gặp chỉ định dạng thức %i, một số nguyên sẽ được in ra. scanf Hàm scanf nhập từ bàn phím. Khi nó gặp chỉ định dạng thức %i, nó sẽ chờ người dùng nhập một số nguyên. & Ký tự “&” rất quan trọng với scanf. Nó cho phép scanf thay đổi các biến yêu cầu. Ví dụ: scanf("%i", &j) ký tự “&” sẽ cho phép biến “j” được thay đổi. Nếu quên kýtự này, j sẽ nhận một ký tự ngẫu nhiên nào đó mà nó đã có trước (trừ khi bạn đã khởi tạo “j”). Trong khi đó, printf không cần thay đổi trị của bất kỳ biến nào nó in ra, nó không cần dấu “&” nào. Nếu “j” chứa trị 15, sau khi thực hiện phát biểu: printf("%i", j); bạn vẫn nhận được trị 15 từ biến “j” vì printf không có khả năng thay đổi nó. Lê gia Minh 31
- Kiễu nguyên trong C Lê gia Minh 32
- Ví dụ về kiễu nguyên trong C Lê gia Minh 33
- Ví dụ về kiễu char char myVar = lower_a + 1 b Lê gia Minh 34
- Số nguyên ở cơ số khác Lê gia Minh 35
- Số thực trong C Lê gia Minh 36
- Số thực trong C(tt) float - Tính toán dùng float nhanh nhưng kém chính xác. Trị cực tiểu thông thường của float là 10-38 và trị cực đại thông thường là 10+38. double - Tính toán dùng double chậm hơn dùng float nhưng chính xác hơn. Bởi vì có thêm không gian lưu trữ (gấp đôi so với float) nên trị cực tiểu và cực đại của nó cũng lớn hơn. Thông thường là 10-308 đến 10+308. long -Tinh toán dùng long double rất chậm double nhưng rất chính xác. long double cho phép lưu trữ những trị rất lớn, có thể lên đến 10+4932. Lê gia Minh 37
- Ví dụ về kiễu thực Lê gia Minh 38
- Số có dấu 0 0 0 0 1 0 1 0 0 1 1 0 1 0 = 29 + 27 + 24 + 23 + 21 = 666 Bit tận cùng bên trái là bít dấu - Bit dấu = 0 : số dương - Bit dấu =1 : số âm 1 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 = 512 + 128 + 16 + 8 + 2 – 215 = -32012 Bit tận cùng Lê gia Minh 39
- Hằng số ¡ Các hằng số chứa “.” hoặc “e” là kiểu double: 3.5, 1e-7, -1.29e15 ¡ Các hằng số kết thúc bởi “F” là kiểu float: 3.5F, 1e-7F ¡ Các hằng số kết thúc bởi “L” là kiểu long double: -1.29e15L, 1e-7L ¡ Các hằng số không có “.”, “e” hoặc “F” kiểu int, 10000, -35 (vài trình biên dịch chuyển kiểu long int nếu hằng số vượt quá kiểu int) ¡ Vài hằng số long int cũng kết thúc bằng “L”: 9000000L Lê gia Minh 40
- Đặt tên cho hằng số Lê gia Minh 41
- Hằng số xử lý trước Lê gia Minh 42
- Đại số Boole Lê gia Minh 43
- Toán tử ¡ Quan hệ : >, = , > l XOR : ^ NOT : ~ Lê gia Minh 44
- Phép toán dịch BIT Lê gia Minh 45
- Tóan tử trên BIT ¡ AND : dùng xóa về 0 các BIT nào đó ¡ OR : dùng bật lên 1 các BIT nào đó ¡ XOR : đảo bit nào đó (0 1 hay 1 0) ¡ NOT :đảo tòan bộ các BIT Lê gia Minh 46
- Tóan tử tăng giảm ++ : tăng 1 : giảm 1 Chú ý khi dùng với biểu thức kết hợp Thí dụ : int num = 4 , i ; i = num++; i = ++num; Lê gia Minh 47
- Toán tử gán ¡ Gán đơn giản : l Bien = bieuthuc; l X = X + 15 ; ¡ Gán phức hợp : l Bien op= bieuthuc; (op : + - * / | &) l X += 15 X = X + 15; l X |= Y X = X |Y; ¡ Gán liên hòan: int x,y,z = 10; x = y = z; Lê gia Minh 48
- Toán tử ? ? Bieuthuc1 : Bieuthuc2 if (dieukien) z = Bieuthuc1; else z = Bieuthuc2 printf(“So lon hon la : %d” , (a>b) ? a : b); Lê gia Minh 49
- Cấu trúc if if (bieuthuc) lenh_1 else lenh_2 if( n>0) { if( n>0) if (a>b) if (a>b) z = a ; z = a ; } else else z = b ; z = b ; Lê gia Minh 50
- Cấu trúc SWITCH – thay nhiều IF switch (bieuthuc_chon) { case Giatri_1 : lenh_1; ; break; case Giatri_2 : lenh_1; ; break; default : lenh_1; ; break; } - Viết chương trình giả lập 1 máy tính số học với 4 phép toán + - * / Lê gia Minh 51
- While và Do while ¡ While kiểm tra điều kiện trước ¡ Do While kiểm tra điều kiện sau do while (dieukien) { { lenh 1; lenh 1; lenh 2 ; lenh 2 ; } } while (dieukien con dung); Lê gia Minh 52
- Vòng lặp for for (bthuc_1 ; bthuc_2; bthuc_3) lenh-lap ; - bthuc_1 : chỉ làm 1 lần, thường dùng khởi tạo biến đếm – Biểu thức này có hay không cũng được - bthuc_2 : điều kiện lặp, bắt buộc - bthuc_3 : thay đổi biến lặp, có hay không cũng được for(int i = 0 ; i<10 ; i++) printf(“%d” , i); Lê gia Minh 53
- Break - Continue ¡ Break : cho phép thoát khỏi cấu trúc lặp và switch. ¡ Continue : dùng bắt đầu một vòng mới của cấu trúc lặp. Lê gia Minh 54
- Các hàm thường dùng của BC Lê gia Minh 55
- Lê gia Minh 56
- Cho biết kết quả . 1. int a=7, b=8; 2. a++; 3. a=a+(b ); 4. b; 5. a ; 6. a=( a)+( b); 7. if(a%2!=0) 8. printf("\n a la so le"); 9. else 10. printf("\n a la so chan"); 11. printf("\na = %d",a); Lê gia Minh 57
- Bài tập 1. S(n) = 1 + 2 + + N (N>0) 2. S(n) = 1 – 2 + 3 – 4 + + N (N>0) 3. Viết chương trình nhập vào một số nguyên n gồm ba chữ số. Xuất ra màn hình chữ số lớn nhất ở vị trí nào? Ví dụ: n=291. Chữ số lớn nhất nằm ở hàng chục (9). Lê gia Minh 58