Bài giảng Nhập môn lập trình - Chương 1: Tổng quan - Ngô Hữu Dũng

Nội dung

 Tổng quan lập trình

 Các thành phần cơ bản

 Nhập xuất dữ liệu và các thư viện

 Các câu lệnh có cấu trúc

 Lệnh lựa chọn - rẽ nhánh

 Thuật toán

 Vòng lặp

 Hàm – chương trình con

 Kiểu dữ liệu mảng

 Chuỗi ký tự

pdf47 trang | Chia sẻ: phuongt97 | Lượt xem: 488 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Nhập môn lập trình - Chương 1: Tổng quan - Ngô Hữu Dũng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Nhập môn lập trình Tổng quan TS. Ngô Hữu Dũng TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH Bài 1 – Giới thiệu Nhập môn lập trình - Tổng quan Blog ngohuudung.blogspot.com Email ngohuudung@iuh.edu.vn 2 Nội dung  Tổng quan lập trình  Các thành phần cơ bản  Nhập xuất dữ liệu và các thư viện  Các câu lệnh có cấu trúc  Lệnh lựa chọn - rẽ nhánh  Thuật toán  Vòng lặp  Hàm – chương trình con  Kiểu dữ liệu mảng  Chuỗi ký tự Nhập môn lập trình - Tổng quan3 Tài liệu Nhập môn lập trình - Tổng quan  Brian W. Kernighan and Dennis M. Ritchie. The C Programming Language (Second Edition). Prentice-Hall. Englewood Cliffs, New Jersey, 1988.  Slide, bài giảng  Bài tập thực hành  Bản dịch tiếng Việt: Giáo trình Ngôn ngữ lập trình C  Tham khảo thêm  Phạm Văn Ất. Kỹ thuật lập trình C. NXB Khoa học và Kỹ thuật, 1995  Randal E.Bryant and David R.O’Hallaron. Computer’s Perspective, 2001  Bjarne Stroustrup. The C++ Programming Language, AT&T Labs Murray Hill, New Jersey Addison-Wesley, 1997.  Andy Oram and Greg Wilson, Beautiful Code, 2007  cplusplus.com 4 Lịch trình Nhập môn lập trình - Tổng quan Tuần Nội dung Lý thuyết Thực hành Kiểm tra Tự học 1 Giới thiệu môn học 2 4 2 Các thành phần cơ bản của Ngôn ngữ C 2 4 Nhập xuất dữ liệu và các thư viện 4 3 Các câu lệnh có cấu trúc 2 6 10 4 Vòng lặp – thuật toán 2 6 TK 10 5 Hàm – chương trình con 2 6 GK 10 6 Mảng 2 6 10 7 Mảng và chuỗi 2 6 10 8 Ôn tập 1 6 8 9 6 6 10 6 6 11 6 6 12 6 6 15 60 94 5 Kiểm tra đánh giá Nhập môn lập trình - Tổng quan  Lý thuyết  Kiểm tra thường kỳ  Thực hành  Kiểm tra thường kỳ  Thi giữa kỳ  Thi cuối kỳ  Điểm liệt: <3  Số tín chỉ: 3  Lý thuyết: 15  Thực hành: 60  Tự học: 94 6 Thảo luận Nhập môn lập trình - Tổng quan7  What?  Why?  How? Một số gợi ý Nhập môn lập trình - Tổng quan8  Bám sát các nội dung thực hành (quan trọng!)  Đọc tài liệu, slide trước khi đến lớp  In tài liệu, slide, bài tập  Tự đặt câu hỏi và trả lời  Tự làm bài tập ở nhà  Tóm tắt các nội dung chủ yếu  Vắng học? Chương trình? Nhập môn lập trình - Tổng quan9 1. /* Xuất ra màn hình dòng chữ: 2. Hello world! 3. */ 4. #include 5. int main() 6. { 7. printf("Hello world! "); 8. return 0; 9. } Các bước lập trình Nhập môn lập trình - Tổng quan10  Xác định rõ yêu cầu của bài toán  Lựa chọn các biến và cấu trúc dữ liệu  Xây dựng giải thuật (cách giải) cho bài toán  Xây dựng trình tự để giải bài toán  Cài đặt (viết) chương trình và biên dịch  Chạy thử và sửa lỗi  Hoàn thiện và tối ưu hóa Ví dụ về các bước lập trình Nhập môn lập trình - Tổng quan11  Bài toán: Nhập, tính toán, xuất  Đề bài: Viết chương trình nhập vào hai số nguyên, xuất ra màn hình tổng của hai số nguyên đó.  Các bước chính để giải bài toán:  Xác định rõ yêu cầu của bài toán  Lựa chọn các biến và cấu trúc dữ liệu  Xây dựng giải thuật (cách giải) cho bài toán  Xây dựng trình tự để giải bài toán  Cài đặt (viết) và biên dịch chương trình  Chạy thử và sửa lỗi  Hoàn thiện và tối ưu hóa Các bước giải bài toán Nhập môn lập trình - Tổng quan12  Xác định yêu cầu,  Nhập 2 số nguyên, tính tổng, xuất ra tổng.  Lựa chọn dữ liệu,  Cần lưu hai số nguyên  Cần lưu tổng hai số nguyên  Xây dựng thuật toán và trình tự,  Khai báo các biến để lưu trữ, bao nhiêu biến? Kiểu gì?  Nhập vào 2 số nguyên  Tính tổng  Xuất kết quả  Viết và biên dịch chương trình,  Chạy thử và sửa lỗi Cấu trúc chương trình C 1. //Khai báo thư viện 2. //Chương trình chính 3. int main() 4. { 5. // Khai báo biến 6. // Nội dung chương trình 7. return 0; //Kết thúc 8. } 9. // Ghi chú: // là dấu chú thích, 10. // không ảnh hưởng đến chương trình Nhập môn lập trình - Tổng quan13 Khai báo thư viện 1. #include // Thư viện stdio.h 2. // Chứa các hàm nhập xuất cơ bản 3. // stdio : standard C input output 4. // .h : header 5. //Chương trình chính 6. int main() 7. { 8. // Khai báo biến 9. // Nội dung chương trình 10. return 0; //Kết thúc 11. } Nhập môn lập trình - Tổng quan14 Khai báo biến 1. #include // Thư viện 2. //Chương trình chính 3. int main() 4. { 5. // Khai báo biến 6. int x; // int: integer – số nguyên 7. int y; // Cú pháp: ; 8. int tong; // Hoặc: int x, y, tong; 9. // Nội dung chương trình 10. return 0; //Kết thúc 11. } Nhập môn lập trình - Tổng quan15 Trình tự của chương trình 1. #include // Thư viện 2. //Chương trình chính 3. int main() 4. { 5. int x, y, tong; //Khai báo biến 6. // Nhập giá trị cho x và y 7. // Tính tổng 8. // Xuất ra màn hình giá trị tổng 9. return 0; //Kết thúc 10. } Nhập môn lập trình - Tổng quan16 Lưu đồ thuật toán và Mã giả Nhập môn lập trình - Tổng quan17 Dùng để biểu diễn, mô tả giải thuật Problem Tính tổng Input x, y: Integer Output tong: Integer READ x, y tong = x + y WRITE tong END Start End Read x Read y tong = x + y Print tong Nhập giá trị cho biến 1. #include // Thư viện 2. int main() //Chương trình chính 3. { 4. int x, y, tong; //Khai báo biến 5. // Nhập giá trị cho x và y 6. scanf("%d", &x); //Nhập x 7. scanf("%d", &y); //Nhập y 8. // Tính tổng 9. // Xuất ra màn hình giá trị tổng 10. return 0; //Kết thúc 11. } Nhập môn lập trình - Tổng quan18 Tính toán – Xử lý 1. #include //Khai báo thư viện 2. int main() //Chương trình chính 3. { 4. int x, y, tong; //Khai báo biến 5. // Nhập giá trị cho x và y 6. scanf("%d", &x); //Nhập x 7. scanf("%d", &y); //Nhập y 8. // Tính tổng 9. tong = x + y; // Phép gán 10. // Cú pháp: = ; 11. // Xuất ra màn hình giá trị tổng 12. return 0; //Kết thúc 13. } Nhập môn lập trình - Tổng quan19 Xuất ra màn hình 1. #include //Khai báo thư viện 2. int main() //Chương trình chính 3. { 4. int x, y, tong; //Khai báo biến 5. // Nhập giá trị cho x và y 6. scanf("%d", &x); //Nhập x 7. scanf("%d", &y); //Nhập y 8. // Tính tổng 9. tong = x + y; // Phép gán 10. // Xuất ra màn hình giá trị tổng 11. printf("Tong la %d \n", tong); // Xuất 12. return 0; //Kết thúc 13. } Nhập môn lập trình - Tổng quan20 Chương trình tính tổng tham khảo 1. #include //Khai báo thư viện 2. int main() //Chương trình chính 3. { 4. int x, y, tong; //Khai báo biến 5. printf("Nhap x: "); 6. scanf("%d", &x); //Nhập x 7. printf("Nhap y: "); 8. scanf("%d", &y); //Nhập y 9. tong = x + y; //Tính tổng 10. printf("Tong la %d \n", tong); // Xuất 11. return 0; //Kết thúc 12. } Nhập môn lập trình - Tổng quan21 How’s it work? 22 1. #include 2. int main() 3. { 4. int x, y, tong; 5. printf("Nhap x: "); 6. scanf("%d", &x); 7. printf("Nhap y: "); 8. scanf("%d", &y); 9. tong = x + y; 10. printf("Tong la %d \n", tong); 11. return 0; 12. } 4 7 11 x y tong Nhap x: Nhap y: Tong la 11 4 7 Nhận xét – Thư viện Nhập môn lập trình - Tổng quan23  Thư viện  Chứa các hàm đã được định nghĩa sẵn  Khai báo  #include  #include // Nhập xuất  #include // Thư viện chuẩn  #include // Toán học  #include // Chuỗi ký tự  #include // Ký tự  #include // Thời gian Nhận xét – Chương trình chính main Nhập môn lập trình - Tổng quan24  Chương trình chính:  Nơi chương trình bắt đầu  Cần duy nhất một chương trình chính int main() { // nội dung chương trình return 0; // Kết thúc } Nhận xét – Biến (variable) Nhập môn lập trình - Tổng quan25  Biến  Lưu trữ dữ liệu cần thiết  Giá trị có thể thay đổi  Có kiểu dữ liệu cụ thể (nguyên, thực, ký tự)  Khai báo  , ;  int x, y, tong, hieu, tich;// Số nguyên  float thuong; // Biến kiểu số thực  char kyTu; // Biến kiểu ký tự  char chuoi[50]; // Biến kiểu chuỗi ký tự Nhận xét – Nhập dữ liệu Nhập môn lập trình - Tổng quan26  Nhập  Nhập từ bàn phím giá trị cho biến  Nhập đúng kiểu dữ liệu tương ứng với kiểu của biến  scanf("", &);  scanf("%d", &x); // d: decimal  scanf("%i", &y); // i: integral  scanf("%f", &thuong);// f: float  scanf("%c", &kyTu); // c: char  scanf("%s", &chuoi); // s: string  gets();  gets(chuoi); Nhận xét – Tính toán Nhập môn lập trình - Tổng quan27  Phép gán, biểu thức  = ;  tong = x + y;  tich = x * y;  thuong = (float)x/y;  trungBinhCong = (x + y)/2.0;  Toán tử số học  +: Cộng, -: Trừ, *: Nhân,  /: Chia,  %: Chia lấy dư (dành cho số nguyên) Nhận xét – Xuất Nhập môn lập trình - Tổng quan28  Xuất ra màn hình dòng chữ, giá trị của biến  printf("", ,);  printf("Tong: %d \n", tong);  printf("Thuong: %f \n", thuong);  printf("Ky tu: %c \n", kyTu);  printf("Chuoi: %s \n", chuoi); Nhận xét – Mã giả Nhập môn lập trình - Tổng quan29  Dùng để biểu diễn thuật toán  Không nhất thiết chính xác về cú pháp  Không nhất thiết tuân theo một ngôn ngữ cụ thể  Ví dụ một số từ khoá: READ, WRITE, IF, ELSE, ENDIF, FOR, ENDFOR, WHILE, ENDWHILE.  Mỗi lệnh hoặc mỗi bước chỉ nên viết trên một dòng  Dùng thụt đầu dòng cho các lệnh có cấu trúc  Kết thúc lệnh bằng ENDIF, ENDFOR Nhận xét – Lưu đồ thuật toán Nhập môn lập trình - Tổng quan30  Biểu diễn thuật toán bằng sơ đồ khối Hình dạng Tên gọi Hành động Terminator Bắt đầu hoặc kết thúc chương trình Data Nhập hoặc xuất dữ liệu Process Xử lý, thực hiện một thao tác Decision Quyết định hướng xử lý theo điều kiện Flow direction Hướng đi của luồng xử lý Connector Điểm kết nối Hằng số Nhập môn lập trình - Tổng quan31  Đề bài: Viết chương trình nhập vào bán kính hình tròn, xuất ra màn hình diện tích và chu vi hình tròn.  Gợi ý:  Hằng số PI?  #define PI 3.14  const int IP = 3.14; rDT = ? CV = ? Hằng số - tham khảo 1. #include 2. #define PI 3.14 // PI là hằng số 3. int main() 4. { 5. float r; // Bán kính 6. float DT, CV; // Diện tích, chu vi 7. printf("Nhap ban kinh hinh tron: "); 8. scanf("%f", &r); 9. DT = PI * r * r; 10. CV = 2 * PI * r; 11. printf("Dien tich hinh tron: %.2f\n", DT); 12. printf("Chu vi hinh tron: %.2f", CV); 13. return 0; 14. } Nhập môn lập trình - Tổng quan32 Một số khái niệm Nhập môn lập trình - Tổng quan33  Thư viện – Library  stdio.h, math.h  Chương trình chính  int main(){}  Kiểu biến – Data type  int, float  Tên biến – Variable name  xA, xB  Chú thích - Comment  // Lời chú thích  Nhập - Input  scanf(“%d”,&x);  Xuất - Output  printf(“hello!”);  Phép toán – Operation  tong = x + y;  Toán tử - Operator  +, -, *, /  Hằng số - Constant  #define PI 3.14  const float PI = 3.14  Hàm - Function  sqrt, pow, scanf, printf Công cụ lập trình Nhập môn lập trình - Tổng quan34  C-Free, Dev-C, CodeBlocks, Visual Studio Một số trình biên dịch khác  Codeblocks:  Dev-C++:  Visual studio: US/products/visual-studio-express-vs  TurboC: windows-7-windows-8-and-windows-xp/  Eclipse:  Netbeans: https://netbeans.org/downloads/index.html  Ideone: Biên dịch online, hỗ trợ nhiều ngôn ngữ lập trình https://ideone.com/ Nhập môn lập trình - Tổng quan35 Nhập môn lập trình - Tổng quan36 Giảng viên: Instructor Tự tìm hiểu nội dung môn học Nhập môn lập trình - Tổng quan37  Thuật toán? Algorithm  Cách giải bài toán  Lệnh lựa chọn? Selection  (Lệnh rẽ nhánh)  if .. else, switch .. case  Vòng lặp? Loop  for, while, do while  Hàm? Function  Chương trình con  Mảng? Array  Dãy số  Chuỗi ký tự  Các thao tác cơ bản  Nhập input  Xuất, output  Đếm, count  Tìm kiếm, search  Tính toán, calculation  Trích xuất, list  Liệt kê list  Thêm, add  Xóa, remove  Sắp xếp sort Bài tập 1.1 – Các thao tác lập trình Nhập môn lập trình - Tổng quan38 Bài tập 1.1 – Các thao tác lập trình Nhập môn lập trình - Tổng quan39  Khởi động: Kích đôi vào biểu tượng C-Free hoặc Dev-C++  Mở tập tin mới: File  New, hoặc kích vào Biểu tượng 2  Lưu file nguồn: File  Save, hoặc File  Save as, hoặc kích Biểu tượng 3  Gõ chương trình Hello world vào khu vực số 4  Biên dịch, chạy chương trình, dừng chương trình ở khu vực số 5  Kiểm tra và sửa lỗi biên dịch ở khu vực số 6  Xem và kiểm tra kết quả ở màn hình số 7 Bài tập 1.2 – Tính toán Nhập môn lập trình - Tổng quan40  Viết chương trình nhập vào hai số nguyên, xuất ra màn hình tổng, hiệu, tích, và thương của của số nguyên đó.  Gợi ý: #include /*Khai báo thư viện*/ int main() //Chương trình chính { . . . // Khai báo biến . . . // Nhập . . . // Biểu thức, tính toán . . . // Xuất return 0; //Kết thúc } Tính tổng, hiệu, tích, thương (tham khảo 1) Nhập môn lập trình - Tổng quan41 1. #include /*Khai báo thư viện*/ 2. int main() //Chương trình chính 3. { 4. int x, y, tong, hieu, tich; 5. float thuong; //Khai báo 6. printf("Nhap so nguyen x: "); 7. scanf("%d", &x); //Nhập x 8. printf("Nhap so nguyen y: "); 9. scanf("%d", &y); //Nhập y 10. tong = x + y; //Biểu thức tính tổng 11. hieu = x - y; //Biểu thức tính hiệu 12. tich = x * y; //Biểu thức tính tích 13. thuong = (float)x / y; //Biểu thức tính thương 14. printf("Tong la %d \n", tong); // Xuất tổng 15. printf("Hieu la %d \n", hieu); // Xuất hiệu 16. printf("Tich la %d \n", tich); // Xuất tích 17. printf("Thuong la %f \n", thuong); // Xuất thương 18. return 0; //Kết thúc 19. } Tính tổng, hiệu, tích, thương (tham khảo 2) Nhập môn lập trình - Tổng quan42 1. #include //Khai báo thư viện 2. int main() //Chương trình chính 3. { 4. int x, y, tong, hieu, tich; //Khai báo 5. float thuong; 6. printf("Nhap vao hai so nguyen: "); 7. scanf("%d%d", &x, &y); //Nhập x, y 8. tong = x + y; hieu = x - y; //Tính toán 9. tich = x * y; thuong = (float)x / y; 10. printf("%d + %d = %d \n", x, y, tong);// Xuất 11. printf("%d - %d = %d \n", x, y, hieu); 12. printf("%d * %d = %d \n", x, y, tich); 13. printf("%d / %d = %f \n", x, y, thuong); 14. return 0; //Kết thúc 15. } Bài tập 1.3 – Hình chữ nhật Nhập môn lập trình - Tổng quan43 Viết chương trình nhập vào hai cạnh của hình chữ nhật, xuất ra màn hình diện tích, chu vi và chiều dài đường chéo của hình chữ nhật.  Gợi ý:  Giả sử chiều dài đường chéo là c  c2 = a2 + b2  Tính căn bậc hai  Hàm sqrt(x) =  Hàm sqrt thuộc thư viện math.h a b DT = ? CV = ? c = ? Hình chữ nhật (tham khảo) 1. #include 2. #include 3. int main() 4. { 5. float a, b; // Hai cạnh 6. float c; // Đường chéo 7. float dienTich, chuVi; 8. printf("Nhap hai canh: "); 9. scanf("%f%f", &a, &b); 10. dienTich = a * b; 11. chuVi = (a + b)*2; 12. c = sqrt(a*a + b*b); 13. printf("Dien tich: %f\n", dienTich); 14. printf("Chu vi: %f\n", chuVi); 15. printf("Duong cheo: %f\n", c); 16. return 0; 17. } Nhập môn lập trình - Tổng quan44 Bài tập 1.4 – Khoảng cách Nhập môn lập trình - Tổng quan45  Đề bài: Viết chương trình nhập vào tọa độ của hai điểm A(xA, yA) và B(xB, yB), xuất ra màn hình khoảng cách giữa hai điểm.  Gợi ý:  Thư viện math.h?  Hàm sqrt tính căn bậc hai  sqrt(x):  Hàm pow tính lũy thừa  pow(x, 2): x2 A(xA, yA) B(xB, yB) Khoảng cách (tham khảo) 1. #include 2. #include 3. int main() 4. { 5. float xA, yA; // A(xA, yA) 6. float xB, yB; // B(xB, yB) 7. float KC; // Khoảng cách 8. printf("Nhap A(xA, yA): "); 9. scanf("%f%f", &xA, &yA); 10. printf("Nhap B(xB, yB): "); 11. scanf("%f%f", &xB, &yB); 12. KC = sqrt(pow(xA-xB,2) + pow(yA-yB,2)); 13. printf("Khoang cach: %f\n", KC); 14. return 0; 15. } Nhập môn lập trình - Tổng quan46 Bài tập 1.5 – Chữ số Nhập môn lập trình - Tổng quan47  Viết chương trình nhập vào một số nguyên có hai chữ số, xuất ra màn hình chữ số hàng chục và chữ số hàng đơn vị của số nguyên ấy.  Gợi ý:  Số hàng chục: Dùng phép chia lấy phần nguyên, ví dụ: chuc = so / 10;  Số hàng đơn vị: Dùng phép chia lấy dư, ví dụ donvi = so % 10;  Yêu cầu: Phân biệt hai phép chia lấy dư và chia lấy nguyên

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_nhap_mon_lap_trinh_chuong_1_tong_quan_ngo_huu_dung.pdf
Tài liệu liên quan