Bài giảng Kỹ thuật lập trình - Bài 1: Ôn tập - Lê Gia Minh

ppt 58 trang hoanguyen 3150
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:

  • pptbai_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

  1. Kỹ thuật Lập trình Mở đầu
  2. 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
  3. 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
  4. Các đơn vị bộ nhớ thường dùng Lê gia Minh 4
  5. Ô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
  6. Ô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
  7. Ôn tập về hệ thống số(tt) Lê gia Minh 7
  8. Ôn tập về hệ thống số(tt) Lê gia Minh 8
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. Các ký hiệu Lê gia Minh 14
  15. 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
  16. 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
  17. 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
  18. 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
  19. If else ¡ Thử viết lưu đồ nhập sô N : kiểm tra chẳn lẻ Lê gia Minh 19
  20. For – while : Kiểm tra điều kiện trước Lê gia Minh 20
  21. Do While : kiểm tra điều kiện sau Lê gia Minh 21
  22. Giải và biện luận ax+b=0 Lê gia Minh 22
  23. 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
  24. Ngôn ngữ C Cơ bản
  25. 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
  26. Hinh anh Dennis Ritchie Brian Kernighan Lê gia Minh 26
  27. Đặ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
  28. Lê gia Minh 28
  29. 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
  30. 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
  31. 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
  32. Kiễu nguyên trong C Lê gia Minh 32
  33. Ví dụ về kiễu nguyên trong C Lê gia Minh 33
  34. Ví dụ về kiễu char char myVar = lower_a + 1 b Lê gia Minh 34
  35. Số nguyên ở cơ số khác Lê gia Minh 35
  36. Số thực trong C Lê gia Minh 36
  37. 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
  38. Ví dụ về kiễu thực Lê gia Minh 38
  39. 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
  40. 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
  41. Đặt tên cho hằng số Lê gia Minh 41
  42. Hằng số xử lý trước Lê gia Minh 42
  43. Đại số Boole Lê gia Minh 43
  44. Toán tử ¡ Quan hệ : >, = , > l XOR : ^ NOT : ~ Lê gia Minh 44
  45. Phép toán dịch BIT Lê gia Minh 45
  46. 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
  47. 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
  48. 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
  49. 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
  50. 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
  51. 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
  52. 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
  53. 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
  54. 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
  55. Các hàm thường dùng của BC Lê gia Minh 55
  56. Lê gia Minh 56
  57. 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
  58. 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