Bài giảng Kỹ thuật lập trình nâng cao - Chương 1: Kiến thức cơ bản về ngôn ngữ lập trình C/C++ - Dương Thành Phết

pdf 52 trang cucquyet12 3161
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 nâng cao - Chương 1: Kiến thức cơ bản về ngôn ngữ lập trình C/C++ - Dương Thành Phết", để 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:

  • pdfbai_giang_ky_thuat_lap_trinh_nang_cao_chuong_1_kien_thuc_co.pdf

Nội dung text: Bài giảng Kỹ thuật lập trình nâng cao - Chương 1: Kiến thức cơ bản về ngôn ngữ lập trình C/C++ - Dương Thành Phết

  1. TRƢỜNG CAO ĐẲNG CNTT TP.HCM KHOA CƠNG NGHỆ THƠNG TIN KỸ THUẬT LẬP TRÌNH NÂNG CAO Chƣơng 1: KIẾN THỨC CƠ BẢN VỀ NGƠN NGỮ LẬP TRÌNH C/C++ Giảng Viên: ThS. Dƣơng Thành Phết Email: phetcm@gmail.com Website: Tel: 0918158670 – facebook.com/DuongThanhPhet
  2. 1. TẠO PROJECT VỚI VS 2010 . Bước 1: Khởi động Visual Studio 2010
  3. 1. TẠO PROJECT VỚI VS 2010 . Bước 2: Chọn menu File / New / Project Chọn ngơn ngữ C++ , Chọn kiểu project là Win32 Console Application; Đặt tên cho ứng dụng ở mục Name; Click Browse để chọn vị trí lưu Project và OK
  4. 1. TẠO PROJECT VỚI VS 2010 . Bƣớc 3: Chọn kiểu ứng dụng Console và chọn Empty Project. Nhấn Finish để hồn tất.
  5. 1. TẠO PROJECT VỚI VS 2010 . Giao diện sau khi tạo Project Cửa số Explorer để quản lý các file trong Project Chọn Solution Explorer
  6. 1. TẠO PROJECT VỚI VS 2010 Cửa sổ gồm 2 giao diện chính : . Vùng trống bên trái để viết Code . Phía bên phải quản lý các file trong Project Cĩ 3 thƣ mục chính ở cửa số Explorer:  Source Files (*.cpp): Chứa các file cài đặt các hàm  Header Files (*.h): Chứa các file khai báo  Resource Files: Chứa các tài nguyên (icon, bitmap,. . .)
  7. 1. TẠO PROJECT VỚI VS 2010 Qui ƣớc: Để dễ dàng viết và quản lý code theo phương pháp lập trình thủ tục, mỗi Project mới, ta qui ước như sau: Trong Header File: . Khaibao.H: Chứa các khai báo hàm, hằng số, Trong Source File: . Main.cpp: Cài đặt hàm main() . Caidat.cpp: Cài đặt các hàm con đã khai báo
  8. 1. TẠO PROJECT VỚI VS 2010 Tạo file khai báo (khaibao.h) . Click phải thư mục Header Files . Chọn Add Chọn New Item
  9. 1. TẠO PROJECT VỚI VS 2010 . Chọn Code, Header File (.h) . Nhập khaibao.h vào ơ Name . Chọn OK, sau đĩ chọn Yes
  10. 1. TẠO PROJECT VỚI VS 2010 Tạo file cài đặt (Main.cpp, Caidat.cpp)  Click phải thư mục Source File -> chọn Add chọn New Item  Chọn Code, CPP File (.cpp)  Nhập Main.Cpp vào ơ Name, chọn OK, chọn Yes  Tương tự, tiếp tục tạo file caidat.cpp
  11. 1. TẠO PROJECT VỚI VS 2010 Ví dụ: Viết chương trình nhập vào 2 số nguyên a, b. Tính tổng và xuất ra màn hình. Khaibao.h #include using namespace std; void Nhap(int &a, int &b); long Tong(int a, int b);
  12. 1. TẠO PROJECT VỚI VS 2010 Main.Cpp #include "khaibao.h" void main() { int a, b; long s; Nhap(a, b); s = Tong(a, b); cout<<"Tong a va b: "<<s; }
  13. 1. TẠO PROJECT VỚI VS 2010 Caidat.Cpp #include "khaibao.h" void Nhap(int &a, int &b) { cout >a; cout >b; } long Tong(int a, int b) { return a + b; }
  14. 1. TẠO PROJECT VỚI VS 2010 Dịch, sửa lỗi và chƣơng trình . Biên dịch và kiểm tra lỗi: Nhấn Ctrl + Shift + B . Nếu cĩ thơng báo lỗi (error) thì quan sát và sửa lỗi (cửa sổ lỗi xuất hiện bên dưới màn hình soạn thảo code) . Chạy chương trình: Ctrl + F5 (hoặc F5)
  15. 1. TẠO PROJECT VỚI VS 2010 Kết quả chạy chương trình (Ctrl + F5)
  16. 2. MỞ PROJECT Cách 1: . Khởi động VS . Vào menu File/ Open / Project or Solution . Chọn thư mục chứa Project . Chọn tên Project Open
  17. 2. MỞ PROJECT Cách 2: . Mở thư mục chứa Project . Double click vào file *.sln
  18. 3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ 3.1. Lệnh Lệnh là một biểu thức, thực hiện một chức năng: khai báo, gán, xuất, nhập, tính tốn được kết thúc là ; Khơng nên đặt nhiều lệnh trên cùng một dịng 3.2. Khối lệnh Khối lệnh gồm nhiều lệnh được đặt trong cặp dấu ngoặc { . . . } 3.3. Lời chú thích (comment): 1 dịng: // . . . . . Nhiều dịng: 18 /* . . . . 18 . . . . */
  19. 3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ 3.4. Kiểu dữ liệu Kiểu dữ liệu tập các giá trị thuộc một kiểu nào đĩ. Gồm 2 loại:  Kiểu cơ sở: Số nguyên; Số thực; Luận lý ; Mảng; Chuỗi  Kiểu tự định nghĩa: Dùng những kiểu cơ sở để xây dựng thành những kiểu dữ liệu mới cho phù hợp với bài tốn (Kiểu cấu trúc - struct). 19 19
  20. 3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ STT KIỂU GHI CHÚ KÍCH THƢỚC KIỂU LIÊN TỤC (SỚ THỰC) 1 float 4 bytes 2 double 8 bytes 3 long double 8 bytes KIỂU RỜI RẠC (SỚNGUYÊN) 1 char Ký tự hoặc Số nguyên 1 byte 2 unsigned char Số nguyên dương 1 byte 3 short Số nguyên 2 bytes 4 unsigned short Số nguyên dương 2 bytes 5 int Số nguyên 4 bytes 6 unsigned int Số nguyên dương 4 bytes 7 long Số nguyên 4 bytes 8 unsigned long Số nguyên dương 4 bytes KIỂU LUẬN LÝ 20 20 1 bool Gồm 2 giá trị: true hoặc false
  21. 3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ 3.5. Biến  Một biến đại diện cho một vùng nhớ của máy tính.  Tên biến được dùng để tham khảo đến những vùng nhớ này.  Biến để lưu trữ các giá trị do người dùng nhập vào hoặc các giá trị tạm thời trong quá trình tính tốn.  Mỗi biến sẽ cĩ tên và kiểu dữ liệu tương ứng.  Phải khai báo Biến trước khi sử dụng 21 21
  22. 3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ Khai báo biến Cú pháp tênbiến; Ví dụ: int a; //Khai báo biến để lưu số nguyên tên a float c; //Khai báo biến để lưu số thực tên c Khai báo nhiều biến cùng kiểu tênbiến1, tênbiến2, tênbiến3; Ví dụ: int a, x, y; 22 22
  23. 3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ Qui tắc đặt tên biến  Bắt đầu bằng một ký tự.  Bao gồm: các ký tự chữ, số hoặc dấu gạch dưới (_)  Khơng cĩ khoảng trắng trong tên biến.  Khơng dài quá 256 ký tự.  Khơng được trùng với các từ khố của C struct, long, int, while, for, if, else, continue, typedef, do, goto, case, define,  Khơng được trùng với phạm vi khai báo. 23 23  Tên gợi nhớ. Phân biệt chữ hoa và thường
  24. 3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ 3.6. Hằng Hằng là các đại lượng mà giá trị của nĩ khơng thay đổi trong suốt chương trình . Khai báo hằng: #define tênhằng giátrị; Ví dụ : #define MAX 1000; #define pi 3.141593; 24 24
  25. 3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ 3.7. Các phép tốn STT PHÉP TỐN Ý NGHĨA PHÉP TỐN SỚ HỌC 1 + Cộng 2 - Trừ 3 * Nhân 4 / Chia lấy phần nguyên 5 % Chia lấy phần dư PHÉP TỐN QUAN HỆ 1 > Lớn hơn 2 = Lớn hơn hoặc bằng 4 <= Nhỏ hơn hoặc bằng 25 5 == Bằng nhau 25 6 != Khác nhau
  26. 3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ PHÉP TỐN LOGIC 1 ! NOT Khơng 2 && AND Và 3 || OR Hoặc TỐN TỬTĂNG GIẢM 1 ++ Tăng 1 2 Giảm 1 PHÉP TỐN THAO TÁC TRÊN BIT 1 & AND 2 | OR 3 ^ XOR 4 > Dịch phải 26 26 6 ~ Lấy phần bù theo bit
  27. 3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ 3.8. Tốn tử điều kiện Cú pháp: (BT Đ.kiện)? : Ví dụ: int n; (n%2==0)? n ++ : n ; nếu n = 10 thì giá trị n = 11 nếu n = 21 thì giá trị n = 20 27 27
  28. 3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ Thứ tự ƣu tiên các phép tốn Thứ tự ưu tiên của các phép tốn thường dùng theo trật tự từ trái sang phải từ trên xuống dưới như sau: () [ ] ++ & ! * / % + - >= == != && || 28 28
  29. 3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ 3.9. Hàm nhập xuất Thƣ viện hàm: iostream.h Hàm nhập giá trị từ bàn phím: cin>>tênbiến; Ví dụ: int a; cin>>a; //Nhập giá trị từ phím sẽ lưu vào biến a Hàm xuất giá trị ra màn hình: cout<<tênbiến hoặc chuỗi ký tự; Ví dụ: int a = 5, b-7; cout<<“Gia tri cua a = “<<a<<“b=“<<b; Ví dụ: int b = 7, c = 9; cout<< “Gia tri của b =“ << b << “ gia tri cua c = “ <<29 c; 29
  30. 3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ Xuất cĩ định dạng Thƣ viện iomanip.h cout<<setw(n)<<tênbiến; Chừa 1 khoảng n ký tự để xuất giá trị Ví dụ: int a=7, b=9; cout<<a<<setw(5)<<b;//Chừa 5 vị trí để xuất giá trị b Kết quả: 7 9 30 30
  31. 3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ cout<<setprecision(n) <<tênbiến; ; Xuất số thập phân gồm n-1 chữ số lẻ(phần thập phân) Ví dụ: float a=7.56745F, b=5.339F; cout<<a<<endl; cout<<setprecision(3)<<a<<endl; cout<<setprecision(2)<<b<<endl; Kết quả: 7.56745 7.57 5.3 5.339 31 31
  32. 3. CÁC KIẾN THỨC CƠ BẢN TRONG C++ Xuất ký tự đặc biệt Ký tự Ý nghĩa Ví dụ \‟ Xuất dấu nháy đơn cout<<“ \‟ ”; Kết quả: „ \” Xuất dấu nháy đơi cout<<“ \” ”; Kết quả: “ \\ Xuất dấu chéo ngược \” cout<<“ \\ ”; Kết quả: \ \0 Ký tự Null Gán ký tự kết thúc của chuỗi \a Alert : Tiếng bip cout<<"xyz\tzyx”; \t Tab vào một đoạn Kết quả: xyz zyx cout<<"xyz\t\bzyx”; \b Xuất lùi về sau Kết quả: xyzzyx cout<<"xyz\nzyx”; \n Xuống dịng Kết quả: xyz hoặc endl zyx 32 cout<<"xyz\rzyx”; Kết quả: \r Về đầu dịng 32 zyx
  33. 4. CẤU TRÚC ĐIỀU KHIỂN 4.1 Cấu rẽ nhánh (if . . . .else . . . ) if ( Biểu thức ĐK) if ( Biểu thức ĐK ) khối lệnh 1; khối lệnh 1; . . . . . . . else khối lệnh 2 ; . . . . . . . - Nếu biểu thức đúng thì sẽ - Nếu biểu thức đúng thì sẽ thực hiện khối lệnh 1 thực hiện khối lệnh 1 - Sau đĩ sẽ thực hiện các - Nếu biểu thức sai thì bỏ qua lệnh tiếp sau khối lệnh 1 khối lệnh 1 mà thực hiện khối lệnh 2 . - Sau đĩ thực hiện tiếp các lệnh tiếp sau.
  34. 4. CẤU TRÚC ĐIỀU KHIỂN Ví dụ: Giải và biện luận phương trình: ax+b=0 34 34
  35. 4. CẤU TRÚC ĐIỀU KHIỂN Ví dụ: Giải và biện luận phương trình: ax+b=0 void main() { float a, b; cout >a; cout >b; if (a == 0) if (b == 0) cout<<"Phuong trinh vo so nghiem"<<endl; else cout<<"Phuong trinh vo nghiem"<<endl; else cout<<"Phuong trinh co nghiem x = "<< -b / a<<endl; 35 } 35
  36. 4. CẤU TRÚC ĐIỀU KHIỂN 4.2 Cấu trúc lựa chọn switch (biểu thức) case n1: ni là các các câu lệnh ; hằng sớ break ; nguyên case n2: hoặc ký tư ̣ các câu lệnh ; break ; case nk: ; break ; [default: các câu lệnh] 36  36
  37. 4. CẤU TRÚC ĐIỀU KHIỂN void main() { int n; cout >n; switch (n) { case 1: cout<<"So mot";break; case 2: cout<<"So hai";break; case 3: cout<<"So ba"; break; case 4: cout<<"So bon"; break; case 5: cout<<"So nam"; break; default : cout<<"Khong doc duoc"; 37 } 37 }
  38. 4. CẤU TRÚC ĐIỀU KHIỂN 4.3. Cấu trúc lặp - for for ( ; ; ) { Khởi gán ; Sai (Biểu thức Đúng (Biểu thức điều kiện = 0) Kiểm tra biểu điều kiện khác 0) } thức điều kiện Thực hiện các lệnh trong vòng lặp Tăng/ giảm chỉ số lặp Bất kỳ biểu thức nào trong 3 biểu thức nói trên đều có thể vắng nhưng phải giữ dấu chấm phẩy (;) 38 38
  39. 4. CẤU TRÚC ĐIỀU KHIỂN 4.4. Cấu trúc lặp - while while ( ) khới lệnh;  Kiểm tra điều kiện của biểu thức điều kiện. Nếu biểu thức điều kiện bằng true thì thực hiện các lệnh trong vòng lặp, Quay lặp lại. Ngược lại thốt khỏi lặp. 39 39
  40. 4. CẤU TRÚC ĐIỀU KHIỂN 4.5. Cấu trúc lặp – do . . .While do { ; } while (biểu thức điều kiện);  Thực hiện khới lệnh cho đến khi biểu thứcn điều kiện có giá trị bằng false.  Cấu trúc lặp do while ít nhất thực hiện khới lệnh40 40 được 1 lần
  41. 4. CẤU TRÚC ĐIỀU KHIỂN 4.6. Lệnh break: Thốt khỏi các cấu trúc switch, while, for, do while chứa nĩ gần nhất. 4.7. Lệnh continue:  Được sử dụng trong các vịng lặp như while, for, do while.  Khi lệnh continue được gọi thì chương trình sẽ quay trở về đầu vịng lặp để bắt đầu lần lặp mới  Nếu cĩ các lệnh cịn lại (cùng trong vịng lặp) đặt sau continue sẽ khơng được thực hiện. 41 41
  42. 5. XÂY DỰNG HÀM CON 5.1. Khái niệm  Hàm-Function . Là một đoạn chương trình độc lập thực hiện trọn vẹn mợt cơng việc nhất định sau đó trả về giá trị cho chương trình gọi nĩ . Là sự chia nhỏ của chương trình.  Mục đích sử dụng hàm: - Khi cĩ một cơng việc giống nhau cần thực hiện ở nhiều vị trí. - Khi cần chia một chương trình lớn phức tạp thành các đơn thể để chương trình được trong sáng, dễ hiể42u trong việc xử lý. 42
  43. 5. XÂY DỰNG HÀM CON 5.2. Khai báo và sử dụng hàm Type tênhàm(Các tham số){ Khai báo các biến cục bộ; Các câu lệnh; Thân hàm [return [biểu thức];] } Type: Kiểu dữ liệu giá trị trả về của hàm Kiểu dữ liệu trả về của hàm gồm 2 loại  void: Khơng trả về giá trị  float / int / long / char */ kiểu cấu trúc / : Trả về43 43 giá trị kết quả cĩ kiểu dữ liệu tương ứng
  44. 5. XÂY DỰNG HÀM CON Tham số int Tong(int a, int b) { int s=a+b; return s; } void main() Gọi hàm { int kq = Tong (12, 3); Truyền đối số cout<<“Tong cua 12 va 3: “<<kq; } 44 44
  45. 5. XÂY DỰNG HÀM CON Ví dụ: Viết chương trình nhập sớ nguyên dương n và in ra màn hình các ước sớ của n Phân tích bài tốn:  Input: n (tham số) Kiểu dữ liệu: số nguyên dương (int).  Output: In ra các ước số của n (dữ liệu trả về của hàm) Xuất ra màn hình Khơng trả về giá trị (Kiểu void)  Xác định tên hàm: Hàm này dùng in ra các ước số của n nên cĩ thể đặt là LietKeUocS 45 45 void LietKeUocSo(int n);
  46. 5. XÂY DỰNG HÀM CON Ví dụ: Viết chương trình in ra các ước số của n File khaibao.h File caidat.cpp #include “iostream” #include “khaibao.h” using namespace std; void LietKeUocSo(int n){ void LietKeUocSo(int n); for (int i = 1; i >n; cout<<"Cac uoc so cua “<<n<<“: “; LietKeUocSo(n); } 46 46
  47. 5. XÂY DỰNG HÀM CON Ví dụ 2: Viết chương trình nhập sớ nguyên dương n và tính tổng: Sn=1+2+3+ . . .+n ; với n>0 Phân tích bài tốn:  Input: n (tham số) Kiểu dữ liệu: số nguyên dương (int).  Output: Trả về giá trị của S. S là tổng các số nguyên dương nên S cũng là số nguyên dương Kiểu trả về của hàm là int (hoặc long).  Xác định TênHàm: Dùng tính tổng S nên cĩ thể đặt là TongS 47 47 int TongS(int n);
  48. 5. XÂY DỰNG HÀM CON Ví dụ 2: Viết chương trình nhập số File khaibao.h nguyên dương n và tính tổng: #pragma once #include Sn=1+2+3+ . . .+n ; với n>0 int TongS(int n); File main.cpp File caidat.cpp #include “khaibao.h” #include “khaibao.h” void main(){ int TongS(int n){ int n, S; int kq = 0; cout >n; kq + = i; S = TongS(n); return kq; cout<<"Tong tu 1 den n: " <<S; } } 48 48
  49. 5. XÂY DỰNG HÀM CON 5.3. Tham số là tham chiếu  Tham số làm kết quả đầu ra  Tham số vừa làm đầu vào và đầu ra  Dùng dấu & phía trước tên tham số khi cài đặt hàm 49 49
  50. 5. XÂY DỰNG HÀM CON Ví dụ: Chương trình hốn vị 2 số nguyên a, b cho trước void HoanVi(int &a, int &b) { int tam = a; a = b; b = tam; cout<<"Trong HoanVi: a = “<<a<<“ ;b = “<<b; } void main(){ int a = 5, b = 21; cout<<"Truoc khi HoanVi: a = “<<a<<“ ; b = “<<b; HoanVi(a, b); cout<<"Sau khi goi HoanVi: a = “<<a<<“ ;b = “<<b; 50 50 }
  51. BÀI TẬP Viết các chương trình sau bằng phương pháp sử dụng hàm con. 1. Viết chương trình nhập vào 1 số nguyên dương n. Tìm và in ra các số nguyên tố nhỏ hơn n. 2. Viết chương trình nhập 2 sớ nguyên dương a, b. Tìm USCLN và BSCNN của hai sớ nguyên đó 3. Viết chương trình nhập sớ nguyên dương n, tính tổng các ước số dương của n. Ví dụ: Nhập n=6 Tổng các ước sớ từ 1 đến n: 1+2+3+6=12. 51 51
  52. The End. 52